All functions:
  Elements:
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:34,1
    - Dst: ASSERT_LE
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:35,1
    - Dst: size
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:35,1
    - Dst: ASSERT_LE
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:36,1
    - Dst: size
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:36,1
    - Dst: ASSERT_LE
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:37,1
    - Dst: size
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:37,1
    - Dst: static_cast<SharpYuvMatrixType>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:40,1
    - Dst: static_cast<SharpYuvTransferFunctionType>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:42,1
    - Dst: SharpYuvGetConversionMatrix
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:45,1
    - Dst: ASSERT_NE
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:46,1
    - Dst: ASSERT_TRUE
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:49,1
    - Dst: SharpYuvOptionsInit
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:49,1
    - Dst: static_cast<uint8_t>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:63,1
    - Dst: static_cast<uint8_t>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:64,1
    - Dst: static_cast<uint8_t>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:65,1
    - Dst: EXPECT_TRUE
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:67,1
    - Dst: SharpYuvConvertWithOptions
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:67,1
    - Dst: std::vector::data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:68,1
    - Dst: data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:68,1
    - Dst: data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:68,1
    - Dst: std::vector::data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:68,1
    - Dst: std::vector::data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:69,1
    - Dst: std::vector::data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:69,1
    - Dst: EXPECT_TRUE
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:72,1
    - Dst: SharpYuvConvertWithOptions
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:72,1
    - Dst: data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:73,1
    - Dst: data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:73,1
    - Dst: data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:73,1
    - Dst: std::vector::data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:74,1
    - Dst: std::vector::data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:74,1
    - Dst: std::vector::data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 9
    argNames:
    - width
    - height
    - rgb_bit_depth
    - yuv_bit_depth
    - ' r_samples'
    - ' g_samples'
    - ' b_samples'
    - matrix_type_int
    - transfer_type_int
    argTypes:
    - int
    - int
    - int
    - int
    - std::vector<uint16_t>
    - std::vector<uint16_t>
    - std::vector<uint16_t>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 77
    functionName: SharpYuvConvertFuzz
    functionSourceFile: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc
    functionUses: 0
    functionsReached:
    - static_cast<SharpYuvMatrixType>
    - SharpYuvGetConversionMatrix
    - static_cast<size_t>
    - ASSERT_NE
    - std::vector::data
    - ASSERT_TRUE
    - static_cast<uint8_t>
    - data
    - size
    - EXPECT_TRUE
    - static_cast<SharpYuvTransferFunctionType>
    - SharpYuvConvertWithOptions
    - SharpYuvOptionsInit
    - ASSERT_LE
    linkageType: ''
    returnType: void
    signature: "void SharpYuvConvertFuzz(int width, int height, int rgb_bit_depth,\n
      \                        int yuv_bit_depth,\n                         const
      std::vector<uint16_t>& r_samples,\n                         const std::vector<uint16_t>&
      g_samples,\n                         const std::vector<uint16_t>& b_samples,\n
      \                        int matrix_type_int, int transfer_type_int)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzztest::ElementOf<int>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 98
    functionName: AnyTransferFunction
    functionSourceFile: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc
    functionUses: 0
    functionsReached:
    - fuzztest::ElementOf<int>
    linkageType: ''
    returnType: auto
    signature: auto AnyTransferFunction()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzztest::FlatMap
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:101,1
    - Dst: static_cast<size_t>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:104,1
    - Dst: fuzztest::TupleOf
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:105,1
    - Dst: fuzztest::Just
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:106,1
    - Dst: fuzztest::Just
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:106,1
    - Dst: fuzztest::Just
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:106,1
    - Dst: fuzztest::Just
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:107,1
    - Dst: fuzztest::VectorOf
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:108,1
    - Dst: fuzztest::Arbitrary<uint16_t>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:108,1
    - Dst: fuzztest::VectorOf
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:109,1
    - Dst: fuzztest::Arbitrary<uint16_t>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:109,1
    - Dst: fuzztest::VectorOf
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:110,1
    - Dst: fuzztest::Arbitrary<uint16_t>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:110,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:111,1
    - Dst: static_cast<int>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:111,1
    - Dst: AnyTransferFunction
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:112,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:114,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:115,1
    - Dst: fuzztest::ElementOf
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:116,1
    - Dst: fuzztest::ElementOf
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 118
    functionName: SharpYuvDomain
    functionSourceFile: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc
    functionUses: 0
    functionsReached:
    - fuzztest::TupleOf
    - AnyTransferFunction
    - fuzztest::Arbitrary<uint16_t>
    - static_cast<size_t>
    - fuzztest::VectorOf
    - fuzztest::ElementOf
    - fuzztest::InRange
    - fuzztest::Just
    - static_cast<int>
    - fuzztest::FlatMap
    linkageType: ''
    returnType: auto
    signature: auto SharpYuvDomain()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::apply
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - "\n        args"
    argTypes:
    - "std::tuple<int, int, int, int, std::vector<uint16_t>,\n                     std::vector<uint16_t>,
      std::vector<uint16_t>, int, int>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: SharpYuvConvertFuzzWrapped
    functionSourceFile: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc
    functionUses: 0
    functionsReached:
    - std::apply
    linkageType: ''
    returnType: void
    signature: "void SharpYuvConvertFuzzWrapped(\n    const std::tuple<int, int, int,
      int, std::vector<uint16_t>,\n                     std::vector<uint16_t>, std::vector<uint16_t>,
      int, int>&\n        args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:34,1
    - Dst: ASSERT_LE
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:35,1
    - Dst: size
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:35,1
    - Dst: ASSERT_LE
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:36,1
    - Dst: size
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:36,1
    - Dst: ASSERT_LE
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:37,1
    - Dst: size
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:37,1
    - Dst: static_cast<SharpYuvMatrixType>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:40,1
    - Dst: static_cast<SharpYuvTransferFunctionType>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:42,1
    - Dst: SharpYuvGetConversionMatrix
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:45,1
    - Dst: ASSERT_NE
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:46,1
    - Dst: ASSERT_TRUE
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:49,1
    - Dst: SharpYuvOptionsInit
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:49,1
    - Dst: static_cast<uint8_t>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:63,1
    - Dst: static_cast<uint8_t>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:64,1
    - Dst: static_cast<uint8_t>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:65,1
    - Dst: EXPECT_TRUE
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:67,1
    - Dst: SharpYuvConvertWithOptions
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:67,1
    - Dst: std::vector::data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:68,1
    - Dst: data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:68,1
    - Dst: data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:68,1
    - Dst: std::vector::data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:68,1
    - Dst: std::vector::data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:69,1
    - Dst: std::vector::data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:69,1
    - Dst: EXPECT_TRUE
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:72,1
    - Dst: SharpYuvConvertWithOptions
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:72,1
    - Dst: data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:73,1
    - Dst: data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:73,1
    - Dst: data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:73,1
    - Dst: std::vector::data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:74,1
    - Dst: std::vector::data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:74,1
    - Dst: std::vector::data
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 9
    argNames:
    - width
    - height
    - rgb_bit_depth
    - yuv_bit_depth
    - ' r_samples'
    - ' g_samples'
    - ' b_samples'
    - matrix_type_int
    - transfer_type_int
    argTypes:
    - int
    - int
    - int
    - int
    - std::vector<uint16_t>
    - std::vector<uint16_t>
    - std::vector<uint16_t>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 77
    functionName: SharpYuvConvertFuzz
    functionSourceFile: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc
    functionUses: 0
    functionsReached:
    - static_cast<SharpYuvMatrixType>
    - SharpYuvGetConversionMatrix
    - static_cast<size_t>
    - ASSERT_NE
    - std::vector::data
    - ASSERT_TRUE
    - static_cast<uint8_t>
    - data
    - size
    - EXPECT_TRUE
    - static_cast<SharpYuvTransferFunctionType>
    - SharpYuvConvertWithOptions
    - SharpYuvOptionsInit
    - ASSERT_LE
    linkageType: ''
    returnType: void
    signature: "void SharpYuvConvertFuzz(int width, int height, int rgb_bit_depth,\n
      \                        int yuv_bit_depth,\n                         const
      std::vector<uint16_t>& r_samples,\n                         const std::vector<uint16_t>&
      g_samples,\n                         const std::vector<uint16_t>& b_samples,\n
      \                        int matrix_type_int, int transfer_type_int)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzztest::ElementOf<int>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 98
    functionName: AnyTransferFunction
    functionSourceFile: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc
    functionUses: 1
    functionsReached:
    - fuzztest::ElementOf<int>
    linkageType: ''
    returnType: auto
    signature: auto AnyTransferFunction()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzztest::FlatMap
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:101,1
    - Dst: static_cast<size_t>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:104,1
    - Dst: fuzztest::TupleOf
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:105,1
    - Dst: fuzztest::Just
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:106,1
    - Dst: fuzztest::Just
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:106,1
    - Dst: fuzztest::Just
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:106,1
    - Dst: fuzztest::Just
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:107,1
    - Dst: fuzztest::VectorOf
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:108,1
    - Dst: fuzztest::Arbitrary<uint16_t>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:108,1
    - Dst: fuzztest::VectorOf
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:109,1
    - Dst: fuzztest::Arbitrary<uint16_t>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:109,1
    - Dst: fuzztest::VectorOf
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:110,1
    - Dst: fuzztest::Arbitrary<uint16_t>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:110,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:111,1
    - Dst: static_cast<int>
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:111,1
    - Dst: AnyTransferFunction
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:112,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:114,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:115,1
    - Dst: fuzztest::ElementOf
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:116,1
    - Dst: fuzztest::ElementOf
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 118
    functionName: SharpYuvDomain
    functionSourceFile: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc
    functionUses: 0
    functionsReached:
    - fuzztest::TupleOf
    - AnyTransferFunction
    - fuzztest::Arbitrary<uint16_t>
    - static_cast<size_t>
    - fuzztest::VectorOf
    - fuzztest::ElementOf
    - fuzztest::InRange
    - fuzztest::Just
    - static_cast<int>
    - fuzztest::FlatMap
    linkageType: ''
    returnType: auto
    signature: auto SharpYuvDomain()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::apply
      Src: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - "\n        args"
    argTypes:
    - "std::tuple<int, int, int, int, std::vector<uint16_t>,\n                     std::vector<uint16_t>,
      std::vector<uint16_t>, int, int>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: SharpYuvConvertFuzzWrapped
    functionSourceFile: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc
    functionUses: 0
    functionsReached:
    - std::apply
    linkageType: ''
    returnType: void
    signature: "void SharpYuvConvertFuzzWrapped(\n    const std::tuple<int, int, int,
      int, std::vector<uint16_t>,\n                     std::vector<uint16_t>, std::vector<uint16_t>,
      int, int>&\n        args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc:29,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc:29,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc:30,1
    - Dst: fuzz_utils::IsImageTooBig
      Src: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc:31,1
    - Dst: nalloc_init
      Src: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc:33,1
    - Dst: nalloc_start
      Src: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc:34,1
    - Dst: ReadAnimatedImageFromMemory
      Src: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc:37,1
    - Dst: ClearAnimatedImage
      Src: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc:39,1
    - Dst: nalloc_end
      Src: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - blob
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 43
    functionName: ReadAnimatedImageTest
    functionSourceFile: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc
    functionUses: 0
    functionsReached:
    - nalloc_start
    - fuzz_utils::IsImageTooBig
    - std::string_view::size
    - std::string_view::data
    - reinterpret_cast<const uint8_t*>
    - nalloc_init
    - ClearAnimatedImage
    - nalloc_end
    - ReadAnimatedImageFromMemory
    linkageType: ''
    returnType: void
    signature: void ReadAnimatedImageTest(std::string_view blob)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc:29,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc:29,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc:30,1
    - Dst: fuzz_utils::IsImageTooBig
      Src: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc:31,1
    - Dst: nalloc_init
      Src: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc:33,1
    - Dst: nalloc_start
      Src: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc:34,1
    - Dst: ReadAnimatedImageFromMemory
      Src: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc:37,1
    - Dst: ClearAnimatedImage
      Src: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc:39,1
    - Dst: nalloc_end
      Src: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - blob
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 43
    functionName: ReadAnimatedImageTest
    functionSourceFile: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc
    functionUses: 0
    functionsReached:
    - nalloc_start
    - fuzz_utils::IsImageTooBig
    - std::string_view::size
    - std::string_view::data
    - reinterpret_cast<const uint8_t*>
    - nalloc_init
    - ClearAnimatedImage
    - nalloc_end
    - ReadAnimatedImageFromMemory
    linkageType: ''
    returnType: void
    signature: void ReadAnimatedImageTest(std::string_view blob)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPInitDecoderConfig
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:32,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:33,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:34,1
    - Dst: nalloc_init
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:36,1
    - Dst: nalloc_start
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:37,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:37,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:37,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:38,1
    - Dst: std::memcpy
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:39,1
    - Dst: WebPDecode
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:42,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:42,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:42,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:43,1
    - Dst: WebPFreeDecBuffer
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:44,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:48,1
    - Dst: nalloc_end
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - arbitrary_bytes
    - ' decoder_options'
    argTypes:
    - std::string_view
    - fuzz_utils::WebPDecoderOptionsCpp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 51
    functionName: DecodeWebP
    functionSourceFile: /src/libwebp/tests/fuzzer/dec_fuzzer.cc
    functionUses: 0
    functionsReached:
    - nalloc_start
    - WebPInitDecoderConfig
    - std::string_view::size
    - std::string_view::data
    - WebPFreeDecBuffer
    - reinterpret_cast<const uint8_t*>
    - nalloc_init
    - fprintf
    - nalloc_end
    - std::memcpy
    - WebPDecode
    - std::abort
    linkageType: ''
    returnType: void
    signature: "void DecodeWebP(std::string_view arbitrary_bytes,\n                const
      fuzz_utils::WebPDecoderOptionsCpp& decoder_options)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPInitDecoderConfig
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:32,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:33,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:34,1
    - Dst: nalloc_init
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:36,1
    - Dst: nalloc_start
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:37,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:37,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:37,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:38,1
    - Dst: std::memcpy
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:39,1
    - Dst: WebPDecode
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:42,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:42,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:42,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:43,1
    - Dst: WebPFreeDecBuffer
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:44,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:48,1
    - Dst: nalloc_end
      Src: /src/libwebp/tests/fuzzer/dec_fuzzer.cc:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - arbitrary_bytes
    - ' decoder_options'
    argTypes:
    - std::string_view
    - fuzz_utils::WebPDecoderOptionsCpp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 51
    functionName: DecodeWebP
    functionSourceFile: /src/libwebp/tests/fuzzer/dec_fuzzer.cc
    functionUses: 0
    functionsReached:
    - nalloc_start
    - WebPInitDecoderConfig
    - std::string_view::size
    - std::string_view::data
    - WebPFreeDecBuffer
    - reinterpret_cast<const uint8_t*>
    - nalloc_init
    - fprintf
    - nalloc_end
    - std::memcpy
    - WebPDecode
    - std::abort
    linkageType: ''
    returnType: void
    signature: "void DecodeWebP(std::string_view arbitrary_bytes,\n                const
      fuzz_utils::WebPDecoderOptionsCpp& decoder_options)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:32,1
    - Dst: WebPDataInit
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:34,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:36,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:36,1
    - Dst: WebPDemux
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:39,1
    - Dst: WebPDemuxGetI
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:41,1
    - Dst: WebPDemuxGetI
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:42,1
    - Dst: WebPDemuxDelete
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:44,1
    - Dst: WebPDemuxGetFrame
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:51,1
    - Dst: WebPGetInfo
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:53,1
    - Dst: WebPDemuxReleaseIterator
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:56,1
    - Dst: WebPDemuxDelete
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:57,1
    - Dst: WebPDemuxReleaseIterator
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:63,1
    - Dst: WebPDemuxDelete
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:64,1
    - Dst: WebPAnimDecoderOptionsInit
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:67,1
    - Dst: WebPAnimDecoderNew
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:72,1
    - Dst: WebPAnimDecoderGetNext
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:78,1
    - Dst: WebPAnimDecoderDelete
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:81,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - blob
    - use_threads
    - color_mode
    argTypes:
    - std::string_view
    - bool
    - WEBP_CSP_MODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 82
    functionName: AnimationApiTest
    functionSourceFile: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc
    functionUses: 0
    functionsReached:
    - WebPAnimDecoderOptionsInit
    - WebPDemux
    - WebPDemuxGetI
    - std::string_view::size
    - WebPDemuxReleaseIterator
    - std::string_view::data
    - reinterpret_cast<const uint8_t*>
    - WebPGetInfo
    - WebPAnimDecoderDelete
    - WebPDemuxDelete
    - WebPAnimDecoderGetNext
    - WebPAnimDecoderNew
    - WebPDemuxGetFrame
    - WebPDataInit
    linkageType: ''
    returnType: void
    signature: "void AnimationApiTest(std::string_view blob, bool use_threads,\n                      WEBP_CSP_MODE
      color_mode)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:32,1
    - Dst: WebPDataInit
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:34,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:36,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:36,1
    - Dst: WebPDemux
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:39,1
    - Dst: WebPDemuxGetI
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:41,1
    - Dst: WebPDemuxGetI
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:42,1
    - Dst: WebPDemuxDelete
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:44,1
    - Dst: WebPDemuxGetFrame
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:51,1
    - Dst: WebPGetInfo
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:53,1
    - Dst: WebPDemuxReleaseIterator
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:56,1
    - Dst: WebPDemuxDelete
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:57,1
    - Dst: WebPDemuxReleaseIterator
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:63,1
    - Dst: WebPDemuxDelete
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:64,1
    - Dst: WebPAnimDecoderOptionsInit
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:67,1
    - Dst: WebPAnimDecoderNew
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:72,1
    - Dst: WebPAnimDecoderGetNext
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:78,1
    - Dst: WebPAnimDecoderDelete
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:81,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - blob
    - use_threads
    - color_mode
    argTypes:
    - std::string_view
    - bool
    - WEBP_CSP_MODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 82
    functionName: AnimationApiTest
    functionSourceFile: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc
    functionUses: 0
    functionsReached:
    - WebPAnimDecoderOptionsInit
    - WebPDemux
    - WebPDemuxGetI
    - std::string_view::size
    - WebPDemuxReleaseIterator
    - std::string_view::data
    - reinterpret_cast<const uint8_t*>
    - WebPGetInfo
    - WebPAnimDecoderDelete
    - WebPDemuxDelete
    - WebPAnimDecoderGetNext
    - WebPAnimDecoderNew
    - WebPDemuxGetFrame
    - WebPDataInit
    linkageType: ''
    returnType: void
    signature: "void AnimationApiTest(std::string_view blob, bool use_threads,\n                      WEBP_CSP_MODE
      color_mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AnimationApiTest
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:95,1
    - Dst: std::string
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:96,1
    - Dst: static_cast<WEBP_CSP_MODE>
      Src: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: TEST
    functionSourceFile: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc
    functionUses: 0
    functionsReached:
    - static_cast<WEBP_CSP_MODE>
    - std::string
    - AnimationApiTest
    linkageType: ''
    returnType: void
    signature: void TEST(AnimationApi, Buganizer498965803)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:34,1
    - Dst: ASSERT_LE
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:35,1
    - Dst: size
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:35,1
    - Dst: ASSERT_LE
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:36,1
    - Dst: size
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:36,1
    - Dst: ASSERT_LE
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:37,1
    - Dst: size
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:37,1
    - Dst: static_cast<SharpYuvMatrixType>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:40,1
    - Dst: static_cast<SharpYuvTransferFunctionType>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:42,1
    - Dst: SharpYuvGetConversionMatrix
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:45,1
    - Dst: ASSERT_NE
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:46,1
    - Dst: ASSERT_TRUE
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:49,1
    - Dst: SharpYuvOptionsInit
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:49,1
    - Dst: static_cast<uint8_t>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:63,1
    - Dst: static_cast<uint8_t>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:64,1
    - Dst: static_cast<uint8_t>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:65,1
    - Dst: EXPECT_TRUE
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:67,1
    - Dst: SharpYuvConvertWithOptions
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:67,1
    - Dst: std::vector::data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:68,1
    - Dst: data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:68,1
    - Dst: data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:68,1
    - Dst: std::vector::data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:68,1
    - Dst: std::vector::data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:69,1
    - Dst: std::vector::data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:69,1
    - Dst: EXPECT_TRUE
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:72,1
    - Dst: SharpYuvConvertWithOptions
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:72,1
    - Dst: data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:73,1
    - Dst: data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:73,1
    - Dst: data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:73,1
    - Dst: std::vector::data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:74,1
    - Dst: std::vector::data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:74,1
    - Dst: std::vector::data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 9
    argNames:
    - width
    - height
    - rgb_bit_depth
    - yuv_bit_depth
    - ' r_samples'
    - ' g_samples'
    - ' b_samples'
    - matrix_type_int
    - transfer_type_int
    argTypes:
    - int
    - int
    - int
    - int
    - std::vector<uint16_t>
    - std::vector<uint16_t>
    - std::vector<uint16_t>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 77
    functionName: SharpYuvConvertFuzz
    functionSourceFile: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc
    functionUses: 0
    functionsReached:
    - static_cast<SharpYuvMatrixType>
    - SharpYuvGetConversionMatrix
    - static_cast<size_t>
    - ASSERT_NE
    - std::vector::data
    - ASSERT_TRUE
    - static_cast<uint8_t>
    - data
    - size
    - EXPECT_TRUE
    - static_cast<SharpYuvTransferFunctionType>
    - SharpYuvConvertWithOptions
    - SharpYuvOptionsInit
    - ASSERT_LE
    linkageType: ''
    returnType: void
    signature: "void SharpYuvConvertFuzz(int width, int height, int rgb_bit_depth,\n
      \                        int yuv_bit_depth,\n                         const
      std::vector<uint16_t>& r_samples,\n                         const std::vector<uint16_t>&
      g_samples,\n                         const std::vector<uint16_t>& b_samples,\n
      \                        int matrix_type_int, int transfer_type_int)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzztest::ElementOf<int>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 98
    functionName: AnyTransferFunction
    functionSourceFile: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc
    functionUses: 2
    functionsReached:
    - fuzztest::ElementOf<int>
    linkageType: ''
    returnType: auto
    signature: auto AnyTransferFunction()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzztest::FlatMap
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:101,1
    - Dst: static_cast<size_t>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:104,1
    - Dst: fuzztest::TupleOf
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:105,1
    - Dst: fuzztest::Just
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:106,1
    - Dst: fuzztest::Just
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:106,1
    - Dst: fuzztest::Just
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:106,1
    - Dst: fuzztest::Just
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:107,1
    - Dst: fuzztest::VectorOf
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:108,1
    - Dst: fuzztest::Arbitrary<uint16_t>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:108,1
    - Dst: fuzztest::VectorOf
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:109,1
    - Dst: fuzztest::Arbitrary<uint16_t>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:109,1
    - Dst: fuzztest::VectorOf
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:110,1
    - Dst: fuzztest::Arbitrary<uint16_t>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:110,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:111,1
    - Dst: static_cast<int>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:111,1
    - Dst: AnyTransferFunction
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:112,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:114,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:115,1
    - Dst: fuzztest::ElementOf
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:116,1
    - Dst: fuzztest::ElementOf
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 118
    functionName: SharpYuvDomain
    functionSourceFile: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc
    functionUses: 0
    functionsReached:
    - fuzztest::TupleOf
    - AnyTransferFunction
    - fuzztest::Arbitrary<uint16_t>
    - static_cast<size_t>
    - fuzztest::VectorOf
    - fuzztest::ElementOf
    - fuzztest::InRange
    - fuzztest::Just
    - static_cast<int>
    - fuzztest::FlatMap
    linkageType: ''
    returnType: auto
    signature: auto SharpYuvDomain()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::apply
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - "\n        args"
    argTypes:
    - "std::tuple<int, int, int, int, std::vector<uint16_t>,\n                     std::vector<uint16_t>,
      std::vector<uint16_t>, int, int>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: SharpYuvConvertFuzzWrapped
    functionSourceFile: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc
    functionUses: 0
    functionsReached:
    - std::apply
    linkageType: ''
    returnType: void
    signature: "void SharpYuvConvertFuzzWrapped(\n    const std::tuple<int, int, int,
      int, std::vector<uint16_t>,\n                     std::vector<uint16_t>, std::vector<uint16_t>,
      int, int>&\n        args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:34,1
    - Dst: ASSERT_LE
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:35,1
    - Dst: size
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:35,1
    - Dst: ASSERT_LE
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:36,1
    - Dst: size
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:36,1
    - Dst: ASSERT_LE
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:37,1
    - Dst: size
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:37,1
    - Dst: static_cast<SharpYuvMatrixType>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:40,1
    - Dst: static_cast<SharpYuvTransferFunctionType>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:42,1
    - Dst: SharpYuvGetConversionMatrix
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:45,1
    - Dst: ASSERT_NE
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:46,1
    - Dst: ASSERT_TRUE
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:49,1
    - Dst: SharpYuvOptionsInit
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:49,1
    - Dst: static_cast<uint8_t>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:63,1
    - Dst: static_cast<uint8_t>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:64,1
    - Dst: static_cast<uint8_t>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:65,1
    - Dst: EXPECT_TRUE
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:67,1
    - Dst: SharpYuvConvertWithOptions
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:67,1
    - Dst: std::vector::data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:68,1
    - Dst: data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:68,1
    - Dst: data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:68,1
    - Dst: std::vector::data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:68,1
    - Dst: std::vector::data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:69,1
    - Dst: std::vector::data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:69,1
    - Dst: EXPECT_TRUE
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:72,1
    - Dst: SharpYuvConvertWithOptions
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:72,1
    - Dst: data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:73,1
    - Dst: data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:73,1
    - Dst: data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:73,1
    - Dst: std::vector::data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:74,1
    - Dst: std::vector::data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:74,1
    - Dst: std::vector::data
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 9
    argNames:
    - width
    - height
    - rgb_bit_depth
    - yuv_bit_depth
    - ' r_samples'
    - ' g_samples'
    - ' b_samples'
    - matrix_type_int
    - transfer_type_int
    argTypes:
    - int
    - int
    - int
    - int
    - std::vector<uint16_t>
    - std::vector<uint16_t>
    - std::vector<uint16_t>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 77
    functionName: SharpYuvConvertFuzz
    functionSourceFile: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc
    functionUses: 0
    functionsReached:
    - static_cast<SharpYuvMatrixType>
    - SharpYuvGetConversionMatrix
    - static_cast<size_t>
    - ASSERT_NE
    - std::vector::data
    - ASSERT_TRUE
    - static_cast<uint8_t>
    - data
    - size
    - EXPECT_TRUE
    - static_cast<SharpYuvTransferFunctionType>
    - SharpYuvConvertWithOptions
    - SharpYuvOptionsInit
    - ASSERT_LE
    linkageType: ''
    returnType: void
    signature: "void SharpYuvConvertFuzz(int width, int height, int rgb_bit_depth,\n
      \                        int yuv_bit_depth,\n                         const
      std::vector<uint16_t>& r_samples,\n                         const std::vector<uint16_t>&
      g_samples,\n                         const std::vector<uint16_t>& b_samples,\n
      \                        int matrix_type_int, int transfer_type_int)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzztest::ElementOf<int>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 98
    functionName: AnyTransferFunction
    functionSourceFile: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc
    functionUses: 3
    functionsReached:
    - fuzztest::ElementOf<int>
    linkageType: ''
    returnType: auto
    signature: auto AnyTransferFunction()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzztest::FlatMap
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:101,1
    - Dst: static_cast<size_t>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:104,1
    - Dst: fuzztest::TupleOf
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:105,1
    - Dst: fuzztest::Just
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:106,1
    - Dst: fuzztest::Just
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:106,1
    - Dst: fuzztest::Just
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:106,1
    - Dst: fuzztest::Just
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:107,1
    - Dst: fuzztest::VectorOf
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:108,1
    - Dst: fuzztest::Arbitrary<uint16_t>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:108,1
    - Dst: fuzztest::VectorOf
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:109,1
    - Dst: fuzztest::Arbitrary<uint16_t>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:109,1
    - Dst: fuzztest::VectorOf
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:110,1
    - Dst: fuzztest::Arbitrary<uint16_t>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:110,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:111,1
    - Dst: static_cast<int>
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:111,1
    - Dst: AnyTransferFunction
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:112,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:114,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:115,1
    - Dst: fuzztest::ElementOf
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:116,1
    - Dst: fuzztest::ElementOf
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 118
    functionName: SharpYuvDomain
    functionSourceFile: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc
    functionUses: 0
    functionsReached:
    - fuzztest::TupleOf
    - AnyTransferFunction
    - fuzztest::Arbitrary<uint16_t>
    - static_cast<size_t>
    - fuzztest::VectorOf
    - fuzztest::ElementOf
    - fuzztest::InRange
    - fuzztest::Just
    - static_cast<int>
    - fuzztest::FlatMap
    linkageType: ''
    returnType: auto
    signature: auto SharpYuvDomain()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::apply
      Src: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - "\n        args"
    argTypes:
    - "std::tuple<int, int, int, int, std::vector<uint16_t>,\n                     std::vector<uint16_t>,
      std::vector<uint16_t>, int, int>"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: SharpYuvConvertFuzzWrapped
    functionSourceFile: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc
    functionUses: 0
    functionsReached:
    - std::apply
    linkageType: ''
    returnType: void
    signature: "void SharpYuvConvertFuzzWrapped(\n    const std::tuple<int, int, int,
      int, std::vector<uint16_t>,\n                     std::vector<uint16_t>, std::vector<uint16_t>,
      int, int>&\n        args)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::SetOptimization
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:39,1
    - Dst: CropOrScale
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:42,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:46,1
    - Dst: WebPMemoryWriterInit
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:57,1
    - Dst: WebPEncode
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:60,1
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:62,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:65,1
    - Dst: WebPDecodeBGRA
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:72,1
    - Dst: WebPFree
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:75,1
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:76,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:77,1
    - Dst: WebPFree
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:96,1
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:97,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:98,1
    - Dst: WebPFree
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:104,1
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:105,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:106,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 5
    argNames:
    - ' pic'
    - optimization_index
    - use_argb
    - config
    - ' crop_or_scale_params'
    argTypes:
    - WebPPicture
    - uint32_t
    - bool
    - WebPConfig
    - fuzz_utils::CropOrScaleParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 107
    functionName: EncTestImpl
    functionSourceFile: /src/libwebp/tests/fuzzer/enc_fuzzer.cc
    functionUses: 0
    functionsReached:
    - WebPFree
    - CropOrScale
    - WebPMemoryWriterClear
    - WebPMemoryWriterInit
    - WebPEncode
    - WebPPictureFree
    - WebPDecodeBGRA
    - std::abort
    - fuzz_utils::SetOptimization
    linkageType: ''
    returnType: void
    signature: "void EncTestImpl(WebPPicture& pic, uint32_t optimization_index, bool
      use_argb,\n                 WebPConfig config,\n                 const fuzz_utils::CropOrScaleParams&
      crop_or_scale_params)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureInit
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:116,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:118,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:123,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:123,1
    - Dst: fuzz_utils::IsImageTooBig
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:124,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:124,1
    - Dst: WebPGuessImageReader
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:125,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:125,1
    - Dst: reader
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:126,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:126,1
    - Dst: EncTestImpl
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - file
    - optimization_index
    - use_argb
    - config
    - ' crop_or_scale_params'
    argTypes:
    - std::string_view
    - uint32_t
    - bool
    - WebPConfig
    - fuzz_utils::CropOrScaleParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 129
    functionName: EncFileTest
    functionSourceFile: /src/libwebp/tests/fuzzer/enc_fuzzer.cc
    functionUses: 0
    functionsReached:
    - fuzz_utils::IsImageTooBig
    - std::string_view::size
    - reader
    - std::string_view::data
    - reinterpret_cast<const uint8_t*>
    - WebPPictureInit
    - EncTestImpl
    - WebPGuessImageReader
    - std::abort
    linkageType: ''
    returnType: void
    signature: "void EncFileTest(\n    std::string_view file, uint32_t optimization_index,
      bool use_argb,\n    WebPConfig config,\n    const fuzz_utils::CropOrScaleParams&
      crop_or_scale_params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::WebPPictureCpp::ref
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:135,1
    - Dst: EncTestImpl
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pic_cpp
    - optimization_index
    - use_argb
    - config
    - ' crop_or_scale_params'
    argTypes:
    - fuzz_utils::WebPPictureCpp
    - uint32_t
    - bool
    - WebPConfig
    - fuzz_utils::CropOrScaleParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: EncArbitraryTest
    functionSourceFile: /src/libwebp/tests/fuzzer/enc_fuzzer.cc
    functionUses: 0
    functionsReached:
    - EncTestImpl
    - fuzz_utils::WebPPictureCpp::ref
    linkageType: ''
    returnType: void
    signature: "void EncArbitraryTest(\n    fuzz_utils::WebPPictureCpp pic_cpp, uint32_t
      optimization_index,\n    bool use_argb, WebPConfig config,\n    const fuzz_utils::CropOrScaleParams&
      crop_or_scale_params)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::SetOptimization
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:39,1
    - Dst: CropOrScale
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:42,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:46,1
    - Dst: WebPMemoryWriterInit
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:57,1
    - Dst: WebPEncode
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:60,1
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:62,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:65,1
    - Dst: WebPDecodeBGRA
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:72,1
    - Dst: WebPFree
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:75,1
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:76,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:77,1
    - Dst: WebPFree
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:96,1
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:97,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:98,1
    - Dst: WebPFree
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:104,1
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:105,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:106,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 5
    argNames:
    - ' pic'
    - optimization_index
    - use_argb
    - config
    - ' crop_or_scale_params'
    argTypes:
    - WebPPicture
    - uint32_t
    - bool
    - WebPConfig
    - fuzz_utils::CropOrScaleParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 107
    functionName: EncTestImpl
    functionSourceFile: /src/libwebp/tests/fuzzer/enc_fuzzer.cc
    functionUses: 2
    functionsReached:
    - WebPFree
    - CropOrScale
    - WebPMemoryWriterClear
    - WebPMemoryWriterInit
    - WebPEncode
    - WebPPictureFree
    - WebPDecodeBGRA
    - std::abort
    - fuzz_utils::SetOptimization
    linkageType: ''
    returnType: void
    signature: "void EncTestImpl(WebPPicture& pic, uint32_t optimization_index, bool
      use_argb,\n                 WebPConfig config,\n                 const fuzz_utils::CropOrScaleParams&
      crop_or_scale_params)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureInit
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:116,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:118,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:123,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:123,1
    - Dst: fuzz_utils::IsImageTooBig
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:124,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:124,1
    - Dst: WebPGuessImageReader
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:125,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:125,1
    - Dst: reader
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:126,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:126,1
    - Dst: EncTestImpl
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - file
    - optimization_index
    - use_argb
    - config
    - ' crop_or_scale_params'
    argTypes:
    - std::string_view
    - uint32_t
    - bool
    - WebPConfig
    - fuzz_utils::CropOrScaleParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 129
    functionName: EncFileTest
    functionSourceFile: /src/libwebp/tests/fuzzer/enc_fuzzer.cc
    functionUses: 0
    functionsReached:
    - fuzz_utils::IsImageTooBig
    - std::string_view::size
    - reader
    - std::string_view::data
    - reinterpret_cast<const uint8_t*>
    - WebPPictureInit
    - EncTestImpl
    - WebPGuessImageReader
    - std::abort
    linkageType: ''
    returnType: void
    signature: "void EncFileTest(\n    std::string_view file, uint32_t optimization_index,
      bool use_argb,\n    WebPConfig config,\n    const fuzz_utils::CropOrScaleParams&
      crop_or_scale_params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::WebPPictureCpp::ref
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:135,1
    - Dst: EncTestImpl
      Src: /src/libwebp/tests/fuzzer/enc_fuzzer.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pic_cpp
    - optimization_index
    - use_argb
    - config
    - ' crop_or_scale_params'
    argTypes:
    - fuzz_utils::WebPPictureCpp
    - uint32_t
    - bool
    - WebPConfig
    - fuzz_utils::CropOrScaleParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: EncArbitraryTest
    functionSourceFile: /src/libwebp/tests/fuzzer/enc_fuzzer.cc
    functionUses: 0
    functionsReached:
    - EncTestImpl
    - fuzz_utils::WebPPictureCpp::ref
    linkageType: ''
    returnType: void
    signature: "void EncArbitraryTest(\n    fuzz_utils::WebPPictureCpp pic_cpp, uint32_t
      optimization_index,\n    bool use_argb, WebPConfig config,\n    const fuzz_utils::CropOrScaleParams&
      crop_or_scale_params)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::CropOrScale
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:38,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:41,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:43,1
    - Dst: WebPEncode
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:66,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:72,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:73,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 4
    argNames:
    - ' crop_or_scale_params'
    - ' config'
    - ' pic'
    - ' memory_writer'
    argTypes:
    - fuzz_utils::CropOrScaleParams
    - WebPConfig
    - WebPPicture
    - WebPMemoryWriter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 75
    functionName: Enc
    functionSourceFile: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc
    functionUses: 0
    functionsReached:
    - std::abort
    - WebPEncode
    - fprintf
    - fuzz_utils::CropOrScale
    linkageType: ''
    returnType: void
    signature: "void Enc(const fuzz_utils::CropOrScaleParams& crop_or_scale_params,\n
      \        WebPConfig& config, WebPPicture& pic,\n         WebPMemoryWriter& memory_writer)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::SetOptimization
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:82,1
    - Dst: fuzz_utils::WebPPictureCpp::ref
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:85,1
    - Dst: WebPMemoryWriterInit
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:88,1
    - Dst: Enc
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:92,1
    - Dst: WebPInitDecoderConfig
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:100,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:101,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:102,1
    - Dst: WebPDecode
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:106,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:111,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:112,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:135,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:136,1
    - Dst: static_cast<int64_t>
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:143,1
    - Dst: static_cast<int64_t>
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:145,1
    - Dst: static_cast<int64_t>
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:146,1
    - Dst: static_cast<int64_t>
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:148,1
    - Dst: WebPFreeDecBuffer
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:151,1
    - Dst: WebPInitDecoderConfig
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:152,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:153,1
    - Dst: abort
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:154,1
    - Dst: static_cast<WEBP_CSP_MODE>
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:157,1
    - Dst: std::memcpy
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:158,1
    - Dst: WebPDecode
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:159,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:162,1
    - Dst: abort
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:163,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 44
    argCount: 7
    argNames:
    - use_argb
    - pic_cpp
    - config
    - optimization_index
    - ' crop_or_scale_params'
    - colorspace
    - ' decoder_options'
    argTypes:
    - bool
    - fuzz_utils::WebPPictureCpp
    - WebPConfig
    - int
    - fuzz_utils::CropOrScaleParams
    - int
    - fuzz_utils::WebPDecoderOptionsCpp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 165
    functionName: EncDecValidTest
    functionSourceFile: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc
    functionUses: 0
    functionsReached:
    - WebPInitDecoderConfig
    - abort
    - static_cast<int64_t>
    - static_cast<WEBP_CSP_MODE>
    - WebPFreeDecBuffer
    - fprintf
    - WebPMemoryWriterInit
    - Enc
    - fuzz_utils::WebPPictureCpp::ref
    - std::memcpy
    - WebPDecode
    - std::abort
    - fuzz_utils::SetOptimization
    linkageType: ''
    returnType: void
    signature: "void EncDecValidTest(bool use_argb, fuzz_utils::WebPPictureCpp pic_cpp,\n
      \                    WebPConfig config, int optimization_index,\n                     const
      fuzz_utils::CropOrScaleParams& crop_or_scale_params,\n                     int
      colorspace,\n                     const fuzz_utils::WebPDecoderOptionsCpp& decoder_options)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::SetOptimization
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:174,1
    - Dst: fuzz_utils::WebPPictureCpp::ref
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:177,1
    - Dst: WebPMemoryWriterInit
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:179,1
    - Dst: Enc
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:183,1
    - Dst: WebPInitDecoderConfig
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:191,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:192,1
    - Dst: abort
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:193,1
    - Dst: WebPRescalerGetScaledDimensions
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:198,1
    - Dst: static_cast<uint64_t>
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:203,1
    - Dst: static_cast<WEBP_CSP_MODE>
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:209,1
    - Dst: std::memcpy
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:210,1
    - Dst: WebPDecode
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:211,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:214,1
    - Dst: abort
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:215,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 7
    argNames:
    - use_argb
    - pic_cpp
    - config
    - optimization_index
    - ' crop_or_scale_params'
    - colorspace
    - ' decoder_options'
    argTypes:
    - bool
    - fuzz_utils::WebPPictureCpp
    - WebPConfig
    - int
    - fuzz_utils::CropOrScaleParams
    - int
    - fuzz_utils::WebPDecoderOptionsCpp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 217
    functionName: EncDecTest
    functionSourceFile: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc
    functionUses: 0
    functionsReached:
    - WebPInitDecoderConfig
    - abort
    - static_cast<uint64_t>
    - static_cast<WEBP_CSP_MODE>
    - fprintf
    - WebPMemoryWriterInit
    - Enc
    - fuzz_utils::WebPPictureCpp::ref
    - std::memcpy
    - WebPDecode
    - WebPRescalerGetScaledDimensions
    - fuzz_utils::SetOptimization
    linkageType: ''
    returnType: void
    signature: "void EncDecTest(bool use_argb, fuzz_utils::WebPPictureCpp pic_cpp,\n
      \               WebPConfig config, int optimization_index,\n                const
      fuzz_utils::CropOrScaleParams& crop_or_scale_params,\n                int colorspace,\n
      \               const fuzz_utils::WebPDecoderOptionsCpp& decoder_options)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::CropOrScale
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:38,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:41,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:43,1
    - Dst: WebPEncode
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:66,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:72,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:73,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 4
    argNames:
    - ' crop_or_scale_params'
    - ' config'
    - ' pic'
    - ' memory_writer'
    argTypes:
    - fuzz_utils::CropOrScaleParams
    - WebPConfig
    - WebPPicture
    - WebPMemoryWriter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 75
    functionName: Enc
    functionSourceFile: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc
    functionUses: 2
    functionsReached:
    - std::abort
    - WebPEncode
    - fprintf
    - fuzz_utils::CropOrScale
    linkageType: ''
    returnType: void
    signature: "void Enc(const fuzz_utils::CropOrScaleParams& crop_or_scale_params,\n
      \        WebPConfig& config, WebPPicture& pic,\n         WebPMemoryWriter& memory_writer)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::SetOptimization
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:82,1
    - Dst: fuzz_utils::WebPPictureCpp::ref
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:85,1
    - Dst: WebPMemoryWriterInit
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:88,1
    - Dst: Enc
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:92,1
    - Dst: WebPInitDecoderConfig
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:100,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:101,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:102,1
    - Dst: WebPDecode
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:106,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:111,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:112,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:135,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:136,1
    - Dst: static_cast<int64_t>
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:143,1
    - Dst: static_cast<int64_t>
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:145,1
    - Dst: static_cast<int64_t>
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:146,1
    - Dst: static_cast<int64_t>
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:148,1
    - Dst: WebPFreeDecBuffer
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:151,1
    - Dst: WebPInitDecoderConfig
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:152,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:153,1
    - Dst: abort
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:154,1
    - Dst: static_cast<WEBP_CSP_MODE>
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:157,1
    - Dst: std::memcpy
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:158,1
    - Dst: WebPDecode
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:159,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:162,1
    - Dst: abort
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:163,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 44
    argCount: 7
    argNames:
    - use_argb
    - pic_cpp
    - config
    - optimization_index
    - ' crop_or_scale_params'
    - colorspace
    - ' decoder_options'
    argTypes:
    - bool
    - fuzz_utils::WebPPictureCpp
    - WebPConfig
    - int
    - fuzz_utils::CropOrScaleParams
    - int
    - fuzz_utils::WebPDecoderOptionsCpp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 165
    functionName: EncDecValidTest
    functionSourceFile: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc
    functionUses: 0
    functionsReached:
    - WebPInitDecoderConfig
    - abort
    - static_cast<int64_t>
    - static_cast<WEBP_CSP_MODE>
    - WebPFreeDecBuffer
    - fprintf
    - WebPMemoryWriterInit
    - Enc
    - fuzz_utils::WebPPictureCpp::ref
    - std::memcpy
    - WebPDecode
    - std::abort
    - fuzz_utils::SetOptimization
    linkageType: ''
    returnType: void
    signature: "void EncDecValidTest(bool use_argb, fuzz_utils::WebPPictureCpp pic_cpp,\n
      \                    WebPConfig config, int optimization_index,\n                     const
      fuzz_utils::CropOrScaleParams& crop_or_scale_params,\n                     int
      colorspace,\n                     const fuzz_utils::WebPDecoderOptionsCpp& decoder_options)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::SetOptimization
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:174,1
    - Dst: fuzz_utils::WebPPictureCpp::ref
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:177,1
    - Dst: WebPMemoryWriterInit
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:179,1
    - Dst: Enc
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:183,1
    - Dst: WebPInitDecoderConfig
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:191,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:192,1
    - Dst: abort
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:193,1
    - Dst: WebPRescalerGetScaledDimensions
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:198,1
    - Dst: static_cast<uint64_t>
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:203,1
    - Dst: static_cast<WEBP_CSP_MODE>
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:209,1
    - Dst: std::memcpy
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:210,1
    - Dst: WebPDecode
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:211,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:214,1
    - Dst: abort
      Src: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc:215,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 7
    argNames:
    - use_argb
    - pic_cpp
    - config
    - optimization_index
    - ' crop_or_scale_params'
    - colorspace
    - ' decoder_options'
    argTypes:
    - bool
    - fuzz_utils::WebPPictureCpp
    - WebPConfig
    - int
    - fuzz_utils::CropOrScaleParams
    - int
    - fuzz_utils::WebPDecoderOptionsCpp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 217
    functionName: EncDecTest
    functionSourceFile: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc
    functionUses: 0
    functionsReached:
    - WebPInitDecoderConfig
    - abort
    - static_cast<uint64_t>
    - static_cast<WEBP_CSP_MODE>
    - fprintf
    - WebPMemoryWriterInit
    - Enc
    - fuzz_utils::WebPPictureCpp::ref
    - std::memcpy
    - WebPDecode
    - WebPRescalerGetScaledDimensions
    - fuzz_utils::SetOptimization
    linkageType: ''
    returnType: void
    signature: "void EncDecTest(bool use_argb, fuzz_utils::WebPPictureCpp pic_cpp,\n
      \               WebPConfig config, int optimization_index,\n                const
      fuzz_utils::CropOrScaleParams& crop_or_scale_params,\n                int colorspace,\n
      \               const fuzz_utils::WebPDecoderOptionsCpp& decoder_options)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/libwebp/tests/fuzzer/nalloc.h:114,1
    - Dst: atoi
      Src: /src/libwebp/tests/fuzzer/nalloc.h:116,1
    - Dst: strstr
      Src: /src/libwebp/tests/fuzzer/nalloc.h:124,1
    - Dst: getenv
      Src: /src/libwebp/tests/fuzzer/nalloc.h:130,1
    - Dst: strtol
      Src: /src/libwebp/tests/fuzzer/nalloc.h:132,1
    - Dst: getenv
      Src: /src/libwebp/tests/fuzzer/nalloc.h:135,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - prog
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 139
    functionName: nalloc_init
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 4
    functionsReached:
    - atoi
    - getenv
    - strtol
    - strstr
    linkageType: ''
    returnType: void
    signature: void nalloc_init(const char* prog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: nalloc_random_update
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nalloc_random_update(uint8_t b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nalloc_random_update
      Src: /src/libwebp/tests/fuzzer/nalloc.h:162,1
    - Dst: __sync_fetch_and_add
      Src: /src/libwebp/tests/fuzzer/nalloc.h:164,1
    - Dst: __sync_fetch_and_sub
      Src: /src/libwebp/tests/fuzzer/nalloc.h:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 170
    functionName: nalloc_start
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 4
    functionsReached:
    - __sync_fetch_and_add
    - nalloc_random_update
    - __sync_fetch_and_sub
    linkageType: ''
    returnType: int
    signature: int nalloc_start(const uint8_t* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_fetch_and_sub
      Src: /src/libwebp/tests/fuzzer/nalloc.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: nalloc_end
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 4
    functionsReached:
    - __sync_fetch_and_sub
    linkageType: ''
    returnType: void
    signature: void nalloc_end()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/nalloc.h:177,1
    - Dst: __sanitizer_print_stack_trace
      Src: /src/libwebp/tests/fuzzer/nalloc.h:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - size
    - op
    argTypes:
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: nalloc_backtrace_exclude
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 0
    functionsReached:
    - fprintf
    - __sanitizer_print_stack_trace
    linkageType: ''
    returnType: bool
    signature: bool nalloc_backtrace_exclude(size_t size, const char* op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __sync_fetch_and_add
      Src: /src/libwebp/tests/fuzzer/nalloc.h:192,1
    - Dst: __sync_fetch_and_sub
      Src: /src/libwebp/tests/fuzzer/nalloc.h:195,1
    - Dst: nalloc_random_update
      Src: /src/libwebp/tests/fuzzer/nalloc.h:198,1
    - Dst: nalloc_random_update
      Src: /src/libwebp/tests/fuzzer/nalloc.h:200,1
    - Dst: nalloc_random_update
      Src: /src/libwebp/tests/fuzzer/nalloc.h:202,1
    - Dst: nalloc_backtrace_exclude
      Src: /src/libwebp/tests/fuzzer/nalloc.h:207,1
    - Dst: __sync_fetch_and_sub
      Src: /src/libwebp/tests/fuzzer/nalloc.h:208,1
    - Dst: __sync_fetch_and_sub
      Src: /src/libwebp/tests/fuzzer/nalloc.h:211,1
    - Dst: __sync_fetch_and_sub
      Src: /src/libwebp/tests/fuzzer/nalloc.h:214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - size
    - op
    argTypes:
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 216
    functionName: nalloc_fail
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 0
    functionsReached:
    - __sync_fetch_and_add
    - nalloc_random_update
    - __sync_fetch_and_sub
    - nalloc_backtrace_exclude
    linkageType: ''
    returnType: bool
    signature: bool nalloc_fail(size_t size, const char* op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: nalloc_malloc
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nalloc_malloc(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 232
    functionName: nalloc_calloc
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nalloc_calloc(s, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: nalloc_realloc
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nalloc_realloc(p, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: nalloc_reallocarray
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nalloc_reallocarray(p, s, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - f
    - ','
    - b
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: nalloc_read
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nalloc_read(f, b, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - f
    - ','
    - b
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: nalloc_write
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nalloc_write(f, b, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - f
    - ','
    - b
    - ','
    - s
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: nalloc_recv
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nalloc_recv(f, b, s, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - f
    - ','
    - b
    - ','
    - s
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: nalloc_send
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nalloc_send(f, b, s, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 252
    functionName: nalloc_malloc
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nalloc_malloc(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 253
    functionName: nalloc_calloc
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nalloc_calloc(s, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: nalloc_realloc
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nalloc_realloc(p, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 255
    functionName: nalloc_reallocarray
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nalloc_reallocarray(p, s, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - f
    - ','
    - b
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: nalloc_read
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nalloc_read(f, b, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - f
    - ','
    - b
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 258
    functionName: nalloc_write
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nalloc_write(f, b, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - f
    - ','
    - b
    - ','
    - s
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: nalloc_recv
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nalloc_recv(f, b, s, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - f
    - ','
    - b
    - ','
    - s
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: nalloc_send
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nalloc_send(f, b, s, x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nalloc_fail
      Src: /src/libwebp/tests/fuzzer/nalloc.h:264,1
    - Dst: nalloc_read
      Src: /src/libwebp/tests/fuzzer/nalloc.h:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 269
    functionName: read
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 1
    functionsReached:
    - nalloc_fail
    - nalloc_read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t read(int fd, void* buf, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nalloc_fail
      Src: /src/libwebp/tests/fuzzer/nalloc.h:272,1
    - Dst: nalloc_write
      Src: /src/libwebp/tests/fuzzer/nalloc.h:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 277
    functionName: write
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 1
    functionsReached:
    - nalloc_fail
    - nalloc_write
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t write(int fd, const void* buf, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nalloc_fail
      Src: /src/libwebp/tests/fuzzer/nalloc.h:280,1
    - Dst: nalloc_recv
      Src: /src/libwebp/tests/fuzzer/nalloc.h:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - fd
    - buf
    - count
    - flags
    argTypes:
    - int
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 285
    functionName: recv
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 1
    functionsReached:
    - nalloc_fail
    - nalloc_recv
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t recv(int fd, void* buf, size_t count, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nalloc_fail
      Src: /src/libwebp/tests/fuzzer/nalloc.h:288,1
    - Dst: nalloc_send
      Src: /src/libwebp/tests/fuzzer/nalloc.h:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - fd
    - buf
    - count
    - flags
    argTypes:
    - int
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 293
    functionName: send
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 1
    functionsReached:
    - nalloc_send
    - nalloc_fail
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t send(int fd, const void* buf, size_t count, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nalloc_fail
      Src: /src/libwebp/tests/fuzzer/nalloc.h:296,1
    - Dst: nalloc_calloc
      Src: /src/libwebp/tests/fuzzer/nalloc.h:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 301
    functionName: calloc
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 1
    functionsReached:
    - nalloc_calloc
    - nalloc_fail
    linkageType: ''
    returnType: void
    signature: void * calloc(size_t nmemb, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nalloc_fail
      Src: /src/libwebp/tests/fuzzer/nalloc.h:304,1
    - Dst: nalloc_malloc
      Src: /src/libwebp/tests/fuzzer/nalloc.h:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 309
    functionName: malloc
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 1
    functionsReached:
    - nalloc_fail
    - nalloc_malloc
    linkageType: ''
    returnType: void
    signature: void * malloc(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nalloc_fail
      Src: /src/libwebp/tests/fuzzer/nalloc.h:312,1
    - Dst: nalloc_realloc
      Src: /src/libwebp/tests/fuzzer/nalloc.h:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: realloc
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 1
    functionsReached:
    - nalloc_fail
    - nalloc_realloc
    linkageType: ''
    returnType: void
    signature: void * realloc(void* ptr, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nalloc_fail
      Src: /src/libwebp/tests/fuzzer/nalloc.h:320,1
    - Dst: nalloc_reallocarray
      Src: /src/libwebp/tests/fuzzer/nalloc.h:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - nmemb
    - size
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 325
    functionName: reallocarray
    functionSourceFile: /src/libwebp/tests/fuzzer/nalloc.h
    functionUses: 1
    functionsReached:
    - nalloc_fail
    - nalloc_reallocarray
    linkageType: ''
    returnType: void
    signature: void * reallocarray(void* ptr, size_t nmemb, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureInit
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:41,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:41,1
    - Dst: WebPPictureImportRGBA
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:53,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - image_index
    - use_argb
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 55
    functionName: fuzz_utils::GetSourcePicture
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 0
    functionsReached:
    - std::abort
    - WebPPictureImportRGBA
    - WebPPictureInit
    linkageType: ''
    returnType: WebPPicture
    signature: WebPPicture GetSourcePicture(int image_index, bool use_argb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:64,1
    - Dst: std::max
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:65,1
    - Dst: WebPPictureCrop
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:68,1
    - Dst: WebPPictureRescale
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pic
    - ' params'
    argTypes:
    - WebPPicture*
    - CropOrScaleParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 81
    functionName: fuzz_utils::CropOrScale
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 2
    functionsReached:
    - WebPPictureCrop
    - std::max
    - WebPPictureRescale
    linkageType: ''
    returnType: int
    signature: int CropOrScale(WebPPicture* const pic, const CropOrScaleParams& params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetCPUInfo
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - feature
    argTypes:
    - CPUFeature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: fuzz_utils::GetCPUInfoNoSSE41
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 0
    functionsReached:
    - GetCPUInfo
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GetCPUInfoNoSSE41(CPUFeature feature)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetCPUInfo
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - feature
    argTypes:
    - CPUFeature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: fuzz_utils::GetCPUInfoNoAVX
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 0
    functionsReached:
    - GetCPUInfo
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GetCPUInfoNoAVX(CPUFeature feature)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetCPUInfo
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:97,1
    - Dst: GetCPUInfo
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - feature
    argTypes:
    - CPUFeature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: fuzz_utils::GetCPUInfoForceSlowSSSE3
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 0
    functionsReached:
    - GetCPUInfo
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GetCPUInfoForceSlowSSSE3(CPUFeature feature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - feature
    argTypes:
    - CPUFeature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: fuzz_utils::GetCPUInfoOnlyC
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GetCPUInfoOnlyC(CPUFeature feature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - default_VP8GetCPUInfo
    - index
    argTypes:
    - VP8CPUInfo
    - uint32_t
    assertStmts:
    - condition: (index <= kMaxOptimizationIndex)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: fuzz_utils::SetOptimization
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 6
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void SetOptimization(VP8CPUInfo default_VP8GetCPUInfo, uint32_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::ReadFilesFromDirectory
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:121,1
    - Dst: std::vector::size
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:122,1
    - Dst: std::vector::size
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:123,1
    - Dst: swap
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:125,1
    - Dst: std::get<0>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dir
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: fuzz_utils::ReadFilesFromDirectory
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 1
    functionsReached:
    - std::vector::size
    - std::get<0>
    - swap
    - fuzz_utils::ReadFilesFromDirectory
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> ReadFilesFromDirectory(std::string_view dir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:151,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - src
    - size
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 157
    functionName: fuzz_utils::GetSOFData
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * GetSOFData(const uint8_t* src, int size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::GetSOFData
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:162,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 5
    argNames:
    - src0
    - size
    - width
    - height
    - is_yuv420
    argTypes:
    - uint8_t*
    - size_t
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 177
    functionName: fuzz_utils::SjpegDimensions
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 0
    functionsReached:
    - fuzz_utils::GetSOFData
    linkageType: ''
    returnType: bool
    signature: "bool SjpegDimensions(const uint8_t* src0, size_t size, int* width,
      int* height,\n                     int* is_yuv420)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:151,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - src
    - size
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 157
    functionName: fuzz_utils::GetSOFData
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 1
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * GetSOFData(const uint8_t* src, int size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::GetSOFData
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:162,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 5
    argNames:
    - src0
    - size
    - width
    - height
    - is_yuv420
    argTypes:
    - uint8_t*
    - size_t
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 177
    functionName: fuzz_utils::SjpegDimensions
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 0
    functionsReached:
    - fuzz_utils::GetSOFData
    linkageType: ''
    returnType: bool
    signature: "bool SjpegDimensions(const uint8_t* src0, size_t size, int* width,
      int* height,\n                     int* is_yuv420)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::SjpegDimensions
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:184,1
    - Dst: WebPGetInfo
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 196
    functionName: fuzz_utils::IsImageTooBig
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 4
    functionsReached:
    - WebPGetInfo
    - fuzz_utils::SjpegDimensions
    linkageType: ''
    returnType: bool
    signature: bool IsImageTooBig(const uint8_t* data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureInit
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:41,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:41,1
    - Dst: WebPPictureImportRGBA
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:53,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - image_index
    - use_argb
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 55
    functionName: fuzz_utils::GetSourcePicture
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 0
    functionsReached:
    - std::abort
    - WebPPictureImportRGBA
    - WebPPictureInit
    linkageType: ''
    returnType: WebPPicture
    signature: WebPPicture GetSourcePicture(int image_index, bool use_argb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:64,1
    - Dst: std::max
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:65,1
    - Dst: WebPPictureCrop
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:68,1
    - Dst: WebPPictureRescale
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pic
    - ' params'
    argTypes:
    - WebPPicture*
    - CropOrScaleParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 81
    functionName: fuzz_utils::CropOrScale
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 2
    functionsReached:
    - WebPPictureCrop
    - std::max
    - WebPPictureRescale
    linkageType: ''
    returnType: int
    signature: int CropOrScale(WebPPicture* const pic, const CropOrScaleParams& params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetCPUInfo
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - feature
    argTypes:
    - CPUFeature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: fuzz_utils::GetCPUInfoNoSSE41
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 0
    functionsReached:
    - GetCPUInfo
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GetCPUInfoNoSSE41(CPUFeature feature)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetCPUInfo
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - feature
    argTypes:
    - CPUFeature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: fuzz_utils::GetCPUInfoNoAVX
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 0
    functionsReached:
    - GetCPUInfo
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GetCPUInfoNoAVX(CPUFeature feature)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetCPUInfo
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:97,1
    - Dst: GetCPUInfo
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - feature
    argTypes:
    - CPUFeature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: fuzz_utils::GetCPUInfoForceSlowSSSE3
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 0
    functionsReached:
    - GetCPUInfo
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GetCPUInfoForceSlowSSSE3(CPUFeature feature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - feature
    argTypes:
    - CPUFeature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: fuzz_utils::GetCPUInfoOnlyC
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GetCPUInfoOnlyC(CPUFeature feature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - default_VP8GetCPUInfo
    - index
    argTypes:
    - VP8CPUInfo
    - uint32_t
    assertStmts:
    - condition: (index <= kMaxOptimizationIndex)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: fuzz_utils::SetOptimization
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 6
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void SetOptimization(VP8CPUInfo default_VP8GetCPUInfo, uint32_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::ReadFilesFromDirectory
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:121,1
    - Dst: std::vector::size
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:122,1
    - Dst: std::vector::size
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:123,1
    - Dst: swap
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:125,1
    - Dst: std::get<0>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dir
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: fuzz_utils::ReadFilesFromDirectory
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 2
    functionsReached:
    - std::vector::size
    - std::get<0>
    - swap
    - fuzz_utils::ReadFilesFromDirectory
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> ReadFilesFromDirectory(std::string_view dir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:151,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - src
    - size
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 157
    functionName: fuzz_utils::GetSOFData
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * GetSOFData(const uint8_t* src, int size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::GetSOFData
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:162,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 5
    argNames:
    - src0
    - size
    - width
    - height
    - is_yuv420
    argTypes:
    - uint8_t*
    - size_t
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 177
    functionName: fuzz_utils::SjpegDimensions
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 1
    functionsReached:
    - fuzz_utils::GetSOFData
    linkageType: ''
    returnType: bool
    signature: "bool SjpegDimensions(const uint8_t* src0, size_t size, int* width,
      int* height,\n                     int* is_yuv420)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:151,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - src
    - size
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 157
    functionName: fuzz_utils::GetSOFData
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 3
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * GetSOFData(const uint8_t* src, int size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::GetSOFData
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:162,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 5
    argNames:
    - src0
    - size
    - width
    - height
    - is_yuv420
    argTypes:
    - uint8_t*
    - size_t
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 177
    functionName: fuzz_utils::SjpegDimensions
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 1
    functionsReached:
    - fuzz_utils::GetSOFData
    linkageType: ''
    returnType: bool
    signature: "bool SjpegDimensions(const uint8_t* src0, size_t size, int* width,
      int* height,\n                     int* is_yuv420)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::SjpegDimensions
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:184,1
    - Dst: WebPGetInfo
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.cc:185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 196
    functionName: fuzz_utils::IsImageTooBig
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.cc
    functionUses: 4
    functionsReached:
    - WebPGetInfo
    - fuzz_utils::SjpegDimensions
    linkageType: ''
    returnType: bool
    signature: bool IsImageTooBig(const uint8_t* data, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:32,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:32,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:33,1
    - Dst: memset
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:47,1
    - Dst: VP8LNew
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:52,1
    - Dst: VP8LInitBitReader
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:55,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:57,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:60,1
    - Dst: ReadHuffmanCodesHelper
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:65,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:70,1
    - Dst: VP8LHtreeGroupsFree
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:71,1
    - Dst: VP8LHuffmanTablesDeallocate
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:72,1
    - Dst: VP8LDelete
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:73,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - blob
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 74
    functionName: HuffmanTest
    functionSourceFile: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc
    functionUses: 0
    functionsReached:
    - VP8LReadBits
    - std::string_view::size
    - VP8LHtreeGroupsFree
    - std::string_view::data
    - VP8LInitBitReader
    - reinterpret_cast<const uint8_t*>
    - ReadHuffmanCodesHelper
    - VP8LDelete
    - VP8LHuffmanTablesDeallocate
    - VP8LNew
    - memset
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void HuffmanTest(std::string_view blob)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:32,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:32,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:33,1
    - Dst: memset
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:47,1
    - Dst: VP8LNew
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:52,1
    - Dst: VP8LInitBitReader
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:55,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:57,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:60,1
    - Dst: ReadHuffmanCodesHelper
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:65,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:70,1
    - Dst: VP8LHtreeGroupsFree
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:71,1
    - Dst: VP8LHuffmanTablesDeallocate
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:72,1
    - Dst: VP8LDelete
      Src: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc:73,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - blob
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 74
    functionName: HuffmanTest
    functionSourceFile: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc
    functionUses: 0
    functionsReached:
    - VP8LReadBits
    - std::string_view::size
    - VP8LHtreeGroupsFree
    - std::string_view::data
    - VP8LInitBitReader
    - reinterpret_cast<const uint8_t*>
    - ReadHuffmanCodesHelper
    - VP8LDelete
    - VP8LHuffmanTablesDeallocate
    - VP8LNew
    - memset
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void HuffmanTest(std::string_view blob)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:33,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:33,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:34,1
    - Dst: nalloc_init
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:35,1
    - Dst: nalloc_start
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:36,1
    - Dst: WebPGetFeatures
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:44,1
    - Dst: ImgIoUtilCheckSizeArgumentsOverflow
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:45,1
    - Dst: static_cast<size_t>
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:47,1
    - Dst: nalloc_end
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:49,1
    - Dst: WebPAnimDecoderNew
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:56,1
    - Dst: nalloc_end
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:58,1
    - Dst: WebPAnimDecoderGetInfo
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:63,1
    - Dst: ImgIoUtilCheckSizeArgumentsOverflow
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:64,1
    - Dst: WebPAnimDecoderHasMoreFrames
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:69,1
    - Dst: WebPAnimDecoderGetNext
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:72,1
    - Dst: WebPAnimDecoderDelete
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:75,1
    - Dst: nalloc_end
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:76,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - blob
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 77
    functionName: AnimDecoderTest
    functionSourceFile: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc
    functionUses: 0
    functionsReached:
    - nalloc_start
    - std::string_view::size
    - std::string_view::data
    - static_cast<size_t>
    - WebPAnimDecoderHasMoreFrames
    - reinterpret_cast<const uint8_t*>
    - nalloc_init
    - WebPAnimDecoderDelete
    - ImgIoUtilCheckSizeArgumentsOverflow
    - nalloc_end
    - WebPAnimDecoderGetInfo
    - WebPAnimDecoderGetNext
    - WebPAnimDecoderNew
    - WebPGetFeatures
    linkageType: ''
    returnType: void
    signature: void AnimDecoderTest(std::string_view blob)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:33,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:33,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:34,1
    - Dst: nalloc_init
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:35,1
    - Dst: nalloc_start
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:36,1
    - Dst: WebPGetFeatures
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:44,1
    - Dst: ImgIoUtilCheckSizeArgumentsOverflow
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:45,1
    - Dst: static_cast<size_t>
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:47,1
    - Dst: nalloc_end
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:49,1
    - Dst: WebPAnimDecoderNew
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:56,1
    - Dst: nalloc_end
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:58,1
    - Dst: WebPAnimDecoderGetInfo
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:63,1
    - Dst: ImgIoUtilCheckSizeArgumentsOverflow
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:64,1
    - Dst: WebPAnimDecoderHasMoreFrames
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:69,1
    - Dst: WebPAnimDecoderGetNext
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:72,1
    - Dst: WebPAnimDecoderDelete
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:75,1
    - Dst: nalloc_end
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:76,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - blob
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 77
    functionName: AnimDecoderTest
    functionSourceFile: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc
    functionUses: 0
    functionsReached:
    - nalloc_start
    - std::string_view::size
    - std::string_view::data
    - static_cast<size_t>
    - WebPAnimDecoderHasMoreFrames
    - reinterpret_cast<const uint8_t*>
    - nalloc_init
    - WebPAnimDecoderDelete
    - ImgIoUtilCheckSizeArgumentsOverflow
    - nalloc_end
    - WebPAnimDecoderGetInfo
    - WebPAnimDecoderGetNext
    - WebPAnimDecoderNew
    - WebPGetFeatures
    linkageType: ''
    returnType: void
    signature: void AnimDecoderTest(std::string_view blob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AnimDecoderTest
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:86,1
    - Dst: std::string
      Src: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: TEST
    functionSourceFile: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc
    functionUses: 0
    functionsReached:
    - std::string
    - AnimDecoderTest
    linkageType: ''
    returnType: void
    signature: void TEST(AnimDecoder, Buganizer498967090)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: fuzz_utils::FuzzHash
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE FuzzHash(const uint8_t* const data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - writer
    argTypes:
    - WebPMemoryWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: operator()(WebPMemoryWriter* writer) const
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - WebPMemoryWriterClear
    linkageType: ''
    returnType: void
    signature: void operator()(WebPMemoryWriter* writer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureFree
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pic
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: operator()(WebPPicture* pic) const
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - WebPPictureFree
    linkageType: ''
    returnType: void
    signature: void operator()(WebPPicture* pic) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPFreeDecBuffer
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - WebPDecoderConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: operator()(WebPDecoderConfig* config) const
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - WebPFreeDecBuffer
    linkageType: ''
    returnType: void
    signature: void operator()(WebPDecoderConfig* config) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:106,1
    - Dst: WebPPicture::WebPPicture
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:106,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:107,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:110,1
    - Dst: get
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:110,1
    - Dst: assert
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 15
    argNames:
    - use_argb
    - colorspace
    - width
    - height
    - y
    - u
    - v
    - y_stride
    - uv_stride
    - a
    - a_stride
    - argb
    - argb_stride
    - memory
    - memory_argb
    argTypes:
    - int
    - WebPEncCSP
    - int
    - int
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    - uint8_t*
    - int
    - uint32_t*
    - int
    - void*
    - void*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    constantsTouched: []
    func_position:
      end: 126
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 126
    functionName: fuzz_utils::WebPPictureCpp
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - WebPPicture::WebPPicture
    - assert
    - get
    - reset
    - WebPPictureFree
    - WebPPictureInit
    linkageType: ''
    returnType: void
    signature: "void WebPPictureCpp(int use_argb, WebPEncCSP colorspace, int width,\n
      \                       int height, uint8_t* y, uint8_t* u, uint8_t* v,\n                        int
      y_stride, int uv_stride, uint8_t* a, int a_stride,\n                        uint32_t*
      argb, int argb_stride, void* memory,\n                        void* memory_argb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<WebPPicture&>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: '& ref() const'
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - const_cast<WebPPicture&>
    linkageType: ''
    returnType: WebPPicture
    signature: WebPPicture & ref() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fuzztest::FlatMap
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:132,1
    - Dst: fuzztest::VectorOf
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:143,1
    - Dst: fuzztest::Arbitrary<uint8_t>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:143,1
    - Dst: GetFilterMap
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:146,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:150,1
    - Dst: assert
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:150,1
    - Dst: static_cast<WebPEncCSP>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:152,1
    - Dst: WebPPictureAlloc
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:156,1
    - Dst: assert
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:156,1
    - Dst: std::copy
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:159,1
    - Dst: begin
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:159,1
    - Dst: begin
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:159,1
    - Dst: begin
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:163,1
    - Dst: std::copy
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:164,1
    - Dst: std::copy
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:168,1
    - Dst: std::copy
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:175,1
    - Dst: std::copy
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:177,1
    - Dst: fuzz_utils::WebPPictureCpp
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:179,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:187,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:188,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:189,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    - condition: (false)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    constantsTouched: []
    func_position:
      end: 190
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 190
    functionName: fuzz_utils::ArbitraryWebPPicture
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - static_cast<WebPEncCSP>
    - std::copy
    - assert
    - fuzztest::VectorOf
    - GetFilterMap
    - begin
    - WebPPictureAlloc
    - fuzztest::InRange<int>
    - fuzz_utils::WebPPictureCpp
    - fuzztest::Arbitrary<uint8_t>
    - WebPPictureInit
    - fuzztest::FlatMap
    linkageType: ''
    returnType: auto
    signature: auto ArbitraryWebPPicture()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetFilterMap
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:193,1
    - Dst: fuzz_utils::GetSourcePicture
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:196,1
    - Dst: fuzz_utils::WebPPictureCpp
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:197,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:202,1
    - Dst: fuzztest::Arbitrary<bool>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: fuzz_utils::ArbitraryWebPPictureFromIndex
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - GetFilterMap
    - fuzztest::Arbitrary<bool>
    - fuzztest::InRange<int>
    - fuzz_utils::GetSourcePicture
    - fuzz_utils::WebPPictureCpp
    linkageType: ''
    returnType: auto
    signature: auto ArbitraryWebPPictureFromIndex()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetFilterMap
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:207,1
    - Dst: WebPConfigInit
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:216,1
    - Dst: assert
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:216,1
    - Dst: WebPValidateConfig
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:242,1
    - Dst: assert
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:242,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:245,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:246,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:247,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:248,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:249,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:250,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:251,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:252,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:253,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:254,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:255,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:256,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:257,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:258,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:259,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:260,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:261,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:262,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:263,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:264,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:265,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:266,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:267,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 241
        line_start: 241
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    - condition: (false)
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    constantsTouched: []
    func_position:
      end: 269
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 269
    functionName: fuzz_utils::ArbitraryWebPConfig
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - WebPValidateConfig
    - assert
    - GetFilterMap
    - fuzztest::InRange<int>
    - WebPConfigInit
    linkageType: ''
    returnType: auto
    signature: auto ArbitraryWebPConfig()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetFilterMap
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:292,1
    - Dst: WebPInitDecoderConfig
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:314,1
    - Dst: assert
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:314,1
    - Dst: WebPValidateDecoderConfig
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:316,1
    - Dst: assert
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:316,1
    - Dst: std::memcpy
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:318,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:321,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:322,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:323,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:324,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:325,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:326,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:327,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:328,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:329,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:330,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:331,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:332,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:333,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    - condition: (false)
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    constantsTouched: []
    func_position:
      end: 335
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 335
    functionName: fuzz_utils::ArbitraryValidWebPDecoderOptions
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - WebPInitDecoderConfig
    - assert
    - GetFilterMap
    - WebPValidateDecoderConfig
    - fuzztest::InRange<int>
    - std::memcpy
    linkageType: ''
    returnType: auto
    signature: auto ArbitraryValidWebPDecoderOptions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetFilterMap
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:338,1
    - Dst: std::memcpy
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:360,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:363,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:364,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:365,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:366,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:367,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:368,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:369,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:370,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:371,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:372,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:373,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:374,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:375,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 377
    functionName: fuzz_utils::ArbitraryWebPDecoderOptions
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - GetFilterMap
    - fuzztest::Arbitrary<int>
    - std::memcpy
    linkageType: ''
    returnType: auto
    signature: auto ArbitraryWebPDecoderOptions()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetFilterMap
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:389,1
    - Dst: has_value
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:394,1
    - Dst: has_value
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:398,1
    - Dst: fuzztest::OptionalOf
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:406,1
    - Dst: fuzztest::PairOf
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:407,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:407,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:407,1
    - Dst: fuzztest::OptionalOf
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:408,1
    - Dst: fuzztest::PairOf
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:409,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:409,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 410
    functionName: fuzz_utils::ArbitraryCropOrScaleParams
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - has_value
    - GetFilterMap
    - fuzztest::PairOf
    - fuzztest::InRange
    - fuzztest::OptionalOf
    linkageType: ''
    returnType: auto
    signature: auto ArbitraryCropOrScaleParams()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: fuzz_utils::FuzzHash
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE FuzzHash(const uint8_t* const data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - writer
    argTypes:
    - WebPMemoryWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: operator()(WebPMemoryWriter* writer) const
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - WebPMemoryWriterClear
    linkageType: ''
    returnType: void
    signature: void operator()(WebPMemoryWriter* writer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureFree
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pic
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: operator()(WebPPicture* pic) const
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - WebPPictureFree
    linkageType: ''
    returnType: void
    signature: void operator()(WebPPicture* pic) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPFreeDecBuffer
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - WebPDecoderConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: operator()(WebPDecoderConfig* config) const
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - WebPFreeDecBuffer
    linkageType: ''
    returnType: void
    signature: void operator()(WebPDecoderConfig* config) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:106,1
    - Dst: WebPPicture::WebPPicture
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:106,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:107,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:110,1
    - Dst: get
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:110,1
    - Dst: assert
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 15
    argNames:
    - use_argb
    - colorspace
    - width
    - height
    - y
    - u
    - v
    - y_stride
    - uv_stride
    - a
    - a_stride
    - argb
    - argb_stride
    - memory
    - memory_argb
    argTypes:
    - int
    - WebPEncCSP
    - int
    - int
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    - uint8_t*
    - int
    - uint32_t*
    - int
    - void*
    - void*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    constantsTouched: []
    func_position:
      end: 126
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 126
    functionName: fuzz_utils::WebPPictureCpp
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 2
    functionsReached:
    - WebPPicture::WebPPicture
    - assert
    - get
    - reset
    - WebPPictureFree
    - WebPPictureInit
    linkageType: ''
    returnType: void
    signature: "void WebPPictureCpp(int use_argb, WebPEncCSP colorspace, int width,\n
      \                       int height, uint8_t* y, uint8_t* u, uint8_t* v,\n                        int
      y_stride, int uv_stride, uint8_t* a, int a_stride,\n                        uint32_t*
      argb, int argb_stride, void* memory,\n                        void* memory_argb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<WebPPicture&>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: '& ref() const'
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - const_cast<WebPPicture&>
    linkageType: ''
    returnType: WebPPicture
    signature: WebPPicture & ref() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fuzztest::FlatMap
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:132,1
    - Dst: fuzztest::VectorOf
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:143,1
    - Dst: fuzztest::Arbitrary<uint8_t>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:143,1
    - Dst: GetFilterMap
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:146,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:150,1
    - Dst: assert
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:150,1
    - Dst: static_cast<WebPEncCSP>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:152,1
    - Dst: WebPPictureAlloc
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:156,1
    - Dst: assert
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:156,1
    - Dst: std::copy
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:159,1
    - Dst: begin
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:159,1
    - Dst: begin
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:159,1
    - Dst: begin
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:163,1
    - Dst: std::copy
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:164,1
    - Dst: std::copy
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:168,1
    - Dst: std::copy
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:175,1
    - Dst: std::copy
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:177,1
    - Dst: fuzz_utils::WebPPictureCpp
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:179,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:187,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:188,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:189,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    - condition: (false)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    constantsTouched: []
    func_position:
      end: 190
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 190
    functionName: fuzz_utils::ArbitraryWebPPicture
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - static_cast<WebPEncCSP>
    - std::copy
    - assert
    - fuzztest::VectorOf
    - GetFilterMap
    - begin
    - WebPPictureAlloc
    - fuzztest::InRange<int>
    - fuzz_utils::WebPPictureCpp
    - fuzztest::Arbitrary<uint8_t>
    - WebPPictureInit
    - fuzztest::FlatMap
    linkageType: ''
    returnType: auto
    signature: auto ArbitraryWebPPicture()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetFilterMap
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:193,1
    - Dst: fuzz_utils::GetSourcePicture
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:196,1
    - Dst: fuzz_utils::WebPPictureCpp
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:197,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:202,1
    - Dst: fuzztest::Arbitrary<bool>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: fuzz_utils::ArbitraryWebPPictureFromIndex
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - GetFilterMap
    - fuzztest::Arbitrary<bool>
    - fuzztest::InRange<int>
    - fuzz_utils::GetSourcePicture
    - fuzz_utils::WebPPictureCpp
    linkageType: ''
    returnType: auto
    signature: auto ArbitraryWebPPictureFromIndex()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetFilterMap
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:207,1
    - Dst: WebPConfigInit
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:216,1
    - Dst: assert
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:216,1
    - Dst: WebPValidateConfig
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:242,1
    - Dst: assert
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:242,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:245,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:246,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:247,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:248,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:249,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:250,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:251,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:252,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:253,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:254,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:255,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:256,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:257,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:258,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:259,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:260,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:261,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:262,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:263,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:264,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:265,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:266,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:267,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 241
        line_start: 241
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    - condition: (false)
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    constantsTouched: []
    func_position:
      end: 269
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 269
    functionName: fuzz_utils::ArbitraryWebPConfig
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - WebPValidateConfig
    - assert
    - GetFilterMap
    - fuzztest::InRange<int>
    - WebPConfigInit
    linkageType: ''
    returnType: auto
    signature: auto ArbitraryWebPConfig()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetFilterMap
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:292,1
    - Dst: WebPInitDecoderConfig
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:314,1
    - Dst: assert
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:314,1
    - Dst: WebPValidateDecoderConfig
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:316,1
    - Dst: assert
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:316,1
    - Dst: std::memcpy
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:318,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:321,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:322,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:323,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:324,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:325,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:326,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:327,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:328,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:329,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:330,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:331,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:332,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:333,1
    - Dst: fuzztest::InRange<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    - condition: (false)
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    constantsTouched: []
    func_position:
      end: 335
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 335
    functionName: fuzz_utils::ArbitraryValidWebPDecoderOptions
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - WebPInitDecoderConfig
    - assert
    - GetFilterMap
    - WebPValidateDecoderConfig
    - fuzztest::InRange<int>
    - std::memcpy
    linkageType: ''
    returnType: auto
    signature: auto ArbitraryValidWebPDecoderOptions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetFilterMap
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:338,1
    - Dst: std::memcpy
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:360,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:363,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:364,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:365,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:366,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:367,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:368,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:369,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:370,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:371,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:372,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:373,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:374,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:375,1
    - Dst: fuzztest::Arbitrary<int>
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 377
    functionName: fuzz_utils::ArbitraryWebPDecoderOptions
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - GetFilterMap
    - fuzztest::Arbitrary<int>
    - std::memcpy
    linkageType: ''
    returnType: auto
    signature: auto ArbitraryWebPDecoderOptions()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetFilterMap
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:389,1
    - Dst: has_value
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:394,1
    - Dst: has_value
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:398,1
    - Dst: fuzztest::OptionalOf
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:406,1
    - Dst: fuzztest::PairOf
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:407,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:407,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:407,1
    - Dst: fuzztest::OptionalOf
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:408,1
    - Dst: fuzztest::PairOf
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:409,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:409,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/tests/fuzzer/fuzz_utils.h:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 410
    functionName: fuzz_utils::ArbitraryCropOrScaleParams
    functionSourceFile: /src/libwebp/tests/fuzzer/fuzz_utils.h
    functionUses: 0
    functionsReached:
    - has_value
    - GetFilterMap
    - fuzztest::PairOf
    - fuzztest::InRange
    - fuzztest::OptionalOf
    linkageType: ''
    returnType: auto
    signature: auto ArbitraryCropOrScaleParams()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzztest::FlatMap
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:43,1
    - Dst: fuzztest::PairOf
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:47,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:47,1
    - Dst: fuzztest::Just
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:48,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: ArbitraryKMinKMax
    functionSourceFile: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc
    functionUses: 0
    functionsReached:
    - fuzztest::PairOf
    - fuzztest::InRange
    - fuzztest::Just
    - fuzztest::FlatMap
    linkageType: ''
    returnType: auto
    signature: auto ArbitraryKMinKMax()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:58,1
    - Dst: WebPAnimEncoderDelete
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:59,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:60,1
    - Dst: pic_cpp::ref
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:64,1
    - Dst: fuzz_utils::CropOrScale
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:68,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:71,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:73,1
    - Dst: WebPPictureRescale
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:76,1
    - Dst: WebPAnimEncoderDelete
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:78,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:80,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:83,1
    - Dst: WebPAnimEncoderNew
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:91,1
    - Dst: WebPAnimEncoderAdd
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:108,1
    - Dst: WebPAnimEncoderDelete
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:110,1
    - Dst: getenv
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:116,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:119,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:120,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 7
    argNames:
    - enc
    - ' anim_config'
    - width
    - height
    - timestamp_ms
    - ' frame_config'
    - bit_pos
    argTypes:
    - WebPAnimEncoder**
    - WebPAnimEncoderOptions
    - int*
    - int*
    - int
    - FrameConfig
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 124
    functionName: AddFrame
    functionSourceFile: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc
    functionUses: 0
    functionsReached:
    - getenv
    - WebPAnimEncoderNew
    - WebPAnimEncoderAdd
    - fuzz_utils::CropOrScale
    - WebPAnimEncoderDelete
    - fprintf
    - WebPPictureRescale
    - pic_cpp::ref
    - std::abort
    linkageType: ''
    returnType: int
    signature: "int AddFrame(WebPAnimEncoder** const enc,\n             const WebPAnimEncoderOptions&
      anim_config, int* const width,\n             int* const height, int timestamp_ms,
      FrameConfig& frame_config,\n             uint32_t* const bit_pos)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::SetOptimization
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:133,1
    - Dst: WebPAnimEncoderOptionsInit
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:137,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:138,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:139,1
    - Dst: AddFrame
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:149,1
    - Dst: WebPAnimEncoderAdd
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:158,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:159,1
    - Dst: WebPAnimEncoderGetError
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:160,1
    - Dst: WebPAnimEncoderDelete
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:161,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:162,1
    - Dst: WebPDataInit
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:165,1
    - Dst: WebPAnimEncoderAssemble
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:168,1
    - Dst: getenv
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:169,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:170,1
    - Dst: WebPAnimEncoderGetError
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:171,1
    - Dst: WebPAnimEncoderDelete
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:172,1
    - Dst: WebPDataClear
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:173,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:174,1
    - Dst: WebPAnimEncoderDelete
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:177,1
    - Dst: WebPDataClear
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 5
    argNames:
    - minimize_size
    - kmin_kmax
    - allow_mixed
    - frame_configs
    - optimization_index
    argTypes:
    - bool
    - std::pair<int, int>
    - bool
    - std::vector<FrameConfig>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 179
    functionName: AnimEncoderTest
    functionSourceFile: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc
    functionUses: 0
    functionsReached:
    - WebPAnimEncoderOptionsInit
    - WebPAnimEncoderAssemble
    - getenv
    - WebPAnimEncoderAdd
    - fuzz_utils::SetOptimization
    - WebPAnimEncoderDelete
    - fprintf
    - WebPAnimEncoderGetError
    - WebPDataClear
    - WebPDataInit
    - std::abort
    - AddFrame
    linkageType: ''
    returnType: void
    signature: "void AnimEncoderTest(bool minimize_size, std::pair<int, int> kmin_kmax,\n
      \                    bool allow_mixed, std::vector<FrameConfig> frame_configs,\n
      \                    int optimization_index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzztest::FlatMap
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:43,1
    - Dst: fuzztest::PairOf
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:47,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:47,1
    - Dst: fuzztest::Just
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:48,1
    - Dst: fuzztest::InRange
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: ArbitraryKMinKMax
    functionSourceFile: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc
    functionUses: 0
    functionsReached:
    - fuzztest::PairOf
    - fuzztest::InRange
    - fuzztest::Just
    - fuzztest::FlatMap
    linkageType: ''
    returnType: auto
    signature: auto ArbitraryKMinKMax()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:58,1
    - Dst: WebPAnimEncoderDelete
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:59,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:60,1
    - Dst: pic_cpp::ref
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:64,1
    - Dst: fuzz_utils::CropOrScale
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:68,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:71,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:73,1
    - Dst: WebPPictureRescale
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:76,1
    - Dst: WebPAnimEncoderDelete
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:78,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:80,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:83,1
    - Dst: WebPAnimEncoderNew
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:91,1
    - Dst: WebPAnimEncoderAdd
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:108,1
    - Dst: WebPAnimEncoderDelete
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:110,1
    - Dst: getenv
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:116,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:119,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:120,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 7
    argNames:
    - enc
    - ' anim_config'
    - width
    - height
    - timestamp_ms
    - ' frame_config'
    - bit_pos
    argTypes:
    - WebPAnimEncoder**
    - WebPAnimEncoderOptions
    - int*
    - int*
    - int
    - FrameConfig
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 124
    functionName: AddFrame
    functionSourceFile: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc
    functionUses: 1
    functionsReached:
    - getenv
    - WebPAnimEncoderNew
    - WebPAnimEncoderAdd
    - fuzz_utils::CropOrScale
    - WebPAnimEncoderDelete
    - fprintf
    - WebPPictureRescale
    - pic_cpp::ref
    - std::abort
    linkageType: ''
    returnType: int
    signature: "int AddFrame(WebPAnimEncoder** const enc,\n             const WebPAnimEncoderOptions&
      anim_config, int* const width,\n             int* const height, int timestamp_ms,
      FrameConfig& frame_config,\n             uint32_t* const bit_pos)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::SetOptimization
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:133,1
    - Dst: WebPAnimEncoderOptionsInit
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:137,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:138,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:139,1
    - Dst: AddFrame
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:149,1
    - Dst: WebPAnimEncoderAdd
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:158,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:159,1
    - Dst: WebPAnimEncoderGetError
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:160,1
    - Dst: WebPAnimEncoderDelete
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:161,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:162,1
    - Dst: WebPDataInit
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:165,1
    - Dst: WebPAnimEncoderAssemble
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:168,1
    - Dst: getenv
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:169,1
    - Dst: fprintf
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:170,1
    - Dst: WebPAnimEncoderGetError
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:171,1
    - Dst: WebPAnimEncoderDelete
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:172,1
    - Dst: WebPDataClear
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:173,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:174,1
    - Dst: WebPAnimEncoderDelete
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:177,1
    - Dst: WebPDataClear
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 5
    argNames:
    - minimize_size
    - kmin_kmax
    - allow_mixed
    - frame_configs
    - optimization_index
    argTypes:
    - bool
    - std::pair<int, int>
    - bool
    - std::vector<FrameConfig>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 179
    functionName: AnimEncoderTest
    functionSourceFile: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc
    functionUses: 0
    functionsReached:
    - WebPAnimEncoderOptionsInit
    - WebPAnimEncoderAssemble
    - getenv
    - WebPAnimEncoderAdd
    - fuzz_utils::SetOptimization
    - WebPAnimEncoderDelete
    - fprintf
    - WebPAnimEncoderGetError
    - WebPDataClear
    - WebPDataInit
    - std::abort
    - AddFrame
    linkageType: ''
    returnType: void
    signature: "void AnimEncoderTest(bool minimize_size, std::pair<int, int> kmin_kmax,\n
      \                    bool allow_mixed, std::vector<FrameConfig> frame_configs,\n
      \                    int optimization_index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_utils::GetSourcePicture
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:216,1
    - Dst: fuzz_utils::WebPPictureCpp
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:217,1
    - Dst: AnimEncoderTest
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:222,1
    - Dst: static_cast<WebPImageHint>
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:224,1
    - Dst: GetWebPPicture
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:233,1
    - Dst: static_cast<WebPImageHint>
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:235,1
    - Dst: GetWebPPicture
      Src: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 246
    functionName: TEST
    functionSourceFile: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc
    functionUses: 0
    functionsReached:
    - GetWebPPicture
    - static_cast<WebPImageHint>
    - fuzz_utils::GetSourcePicture
    - fuzz_utils::WebPPictureCpp
    - AnimEncoderTest
    linkageType: ''
    returnType: void
    signature: void TEST(AnimIndexEncoder, Buganizer498967191)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:31,1
    - Dst: WebPDataInit
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:33,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:35,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:35,1
    - Dst: WebPMuxCreate
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:42,1
    - Dst: WebPMuxGetChunk
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:46,1
    - Dst: WebPMuxGetChunk
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:47,1
    - Dst: WebPMuxGetChunk
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:48,1
    - Dst: WebPMuxGetFeatures
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:51,1
    - Dst: WebPMuxGetCanvasSize
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:54,1
    - Dst: WebPMuxGetAnimationParams
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:57,1
    - Dst: WebPMuxGetFrame
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:62,1
    - Dst: WebPDataClear
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:66,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:73,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:73,1
    - Dst: WebPMuxSetChunk
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:80,1
    - Dst: data
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:80,1
    - Dst: WebPDataInit
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:88,1
    - Dst: WebPMuxAssemble
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:89,1
    - Dst: WebPDataClear
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:90,1
    - Dst: WebPMuxNumChunks
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:96,1
    - Dst: static_cast<WebPChunkId>
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:96,1
    - Dst: WebPMuxDelete
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:100,1
    - Dst: WebPDemuxPartial
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:106,1
    - Dst: WebPDemuxDelete
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:108,1
    - Dst: WebPDemux
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:112,1
    - Dst: WebPDemuxGetChunk
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:117,1
    - Dst: WebPDemuxNextChunk
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:118,1
    - Dst: WebPDemuxReleaseChunkIterator
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:120,1
    - Dst: WebPDemuxGetChunk
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:121,1
    - Dst: WebPDemuxPrevChunk
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:122,1
    - Dst: WebPDemuxReleaseChunkIterator
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:124,1
    - Dst: WebPDemuxGetFrame
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:128,1
    - Dst: WebPDemuxNextFrame
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:130,1
    - Dst: WebPDemuxReleaseIterator
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:134,1
    - Dst: WebPDemuxDelete
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:135,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 3
    argNames:
    - data_in
    - use_mux_api
    - ' chunk_flags'
    argTypes:
    - std::string_view
    - bool
    - std::array<int, 10>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 137
    functionName: MuxDemuxApiTest
    functionSourceFile: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc
    functionUses: 0
    functionsReached:
    - std::string_view::size
    - WebPMuxGetChunk
    - WebPMuxGetFrame
    - WebPMuxDelete
    - std::string_view::data
    - reinterpret_cast<const uint8_t*>
    - data
    - WebPMuxNumChunks
    - WebPDataInit
    - WebPDemux
    - WebPDemuxReleaseIterator
    - WebPDemuxDelete
    - WebPMuxGetAnimationParams
    - WebPMuxGetCanvasSize
    - WebPDemuxReleaseChunkIterator
    - WebPDemuxPrevChunk
    - WebPDemuxNextFrame
    - WebPMuxCreate
    - WebPMuxSetChunk
    - WebPMuxGetFeatures
    - static_cast<WebPChunkId>
    - WebPMuxAssemble
    - WebPDemuxPartial
    - WebPDemuxGetChunk
    - WebPDemuxNextChunk
    - WebPDemuxGetFrame
    - WebPDataClear
    linkageType: ''
    returnType: void
    signature: "void MuxDemuxApiTest(std::string_view data_in, bool use_mux_api,\n
      \                    const std::array<int, 10>& chunk_flags)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:31,1
    - Dst: WebPDataInit
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:33,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:35,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:35,1
    - Dst: WebPMuxCreate
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:42,1
    - Dst: WebPMuxGetChunk
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:46,1
    - Dst: WebPMuxGetChunk
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:47,1
    - Dst: WebPMuxGetChunk
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:48,1
    - Dst: WebPMuxGetFeatures
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:51,1
    - Dst: WebPMuxGetCanvasSize
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:54,1
    - Dst: WebPMuxGetAnimationParams
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:57,1
    - Dst: WebPMuxGetFrame
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:62,1
    - Dst: WebPDataClear
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:66,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:73,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:73,1
    - Dst: WebPMuxSetChunk
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:80,1
    - Dst: data
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:80,1
    - Dst: WebPDataInit
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:88,1
    - Dst: WebPMuxAssemble
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:89,1
    - Dst: WebPDataClear
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:90,1
    - Dst: WebPMuxNumChunks
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:96,1
    - Dst: static_cast<WebPChunkId>
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:96,1
    - Dst: WebPMuxDelete
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:100,1
    - Dst: WebPDemuxPartial
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:106,1
    - Dst: WebPDemuxDelete
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:108,1
    - Dst: WebPDemux
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:112,1
    - Dst: WebPDemuxGetChunk
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:117,1
    - Dst: WebPDemuxNextChunk
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:118,1
    - Dst: WebPDemuxReleaseChunkIterator
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:120,1
    - Dst: WebPDemuxGetChunk
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:121,1
    - Dst: WebPDemuxPrevChunk
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:122,1
    - Dst: WebPDemuxReleaseChunkIterator
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:124,1
    - Dst: WebPDemuxGetFrame
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:128,1
    - Dst: WebPDemuxNextFrame
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:130,1
    - Dst: WebPDemuxReleaseIterator
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:134,1
    - Dst: WebPDemuxDelete
      Src: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc:135,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 3
    argNames:
    - data_in
    - use_mux_api
    - ' chunk_flags'
    argTypes:
    - std::string_view
    - bool
    - std::array<int, 10>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 137
    functionName: MuxDemuxApiTest
    functionSourceFile: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc
    functionUses: 0
    functionsReached:
    - std::string_view::size
    - WebPMuxGetChunk
    - WebPMuxGetFrame
    - WebPMuxDelete
    - std::string_view::data
    - reinterpret_cast<const uint8_t*>
    - data
    - WebPMuxNumChunks
    - WebPDataInit
    - WebPDemux
    - WebPDemuxReleaseIterator
    - WebPDemuxDelete
    - WebPMuxGetAnimationParams
    - WebPMuxGetCanvasSize
    - WebPDemuxReleaseChunkIterator
    - WebPDemuxPrevChunk
    - WebPDemuxNextFrame
    - WebPMuxCreate
    - WebPMuxSetChunk
    - WebPMuxGetFeatures
    - static_cast<WebPChunkId>
    - WebPMuxAssemble
    - WebPDemuxPartial
    - WebPDemuxGetChunk
    - WebPDemuxNextChunk
    - WebPDemuxGetFrame
    - WebPDataClear
    linkageType: ''
    returnType: void
    signature: "void MuxDemuxApiTest(std::string_view data_in, bool use_mux_api,\n
      \                    const std::array<int, 10>& chunk_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nalloc_init
      Src: /src/libwebp/tests/fuzzer/webp_info_fuzzer.cc:30,1
    - Dst: nalloc_start
      Src: /src/libwebp/tests/fuzzer/webp_info_fuzzer.cc:31,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/webp_info_fuzzer.cc:31,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/webp_info_fuzzer.cc:31,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/webp_info_fuzzer.cc:31,1
    - Dst: WebPInfoInit
      Src: /src/libwebp/tests/fuzzer/webp_info_fuzzer.cc:33,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/webp_info_fuzzer.cc:38,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/webp_info_fuzzer.cc:38,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/webp_info_fuzzer.cc:39,1
    - Dst: AnalyzeWebP
      Src: /src/libwebp/tests/fuzzer/webp_info_fuzzer.cc:40,1
    - Dst: nalloc_end
      Src: /src/libwebp/tests/fuzzer/webp_info_fuzzer.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 42
    functionName: WebPInfoTest
    functionSourceFile: /src/libwebp/tests/fuzzer/webp_info_fuzzer.cc
    functionUses: 0
    functionsReached:
    - nalloc_start
    - std::string_view::size
    - std::string_view::data
    - reinterpret_cast<const uint8_t*>
    - nalloc_init
    - AnalyzeWebP
    - WebPInfoInit
    - nalloc_end
    linkageType: ''
    returnType: void
    signature: void WebPInfoTest(std::string_view data)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:31,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:31,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:32,1
    - Dst: WebPGetInfo
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:34,1
    - Dst: fuzz_utils::FuzzHash
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:37,1
    - Dst: WebPDecodeRGBA
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:43,1
    - Dst: WebPDecodeBGRA
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:45,1
    - Dst: WebPDecodeARGB
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:48,1
    - Dst: WebPDecodeRGB
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:50,1
    - Dst: WebPDecodeBGR
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:52,1
    - Dst: WebPDecodeYUV
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:57,1
    - Dst: malloc
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:62,1
    - Dst: WebPDecodeRGBAInto
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:64,1
    - Dst: WebPDecodeARGBInto
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:67,1
    - Dst: WebPDecodeBGRInto
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:69,1
    - Dst: WebPDecodeRGBInto
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:71,1
    - Dst: WebPDecodeBGRAInto
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:74,1
    - Dst: free
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:76,1
    - Dst: malloc
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:87,1
    - Dst: malloc
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:88,1
    - Dst: malloc
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:89,1
    - Dst: WebPDecodeYUVInto
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:90,1
    - Dst: free
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:93,1
    - Dst: free
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:94,1
    - Dst: free
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:95,1
    - Dst: WebPFree
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:98,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 1
    argNames:
    - data_in
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 99
    functionName: SimpleApiTest
    functionSourceFile: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc
    functionUses: 0
    functionsReached:
    - malloc
    - std::string_view::size
    - WebPFree
    - std::string_view::data
    - fuzz_utils::FuzzHash
    - reinterpret_cast<const uint8_t*>
    - WebPDecodeBGR
    - WebPDecodeYUV
    - WebPDecodeARGB
    - WebPDecodeBGRAInto
    - WebPDecodeARGBInto
    - WebPDecodeRGBA
    - WebPDecodeRGB
    - WebPDecodeRGBAInto
    - WebPGetInfo
    - WebPDecodeRGBInto
    - WebPDecodeBGRInto
    - free
    - WebPDecodeYUVInto
    - WebPDecodeBGRA
    linkageType: ''
    returnType: void
    signature: void SimpleApiTest(std::string_view data_in)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:31,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:31,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:32,1
    - Dst: WebPGetInfo
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:34,1
    - Dst: fuzz_utils::FuzzHash
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:37,1
    - Dst: WebPDecodeRGBA
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:43,1
    - Dst: WebPDecodeBGRA
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:45,1
    - Dst: WebPDecodeARGB
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:48,1
    - Dst: WebPDecodeRGB
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:50,1
    - Dst: WebPDecodeBGR
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:52,1
    - Dst: WebPDecodeYUV
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:57,1
    - Dst: malloc
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:62,1
    - Dst: WebPDecodeRGBAInto
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:64,1
    - Dst: WebPDecodeARGBInto
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:67,1
    - Dst: WebPDecodeBGRInto
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:69,1
    - Dst: WebPDecodeRGBInto
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:71,1
    - Dst: WebPDecodeBGRAInto
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:74,1
    - Dst: free
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:76,1
    - Dst: malloc
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:87,1
    - Dst: malloc
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:88,1
    - Dst: malloc
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:89,1
    - Dst: WebPDecodeYUVInto
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:90,1
    - Dst: free
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:93,1
    - Dst: free
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:94,1
    - Dst: free
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:95,1
    - Dst: WebPFree
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:98,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 1
    argNames:
    - data_in
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 99
    functionName: SimpleApiTest
    functionSourceFile: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc
    functionUses: 0
    functionsReached:
    - malloc
    - std::string_view::size
    - WebPFree
    - std::string_view::data
    - fuzz_utils::FuzzHash
    - reinterpret_cast<const uint8_t*>
    - WebPDecodeBGR
    - WebPDecodeYUV
    - WebPDecodeARGB
    - WebPDecodeBGRAInto
    - WebPDecodeARGBInto
    - WebPDecodeRGBA
    - WebPDecodeRGB
    - WebPDecodeRGBAInto
    - WebPGetInfo
    - WebPDecodeRGBInto
    - WebPDecodeBGRInto
    - free
    - WebPDecodeYUVInto
    - WebPDecodeBGRA
    linkageType: ''
    returnType: void
    signature: void SimpleApiTest(std::string_view data_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleApiTest
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:108,1
    - Dst: std::string
      Src: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 4
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: TEST
    functionSourceFile: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc
    functionUses: 0
    functionsReached:
    - SimpleApiTest
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST(SimpleApi, Buganizer498966511)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureInit
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:36,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:38,1
    - Dst: nalloc_init
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:40,1
    - Dst: nalloc_start
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:41,1
    - Dst: MetadataInit
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:43,1
    - Dst: fuzz_utils::IsImageTooBig
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:46,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:49,1
    - Dst: MetadataFree
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:50,1
    - Dst: nalloc_end
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - data
    - size
    - reader
    - keep_alpha
    - use_argb
    argTypes:
    - uint8_t*
    - size_t
    - WebPImageReader
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 52
    functionName: TestReader
    functionSourceFile: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc
    functionUses: 0
    functionsReached:
    - nalloc_start
    - fuzz_utils::IsImageTooBig
    - MetadataFree
    - nalloc_init
    - MetadataInit
    - WebPPictureInit
    - nalloc_end
    - WebPPictureFree
    - std::abort
    linkageType: ''
    returnType: void
    signature: "void TestReader(const uint8_t* data, size_t size, WebPImageReader
      reader,\n                bool keep_alpha, bool use_argb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:59,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:59,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:60,1
    - Dst: WebPGuessImageType
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:62,1
    - Dst: TestReader
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:63,1
    - Dst: WebPGuessImageReader
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:63,1
    - Dst: TestReader
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:66,1
    - Dst: WebPGetImageReader
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - arbitrary_bytes
    - format
    - keep_alpha
    - use_argb
    argTypes:
    - std::string_view
    - WebPInputFileFormat
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: Decode
    functionSourceFile: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc
    functionUses: 6
    functionsReached:
    - std::string_view::size
    - WebPGuessImageType
    - std::string_view::data
    - reinterpret_cast<const uint8_t*>
    - TestReader
    - WebPGetImageReader
    - WebPGuessImageReader
    linkageType: ''
    returnType: void
    signature: "void Decode(std::string_view arbitrary_bytes, WebPInputFileFormat
      format,\n            bool keep_alpha, bool use_argb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureInit
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:36,1
    - Dst: std::abort
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:38,1
    - Dst: nalloc_init
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:40,1
    - Dst: nalloc_start
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:41,1
    - Dst: MetadataInit
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:43,1
    - Dst: fuzz_utils::IsImageTooBig
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:46,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:49,1
    - Dst: MetadataFree
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:50,1
    - Dst: nalloc_end
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - data
    - size
    - reader
    - keep_alpha
    - use_argb
    argTypes:
    - uint8_t*
    - size_t
    - WebPImageReader
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 52
    functionName: TestReader
    functionSourceFile: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc
    functionUses: 1
    functionsReached:
    - nalloc_start
    - fuzz_utils::IsImageTooBig
    - MetadataFree
    - nalloc_init
    - MetadataInit
    - WebPPictureInit
    - nalloc_end
    - WebPPictureFree
    - std::abort
    linkageType: ''
    returnType: void
    signature: "void TestReader(const uint8_t* data, size_t size, WebPImageReader
      reader,\n                bool keep_alpha, bool use_argb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:59,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:59,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:60,1
    - Dst: WebPGuessImageType
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:62,1
    - Dst: TestReader
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:63,1
    - Dst: WebPGuessImageReader
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:63,1
    - Dst: TestReader
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:66,1
    - Dst: WebPGetImageReader
      Src: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - arbitrary_bytes
    - format
    - keep_alpha
    - use_argb
    argTypes:
    - std::string_view
    - WebPInputFileFormat
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: Decode
    functionSourceFile: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc
    functionUses: 6
    functionsReached:
    - std::string_view::size
    - WebPGuessImageType
    - std::string_view::data
    - reinterpret_cast<const uint8_t*>
    - TestReader
    - WebPGetImageReader
    - WebPGuessImageReader
    linkageType: ''
    returnType: void
    signature: "void Decode(std::string_view arbitrary_bytes, WebPInputFileFormat
      format,\n            bool keep_alpha, bool use_argb)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: WebPInitDecoderConfig
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:36,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:37,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:37,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:38,1
    - Dst: WebPGetFeatures
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:39,1
    - Dst: fuzz_utils::FuzzHash
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:48,1
    - Dst: std::memcpy
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:51,1
    - Dst: static_cast<WEBP_CSP_MODE>
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:62,1
    - Dst: memcpy
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:72,1
    - Dst: WebPCheckCropDimensions
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:83,1
    - Dst: WebPRescalerGetScaledDimensions
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:92,1
    - Dst: std::max
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:106,1
    - Dst: std::max
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:107,1
    - Dst: WebPIDecode
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:116,1
    - Dst: WebPIUpdate
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:123,1
    - Dst: WebPIAppend
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:136,1
    - Dst: WebPIDelete
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:142,1
    - Dst: WebPDecode
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:144,1
    - Dst: WebPFreeDecBuffer
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:147,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 72
    argCount: 5
    argNames:
    - blob
    - factor_u8
    - colorspace
    - incremental
    - ' decoder_options'
    argTypes:
    - std::string_view
    - uint8_t
    - int
    - bool
    - fuzz_utils::WebPDecoderOptionsCpp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 149
    functionName: AdvancedApiTest
    functionSourceFile: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc
    functionUses: 0
    functionsReached:
    - WebPInitDecoderConfig
    - std::string_view::size
    - WebPIUpdate
    - std::string_view::data
    - memcpy
    - fuzz_utils::FuzzHash
    - static_cast<WEBP_CSP_MODE>
    - reinterpret_cast<const uint8_t*>
    - WebPIDecode
    - WebPFreeDecBuffer
    - WebPDecode
    - WebPCheckCropDimensions
    - std::memcpy
    - std::max
    - WebPIAppend
    - WebPIDelete
    - WebPRescalerGetScaledDimensions
    - WebPGetFeatures
    linkageType: ''
    returnType: void
    signature: "void AdvancedApiTest(std::string_view blob, uint8_t factor_u8, int
      colorspace,\n                     bool incremental,\n                     const
      fuzz_utils::WebPDecoderOptionsCpp& decoder_options)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: WebPInitDecoderConfig
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:36,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:37,1
    - Dst: std::string_view::data
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:37,1
    - Dst: std::string_view::size
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:38,1
    - Dst: WebPGetFeatures
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:39,1
    - Dst: fuzz_utils::FuzzHash
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:48,1
    - Dst: std::memcpy
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:51,1
    - Dst: static_cast<WEBP_CSP_MODE>
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:62,1
    - Dst: memcpy
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:72,1
    - Dst: WebPCheckCropDimensions
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:83,1
    - Dst: WebPRescalerGetScaledDimensions
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:92,1
    - Dst: std::max
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:106,1
    - Dst: std::max
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:107,1
    - Dst: WebPIDecode
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:116,1
    - Dst: WebPIUpdate
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:123,1
    - Dst: WebPIAppend
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:136,1
    - Dst: WebPIDelete
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:142,1
    - Dst: WebPDecode
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:144,1
    - Dst: WebPFreeDecBuffer
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:147,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 72
    argCount: 5
    argNames:
    - blob
    - factor_u8
    - colorspace
    - incremental
    - ' decoder_options'
    argTypes:
    - std::string_view
    - uint8_t
    - int
    - bool
    - fuzz_utils::WebPDecoderOptionsCpp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 149
    functionName: AdvancedApiTest
    functionSourceFile: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc
    functionUses: 0
    functionsReached:
    - WebPInitDecoderConfig
    - std::string_view::size
    - WebPIUpdate
    - std::string_view::data
    - memcpy
    - fuzz_utils::FuzzHash
    - static_cast<WEBP_CSP_MODE>
    - reinterpret_cast<const uint8_t*>
    - WebPIDecode
    - WebPFreeDecBuffer
    - WebPDecode
    - WebPCheckCropDimensions
    - std::memcpy
    - std::max
    - WebPIAppend
    - WebPIDelete
    - WebPRescalerGetScaledDimensions
    - WebPGetFeatures
    linkageType: ''
    returnType: void
    signature: "void AdvancedApiTest(std::string_view blob, uint8_t factor_u8, int
      colorspace,\n                     bool incremental,\n                     const
      fuzz_utils::WebPDecoderOptionsCpp& decoder_options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AdvancedApiTest
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:169,1
    - Dst: std::string
      Src: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 188
    functionName: TEST
    functionSourceFile: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc
    functionUses: 0
    functionsReached:
    - std::string
    - AdvancedApiTest
    linkageType: ''
    returnType: void
    signature: void TEST(AdvancedApi, Buganizer498966235)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxi.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - chunk_size
    argTypes:
    - size_t
    assertStmts:
    - condition: (chunk_size <= MAX_CHUNK_PAYLOAD)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/libwebp/src/mux/muxi.h
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: SizeWithPadding
    functionSourceFile: /src/libwebp/src/mux/muxi.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE SizeWithPadding(size_t chunk_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SizeWithPadding
      Src: /src/libwebp/src/mux/muxi.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - WebPChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: ChunkDiskSize
    functionSourceFile: /src/libwebp/src/mux/muxi.h
    functionUses: 0
    functionsReached:
    - SizeWithPadding
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE ChunkDiskSize(const WebPChunk* chunk)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - id
    argTypes:
    - WebPChunkId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 201
    functionName: IsWPI
    functionSourceFile: /src/libwebp/src/mux/muxi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE IsWPI(WebPChunkId id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - INDEX
    - ','
    - LIST
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 43
    functionName: SWITCH_ID_LIST
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWITCH_ID_LIST(INDEX, LIST)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxread.c:46,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxread.c:47,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxread.c:48,1
    - Dst: IsWPI
      Src: /src/libwebp/src/mux/muxread.c:48,1
    - Dst: WebPDataInit
      Src: /src/libwebp/src/mux/muxread.c:49,1
    - Dst: SWITCH_ID_LIST
      Src: /src/libwebp/src/mux/muxread.c:51,1
    - Dst: SWITCH_ID_LIST
      Src: /src/libwebp/src/mux/muxread.c:52,1
    - Dst: SWITCH_ID_LIST
      Src: /src/libwebp/src/mux/muxread.c:53,1
    - Dst: SWITCH_ID_LIST
      Src: /src/libwebp/src/mux/muxread.c:54,1
    - Dst: SWITCH_ID_LIST
      Src: /src/libwebp/src/mux/muxread.c:55,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxread.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - mux
    - idx
    - nth
    - data
    argTypes:
    - WebPMux*
    - CHUNK_INDEX
    - uint32_t
    - WebPData*
    assertStmts:
    - condition: (mux != NULL)
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/libwebp/src/mux/muxread.c
    - condition: (idx != IDX_LAST_CHUNK)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/libwebp/src/mux/muxread.c
    - condition: (!IsWPI(kChunks[idx].id))
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/libwebp/src/mux/muxread.c
    - condition: (idx != IDX_UNKNOWN)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/libwebp/src/mux/muxread.c
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: MuxGet
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 0
    functionsReached:
    - assert
    - SWITCH_ID_LIST
    - IsWPI
    - WebPDataInit
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError MuxGet(const WebPMux* const mux, CHUNK_INDEX idx,\n                           uint32_t
      nth, WebPData* const data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetLE32
      Src: /src/libwebp/src/mux/muxread.c:71,1
    - Dst: SizeWithPadding
      Src: /src/libwebp/src/mux/muxread.c:75,1
    - Dst: ChunkAssignData
      Src: /src/libwebp/src/mux/muxread.c:83,1
    - Dst: GetLE32
      Src: /src/libwebp/src/mux/muxread.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - chunk
    - data
    - data_size
    - riff_size
    - copy_data
    argTypes:
    - WebPChunk*
    - uint8_t*
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 84
    functionName: ChunkVerifyAndAssign
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 0
    functionsReached:
    - ChunkAssignData
    - GetLE32
    - SizeWithPadding
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError ChunkVerifyAndAssign(WebPChunk* chunk, const uint8_t*
      data,\n                                         size_t data_size, size_t riff_size,\n
      \                                        int copy_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8LGetInfo
      Src: /src/libwebp/src/mux/muxread.c:94,1
    - Dst: VP8GetInfo
      Src: /src/libwebp/src/mux/muxread.c:95,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxread.c:96,1
    - Dst: ChunkDelete
      Src: /src/libwebp/src/mux/muxread.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - wpi
    argTypes:
    - WebPMuxImage*
    assertStmts:
    - condition: (img != NULL)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/libwebp/src/mux/muxread.c
    constantsTouched: []
    func_position:
      end: 108
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 108
    functionName: MuxImageFinalize
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 0
    functionsReached:
    - assert
    - VP8GetInfo
    - ChunkDelete
    - VP8LGetInfo
    linkageType: ''
    returnType: int
    signature: int MuxImageFinalize(WebPMuxImage* const wpi)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ChunkInit
      Src: /src/libwebp/src/mux/muxread.c:118,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxread.c:120,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxread.c:121,1
    - Dst: ChunkAssignData
      Src: /src/libwebp/src/mux/muxread.c:130,1
    - Dst: ChunkSetHead
      Src: /src/libwebp/src/mux/muxread.c:135,1
    - Dst: ChunkDiskSize
      Src: /src/libwebp/src/mux/muxread.c:139,1
    - Dst: ChunkInit
      Src: /src/libwebp/src/mux/muxread.c:144,1
    - Dst: ChunkVerifyAndAssign
      Src: /src/libwebp/src/mux/muxread.c:145,1
    - Dst: ChunkGetIdFromTag
      Src: /src/libwebp/src/mux/muxread.c:149,1
    - Dst: ChunkSetHead
      Src: /src/libwebp/src/mux/muxread.c:152,1
    - Dst: ChunkSetHead
      Src: /src/libwebp/src/mux/muxread.c:157,1
    - Dst: MuxImageFinalize
      Src: /src/libwebp/src/mux/muxread.c:158,1
    - Dst: ChunkAppend
      Src: /src/libwebp/src/mux/muxread.c:166,1
    - Dst: ChunkDiskSize
      Src: /src/libwebp/src/mux/muxread.c:173,1
    - Dst: ChunkRelease
      Src: /src/libwebp/src/mux/muxread.c:181,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 73
    argCount: 3
    argNames:
    - chunk
    - copy_data
    - wpi
    argTypes:
    - WebPChunk*
    - int
    - WebPMuxImage*
    assertStmts:
    - condition: (chunk->tag == kChunks[IDX_ANMF].tag)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/libwebp/src/mux/muxread.c
    - condition: (!wpi->is_partial)
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/libwebp/src/mux/muxread.c
    constantsTouched: []
    func_position:
      end: 183
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 183
    functionName: MuxImageParse
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 0
    functionsReached:
    - ChunkDiskSize
    - ChunkInit
    - assert
    - ChunkVerifyAndAssign
    - ChunkAssignData
    - ChunkGetIdFromTag
    - ChunkSetHead
    - ChunkRelease
    - ChunkAppend
    - MuxImageFinalize
    linkageType: ''
    returnType: int
    signature: "int MuxImageParse(const WebPChunk* const chunk, int copy_data,\n                         WebPMuxImage*
      const wpi)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: ChunkInit
      Src: /src/libwebp/src/mux/muxread.c:201,1
    - Dst: WEBP_ABI_IS_INCOMPATIBLE
      Src: /src/libwebp/src/mux/muxread.c:203,1
    - Dst: GetLE32
      Src: /src/libwebp/src/mux/muxread.c:213,1
    - Dst: MKFOURCC
      Src: /src/libwebp/src/mux/muxread.c:213,1
    - Dst: GetLE32
      Src: /src/libwebp/src/mux/muxread.c:214,1
    - Dst: MKFOURCC
      Src: /src/libwebp/src/mux/muxread.c:214,1
    - Dst: WebPMuxNew
      Src: /src/libwebp/src/mux/muxread.c:218,1
    - Dst: GetLE32
      Src: /src/libwebp/src/mux/muxread.c:221,1
    - Dst: GetLE32
      Src: /src/libwebp/src/mux/muxread.c:227,1
    - Dst: SizeWithPadding
      Src: /src/libwebp/src/mux/muxread.c:232,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/mux/muxread.c:246,1
    - Dst: MuxImageInit
      Src: /src/libwebp/src/mux/muxread.c:248,1
    - Dst: ChunkVerifyAndAssign
      Src: /src/libwebp/src/mux/muxread.c:254,1
    - Dst: ChunkDiskSize
      Src: /src/libwebp/src/mux/muxread.c:258,1
    - Dst: ChunkGetIdFromTag
      Src: /src/libwebp/src/mux/muxread.c:259,1
    - Dst: ChunkSetHead
      Src: /src/libwebp/src/mux/muxread.c:263,1
    - Dst: ChunkSetHead
      Src: /src/libwebp/src/mux/muxread.c:267,1
    - Dst: MuxImageFinalize
      Src: /src/libwebp/src/mux/muxread.c:268,1
    - Dst: MuxImagePush
      Src: /src/libwebp/src/mux/muxread.c:272,1
    - Dst: MuxImageInit
      Src: /src/libwebp/src/mux/muxread.c:273,1
    - Dst: MuxImageParse
      Src: /src/libwebp/src/mux/muxread.c:277,1
    - Dst: ChunkRelease
      Src: /src/libwebp/src/mux/muxread.c:278,1
    - Dst: MuxGetChunkListFromId
      Src: /src/libwebp/src/mux/muxread.c:287,1
    - Dst: ChunkAppend
      Src: /src/libwebp/src/mux/muxread.c:289,1
    - Dst: GetLE24
      Src: /src/libwebp/src/mux/muxread.c:292,1
    - Dst: GetLE24
      Src: /src/libwebp/src/mux/muxread.c:293,1
    - Dst: ChunkInit
      Src: /src/libwebp/src/mux/muxread.c:299,1
    - Dst: MuxValidate
      Src: /src/libwebp/src/mux/muxread.c:306,1
    - Dst: MuxImageDelete
      Src: /src/libwebp/src/mux/muxread.c:308,1
    - Dst: ChunkRelease
      Src: /src/libwebp/src/mux/muxread.c:312,1
    - Dst: MuxImageDelete
      Src: /src/libwebp/src/mux/muxread.c:313,1
    - Dst: WebPMuxDelete
      Src: /src/libwebp/src/mux/muxread.c:314,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 126
    argCount: 3
    argNames:
    - bitstream
    - copy_data
    - version
    argTypes:
    - WebPData*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 316
    functionName: WebPMuxCreateInternal
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 0
    functionsReached:
    - WebPMuxDelete
    - MuxImageDelete
    - WebPSafeMalloc
    - ChunkRelease
    - MuxImageParse
    - ChunkAppend
    - WebPMuxNew
    - GetLE24
    - MuxImagePush
    - ChunkVerifyAndAssign
    - ChunkGetIdFromTag
    - WEBP_ABI_IS_INCOMPATIBLE
    - MuxGetChunkListFromId
    - ChunkInit
    - ChunkDiskSize
    - GetLE32
    - MKFOURCC
    - SizeWithPadding
    - MuxValidate
    - MuxImageInit
    - ChunkSetHead
    - MuxImageFinalize
    linkageType: ''
    returnType: WebPMux
    signature: "WebPMux * WebPMuxCreateInternal(const WebPData* bitstream, int copy_data,\n
      \                              int version)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MuxImageCount
      Src: /src/libwebp/src/mux/muxread.c:323,1
    - Dst: MuxImageCount
      Src: /src/libwebp/src/mux/muxread.c:324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - mux
    argTypes:
    - WebPMux*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 336
    functionName: ValidateForSingleImage
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 0
    functionsReached:
    - MuxImageCount
    linkageType: ''
    returnType: WebPMuxError
    signature: WebPMuxError ValidateForSingleImage(const WebPMux* const mux)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxread.c:345,1
    - Dst: MuxGet
      Src: /src/libwebp/src/mux/muxread.c:348,1
    - Dst: GetLE32
      Src: /src/libwebp/src/mux/muxread.c:350,1
    - Dst: GetLE24
      Src: /src/libwebp/src/mux/muxread.c:351,1
    - Dst: GetLE24
      Src: /src/libwebp/src/mux/muxread.c:352,1
    - Dst: ValidateForSingleImage
      Src: /src/libwebp/src/mux/muxread.c:358,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxread.c:360,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - mux
    - width
    - height
    - flags
    argTypes:
    - WebPMux*
    - int*
    - int*
    - uint32_t*
    assertStmts:
    - condition: (mux != NULL)
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/libwebp/src/mux/muxread.c
    - condition: (wpi != NULL)
      pos:
        line_end: 359
        line_start: 359
        source_file: /src/libwebp/src/mux/muxread.c
    constantsTouched: []
    func_position:
      end: 374
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 374
    functionName: MuxGetCanvasInfo
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 0
    functionsReached:
    - ValidateForSingleImage
    - assert
    - GetLE24
    - GetLE32
    - MuxGet
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError MuxGetCanvasInfo(const WebPMux* const mux, int* width,\n
      \                                    int* height, uint32_t* flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MuxGetCanvasInfo
      Src: /src/libwebp/src/mux/muxread.c:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - mux
    - width
    - height
    argTypes:
    - WebPMux*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 376
    functionDepth: 3
    functionLinenumber: 376
    functionLinenumberEnd: 381
    functionName: WebPMuxGetCanvasSize
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 2
    functionsReached:
    - MuxGetCanvasInfo
    linkageType: ''
    returnType: WebPMuxError
    signature: WebPMuxError WebPMuxGetCanvasSize(const WebPMux* mux, int* width, int*
      height)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MuxGetCanvasInfo
      Src: /src/libwebp/src/mux/muxread.c:385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - mux
    - flags
    argTypes:
    - WebPMux*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: WebPMuxGetFeatures
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 2
    functionsReached:
    - MuxGetCanvasInfo
    linkageType: ''
    returnType: WebPMuxError
    signature: WebPMuxError WebPMuxGetFeatures(const WebPMux* mux, uint32_t* flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxread.c:391,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxread.c:392,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxread.c:393,1
    - Dst: PutLE32
      Src: /src/libwebp/src/mux/muxread.c:394,1
    - Dst: MKFOURCC
      Src: /src/libwebp/src/mux/muxread.c:394,1
    - Dst: PutLE32
      Src: /src/libwebp/src/mux/muxread.c:395,1
    - Dst: PutLE32
      Src: /src/libwebp/src/mux/muxread.c:396,1
    - Dst: PutLE24
      Src: /src/libwebp/src/mux/muxread.c:397,1
    - Dst: PutLE24
      Src: /src/libwebp/src/mux/muxread.c:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - dst
    - width
    - height
    - flags
    argTypes:
    - uint8_t*
    - int
    - int
    - uint32_t
    assertStmts:
    - condition: (width >= 1 && height >= 1)
      pos:
        line_end: 390
        line_start: 390
        source_file: /src/libwebp/src/mux/muxread.c
    - condition: (width <= MAX_CANVAS_SIZE && height <= MAX_CANVAS_SIZE)
      pos:
        line_end: 391
        line_start: 391
        source_file: /src/libwebp/src/mux/muxread.c
    - condition: (width * (uint64_t)height < MAX_IMAGE_AREA)
      pos:
        line_end: 392
        line_start: 392
        source_file: /src/libwebp/src/mux/muxread.c
    constantsTouched: []
    func_position:
      end: 400
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 400
    functionName: EmitVP8XChunk
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 0
    functionsReached:
    - assert
    - PutLE32
    - PutLE24
    - MKFOURCC
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * EmitVP8XChunk(uint8_t* const dst, int width, int height,\n
      \                             uint32_t flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ChunkDiskSize
      Src: /src/libwebp/src/mux/muxread.c:410,1
    - Dst: ChunkDiskSize
      Src: /src/libwebp/src/mux/muxread.c:413,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/mux/muxread.c:414,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxread.c:418,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxread.c:419,1
    - Dst: MuxEmitRiffHeader
      Src: /src/libwebp/src/mux/muxread.c:422,1
    - Dst: EmitVP8XChunk
      Src: /src/libwebp/src/mux/muxread.c:425,1
    - Dst: ChunkListEmit
      Src: /src/libwebp/src/mux/muxread.c:426,1
    - Dst: ChunkListEmit
      Src: /src/libwebp/src/mux/muxread.c:430,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxread.c:431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - wpi
    - bitstream
    argTypes:
    - WebPMuxImage*
    - WebPData*
    assertStmts:
    - condition: (wpi->alpha == NULL || wpi->alpha->next == NULL)
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/libwebp/src/mux/muxread.c
    - condition: (wpi->img != NULL && wpi->img->next == NULL)
      pos:
        line_end: 418
        line_start: 418
        source_file: /src/libwebp/src/mux/muxread.c
    - condition: (dst == data + size)
      pos:
        line_end: 430
        line_start: 430
        source_file: /src/libwebp/src/mux/muxread.c
    constantsTouched: []
    func_position:
      end: 437
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 437
    functionName: SynthesizeBitstream
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 0
    functionsReached:
    - MuxEmitRiffHeader
    - ChunkDiskSize
    - assert
    - ChunkListEmit
    - WebPSafeMalloc
    - EmitVP8XChunk
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError SynthesizeBitstream(const WebPMuxImage* const wpi,\n
      \                                       WebPData* const bitstream)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ChunkGetIndexFromFourCC
      Src: /src/libwebp/src/mux/muxread.c:445,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxread.c:446,1
    - Dst: IsWPI
      Src: /src/libwebp/src/mux/muxread.c:447,1
    - Dst: MuxGet
      Src: /src/libwebp/src/mux/muxread.c:450,1
    - Dst: ChunkSearchList
      Src: /src/libwebp/src/mux/muxread.c:453,1
    - Dst: ChunkGetTagFromFourCC
      Src: /src/libwebp/src/mux/muxread.c:453,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - mux
    - fourcc
    - chunk_data
    argTypes:
    - WebPMux*
    - char[]
    - WebPData*
    assertStmts:
    - condition: (idx != IDX_LAST_CHUNK)
      pos:
        line_end: 445
        line_start: 445
        source_file: /src/libwebp/src/mux/muxread.c
    constantsTouched: []
    func_position:
      end: 458
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 458
    functionName: WebPMuxGetChunk
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 2
    functionsReached:
    - ChunkGetTagFromFourCC
    - assert
    - MuxGet
    - IsWPI
    - ChunkGetIndexFromFourCC
    - ChunkSearchList
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError WebPMuxGetChunk(const WebPMux* mux, const char fourcc[4],\n
      \                            WebPData* chunk_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChunkGetIdFromTag
      Src: /src/libwebp/src/mux/muxread.c:469,1
    - Dst: SynthesizeBitstream
      Src: /src/libwebp/src/mux/muxread.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - wpi
    - info
    argTypes:
    - WebPMuxImage*
    - WebPMuxFrameInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 471
    functionName: MuxGetImageInternal
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 0
    functionsReached:
    - ChunkGetIdFromTag
    - SynthesizeBitstream
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError MuxGetImageInternal(const WebPMuxImage* const wpi,\n
      \                                       WebPMuxFrameInfo* const info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxread.c:478,1
    - Dst: GetLE24
      Src: /src/libwebp/src/mux/muxread.c:483,1
    - Dst: GetLE24
      Src: /src/libwebp/src/mux/muxread.c:484,1
    - Dst: GetLE24
      Src: /src/libwebp/src/mux/muxread.c:487,1
    - Dst: ChunkGetIdFromTag
      Src: /src/libwebp/src/mux/muxread.c:492,1
    - Dst: SynthesizeBitstream
      Src: /src/libwebp/src/mux/muxread.c:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - wpi
    - frame
    argTypes:
    - WebPMuxImage*
    - WebPMuxFrameInfo*
    assertStmts:
    - condition: (wpi->header != NULL)
      pos:
        line_end: 477
        line_start: 477
        source_file: /src/libwebp/src/mux/muxread.c
    constantsTouched: []
    func_position:
      end: 494
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 494
    functionName: MuxGetFrameInternal
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 0
    functionsReached:
    - assert
    - GetLE24
    - ChunkGetIdFromTag
    - SynthesizeBitstream
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError MuxGetFrameInternal(const WebPMuxImage* const wpi,\n
      \                                       WebPMuxFrameInfo* const frame)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MuxImageGetNth
      Src: /src/libwebp/src/mux/muxread.c:506,1
    - Dst: MuxGetImageInternal
      Src: /src/libwebp/src/mux/muxread.c:511,1
    - Dst: MuxGetFrameInternal
      Src: /src/libwebp/src/mux/muxread.c:513,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - mux
    - nth
    - frame
    argTypes:
    - WebPMux*
    - uint32_t
    - WebPMuxFrameInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 496
    functionDepth: 4
    functionLinenumber: 496
    functionLinenumberEnd: 515
    functionName: WebPMuxGetFrame
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 2
    functionsReached:
    - MuxGetImageInternal
    - MuxGetFrameInternal
    - MuxImageGetNth
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError WebPMuxGetFrame(const WebPMux* mux, uint32_t nth,\n                             WebPMuxFrameInfo*
      frame)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MuxGet
      Src: /src/libwebp/src/mux/muxread.c:524,1
    - Dst: GetLE32
      Src: /src/libwebp/src/mux/muxread.c:527,1
    - Dst: GetLE16
      Src: /src/libwebp/src/mux/muxread.c:528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - mux
    - params
    argTypes:
    - WebPMux*
    - WebPMuxAnimParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 517
    functionDepth: 2
    functionLinenumber: 517
    functionLinenumberEnd: 531
    functionName: WebPMuxGetAnimationParams
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 2
    functionsReached:
    - GetLE32
    - MuxGet
    - GetLE16
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError WebPMuxGetAnimationParams(const WebPMux* mux,\n                                       WebPMuxAnimParams*
      params)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - id
    argTypes:
    - WebPChunkId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 540
    functionName: ChunkGetIndexFromId
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CHUNK_INDEX
    signature: CHUNK_INDEX ChunkGetIndexFromId(WebPChunkId id)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - chunk_list
    - tag
    argTypes:
    - WebPChunk*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 553
    functionName: CountChunks
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CountChunks(const WebPChunk* const chunk_list, uint32_t tag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsWPI
      Src: /src/libwebp/src/mux/muxread.c:561,1
    - Dst: MuxImageCount
      Src: /src/libwebp/src/mux/muxread.c:562,1
    - Dst: MuxGetChunkListFromId
      Src: /src/libwebp/src/mux/muxread.c:564,1
    - Dst: ChunkGetIndexFromId
      Src: /src/libwebp/src/mux/muxread.c:565,1
    - Dst: CountChunks
      Src: /src/libwebp/src/mux/muxread.c:566,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - mux
    - id
    - num_elements
    argTypes:
    - WebPMux*
    - WebPChunkId
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 570
    functionName: WebPMuxNumChunks
    functionSourceFile: /src/libwebp/src/mux/muxread.c
    functionUses: 2
    functionsReached:
    - CountChunks
    - IsWPI
    - MuxImageCount
    - MuxGetChunkListFromId
    - ChunkGetIndexFromId
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError WebPMuxNumChunks(const WebPMux* mux, WebPChunkId id,\n
      \                             int* num_elements)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - enc
    argTypes:
    - WebPAnimEncoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: ResetCounters
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetCounters(WebPAnimEncoder* const enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - enc_options
    argTypes:
    - WebPAnimEncoderOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: DisableKeyframes
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DisableKeyframes(WebPAnimEncoderOptions* const enc_options)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DisableKeyframes
      Src: /src/libwebp/src/mux/anim_encode.c:151,1
    - Dst: DisableKeyframes
      Src: /src/libwebp/src/mux/anim_encode.c:159,1
    - Dst: fprintf
      Src: /src/libwebp/src/mux/anim_encode.c:166,1
    - Dst: fprintf
      Src: /src/libwebp/src/mux/anim_encode.c:176,1
    - Dst: fprintf
      Src: /src/libwebp/src/mux/anim_encode.c:186,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:191,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - enc_options
    argTypes:
    - WebPAnimEncoderOptions*
    assertStmts:
    - condition: (enc_options->kmin < enc_options->kmax)
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 192
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 192
    functionName: SanitizeEncoderOptions
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - DisableKeyframes
    - assert
    - fprintf
    linkageType: ''
    returnType: void
    signature: void SanitizeEncoderOptions(WebPAnimEncoderOptions* const enc_options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DisableKeyframes
      Src: /src/libwebp/src/mux/anim_encode.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - enc_options
    argTypes:
    - WebPAnimEncoderOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 203
    functionName: DefaultEncoderOptions
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - DisableKeyframes
    linkageType: ''
    returnType: void
    signature: void DefaultEncoderOptions(WebPAnimEncoderOptions* const enc_options)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_ABI_IS_INCOMPATIBLE
      Src: /src/libwebp/src/mux/anim_encode.c:208,1
    - Dst: DefaultEncoderOptions
      Src: /src/libwebp/src/mux/anim_encode.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - enc_options
    - abi_version
    argTypes:
    - WebPAnimEncoderOptions*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 213
    functionName: WebPAnimEncoderOptionsInitInternal
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - WEBP_ABI_IS_INCOMPATIBLE
    - DefaultEncoderOptions
    linkageType: ''
    returnType: int
    signature: "int WebPAnimEncoderOptionsInitInternal(WebPAnimEncoderOptions* enc_options,\n
      \                                      int abi_version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - picture
    - left
    - top
    - width
    - height
    argTypes:
    - WebPPicture*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 229
    functionName: ClearRectangle
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ClearRectangle(WebPPicture* const picture, int left, int top,\n
      \                          int width, int height)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ClearRectangle
      Src: /src/libwebp/src/mux/anim_encode.c:234,1
    - Dst: ClearRectangle
      Src: /src/libwebp/src/mux/anim_encode.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - picture
    - rect
    argTypes:
    - WebPPicture*
    - FrameRectangle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 239
    functionName: WebPUtilClearPic
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - ClearRectangle
    linkageType: ''
    returnType: void
    signature: "void WebPUtilClearPic(WebPPicture* const picture,\n                             const
      FrameRectangle* const rect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enc
    argTypes:
    - WebPAnimEncoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: MarkNoError
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MarkNoError(WebPAnimEncoder* const enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libwebp/src/mux/anim_encode.c:246,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - enc
    - str
    argTypes:
    - WebPAnimEncoder*
    - char*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 246
        line_start: 246
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: MarkError
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - assert
    - snprintf
    linkageType: ''
    returnType: void
    signature: void MarkError(WebPAnimEncoder* const enc, const char* str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libwebp/src/mux/anim_encode.c:253,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - enc
    - str
    - error_code
    argTypes:
    - WebPAnimEncoder*
    - char*
    - int
    assertStmts:
    - condition: (0)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 257
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 257
    functionName: MarkError2
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - assert
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void MarkError2(WebPAnimEncoder* const enc, const char* str,\n                       int
      error_code)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_ABI_IS_INCOMPATIBLE
      Src: /src/libwebp/src/mux/anim_encode.c:264,1
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/mux/anim_encode.c:272,1
    - Dst: MarkNoError
      Src: /src/libwebp/src/mux/anim_encode.c:274,1
    - Dst: SanitizeEncoderOptions
      Src: /src/libwebp/src/mux/anim_encode.c:281,1
    - Dst: DefaultEncoderOptions
      Src: /src/libwebp/src/mux/anim_encode.c:283,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/src/mux/anim_encode.c:287,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/src/mux/anim_encode.c:288,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/src/mux/anim_encode.c:289,1
    - Dst: WebPPictureAlloc
      Src: /src/libwebp/src/mux/anim_encode.c:295,1
    - Dst: WebPPictureCopy
      Src: /src/libwebp/src/mux/anim_encode.c:296,1
    - Dst: WebPPictureCopy
      Src: /src/libwebp/src/mux/anim_encode.c:297,1
    - Dst: WebPUtilClearPic
      Src: /src/libwebp/src/mux/anim_encode.c:300,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/mux/anim_encode.c:304,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/mux/anim_encode.c:307,1
    - Dst: ResetCounters
      Src: /src/libwebp/src/mux/anim_encode.c:312,1
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/mux/anim_encode.c:319,1
    - Dst: WebPMuxNew
      Src: /src/libwebp/src/mux/anim_encode.c:322,1
    - Dst: WebPAnimEncoderDelete
      Src: /src/libwebp/src/mux/anim_encode.c:335,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 4
    argNames:
    - width
    - height
    - enc_options
    - abi_version
    argTypes:
    - int
    - int
    - WebPAnimEncoderOptions*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 337
    functionName: WebPAnimEncoderNewInternal
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - WebPMuxNew
    - WebPPictureCopy
    - SanitizeEncoderOptions
    - WebPAnimEncoderDelete
    - DefaultEncoderOptions
    - WebPSafeCalloc
    - WebPUtilClearPic
    - WebPPictureAlloc
    - WebPSafeMalloc
    - ResetCounters
    - MarkNoError
    - WEBP_ABI_IS_INCOMPATIBLE
    - WebPPictureInit
    linkageType: ''
    returnType: WebPAnimEncoder
    signature: "WebPAnimEncoder * WebPAnimEncoderNewInternal(\n    int width, int
      height, const WebPAnimEncoderOptions* enc_options,\n    int abi_version)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPDataClear
      Src: /src/libwebp/src/mux/anim_encode.c:342,1
    - Dst: WebPDataClear
      Src: /src/libwebp/src/mux/anim_encode.c:343,1
    - Dst: memset
      Src: /src/libwebp/src/mux/anim_encode.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - encoded_frame
    argTypes:
    - EncodedFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 346
    functionName: FrameRelease
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - memset
    - WebPDataClear
    linkageType: ''
    returnType: void
    signature: void FrameRelease(EncodedFrame* const encoded_frame)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureFree
      Src: /src/libwebp/src/mux/anim_encode.c:350,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/src/mux/anim_encode.c:351,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/src/mux/anim_encode.c:352,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/mux/anim_encode.c:353,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/mux/anim_encode.c:354,1
    - Dst: FrameRelease
      Src: /src/libwebp/src/mux/anim_encode.c:358,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/mux/anim_encode.c:360,1
    - Dst: WebPMuxDelete
      Src: /src/libwebp/src/mux/anim_encode.c:362,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/mux/anim_encode.c:363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - enc
    argTypes:
    - WebPAnimEncoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 365
    functionName: WebPAnimEncoderDelete
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 5
    functionsReached:
    - WebPPictureFree
    - FrameRelease
    - WebPMuxDelete
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void WebPAnimEncoderDelete(WebPAnimEncoder* enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - position
    argTypes:
    - WebPAnimEncoder*
    - size_t
    assertStmts:
    - condition: (enc->start + position < enc->size)
      pos:
        line_end: 372
        line_start: 372
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 375
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 375
    functionName: GetFrame
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 4
    functionsReached:
    - assert
    linkageType: ''
    returnType: EncodedFrame
    signature: "EncodedFrame * GetFrame(const WebPAnimEncoder* const enc,\n                              size_t
      position)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - src
    - src_step
    - dst
    - dst_step
    - length
    - max_allowed_diff
    argTypes:
    - uint32_t*
    - int
    - uint32_t*
    - int
    - int
    - int
    assertStmts:
    - condition: (length > 0)
      pos:
        line_end: 386
        line_start: 386
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 396
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 396
    functionName: ComparePixelsLossless
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ComparePixelsLossless(const uint32_t* src, int src_step,\n
      \                                            const uint32_t* dst, int dst_step,\n
      \                                            int length, int max_allowed_diff)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/libwebp/src/mux/anim_encode.c:412,1
    - Dst: abs
      Src: /src/libwebp/src/mux/anim_encode.c:413,1
    - Dst: abs
      Src: /src/libwebp/src/mux/anim_encode.c:414,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - src
    - dst
    - max_allowed_diff
    argTypes:
    - uint32_t
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 415
    functionName: PixelsAreSimilar
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - abs
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PixelsAreSimilar(uint32_t src, uint32_t dst,\n                                        int
      max_allowed_diff)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:422,1
    - Dst: PixelsAreSimilar
      Src: /src/libwebp/src/mux/anim_encode.c:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - src
    - src_step
    - dst
    - dst_step
    - length
    - max_allowed_diff
    argTypes:
    - uint32_t*
    - int
    - uint32_t*
    - int
    - int
    - int
    assertStmts:
    - condition: (length > 0)
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 431
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 431
    functionName: ComparePixelsLossy
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - assert
    - PixelsAreSimilar
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ComparePixelsLossy(const uint32_t* src, int src_step,\n
      \                                         const uint32_t* dst, int dst_step,\n
      \                                         int length, int max_allowed_diff)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - rect
    argTypes:
    - FrameRectangle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 435
    functionName: IsEmptyRect
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IsEmptyRect(const FrameRectangle* const rect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pow
      Src: /src/libwebp/src/mux/anim_encode.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - quality
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: QualityToMaxDiff
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - pow
    linkageType: ''
    returnType: int
    signature: int QualityToMaxDiff(float quality)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: QualityToMaxDiff
      Src: /src/libwebp/src/mux/anim_encode.c:451,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:455,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:456,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:457,1
    - Dst: compare_pixels
      Src: /src/libwebp/src/mux/anim_encode.c:465,1
    - Dst: compare_pixels
      Src: /src/libwebp/src/mux/anim_encode.c:481,1
    - Dst: compare_pixels
      Src: /src/libwebp/src/mux/anim_encode.c:496,1
    - Dst: compare_pixels
      Src: /src/libwebp/src/mux/anim_encode.c:512,1
    - Dst: IsEmptyRect
      Src: /src/libwebp/src/mux/anim_encode.c:521,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 5
    argNames:
    - src
    - dst
    - rect
    - is_lossless
    - quality
    argTypes:
    - WebPPicture*
    - WebPPicture*
    - FrameRectangle*
    - int
    - float
    assertStmts:
    - condition: (rect->y_offset + rect->height <= dst->height)
      pos:
        line_end: 456
        line_start: 456
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (rect->x_offset + rect->width <= dst->width)
      pos:
        line_end: 455
        line_start: 455
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (src->width == dst->width && src->height == dst->height)
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 528
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 528
    functionName: MinimizeChangeRectangle
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - QualityToMaxDiff
    - assert
    - IsEmptyRect
    - compare_pixels
    linkageType: ''
    returnType: void
    signature: "void MinimizeChangeRectangle(const WebPPicture* const src,\n                                    const
      WebPPicture* const dst,\n                                    FrameRectangle*
      const rect, int is_lossless,\n                                    float quality)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - rect
    argTypes:
    - FrameRectangle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 536
    functionName: SnapToEvenOffsets
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE SnapToEvenOffsets(FrameRectangle* const rect)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureInit
      Src: /src/libwebp/src/mux/anim_encode.c:553,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/src/mux/anim_encode.c:554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - params
    - should_try
    - empty_rect_allowed
    argTypes:
    - SubFrameParams*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 558
    functionName: SubFrameParamsInit
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - WebPPictureInit
    linkageType: ''
    returnType: int
    signature: "int SubFrameParamsInit(SubFrameParams* const params, int should_try,\n
      \                             int empty_rect_allowed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureFree
      Src: /src/libwebp/src/mux/anim_encode.c:561,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/src/mux/anim_encode.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - params
    argTypes:
    - SubFrameParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 563
    functionName: SubFrameParamsFree
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - WebPPictureFree
    linkageType: ''
    returnType: void
    signature: void SubFrameParamsFree(SubFrameParams* const params)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MinimizeChangeRectangle
      Src: /src/libwebp/src/mux/anim_encode.c:577,1
    - Dst: IsEmptyRect
      Src: /src/libwebp/src/mux/anim_encode.c:581,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:587,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:588,1
    - Dst: SnapToEvenOffsets
      Src: /src/libwebp/src/mux/anim_encode.c:592,1
    - Dst: WebPPictureView
      Src: /src/libwebp/src/mux/anim_encode.c:593,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 9
    argNames:
    - prev_canvas
    - curr_canvas
    - is_key_frame
    - is_first_frame
    - empty_rect_allowed
    - is_lossless
    - quality
    - rect
    - sub_frame
    argTypes:
    - WebPPicture*
    - WebPPicture*
    - int
    - int
    - int
    - int
    - float
    - FrameRectangle*
    - WebPPicture*
    assertStmts:
    - condition: (rect->y_offset == 0)
      pos:
        line_end: 587
        line_start: 587
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (rect->x_offset == 0)
      pos:
        line_end: 586
        line_start: 586
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 595
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 595
    functionName: GetSubRect
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - MinimizeChangeRectangle
    - WebPPictureView
    - assert
    - SnapToEvenOffsets
    - IsEmptyRect
    linkageType: ''
    returnType: int
    signature: "int GetSubRect(const WebPPicture* const prev_canvas,\n                      const
      WebPPicture* const curr_canvas, int is_key_frame,\n                      int
      is_first_frame, int empty_rect_allowed,\n                      int is_lossless,
      float quality,\n                      FrameRectangle* const rect,\n                      WebPPicture*
      const sub_frame)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetSubRect
      Src: /src/libwebp/src/mux/anim_encode.c:608,1
    - Dst: GetSubRect
      Src: /src/libwebp/src/mux/anim_encode.c:615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - prev_canvas
    - curr_canvas
    - is_key_frame
    - is_first_frame
    - quality
    - params
    argTypes:
    - WebPPicture*
    - WebPPicture*
    - int
    - int
    - float
    - SubFrameParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 599
    functionDepth: 3
    functionLinenumber: 599
    functionLinenumberEnd: 618
    functionName: GetSubRects
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - GetSubRect
    linkageType: ''
    returnType: int
    signature: "int GetSubRects(const WebPPicture* const prev_canvas,\n                       const
      WebPPicture* const curr_canvas, int is_key_frame,\n                       int
      is_first_frame, float quality,\n                       SubFrameParams* const
      params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - min_v
    - max_v
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 622
    functionName: clip
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE clip(int v, int min_v, int max_v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clip
      Src: /src/libwebp/src/mux/anim_encode.c:637,1
    - Dst: clip
      Src: /src/libwebp/src/mux/anim_encode.c:638,1
    - Dst: clip
      Src: /src/libwebp/src/mux/anim_encode.c:639,1
    - Dst: clip
      Src: /src/libwebp/src/mux/anim_encode.c:640,1
    - Dst: clip
      Src: /src/libwebp/src/mux/anim_encode.c:643,1
    - Dst: clip
      Src: /src/libwebp/src/mux/anim_encode.c:644,1
    - Dst: MinimizeChangeRectangle
      Src: /src/libwebp/src/mux/anim_encode.c:645,1
    - Dst: SnapToEvenOffsets
      Src: /src/libwebp/src/mux/anim_encode.c:647,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 8
    argNames:
    - prev_canvas
    - curr_canvas
    - is_lossless
    - quality
    - x_offset
    - y_offset
    - width
    - height
    argTypes:
    - WebPPicture*
    - WebPPicture*
    - int
    - float
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 624
    functionDepth: 2
    functionLinenumber: 624
    functionLinenumberEnd: 653
    functionName: WebPAnimEncoderRefineRect
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - clip
    - SnapToEvenOffsets
    - MinimizeChangeRectangle
    linkageType: ''
    returnType: int
    signature: "int WebPAnimEncoderRefineRect(const WebPPicture* const prev_canvas,\n
      \                             const WebPPicture* const curr_canvas,\n                              int
      is_lossless, float quality,\n                              int* const x_offset,
      int* const y_offset,\n                              int* const width, int* const
      height)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:658,1
    - Dst: WebPUtilClearPic
      Src: /src/libwebp/src/mux/anim_encode.c:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dispose_method
    - rect
    - curr_canvas
    argTypes:
    - int
    - FrameRectangle*
    - WebPPicture*
    assertStmts:
    - condition: (rect != NULL)
      pos:
        line_end: 657
        line_start: 657
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 662
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 662
    functionName: DisposeFrameRectangle
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPUtilClearPic
    linkageType: ''
    returnType: void
    signature: "void DisposeFrameRectangle(int dispose_method,\n                                  const
      FrameRectangle* const rect,\n                                  WebPPicture*
      const curr_canvas)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rect
    argTypes:
    - FrameRectangle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 666
    functionName: RectArea
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t RectArea(const FrameRectangle* const rect)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:672,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:673,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:674,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - src
    - dst
    - rect
    argTypes:
    - WebPPicture*
    - WebPPicture*
    - FrameRectangle*
    assertStmts:
    - condition: (src->width == dst->width && src->height == dst->height)
      pos:
        line_end: 671
        line_start: 671
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (rect->y_offset + rect->height <= dst->height)
      pos:
        line_end: 673
        line_start: 673
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (rect->x_offset + rect->width <= dst->width)
      pos:
        line_end: 672
        line_start: 672
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 688
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 688
    functionName: IsLosslessBlendingPossible
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int IsLosslessBlendingPossible(const WebPPicture* const src,\n                                      const
      WebPPicture* const dst,\n                                      const FrameRectangle*
      const rect)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QualityToMaxDiff
      Src: /src/libwebp/src/mux/anim_encode.c:694,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:696,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:697,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:698,1
    - Dst: PixelsAreSimilar
      Src: /src/libwebp/src/mux/anim_encode.c:705,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - src
    - dst
    - rect
    - quality
    argTypes:
    - WebPPicture*
    - WebPPicture*
    - FrameRectangle*
    - float
    assertStmts:
    - condition: (rect->x_offset + rect->width <= dst->width)
      pos:
        line_end: 696
        line_start: 696
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (rect->y_offset + rect->height <= dst->height)
      pos:
        line_end: 697
        line_start: 697
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (src->width == dst->width && src->height == dst->height)
      pos:
        line_end: 695
        line_start: 695
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 713
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 713
    functionName: IsLossyBlendingPossible
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - QualityToMaxDiff
    - assert
    - PixelsAreSimilar
    linkageType: ''
    returnType: int
    signature: "int IsLossyBlendingPossible(const WebPPicture* const src,\n                                   const
      WebPPicture* const dst,\n                                   const FrameRectangle*
      const rect,\n                                   float quality)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:727,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:728,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - src
    - rect
    - dst
    - carryover_mask
    argTypes:
    - WebPPicture*
    - FrameRectangle*
    - WebPPicture*
    - uint8_t*
    assertStmts:
    - condition: (src != NULL && dst != NULL && rect != NULL)
      pos:
        line_end: 726
        line_start: 726
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (src->width == dst->width && src->height == dst->height)
      pos:
        line_end: 727
        line_start: 727
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 742
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 742
    functionName: IncreaseTransparency
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int IncreaseTransparency(const WebPPicture* const src,\n                                const
      FrameRectangle* const rect,\n                                WebPPicture* const
      dst,\n                                uint8_t* const carryover_mask)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: QualityToMaxDiff
      Src: /src/libwebp/src/mux/anim_encode.c:755,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:767,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:768,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:769,1
    - Dst: PixelsAreSimilar
      Src: /src/libwebp/src/mux/anim_encode.c:784,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 5
    argNames:
    - src
    - rect
    - dst
    - quality
    - carryover_mask
    argTypes:
    - WebPPicture*
    - FrameRectangle*
    - WebPPicture*
    - float
    - uint8_t*
    assertStmts:
    - condition: ((block_size & (block_size - 1)) == 0)
      pos:
        line_end: 768
        line_start: 768
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (src->width == dst->width && src->height == dst->height)
      pos:
        line_end: 767
        line_start: 767
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (src != NULL && dst != NULL && rect != NULL)
      pos:
        line_end: 766
        line_start: 766
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 811
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 811
    functionName: FlattenSimilarBlocks
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - QualityToMaxDiff
    - assert
    - PixelsAreSimilar
    linkageType: ''
    returnType: int
    signature: "int FlattenSimilarBlocks(const WebPPicture* const src,\n                                const
      FrameRectangle* const rect,\n                                WebPPicture* const
      dst, float quality,\n                                uint8_t* const carryover_mask)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPEncode
      Src: /src/libwebp/src/mux/anim_encode.c:818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - config
    - pic
    - memory
    argTypes:
    - WebPConfig*
    - WebPPicture*
    - WebPMemoryWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 822
    functionName: EncodeFrame
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - WebPEncode
    linkageType: ''
    returnType: int
    signature: "int EncodeFrame(const WebPConfig* const config, WebPPicture* const
      pic,\n                       WebPMemoryWriter* const memory)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:845,1
    - Dst: memset
      Src: /src/libwebp/src/mux/anim_encode.c:846,1
    - Dst: WebPMemoryWriterInit
      Src: /src/libwebp/src/mux/anim_encode.c:859,1
    - Dst: EncodeFrame
      Src: /src/libwebp/src/mux/anim_encode.c:867,1
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/src/mux/anim_encode.c:876,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 5
    argNames:
    - sub_frame
    - rect
    - encoder_config
    - use_blending
    - candidate
    argTypes:
    - WebPPicture*
    - FrameRectangle*
    - WebPConfig*
    - int
    - Candidate*
    assertStmts:
    - condition: (candidate != NULL)
      pos:
        line_end: 844
        line_start: 844
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 878
      start: 838
    functionDepth: 2
    functionLinenumber: 838
    functionLinenumberEnd: 878
    functionName: EncodeCandidate
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPMemoryWriterClear
    - WebPMemoryWriterInit
    - memset
    - EncodeFrame
    linkageType: ''
    returnType: WebPEncodingError
    signature: "WebPEncodingError EncodeCandidate(WebPPicture* const sub_frame,\n
      \                                        const FrameRectangle* const rect,\n
      \                                        const WebPConfig* const encoder_config,\n
      \                                        int use_blending,\n                                         Candidate*
      const candidate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPCopyPixels
      Src: /src/libwebp/src/mux/anim_encode.c:882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - enc
    argTypes:
    - WebPAnimEncoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 887
    functionName: CopyCurrentCanvas
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - WebPCopyPixels
    linkageType: ''
    returnType: void
    signature: void CopyCurrentCanvas(WebPAnimEncoder* const enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - memory
    - encoded_data
    argTypes:
    - WebPMemoryWriter*
    - WebPData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 904
    functionName: GetEncodedData
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GetEncodedData(const WebPMemoryWriter* const memory,\n                           WebPData*
      const encoded_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetFrame
      Src: /src/libwebp/src/mux/anim_encode.c:909,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - enc
    argTypes:
    - WebPAnimEncoder*
    assertStmts:
    - condition: (enc->count >= 2)
      pos:
        line_end: 909
        line_start: 909
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 914
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 914
    functionName: GetPreviousDisposeMethod
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - assert
    - GetFrame
    linkageType: ''
    returnType: WebPMuxAnimDispose
    signature: WebPMuxAnimDispose GetPreviousDisposeMethod(WebPAnimEncoder* const
      enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetFrame
      Src: /src/libwebp/src/mux/anim_encode.c:920,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:921,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - enc
    - dispose_method
    argTypes:
    - WebPAnimEncoder*
    - WebPMuxAnimDispose
    assertStmts:
    - condition: (enc->count >= 2)
      pos:
        line_end: 920
        line_start: 920
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (dispose_method == WEBP_MUX_DISPOSE_NONE)
      pos:
        line_end: 923
        line_start: 923
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 933
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 933
    functionName: SetPreviousDisposeMethod
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - assert
    - GetFrame
    linkageType: ''
    returnType: void
    signature: "void SetPreviousDisposeMethod(WebPAnimEncoder* const enc,\n                                     WebPMuxAnimDispose
      dispose_method)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetEncodedData
      Src: /src/libwebp/src/mux/anim_encode.c:950,1
    - Dst: SetPreviousDisposeMethod
      Src: /src/libwebp/src/mux/anim_encode.c:955,1
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/src/mux/anim_encode.c:987,1
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/src/mux/anim_encode.c:993,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 6
    argNames:
    - enc
    - candidate
    - dispose_method
    - is_key_frame
    - best_candidate
    - encoded_frame
    argTypes:
    - WebPAnimEncoder*
    - Candidate*
    - WebPMuxAnimDispose
    - int
    - Candidate**
    - EncodedFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 939
    functionDepth: 1
    functionLinenumber: 939
    functionLinenumberEnd: 996
    functionName: PickBestCandidate
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - SetPreviousDisposeMethod
    - GetEncodedData
    - WebPMemoryWriterClear
    linkageType: ''
    returnType: void
    signature: "void PickBestCandidate(WebPAnimEncoder* const enc,\n                              Candidate*
      const candidate,\n                              WebPMuxAnimDispose dispose_method,\n
      \                             int is_key_frame,\n                              Candidate**
      const best_candidate,\n                              EncodedFrame* const encoded_frame)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CopyCurrentCanvas
      Src: /src/libwebp/src/mux/anim_encode.c:1020,1
    - Dst: IsLosslessBlendingPossible
      Src: /src/libwebp/src/mux/anim_encode.c:1022,1
    - Dst: IsLossyBlendingPossible
      Src: /src/libwebp/src/mux/anim_encode.c:1026,1
    - Dst: WebPGetColorPalette
      Src: /src/libwebp/src/mux/anim_encode.c:1037,1
    - Dst: CopyCurrentCanvas
      Src: /src/libwebp/src/mux/anim_encode.c:1044,1
    - Dst: memset
      Src: /src/libwebp/src/mux/anim_encode.c:1048,1
    - Dst: IncreaseTransparency
      Src: /src/libwebp/src/mux/anim_encode.c:1051,1
    - Dst: EncodeCandidate
      Src: /src/libwebp/src/mux/anim_encode.c:1054,1
    - Dst: PickBestCandidate
      Src: /src/libwebp/src/mux/anim_encode.c:1058,1
    - Dst: CopyCurrentCanvas
      Src: /src/libwebp/src/mux/anim_encode.c:1062,1
    - Dst: memset
      Src: /src/libwebp/src/mux/anim_encode.c:1066,1
    - Dst: FlattenSimilarBlocks
      Src: /src/libwebp/src/mux/anim_encode.c:1068,1
    - Dst: EncodeCandidate
      Src: /src/libwebp/src/mux/anim_encode.c:1073,1
    - Dst: PickBestCandidate
      Src: /src/libwebp/src/mux/anim_encode.c:1078,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 11
    argNames:
    - enc
    - candidates
    - dispose_method
    - canvas_carryover_disposed
    - is_lossless
    - is_key_frame
    - params
    - config_ll
    - config_lossy
    - best_candidate
    - encoded_frame
    argTypes:
    - WebPAnimEncoder*
    - Candidate[]
    - WebPMuxAnimDispose
    - WebPPicture*
    - int
    - int
    - SubFrameParams*
    - WebPConfig*
    - WebPConfig*
    - Candidate**
    - EncodedFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1000
    functionDepth: 3
    functionLinenumber: 1000
    functionLinenumberEnd: 1082
    functionName: GenerateCandidates
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - IsLossyBlendingPossible
    - IsLosslessBlendingPossible
    - FlattenSimilarBlocks
    - IncreaseTransparency
    - CopyCurrentCanvas
    - memset
    - WebPGetColorPalette
    - EncodeCandidate
    - PickBestCandidate
    linkageType: ''
    returnType: WebPEncodingError
    signature: "WebPEncodingError GenerateCandidates(\n    WebPAnimEncoder* const
      enc, Candidate candidates[CANDIDATE_COUNT],\n    WebPMuxAnimDispose dispose_method,\n
      \   const WebPPicture* const canvas_carryover_disposed, int is_lossless,\n    int
      is_key_frame, SubFrameParams* const params,\n    const WebPConfig* const config_ll,
      const WebPConfig* const config_lossy,\n    Candidate** const best_candidate,
      EncodedFrame* const encoded_frame)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetFrame
      Src: /src/libwebp/src/mux/anim_encode.c:1089,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1092,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1093,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1096,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1098,1
    - Dst: GetFrame
      Src: /src/libwebp/src/mux/anim_encode.c:1121,1
    - Dst: WebPDataCopy
      Src: /src/libwebp/src/mux/anim_encode.c:1129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - enc
    - duration
    argTypes:
    - WebPAnimEncoder*
    - int
    assertStmts:
    - condition: "(!prev_enc_frame->is_key_frame ||\n         prev_enc_frame->sub_frame.duration
        ==\n             prev_enc_frame->key_frame.duration)"
      pos:
        line_end: 1094
        line_start: 1092
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (duration == (duration & (MAX_DURATION - 1)))
      pos:
        line_end: 1097
        line_start: 1097
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: "(prev_enc_frame->sub_frame.duration ==\n         (prev_enc_frame->sub_frame.duration
        & (MAX_DURATION - 1)))"
      pos:
        line_end: 1096
        line_start: 1095
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (enc->count >= 1)
      pos:
        line_end: 1091
        line_start: 1091
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 1144
      start: 1087
    functionDepth: 1
    functionLinenumber: 1087
    functionLinenumberEnd: 1144
    functionName: IncreasePreviousDuration
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - assert
    - GetFrame
    - WebPDataCopy
    linkageType: ''
    returnType: int
    signature: int IncreasePreviousDuration(WebPAnimEncoder* const enc, int duration)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1154,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1155,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1156,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - a
    - b
    - dst
    argTypes:
    - WebPPicture*
    - WebPPicture*
    - WebPPicture*
    assertStmts:
    - condition: (a->width == b->width && a->height == b->height)
      pos:
        line_end: 1153
        line_start: 1153
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (a->use_argb && b->use_argb && dst->use_argb)
      pos:
        line_end: 1155
        line_start: 1155
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (a->width == dst->width && a->height == dst->height)
      pos:
        line_end: 1154
        line_start: 1154
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 1168
      start: 1147
    functionDepth: 0
    functionLinenumber: 1147
    functionLinenumberEnd: 1168
    functionName: CopyIdenticalPixels
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void CopyIdenticalPixels(const WebPPicture* const a,\n                                const
      WebPPicture* const b,\n                                WebPPicture* const dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1178,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - src
    - mask
    - dst
    argTypes:
    - WebPPicture*
    - uint8_t*
    - WebPPicture*
    assertStmts:
    - condition: (src->width == dst->width && src->height == dst->height)
      pos:
        line_end: 1177
        line_start: 1177
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (src->use_argb && dst->use_argb)
      pos:
        line_end: 1178
        line_start: 1178
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 1191
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1191
    functionName: CopyMaskedPixels
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void CopyMaskedPixels(const WebPPicture* const src,\n                             const
      uint8_t* const mask,\n                             WebPPicture* const dst)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SubFrameParamsInit
      Src: /src/libwebp/src/mux/anim_encode.c:1247,1
    - Dst: SubFrameParamsInit
      Src: /src/libwebp/src/mux/anim_encode.c:1248,1
    - Dst: memset
      Src: /src/libwebp/src/mux/anim_encode.c:1252,1
    - Dst: GetSubRects
      Src: /src/libwebp/src/mux/anim_encode.c:1255,1
    - Dst: IsEmptyRect
      Src: /src/libwebp/src/mux/anim_encode.c:1261,1
    - Dst: IsEmptyRect
      Src: /src/libwebp/src/mux/anim_encode.c:1262,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1265,1
    - Dst: WebPCopyPixels
      Src: /src/libwebp/src/mux/anim_encode.c:1276,1
    - Dst: DisposeFrameRectangle
      Src: /src/libwebp/src/mux/anim_encode.c:1277,1
    - Dst: GetSubRects
      Src: /src/libwebp/src/mux/anim_encode.c:1280,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1286,1
    - Dst: IsEmptyRect
      Src: /src/libwebp/src/mux/anim_encode.c:1286,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1287,1
    - Dst: IsEmptyRect
      Src: /src/libwebp/src/mux/anim_encode.c:1287,1
    - Dst: RectArea
      Src: /src/libwebp/src/mux/anim_encode.c:1292,1
    - Dst: RectArea
      Src: /src/libwebp/src/mux/anim_encode.c:1293,1
    - Dst: RectArea
      Src: /src/libwebp/src/mux/anim_encode.c:1295,1
    - Dst: RectArea
      Src: /src/libwebp/src/mux/anim_encode.c:1296,1
    - Dst: GenerateCandidates
      Src: /src/libwebp/src/mux/anim_encode.c:1304,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1312,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1313,1
    - Dst: GenerateCandidates
      Src: /src/libwebp/src/mux/anim_encode.c:1314,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1321,1
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/src/mux/anim_encode.c:1328,1
    - Dst: SubFrameParamsFree
      Src: /src/libwebp/src/mux/anim_encode.c:1333,1
    - Dst: SubFrameParamsFree
      Src: /src/libwebp/src/mux/anim_encode.c:1334,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 71
    argCount: 6
    argNames:
    - enc
    - config
    - is_key_frame
    - best_candidate_rect
    - encoded_frame
    - frame_skipped
    argTypes:
    - WebPAnimEncoder*
    - WebPConfig*
    - int
    - FrameRectangle*
    - EncodedFrame*
    - int*
    assertStmts:
    - condition: (!IsEmptyRect(&dispose_bg_params.rect_lossy))
      pos:
        line_end: 1286
        line_start: 1286
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (!IsEmptyRect(&dispose_bg_params.rect_ll))
      pos:
        line_end: 1285
        line_start: 1285
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (!enc->is_first_frame)
      pos:
        line_end: 1311
        line_start: 1311
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (dispose_bg_possible)
      pos:
        line_end: 1312
        line_start: 1312
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (empty_rect_allowed_none)
      pos:
        line_end: 1264
        line_start: 1264
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (best_candidate != NULL)
      pos:
        line_end: 1320
        line_start: 1320
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 1336
      start: 1197
    functionDepth: 4
    functionLinenumber: 1197
    functionLinenumberEnd: 1336
    functionName: SetFrame
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - SubFrameParamsInit
    - GetSubRects
    - RectArea
    - assert
    - GenerateCandidates
    - IsEmptyRect
    - WebPMemoryWriterClear
    - DisposeFrameRectangle
    - WebPCopyPixels
    - memset
    - SubFrameParamsFree
    linkageType: ''
    returnType: WebPEncodingError
    signature: "WebPEncodingError SetFrame(WebPAnimEncoder* const enc,\n                                  const
      WebPConfig* const config,\n                                  int is_key_frame,\n
      \                                 FrameRectangle* const best_candidate_rect,\n
      \                                 EncodedFrame* const encoded_frame,\n                                  int*
      const frame_skipped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoded_frame
    argTypes:
    - EncodedFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1340
    functionDepth: 0
    functionLinenumber: 1340
    functionLinenumberEnd: 1343
    functionName: KeyFramePenalty
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t KeyFramePenalty(const EncodedFrame* const encoded_frame)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: GetFrame
      Src: /src/libwebp/src/mux/anim_encode.c:1351,1
    - Dst: SetFrame
      Src: /src/libwebp/src/mux/anim_encode.c:1358,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1361,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1362,1
    - Dst: CopyIdenticalPixels
      Src: /src/libwebp/src/mux/anim_encode.c:1378,1
    - Dst: SetFrame
      Src: /src/libwebp/src/mux/anim_encode.c:1383,1
    - Dst: SetFrame
      Src: /src/libwebp/src/mux/anim_encode.c:1398,1
    - Dst: SetFrame
      Src: /src/libwebp/src/mux/anim_encode.c:1404,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1407,1
    - Dst: KeyFramePenalty
      Src: /src/libwebp/src/mux/anim_encode.c:1410,1
    - Dst: GetFrame
      Src: /src/libwebp/src/mux/anim_encode.c:1413,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1414,1
    - Dst: WebPCopyPixels
      Src: /src/libwebp/src/mux/anim_encode.c:1445,1
    - Dst: GetPreviousDisposeMethod
      Src: /src/libwebp/src/mux/anim_encode.c:1455,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1456,1
    - Dst: DisposeFrameRectangle
      Src: /src/libwebp/src/mux/anim_encode.c:1458,1
    - Dst: WebPPictureView
      Src: /src/libwebp/src/mux/anim_encode.c:1463,1
    - Dst: WebPPictureView
      Src: /src/libwebp/src/mux/anim_encode.c:1466,1
    - Dst: CopyMaskedPixels
      Src: /src/libwebp/src/mux/anim_encode.c:1478,1
    - Dst: WebPCopyPixels
      Src: /src/libwebp/src/mux/anim_encode.c:1485,1
    - Dst: WebPCopyPixels
      Src: /src/libwebp/src/mux/anim_encode.c:1491,1
    - Dst: FrameRelease
      Src: /src/libwebp/src/mux/anim_encode.c:1508,1
    - Dst: MarkError2
      Src: /src/libwebp/src/mux/anim_encode.c:1513,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1517,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 105
    argCount: 2
    argNames:
    - enc
    - config
    argTypes:
    - WebPAnimEncoder*
    - WebPConfig*
    assertStmts:
    - condition: (frame_skipped == 0)
      pos:
        line_end: 1406
        line_start: 1406
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: "(prev_dispose_method == WEBP_MUX_DISPOSE_NONE ||\n           !enc->prev_candidate_undecided)"
      pos:
        line_end: 1456
        line_start: 1455
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (frame_skipped == 0)
      pos:
        line_end: 1360
        line_start: 1360
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (ok || error_code != VP8_ENC_OK)
      pos:
        line_end: 1516
        line_start: 1516
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (position == 0 && enc->count == 1)
      pos:
        line_end: 1361
        line_start: 1361
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (old_keyframe->is_key_frame)
      pos:
        line_end: 1413
        line_start: 1413
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 1519
      start: 1345
    functionDepth: 2
    functionLinenumber: 1345
    functionLinenumberEnd: 1519
    functionName: CacheFrame
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - WebPPictureView
    - GetFrame
    - assert
    - SetFrame
    - MarkError2
    - DisposeFrameRectangle
    - WebPCopyPixels
    - CopyMaskedPixels
    - FrameRelease
    - GetPreviousDisposeMethod
    - CopyIdenticalPixels
    - KeyFramePenalty
    linkageType: ''
    returnType: int
    signature: "int CacheFrame(WebPAnimEncoder* const enc,\n                      const
      WebPConfig* const config)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetFrame
      Src: /src/libwebp/src/mux/anim_encode.c:1524,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1527,1
    - Dst: WebPMuxPushFrame
      Src: /src/libwebp/src/mux/anim_encode.c:1528,1
    - Dst: MarkError2
      Src: /src/libwebp/src/mux/anim_encode.c:1530,1
    - Dst: fprintf
      Src: /src/libwebp/src/mux/anim_encode.c:1534,1
    - Dst: FrameRelease
      Src: /src/libwebp/src/mux/anim_encode.c:1539,1
    - Dst: FrameRelease
      Src: /src/libwebp/src/mux/anim_encode.c:1552,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - enc
    argTypes:
    - WebPAnimEncoder*
    assertStmts:
    - condition: (enc->mux != NULL)
      pos:
        line_end: 1526
        line_start: 1526
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 1556
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1556
    functionName: FlushFrames
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - GetFrame
    - assert
    - MarkError2
    - fprintf
    - FrameRelease
    - WebPMuxPushFrame
    linkageType: ''
    returnType: int
    signature: int FlushFrames(WebPAnimEncoder* const enc)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: MarkNoError
      Src: /src/libwebp/src/mux/anim_encode.c:1569,1
    - Dst: MarkError
      Src: /src/libwebp/src/mux/anim_encode.c:1579,1
    - Dst: IncreasePreviousDuration
      Src: /src/libwebp/src/mux/anim_encode.c:1582,1
    - Dst: FlushFrames
      Src: /src/libwebp/src/mux/anim_encode.c:1588,1
    - Dst: MarkError
      Src: /src/libwebp/src/mux/anim_encode.c:1604,1
    - Dst: fprintf
      Src: /src/libwebp/src/mux/anim_encode.c:1610,1
    - Dst: WebPPictureYUVAToARGB
      Src: /src/libwebp/src/mux/anim_encode.c:1614,1
    - Dst: MarkError
      Src: /src/libwebp/src/mux/anim_encode.c:1615,1
    - Dst: WebPValidateConfig
      Src: /src/libwebp/src/mux/anim_encode.c:1621,1
    - Dst: MarkError
      Src: /src/libwebp/src/mux/anim_encode.c:1622,1
    - Dst: WebPConfigInit
      Src: /src/libwebp/src/mux/anim_encode.c:1627,1
    - Dst: MarkError
      Src: /src/libwebp/src/mux/anim_encode.c:1628,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1633,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1635,1
    - Dst: CopyCurrentCanvas
      Src: /src/libwebp/src/mux/anim_encode.c:1636,1
    - Dst: CacheFrame
      Src: /src/libwebp/src/mux/anim_encode.c:1638,1
    - Dst: FlushFrames
      Src: /src/libwebp/src/mux/anim_encode.c:1638,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 4
    argNames:
    - enc
    - frame
    - timestamp
    - encoder_config
    argTypes:
    - WebPAnimEncoder*
    - WebPPicture*
    - int
    - WebPConfig*
    assertStmts:
    - condition: (enc->curr_canvas == NULL)
      pos:
        line_end: 1632
        line_start: 1632
        source_file: /src/libwebp/src/mux/anim_encode.c
    - condition: (enc->curr_canvas_copy_modified == 1)
      pos:
        line_end: 1634
        line_start: 1634
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 1646
      start: 1561
    functionDepth: 3
    functionLinenumber: 1561
    functionLinenumberEnd: 1646
    functionName: WebPAnimEncoderAdd
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 4
    functionsReached:
    - WebPPictureYUVAToARGB
    - WebPValidateConfig
    - assert
    - FlushFrames
    - CacheFrame
    - fprintf
    - MarkError
    - CopyCurrentCanvas
    - IncreasePreviousDuration
    - MarkNoError
    - WebPConfigInit
    linkageType: ''
    returnType: int
    signature: "int WebPAnimEncoderAdd(WebPAnimEncoder* enc, WebPPicture* frame, int
      timestamp,\n                       const WebPConfig* encoder_config)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WebPInitDecoderConfig
      Src: /src/libwebp/src/mux/anim_encode.c:1656,1
    - Dst: WebPUtilClearPic
      Src: /src/libwebp/src/mux/anim_encode.c:1659,1
    - Dst: WebPGetFeatures
      Src: /src/libwebp/src/mux/anim_encode.c:1660,1
    - Dst: WebPPictureView
      Src: /src/libwebp/src/mux/anim_encode.c:1664,1
    - Dst: WebPDecode
      Src: /src/libwebp/src/mux/anim_encode.c:1674,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - frame
    - canvas
    argTypes:
    - WebPMuxFrameInfo*
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1651
    functionDepth: 1
    functionLinenumber: 1651
    functionLinenumberEnd: 1678
    functionName: DecodeFrameOntoCanvas
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - WebPPictureView
    - WebPInitDecoderConfig
    - WebPUtilClearPic
    - WebPDecode
    - WebPGetFeatures
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD DecodeFrameOntoCanvas(\n    const WebPMuxFrameInfo*
      const frame, WebPPicture* const canvas)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WebPMemoryWriterInit
      Src: /src/libwebp/src/mux/anim_encode.c:1685,1
    - Dst: WebPMemoryWriterInit
      Src: /src/libwebp/src/mux/anim_encode.c:1686,1
    - Dst: DecodeFrameOntoCanvas
      Src: /src/libwebp/src/mux/anim_encode.c:1688,1
    - Dst: EncodeFrame
      Src: /src/libwebp/src/mux/anim_encode.c:1689,1
    - Dst: GetEncodedData
      Src: /src/libwebp/src/mux/anim_encode.c:1690,1
    - Dst: EncodeFrame
      Src: /src/libwebp/src/mux/anim_encode.c:1693,1
    - Dst: GetEncodedData
      Src: /src/libwebp/src/mux/anim_encode.c:1695,1
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/src/mux/anim_encode.c:1696,1
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/src/mux/anim_encode.c:1698,1
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/src/mux/anim_encode.c:1704,1
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/src/mux/anim_encode.c:1705,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - enc
    - frame
    - full_image
    argTypes:
    - WebPAnimEncoder*
    - WebPMuxFrameInfo*
    - WebPData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1680
    functionDepth: 2
    functionLinenumber: 1680
    functionLinenumberEnd: 1707
    functionName: FrameToFullCanvas
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - GetEncodedData
    - WebPMemoryWriterClear
    - WebPMemoryWriterInit
    - EncodeFrame
    - DecodeFrameOntoCanvas
    linkageType: ''
    returnType: int
    signature: "int FrameToFullCanvas(WebPAnimEncoder* const enc,\n                             const
      WebPMuxFrameInfo* const frame,\n                             WebPData* const
      full_image)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: WebPMuxCreate
      Src: /src/libwebp/src/mux/anim_encode.c:1719,1
    - Dst: assert
      Src: /src/libwebp/src/mux/anim_encode.c:1721,1
    - Dst: WebPDataInit
      Src: /src/libwebp/src/mux/anim_encode.c:1722,1
    - Dst: WebPDataInit
      Src: /src/libwebp/src/mux/anim_encode.c:1723,1
    - Dst: WebPDataInit
      Src: /src/libwebp/src/mux/anim_encode.c:1724,1
    - Dst: WebPMuxGetFrame
      Src: /src/libwebp/src/mux/anim_encode.c:1726,1
    - Dst: WebPMuxGetCanvasSize
      Src: /src/libwebp/src/mux/anim_encode.c:1729,1
    - Dst: FrameToFullCanvas
      Src: /src/libwebp/src/mux/anim_encode.c:1731,1
    - Dst: WebPMuxSetImage
      Src: /src/libwebp/src/mux/anim_encode.c:1735,1
    - Dst: WebPMuxAssemble
      Src: /src/libwebp/src/mux/anim_encode.c:1737,1
    - Dst: WebPDataClear
      Src: /src/libwebp/src/mux/anim_encode.c:1741,1
    - Dst: WebPDataInit
      Src: /src/libwebp/src/mux/anim_encode.c:1743,1
    - Dst: WebPDataClear
      Src: /src/libwebp/src/mux/anim_encode.c:1747,1
    - Dst: WebPDataClear
      Src: /src/libwebp/src/mux/anim_encode.c:1748,1
    - Dst: WebPMuxDelete
      Src: /src/libwebp/src/mux/anim_encode.c:1749,1
    - Dst: WebPDataClear
      Src: /src/libwebp/src/mux/anim_encode.c:1750,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - enc
    - webp_data
    argTypes:
    - WebPAnimEncoder*
    - WebPData*
    assertStmts:
    - condition: (enc->out_frame_count == 1)
      pos:
        line_end: 1720
        line_start: 1720
        source_file: /src/libwebp/src/mux/anim_encode.c
    constantsTouched: []
    func_position:
      end: 1752
      start: 1712
    functionDepth: 5
    functionLinenumber: 1712
    functionLinenumberEnd: 1752
    functionName: OptimizeSingleFrame
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - WebPMuxSetImage
    - WebPMuxDelete
    - WebPMuxGetFrame
    - assert
    - WebPMuxCreate
    - FrameToFullCanvas
    - WebPMuxAssemble
    - WebPDataInit
    - WebPDataClear
    - WebPMuxGetCanvasSize
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError OptimizeSingleFrame(WebPAnimEncoder* const enc,\n                                        WebPData*
      const webp_data)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: MarkNoError
      Src: /src/libwebp/src/mux/anim_encode.c:1761,1
    - Dst: MarkError
      Src: /src/libwebp/src/mux/anim_encode.c:1764,1
    - Dst: MarkError
      Src: /src/libwebp/src/mux/anim_encode.c:1769,1
    - Dst: IncreasePreviousDuration
      Src: /src/libwebp/src/mux/anim_encode.c:1778,1
    - Dst: FlushFrames
      Src: /src/libwebp/src/mux/anim_encode.c:1785,1
    - Dst: WebPMuxSetCanvasSize
      Src: /src/libwebp/src/mux/anim_encode.c:1791,1
    - Dst: WebPMuxSetAnimationParams
      Src: /src/libwebp/src/mux/anim_encode.c:1794,1
    - Dst: WebPMuxAssemble
      Src: /src/libwebp/src/mux/anim_encode.c:1798,1
    - Dst: OptimizeSingleFrame
      Src: /src/libwebp/src/mux/anim_encode.c:1802,1
    - Dst: MarkError2
      Src: /src/libwebp/src/mux/anim_encode.c:1808,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 2
    argNames:
    - enc
    - webp_data
    argTypes:
    - WebPAnimEncoder*
    - WebPData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1754
    functionDepth: 6
    functionLinenumber: 1754
    functionLinenumberEnd: 1810
    functionName: WebPAnimEncoderAssemble
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 2
    functionsReached:
    - WebPMuxSetCanvasSize
    - FlushFrames
    - MarkError2
    - WebPMuxSetAnimationParams
    - MarkError
    - IncreasePreviousDuration
    - MarkNoError
    - OptimizeSingleFrame
    - WebPMuxAssemble
    linkageType: ''
    returnType: int
    signature: int WebPAnimEncoderAssemble(WebPAnimEncoder* enc, WebPData* webp_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - enc
    argTypes:
    - WebPAnimEncoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1812
    functionDepth: 0
    functionLinenumber: 1812
    functionLinenumberEnd: 1815
    functionName: WebPAnimEncoderGetError
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * WebPAnimEncoderGetError(WebPAnimEncoder* enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPMuxSetChunk
      Src: /src/libwebp/src/mux/anim_encode.c:1821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - enc
    - fourcc
    - chunk_data
    - copy_data
    argTypes:
    - WebPAnimEncoder*
    - char[]
    - WebPData*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1817
    functionDepth: 1
    functionLinenumber: 1817
    functionLinenumberEnd: 1822
    functionName: WebPAnimEncoderSetChunk
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - WebPMuxSetChunk
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError WebPAnimEncoderSetChunk(WebPAnimEncoder* enc, const char
      fourcc[4],\n                                     const WebPData* chunk_data,\n
      \                                    int copy_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPMuxGetChunk
      Src: /src/libwebp/src/mux/anim_encode.c:1828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - enc
    - fourcc
    - chunk_data
    argTypes:
    - WebPAnimEncoder*
    - char[]
    - WebPData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1824
    functionDepth: 3
    functionLinenumber: 1824
    functionLinenumberEnd: 1829
    functionName: WebPAnimEncoderGetChunk
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - WebPMuxGetChunk
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError WebPAnimEncoderGetChunk(const WebPAnimEncoder* enc,\n
      \                                    const char fourcc[4],\n                                     WebPData*
      chunk_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPMuxDeleteChunk
      Src: /src/libwebp/src/mux/anim_encode.c:1834,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - enc
    - fourcc
    argTypes:
    - WebPAnimEncoder*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1831
    functionDepth: 1
    functionLinenumber: 1831
    functionLinenumberEnd: 1835
    functionName: WebPAnimEncoderDeleteChunk
    functionSourceFile: /src/libwebp/src/mux/anim_encode.c
    functionUses: 0
    functionsReached:
    - WebPMuxDeleteChunk
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError WebPAnimEncoderDeleteChunk(WebPAnimEncoder* enc,\n                                        const
      char fourcc[4])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: WebPGetMuxVersion
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int WebPGetMuxVersion(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxinternal.c:52,1
    - Dst: memset
      Src: /src/libwebp/src/mux/muxinternal.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - WebPChunk*
    assertStmts:
    - condition: (chunk)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/libwebp/src/mux/muxinternal.c
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: ChunkInit
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 2
    functionsReached:
    - assert
    - memset
    linkageType: ''
    returnType: void
    signature: void ChunkInit(WebPChunk* const chunk)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPDataClear
      Src: /src/libwebp/src/mux/muxinternal.c:61,1
    - Dst: ChunkInit
      Src: /src/libwebp/src/mux/muxinternal.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - WebPChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: ChunkRelease
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 2
    functionsReached:
    - ChunkInit
    - WebPDataClear
    linkageType: ''
    returnType: WebPChunk
    signature: WebPChunk * ChunkRelease(WebPChunk* const chunk)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - tag
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: ChunkGetIndexFromTag
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CHUNK_INDEX
    signature: CHUNK_INDEX ChunkGetIndexFromTag(uint32_t tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - tag
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: ChunkGetIdFromTag
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: WebPChunkId
    signature: WebPChunkId ChunkGetIdFromTag(uint32_t tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MKFOURCC
      Src: /src/libwebp/src/mux/muxinternal.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fourcc
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: ChunkGetTagFromFourCC
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 1
    functionsReached:
    - MKFOURCC
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ChunkGetTagFromFourCC(const char fourcc[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChunkGetTagFromFourCC
      Src: /src/libwebp/src/mux/muxinternal.c:92,1
    - Dst: ChunkGetIndexFromTag
      Src: /src/libwebp/src/mux/muxinternal.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fourcc
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: ChunkGetIndexFromFourCC
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 1
    functionsReached:
    - ChunkGetTagFromFourCC
    - ChunkGetIndexFromTag
    linkageType: ''
    returnType: CHUNK_INDEX
    signature: CHUNK_INDEX ChunkGetIndexFromFourCC(const char fourcc[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - chunk
    - tag
    argTypes:
    - WebPChunk*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: ChunkSearchNextInList
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WebPChunk
    signature: WebPChunk * ChunkSearchNextInList(WebPChunk* chunk, uint32_t tag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ChunkSearchNextInList
      Src: /src/libwebp/src/mux/muxinternal.c:109,1
    - Dst: ChunkSearchNextInList
      Src: /src/libwebp/src/mux/muxinternal.c:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - first
    - nth
    - tag
    argTypes:
    - WebPChunk*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: ChunkSearchList
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 1
    functionsReached:
    - ChunkSearchNextInList
    linkageType: ''
    returnType: WebPChunk
    signature: WebPChunk * ChunkSearchList(WebPChunk* first, uint32_t nth, uint32_t
      tag)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ChunkRelease
      Src: /src/libwebp/src/mux/muxinternal.c:130,1
    - Dst: WebPDataCopy
      Src: /src/libwebp/src/mux/muxinternal.c:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - chunk
    - data
    - copy_data
    - tag
    argTypes:
    - WebPChunk*
    - WebPData*
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 142
    functionName: ChunkAssignData
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 2
    functionsReached:
    - ChunkRelease
    - WebPDataCopy
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError ChunkAssignData(WebPChunk* chunk, const WebPData* const
      data,\n                             int copy_data, uint32_t tag)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxinternal.c:148,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/mux/muxinternal.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - chunk
    - chunk_list
    argTypes:
    - WebPChunk*
    - WebPChunk**
    assertStmts:
    - condition: (chunk_list != NULL)
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/libwebp/src/mux/muxinternal.c
    constantsTouched: []
    func_position:
      end: 160
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 160
    functionName: ChunkSetHead
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 2
    functionsReached:
    - assert
    - WebPSafeMalloc
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError ChunkSetHead(WebPChunk* const chunk,\n                          WebPChunk**
      const chunk_list)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxinternal.c:165,1
    - Dst: ChunkSetHead
      Src: /src/libwebp/src/mux/muxinternal.c:168,1
    - Dst: ChunkSetHead
      Src: /src/libwebp/src/mux/muxinternal.c:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - chunk
    - chunk_list
    argTypes:
    - WebPChunk*
    - WebPChunk***
    assertStmts:
    - condition: (chunk_list != NULL && *chunk_list != NULL)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/libwebp/src/mux/muxinternal.c
    constantsTouched: []
    func_position:
      end: 176
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 176
    functionName: ChunkAppend
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 2
    functionsReached:
    - assert
    - ChunkSetHead
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError ChunkAppend(WebPChunk* const chunk,\n                         WebPChunk***
      const chunk_list)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChunkRelease
      Src: /src/libwebp/src/mux/muxinternal.c:182,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/mux/muxinternal.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - WebPChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: ChunkDelete
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 1
    functionsReached:
    - ChunkRelease
    - WebPSafeFree
    linkageType: ''
    returnType: WebPChunk
    signature: WebPChunk * ChunkDelete(WebPChunk* const chunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChunkDelete
      Src: /src/libwebp/src/mux/muxinternal.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - chunk_list
    argTypes:
    - WebPChunk**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: ChunkListDelete
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 0
    functionsReached:
    - ChunkDelete
    linkageType: ''
    returnType: void
    signature: void ChunkListDelete(WebPChunk** const chunk_list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxinternal.c:198,1
    - Dst: PutLE32
      Src: /src/libwebp/src/mux/muxinternal.c:200,1
    - Dst: PutLE32
      Src: /src/libwebp/src/mux/muxinternal.c:201,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxinternal.c:202,1
    - Dst: memcpy
      Src: /src/libwebp/src/mux/muxinternal.c:203,1
    - Dst: ChunkDiskSize
      Src: /src/libwebp/src/mux/muxinternal.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - chunk
    - dst
    argTypes:
    - WebPChunk*
    - uint8_t*
    assertStmts:
    - condition: (chunk)
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/libwebp/src/mux/muxinternal.c
    - condition: (chunk_size == (uint32_t)chunk_size)
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/libwebp/src/mux/muxinternal.c
    constantsTouched: []
    func_position:
      end: 206
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 206
    functionName: ChunkEmit
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - PutLE32
    - ChunkDiskSize
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * ChunkEmit(const WebPChunk* const chunk, uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChunkEmit
      Src: /src/libwebp/src/mux/muxinternal.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - chunk_list
    - dst
    argTypes:
    - WebPChunk*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 214
    functionName: ChunkListEmit
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 1
    functionsReached:
    - ChunkEmit
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * ChunkListEmit(const WebPChunk* chunk_list, uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChunkDiskSize
      Src: /src/libwebp/src/mux/muxinternal.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - chunk_list
    argTypes:
    - WebPChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 223
    functionName: ChunkListDiskSize
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 0
    functionsReached:
    - ChunkDiskSize
    linkageType: ''
    returnType: size_t
    signature: size_t ChunkListDiskSize(const WebPChunk* chunk_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxinternal.c:229,1
    - Dst: memset
      Src: /src/libwebp/src/mux/muxinternal.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - wpi
    argTypes:
    - WebPMuxImage*
    assertStmts:
    - condition: (wpi)
      pos:
        line_end: 228
        line_start: 228
        source_file: /src/libwebp/src/mux/muxinternal.c
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: MuxImageInit
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 1
    functionsReached:
    - assert
    - memset
    linkageType: ''
    returnType: void
    signature: void MuxImageInit(WebPMuxImage* const wpi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ChunkListDelete
      Src: /src/libwebp/src/mux/muxinternal.c:238,1
    - Dst: ChunkListDelete
      Src: /src/libwebp/src/mux/muxinternal.c:239,1
    - Dst: ChunkListDelete
      Src: /src/libwebp/src/mux/muxinternal.c:240,1
    - Dst: ChunkListDelete
      Src: /src/libwebp/src/mux/muxinternal.c:241,1
    - Dst: MuxImageInit
      Src: /src/libwebp/src/mux/muxinternal.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - wpi
    argTypes:
    - WebPMuxImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 246
    functionName: MuxImageRelease
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 0
    functionsReached:
    - ChunkListDelete
    - MuxImageInit
    linkageType: ''
    returnType: WebPMuxImage
    signature: WebPMuxImage * MuxImageRelease(WebPMuxImage* const wpi)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxinternal.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (wpi != NULL)
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/libwebp/src/mux/muxinternal.c
    constantsTouched: []
    func_position:
      end: 265
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 265
    functionName: GetChunkListFromId
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: WebPChunk
    signature: "WebPChunk ** GetChunkListFromId(const WebPMuxImage* const wpi,\n                                      WebPChunkId
      id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetChunkListFromId
      Src: /src/libwebp/src/mux/muxinternal.c:274,1
    - Dst: ChunkGetIdFromTag
      Src: /src/libwebp/src/mux/muxinternal.c:276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - wpi_list
    - id
    argTypes:
    - WebPMuxImage*
    - WebPChunkId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 282
    functionName: MuxImageCount
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 2
    functionsReached:
    - ChunkGetIdFromTag
    - GetChunkListFromId
    linkageType: ''
    returnType: int
    signature: int MuxImageCount(const WebPMuxImage* wpi_list, WebPChunkId id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxinternal.c:290,1
    - Dst: MuxImageCount
      Src: /src/libwebp/src/mux/muxinternal.c:294,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - wpi_list
    - nth
    - location
    argTypes:
    - WebPMuxImage**
    - uint32_t
    - WebPMuxImage***
    assertStmts:
    - condition: (wpi_list)
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/libwebp/src/mux/muxinternal.c
    constantsTouched: []
    func_position:
      end: 306
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 306
    functionName: SearchImageToGetOrDelete
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 0
    functionsReached:
    - assert
    - MuxImageCount
    linkageType: ''
    returnType: int
    signature: "int SearchImageToGetOrDelete(WebPMuxImage** wpi_list, uint32_t nth,\n
      \                                   WebPMuxImage*** const location)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/mux/muxinternal.c:320,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - wpi
    - wpi_list
    argTypes:
    - WebPMuxImage*
    - WebPMuxImage**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 331
    functionName: MuxImagePush
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 1
    functionsReached:
    - WebPSafeMalloc
    linkageType: ''
    returnType: WebPMuxError
    signature: WebPMuxError MuxImagePush(const WebPMuxImage* wpi, WebPMuxImage** wpi_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MuxImageRelease
      Src: /src/libwebp/src/mux/muxinternal.c:338,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/mux/muxinternal.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - wpi
    argTypes:
    - WebPMuxImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 5
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: MuxImageDelete
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 1
    functionsReached:
    - WebPSafeFree
    - MuxImageRelease
    linkageType: ''
    returnType: WebPMuxImage
    signature: WebPMuxImage * MuxImageDelete(WebPMuxImage* const wpi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxinternal.c:344,1
    - Dst: SearchImageToGetOrDelete
      Src: /src/libwebp/src/mux/muxinternal.c:345,1
    - Dst: MuxImageDelete
      Src: /src/libwebp/src/mux/muxinternal.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - wpi_list
    - nth
    argTypes:
    - WebPMuxImage**
    - uint32_t
    assertStmts:
    - condition: (wpi_list)
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/libwebp/src/mux/muxinternal.c
    constantsTouched: []
    func_position:
      end: 350
      start: 343
    functionDepth: 6
    functionLinenumber: 343
    functionLinenumberEnd: 350
    functionName: MuxImageDeleteNth
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 0
    functionsReached:
    - assert
    - SearchImageToGetOrDelete
    - MuxImageDelete
    linkageType: ''
    returnType: WebPMuxError
    signature: WebPMuxError MuxImageDeleteNth(WebPMuxImage** wpi_list, uint32_t nth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxinternal.c:357,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxinternal.c:358,1
    - Dst: SearchImageToGetOrDelete
      Src: /src/libwebp/src/mux/muxinternal.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - wpi_list
    - nth
    - wpi
    argTypes:
    - WebPMuxImage**
    - uint32_t
    - WebPMuxImage**
    assertStmts:
    - condition: (wpi_list)
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/libwebp/src/mux/muxinternal.c
    - condition: (wpi)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/libwebp/src/mux/muxinternal.c
    constantsTouched: []
    func_position:
      end: 365
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 365
    functionName: MuxImageGetNth
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 1
    functionsReached:
    - assert
    - SearchImageToGetOrDelete
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError MuxImageGetNth(const WebPMuxImage** wpi_list, uint32_t
      nth,\n                            WebPMuxImage** wpi)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ChunkDiskSize
      Src: /src/libwebp/src/mux/muxinternal.c:373,1
    - Dst: ChunkDiskSize
      Src: /src/libwebp/src/mux/muxinternal.c:374,1
    - Dst: ChunkDiskSize
      Src: /src/libwebp/src/mux/muxinternal.c:375,1
    - Dst: ChunkListDiskSize
      Src: /src/libwebp/src/mux/muxinternal.c:376,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - wpi
    argTypes:
    - WebPMuxImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 378
    functionName: MuxImageDiskSize
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 0
    functionsReached:
    - ChunkListDiskSize
    - ChunkDiskSize
    linkageType: ''
    returnType: size_t
    signature: size_t MuxImageDiskSize(const WebPMuxImage* const wpi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxinternal.c:385,1
    - Dst: PutLE32
      Src: /src/libwebp/src/mux/muxinternal.c:386,1
    - Dst: PutLE32
      Src: /src/libwebp/src/mux/muxinternal.c:387,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxinternal.c:388,1
    - Dst: memcpy
      Src: /src/libwebp/src/mux/muxinternal.c:389,1
    - Dst: ChunkDiskSize
      Src: /src/libwebp/src/mux/muxinternal.c:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - header
    - total_size
    - dst
    argTypes:
    - WebPChunk*
    - size_t
    - uint8_t*
    assertStmts:
    - condition: (header->tag == kChunks[IDX_ANMF].tag)
      pos:
        line_end: 384
        line_start: 384
        source_file: /src/libwebp/src/mux/muxinternal.c
    - condition: (header_size == (uint32_t)header_size)
      pos:
        line_end: 387
        line_start: 387
        source_file: /src/libwebp/src/mux/muxinternal.c
    constantsTouched: []
    func_position:
      end: 394
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 394
    functionName: ChunkEmitSpecial
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - PutLE32
    - ChunkDiskSize
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * ChunkEmitSpecial(const WebPChunk* const header,\n                                 size_t
      total_size, uint8_t* dst)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxinternal.c:401,1
    - Dst: ChunkEmitSpecial
      Src: /src/libwebp/src/mux/muxinternal.c:403,1
    - Dst: MuxImageDiskSize
      Src: /src/libwebp/src/mux/muxinternal.c:403,1
    - Dst: ChunkEmit
      Src: /src/libwebp/src/mux/muxinternal.c:405,1
    - Dst: ChunkEmit
      Src: /src/libwebp/src/mux/muxinternal.c:406,1
    - Dst: ChunkListEmit
      Src: /src/libwebp/src/mux/muxinternal.c:407,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - wpi
    - dst
    argTypes:
    - WebPMuxImage*
    - uint8_t*
    assertStmts:
    - condition: (wpi)
      pos:
        line_end: 400
        line_start: 400
        source_file: /src/libwebp/src/mux/muxinternal.c
    constantsTouched: []
    func_position:
      end: 409
      start: 396
    functionDepth: 4
    functionLinenumber: 396
    functionLinenumberEnd: 409
    functionName: MuxImageEmit
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 0
    functionsReached:
    - assert
    - ChunkEmit
    - ChunkListEmit
    - ChunkEmitSpecial
    - MuxImageDiskSize
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * MuxImageEmit(const WebPMuxImage* const wpi, uint8_t* dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - images
    argTypes:
    - WebPMuxImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 420
    functionName: MuxHasAlpha
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int MuxHasAlpha(const WebPMuxImage* images)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PutLE32
      Src: /src/libwebp/src/mux/muxinternal.c:423,1
    - Dst: MKFOURCC
      Src: /src/libwebp/src/mux/muxinternal.c:423,1
    - Dst: PutLE32
      Src: /src/libwebp/src/mux/muxinternal.c:424,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxinternal.c:425,1
    - Dst: PutLE32
      Src: /src/libwebp/src/mux/muxinternal.c:426,1
    - Dst: MKFOURCC
      Src: /src/libwebp/src/mux/muxinternal.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (size == (uint32_t)size)
      pos:
        line_end: 424
        line_start: 424
        source_file: /src/libwebp/src/mux/muxinternal.c
    constantsTouched: []
    func_position:
      end: 428
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 428
    functionName: MuxEmitRiffHeader
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 1
    functionsReached:
    - assert
    - PutLE32
    - MKFOURCC
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * MuxEmitRiffHeader(uint8_t* const data, size_t size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxinternal.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (mux != NULL)
      pos:
        line_end: 430
        line_start: 430
        source_file: /src/libwebp/src/mux/muxinternal.c
    constantsTouched: []
    func_position:
      end: 446
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 446
    functionName: MuxGetChunkListFromId
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: WebPChunk
    signature: WebPChunk ** MuxGetChunkListFromId(const WebPMux* mux, WebPChunkId
      id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - feature
    - num_items
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 450
    functionName: IsNotCompatible
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IsNotCompatible(int feature, int num_items)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WebPMuxNumChunks
      Src: /src/libwebp/src/mux/muxinternal.c:461,1
    - Dst: IsNotCompatible
      Src: /src/libwebp/src/mux/muxinternal.c:464,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 6
    argNames:
    - mux
    - idx
    - feature
    - vp8x_flags
    - max
    - num
    argTypes:
    - WebPMux*
    - CHUNK_INDEX
    - WebPFeatureFlags
    - uint32_t
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 468
    functionName: ValidateChunk
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 0
    functionsReached:
    - WebPMuxNumChunks
    - IsNotCompatible
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError ValidateChunk(const WebPMux* const mux, CHUNK_INDEX idx,\n
      \                                 WebPFeatureFlags feature, uint32_t vp8x_flags,\n
      \                                 int max, int* num)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: WebPMuxGetFeatures
      Src: /src/libwebp/src/mux/muxinternal.c:488,1
    - Dst: ValidateChunk
      Src: /src/libwebp/src/mux/muxinternal.c:492,1
    - Dst: ValidateChunk
      Src: /src/libwebp/src/mux/muxinternal.c:496,1
    - Dst: ValidateChunk
      Src: /src/libwebp/src/mux/muxinternal.c:500,1
    - Dst: ValidateChunk
      Src: /src/libwebp/src/mux/muxinternal.c:505,1
    - Dst: ValidateChunk
      Src: /src/libwebp/src/mux/muxinternal.c:507,1
    - Dst: ValidateChunk
      Src: /src/libwebp/src/mux/muxinternal.c:513,1
    - Dst: ValidateChunk
      Src: /src/libwebp/src/mux/muxinternal.c:515,1
    - Dst: MuxHasAlpha
      Src: /src/libwebp/src/mux/muxinternal.c:547,1
    - Dst: WebPMuxNumChunks
      Src: /src/libwebp/src/mux/muxinternal.c:553,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 61
    argCount: 1
    argNames:
    - mux
    argTypes:
    - WebPMux*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 470
    functionDepth: 4
    functionLinenumber: 470
    functionLinenumberEnd: 560
    functionName: MuxValidate
    functionSourceFile: /src/libwebp/src/mux/muxinternal.c
    functionUses: 1
    functionsReached:
    - WebPMuxGetFeatures
    - WebPMuxNumChunks
    - ValidateChunk
    - MuxHasAlpha
    linkageType: ''
    returnType: WebPMuxError
    signature: WebPMuxError MuxValidate(const WebPMux* const mux)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:31,1
    - Dst: memset
      Src: /src/libwebp/src/mux/muxedit.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mux
    argTypes:
    - WebPMux*
    assertStmts:
    - condition: (mux != NULL)
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/libwebp/src/mux/muxedit.c
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: MuxInit
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 0
    functionsReached:
    - assert
    - memset
    linkageType: ''
    returnType: void
    signature: void MuxInit(WebPMux* const mux)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_ABI_IS_INCOMPATIBLE
      Src: /src/libwebp/src/mux/muxedit.c:38,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/mux/muxedit.c:41,1
    - Dst: MuxInit
      Src: /src/libwebp/src/mux/muxedit.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - version
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: WebPNewInternal
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 0
    functionsReached:
    - MuxInit
    - WEBP_ABI_IS_INCOMPATIBLE
    - WebPSafeMalloc
    linkageType: ''
    returnType: WebPMux
    signature: WebPMux * WebPNewInternal(int version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MuxImageDelete
      Src: /src/libwebp/src/mux/muxedit.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - wpi_list
    argTypes:
    - WebPMuxImage**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: DeleteAllImages
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 0
    functionsReached:
    - MuxImageDelete
    linkageType: ''
    returnType: void
    signature: void DeleteAllImages(WebPMuxImage** const wpi_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:55,1
    - Dst: DeleteAllImages
      Src: /src/libwebp/src/mux/muxedit.c:56,1
    - Dst: ChunkListDelete
      Src: /src/libwebp/src/mux/muxedit.c:57,1
    - Dst: ChunkListDelete
      Src: /src/libwebp/src/mux/muxedit.c:58,1
    - Dst: ChunkListDelete
      Src: /src/libwebp/src/mux/muxedit.c:59,1
    - Dst: ChunkListDelete
      Src: /src/libwebp/src/mux/muxedit.c:60,1
    - Dst: ChunkListDelete
      Src: /src/libwebp/src/mux/muxedit.c:61,1
    - Dst: ChunkListDelete
      Src: /src/libwebp/src/mux/muxedit.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - mux
    argTypes:
    - WebPMux*
    assertStmts:
    - condition: (mux != NULL)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/libwebp/src/mux/muxedit.c
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 7
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: MuxRelease
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 0
    functionsReached:
    - assert
    - DeleteAllImages
    - ChunkListDelete
    linkageType: ''
    returnType: void
    signature: void MuxRelease(WebPMux* const mux)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MuxRelease
      Src: /src/libwebp/src/mux/muxedit.c:67,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/mux/muxedit.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mux
    argTypes:
    - WebPMux*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 8
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: WebPMuxDelete
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 5
    functionsReached:
    - MuxRelease
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void WebPMuxDelete(WebPMux* mux)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - INDEX
    - ','
    - LIST
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: SWITCH_ID_LIST
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWITCH_ID_LIST(INDEX, LIST)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ChunkGetIndexFromTag
      Src: /src/libwebp/src/mux/muxedit.c:92,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:93,1
    - Dst: IsWPI
      Src: /src/libwebp/src/mux/muxedit.c:94,1
    - Dst: ChunkInit
      Src: /src/libwebp/src/mux/muxedit.c:96,1
    - Dst: SWITCH_ID_LIST
      Src: /src/libwebp/src/mux/muxedit.c:97,1
    - Dst: SWITCH_ID_LIST
      Src: /src/libwebp/src/mux/muxedit.c:98,1
    - Dst: SWITCH_ID_LIST
      Src: /src/libwebp/src/mux/muxedit.c:99,1
    - Dst: SWITCH_ID_LIST
      Src: /src/libwebp/src/mux/muxedit.c:100,1
    - Dst: SWITCH_ID_LIST
      Src: /src/libwebp/src/mux/muxedit.c:101,1
    - Dst: SWITCH_ID_LIST
      Src: /src/libwebp/src/mux/muxedit.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - mux
    - tag
    - data
    - copy_data
    argTypes:
    - WebPMux*
    - uint32_t
    - WebPData*
    - int
    assertStmts:
    - condition: (mux != NULL)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/libwebp/src/mux/muxedit.c
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: MuxSet
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 0
    functionsReached:
    - SWITCH_ID_LIST
    - ChunkInit
    - assert
    - ChunkGetIndexFromTag
    - IsWPI
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError MuxSet(WebPMux* const mux, uint32_t tag,\n                           const
      WebPData* const data, int copy_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:114,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:115,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/mux/muxedit.c:118,1
    - Dst: PutLE24
      Src: /src/libwebp/src/mux/muxedit.c:121,1
    - Dst: PutLE24
      Src: /src/libwebp/src/mux/muxedit.c:122,1
    - Dst: PutLE24
      Src: /src/libwebp/src/mux/muxedit.c:124,1
    - Dst: PutLE24
      Src: /src/libwebp/src/mux/muxedit.c:125,1
    - Dst: PutLE24
      Src: /src/libwebp/src/mux/muxedit.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - width
    - height
    - info
    - frame
    argTypes:
    - int
    - int
    - WebPMuxFrameInfo*
    - WebPData*
    assertStmts:
    - condition: (width > 0 && height > 0 && info->duration >= 0)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/libwebp/src/mux/muxedit.c
    - condition: (info->dispose_method == (info->dispose_method & 1))
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/libwebp/src/mux/muxedit.c
    constantsTouched: []
    func_position:
      end: 134
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 134
    functionName: CreateFrameData
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPSafeMalloc
    - PutLE24
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError CreateFrameData(int width, int height,\n                                    const
      WebPMuxFrameInfo* const info,\n                                    WebPData*
      const frame)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WebPDataInit
      Src: /src/libwebp/src/mux/muxedit.c:142,1
    - Dst: memcmp
      Src: /src/libwebp/src/mux/muxedit.c:144,1
    - Dst: WebPMuxCreate
      Src: /src/libwebp/src/mux/muxedit.c:150,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:153,1
    - Dst: WebPMuxDelete
      Src: /src/libwebp/src/mux/muxedit.c:158,1
    - Dst: VP8LCheckSignature
      Src: /src/libwebp/src/mux/muxedit.c:160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - bitstream
    - image
    - alpha
    - is_lossless
    argTypes:
    - WebPData*
    - WebPData*
    - WebPData*
    - int*
    assertStmts:
    - condition: (wpi != NULL && wpi->img != NULL)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/libwebp/src/mux/muxedit.c
    constantsTouched: []
    func_position:
      end: 162
      start: 139
    functionDepth: 9
    functionLinenumber: 139
    functionLinenumberEnd: 162
    functionName: GetImageData
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 0
    functionsReached:
    - VP8LCheckSignature
    - WebPMuxDelete
    - assert
    - WebPMuxCreate
    - memcmp
    - WebPDataInit
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError GetImageData(const WebPData* const bitstream,\n                                 WebPData*
      const image, WebPData* const alpha,\n                                 int* const
      is_lossless)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:166,1
    - Dst: ChunkDelete
      Src: /src/libwebp/src/mux/muxedit.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - chunk_list
    - tag
    argTypes:
    - WebPChunk**
    - uint32_t
    assertStmts:
    - condition: (chunk_list)
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/libwebp/src/mux/muxedit.c
    constantsTouched: []
    func_position:
      end: 177
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 177
    functionName: DeleteChunks
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 0
    functionsReached:
    - assert
    - ChunkDelete
    linkageType: ''
    returnType: WebPMuxError
    signature: WebPMuxError DeleteChunks(WebPChunk** chunk_list, uint32_t tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ChunkGetIdFromTag
      Src: /src/libwebp/src/mux/muxedit.c:180,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:181,1
    - Dst: IsWPI
      Src: /src/libwebp/src/mux/muxedit.c:182,1
    - Dst: DeleteChunks
      Src: /src/libwebp/src/mux/muxedit.c:183,1
    - Dst: MuxGetChunkListFromId
      Src: /src/libwebp/src/mux/muxedit.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mux
    - tag
    argTypes:
    - WebPMux*
    - uint32_t
    assertStmts:
    - condition: (mux != NULL)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/libwebp/src/mux/muxedit.c
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 4
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: MuxDeleteAllNamedData
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 0
    functionsReached:
    - DeleteChunks
    - assert
    - IsWPI
    - ChunkGetIdFromTag
    - MuxGetChunkListFromId
    linkageType: ''
    returnType: WebPMuxError
    signature: WebPMuxError MuxDeleteAllNamedData(WebPMux* const mux, uint32_t tag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ChunkGetTagFromFourCC
      Src: /src/libwebp/src/mux/muxedit.c:197,1
    - Dst: MuxDeleteAllNamedData
      Src: /src/libwebp/src/mux/muxedit.c:200,1
    - Dst: MuxSet
      Src: /src/libwebp/src/mux/muxedit.c:204,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 4
    argNames:
    - mux
    - fourcc
    - chunk_data
    - copy_data
    argTypes:
    - WebPMux*
    - char[]
    - WebPData*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 189
    functionDepth: 5
    functionLinenumber: 189
    functionLinenumberEnd: 205
    functionName: WebPMuxSetChunk
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 3
    functionsReached:
    - MuxDeleteAllNamedData
    - ChunkGetTagFromFourCC
    - MuxSet
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError WebPMuxSetChunk(WebPMux* mux, const char fourcc[4],\n
      \                            const WebPData* chunk_data, int copy_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ChunkInit
      Src: /src/libwebp/src/mux/muxedit.c:213,1
    - Dst: ChunkAssignData
      Src: /src/libwebp/src/mux/muxedit.c:214,1
    - Dst: ChunkSetHead
      Src: /src/libwebp/src/mux/muxedit.c:216,1
    - Dst: ChunkRelease
      Src: /src/libwebp/src/mux/muxedit.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - data
    - copy_data
    - tag
    - chunk_list
    argTypes:
    - WebPData*
    - int
    - uint32_t
    - WebPChunk**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 222
    functionName: AddDataToChunkList
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 0
    functionsReached:
    - ChunkRelease
    - ChunkAssignData
    - ChunkInit
    - ChunkSetHead
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError AddDataToChunkList(const WebPData* const data,\n                                       int
      copy_data, uint32_t tag,\n                                       WebPChunk**
      chunk_list)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetImageData
      Src: /src/libwebp/src/mux/muxedit.c:231,1
    - Dst: AddDataToChunkList
      Src: /src/libwebp/src/mux/muxedit.c:236,1
    - Dst: AddDataToChunkList
      Src: /src/libwebp/src/mux/muxedit.c:240,1
    - Dst: MuxImageFinalize
      Src: /src/libwebp/src/mux/muxedit.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - bitstream
    - copy_data
    - wpi
    argTypes:
    - WebPData*
    - int
    - WebPMuxImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 226
    functionDepth: 10
    functionLinenumber: 226
    functionLinenumberEnd: 243
    functionName: SetAlphaAndImageChunks
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 0
    functionsReached:
    - GetImageData
    - AddDataToChunkList
    - MuxImageFinalize
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError SetAlphaAndImageChunks(const WebPData* const bitstream,\n
      \                                          int copy_data,\n                                           WebPMuxImage*
      const wpi)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DeleteAllImages
      Src: /src/libwebp/src/mux/muxedit.c:257,1
    - Dst: MuxImageInit
      Src: /src/libwebp/src/mux/muxedit.c:260,1
    - Dst: SetAlphaAndImageChunks
      Src: /src/libwebp/src/mux/muxedit.c:261,1
    - Dst: MuxImagePush
      Src: /src/libwebp/src/mux/muxedit.c:265,1
    - Dst: MuxImageRelease
      Src: /src/libwebp/src/mux/muxedit.c:272,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - mux
    - bitstream
    - copy_data
    argTypes:
    - WebPMux*
    - WebPData*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 245
    functionDepth: 11
    functionLinenumber: 245
    functionLinenumberEnd: 274
    functionName: WebPMuxSetImage
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 1
    functionsReached:
    - DeleteAllImages
    - MuxImagePush
    - SetAlphaAndImageChunks
    - MuxImageInit
    - MuxImageRelease
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError WebPMuxSetImage(WebPMux* mux, const WebPData* bitstream,\n
      \                            int copy_data)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ChunkGetIdFromTag
      Src: /src/libwebp/src/mux/muxedit.c:293,1
    - Dst: MuxImageInit
      Src: /src/libwebp/src/mux/muxedit.c:300,1
    - Dst: SetAlphaAndImageChunks
      Src: /src/libwebp/src/mux/muxedit.c:301,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:303,1
    - Dst: CreateFrameData
      Src: /src/libwebp/src/mux/muxedit.c:318,1
    - Dst: AddDataToChunkList
      Src: /src/libwebp/src/mux/muxedit.c:321,1
    - Dst: WebPDataClear
      Src: /src/libwebp/src/mux/muxedit.c:322,1
    - Dst: MuxImagePush
      Src: /src/libwebp/src/mux/muxedit.c:327,1
    - Dst: MuxImageRelease
      Src: /src/libwebp/src/mux/muxedit.c:334,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 45
    argCount: 3
    argNames:
    - mux
    - info
    - copy_data
    argTypes:
    - WebPMux*
    - WebPMuxFrameInfo*
    - int
    assertStmts:
    - condition: (wpi.img != NULL)
      pos:
        line_end: 302
        line_start: 302
        source_file: /src/libwebp/src/mux/muxedit.c
    constantsTouched: []
    func_position:
      end: 336
      start: 276
    functionDepth: 11
    functionLinenumber: 276
    functionLinenumberEnd: 336
    functionName: WebPMuxPushFrame
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 1
    functionsReached:
    - AddDataToChunkList
    - assert
    - MuxImagePush
    - SetAlphaAndImageChunks
    - MuxImageInit
    - ChunkGetIdFromTag
    - CreateFrameData
    - WebPDataClear
    - MuxImageRelease
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError WebPMuxPushFrame(WebPMux* mux, const WebPMuxFrameInfo*
      info,\n                              int copy_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MuxDeleteAllNamedData
      Src: /src/libwebp/src/mux/muxedit.c:350,1
    - Dst: PutLE32
      Src: /src/libwebp/src/mux/muxedit.c:354,1
    - Dst: PutLE16
      Src: /src/libwebp/src/mux/muxedit.c:355,1
    - Dst: MuxSet
      Src: /src/libwebp/src/mux/muxedit.c:356,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - mux
    - params
    argTypes:
    - WebPMux*
    - WebPMuxAnimParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 338
    functionDepth: 5
    functionLinenumber: 338
    functionLinenumberEnd: 357
    functionName: WebPMuxSetAnimationParams
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 1
    functionsReached:
    - PutLE16
    - PutLE32
    - MuxDeleteAllNamedData
    - MuxSet
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError WebPMuxSetAnimationParams(WebPMux* mux,\n                                       const
      WebPMuxAnimParams* params)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MuxDeleteAllNamedData
      Src: /src/libwebp/src/mux/muxedit.c:376,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 3
    argNames:
    - mux
    - width
    - height
    argTypes:
    - WebPMux*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 359
    functionDepth: 5
    functionLinenumber: 359
    functionLinenumberEnd: 382
    functionName: WebPMuxSetCanvasSize
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 1
    functionsReached:
    - MuxDeleteAllNamedData
    linkageType: ''
    returnType: WebPMuxError
    signature: WebPMuxError WebPMuxSetCanvasSize(WebPMux* mux, int width, int height)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MuxDeleteAllNamedData
      Src: /src/libwebp/src/mux/muxedit.c:389,1
    - Dst: ChunkGetTagFromFourCC
      Src: /src/libwebp/src/mux/muxedit.c:389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - mux
    - fourcc
    argTypes:
    - WebPMux*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 387
    functionDepth: 5
    functionLinenumber: 387
    functionLinenumberEnd: 390
    functionName: WebPMuxDeleteChunk
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 1
    functionsReached:
    - ChunkGetTagFromFourCC
    - MuxDeleteAllNamedData
    linkageType: ''
    returnType: WebPMuxError
    signature: WebPMuxError WebPMuxDeleteChunk(WebPMux* mux, const char fourcc[4])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MuxImageDeleteNth
      Src: /src/libwebp/src/mux/muxedit.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mux
    - nth
    argTypes:
    - WebPMux*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 7
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: WebPMuxDeleteFrame
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 0
    functionsReached:
    - MuxImageDeleteNth
    linkageType: ''
    returnType: WebPMuxError
    signature: WebPMuxError WebPMuxDeleteFrame(WebPMux* mux, uint32_t nth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:405,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:406,1
    - Dst: GetLE24
      Src: /src/libwebp/src/mux/muxedit.c:409,1
    - Dst: GetLE24
      Src: /src/libwebp/src/mux/muxedit.c:410,1
    - Dst: GetLE24
      Src: /src/libwebp/src/mux/muxedit.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - frame_chunk
    - x_offset
    - y_offset
    - duration
    argTypes:
    - WebPChunk*
    - int*
    - int*
    - int*
    assertStmts:
    - condition: (frame_chunk != NULL)
      pos:
        line_end: 404
        line_start: 404
        source_file: /src/libwebp/src/mux/muxedit.c
    - condition: (frame_chunk->tag == kChunks[IDX_ANMF].tag)
      pos:
        line_end: 405
        line_start: 405
        source_file: /src/libwebp/src/mux/muxedit.c
    constantsTouched: []
    func_position:
      end: 413
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 413
    functionName: GetFrameInfo
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 0
    functionsReached:
    - assert
    - GetLE24
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError GetFrameInfo(const WebPChunk* const frame_chunk,\n                                 int*
      const x_offset, int* const y_offset,\n                                 int*
      const duration)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:421,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:422,1
    - Dst: GetFrameInfo
      Src: /src/libwebp/src/mux/muxedit.c:425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - wpi
    - x_offset
    - y_offset
    - duration
    - width
    - height
    argTypes:
    - WebPMuxImage*
    - int*
    - int*
    - int*
    - int*
    - int*
    assertStmts:
    - condition: (wpi != NULL)
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/libwebp/src/mux/muxedit.c
    - condition: (frame_chunk != NULL)
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/libwebp/src/mux/muxedit.c
    constantsTouched: []
    func_position:
      end: 432
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 432
    functionName: GetImageInfo
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 0
    functionsReached:
    - assert
    - GetFrameInfo
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError GetImageInfo(const WebPMuxImage* const wpi,\n                                 int*
      const x_offset, int* const y_offset,\n                                 int*
      const duration, int* const width,\n                                 int* const
      height)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:438,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:439,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:442,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:443,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:448,1
    - Dst: GetImageInfo
      Src: /src/libwebp/src/mux/muxedit.c:453,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - mux
    - width
    - height
    argTypes:
    - WebPMux*
    - int*
    - int*
    assertStmts:
    - condition: (mux != NULL)
      pos:
        line_end: 437
        line_start: 437
        source_file: /src/libwebp/src/mux/muxedit.c
    - condition: (wpi->img != NULL)
      pos:
        line_end: 442
        line_start: 442
        source_file: /src/libwebp/src/mux/muxedit.c
    - condition: (width != NULL && height != NULL)
      pos:
        line_end: 438
        line_start: 438
        source_file: /src/libwebp/src/mux/muxedit.c
    - condition: (wpi != NULL)
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/libwebp/src/mux/muxedit.c
    - condition: (wpi->header != NULL)
      pos:
        line_end: 447
        line_start: 447
        source_file: /src/libwebp/src/mux/muxedit.c
    constantsTouched: []
    func_position:
      end: 472
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 472
    functionName: GetAdjustedCanvasSize
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 0
    functionsReached:
    - assert
    - GetImageInfo
    linkageType: ''
    returnType: WebPMuxError
    signature: "WebPMuxError GetAdjustedCanvasSize(const WebPMux* const mux,\n                                          int*
      const width, int* const height)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:488,1
    - Dst: MuxDeleteAllNamedData
      Src: /src/libwebp/src/mux/muxedit.c:497,1
    - Dst: MuxImageCount
      Src: /src/libwebp/src/mux/muxedit.c:516,1
    - Dst: GetAdjustedCanvasSize
      Src: /src/libwebp/src/mux/muxedit.c:520,1
    - Dst: MuxHasAlpha
      Src: /src/libwebp/src/mux/muxedit.c:543,1
    - Dst: PutLE32
      Src: /src/libwebp/src/mux/muxedit.c:550,1
    - Dst: PutLE24
      Src: /src/libwebp/src/mux/muxedit.c:551,1
    - Dst: PutLE24
      Src: /src/libwebp/src/mux/muxedit.c:552,1
    - Dst: MuxSet
      Src: /src/libwebp/src/mux/muxedit.c:554,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 52
    argCount: 1
    argNames:
    - mux
    argTypes:
    - WebPMux*
    assertStmts:
    - condition: (mux != NULL)
      pos:
        line_end: 487
        line_start: 487
        source_file: /src/libwebp/src/mux/muxedit.c
    constantsTouched: []
    func_position:
      end: 555
      start: 479
    functionDepth: 5
    functionLinenumber: 479
    functionLinenumberEnd: 555
    functionName: CreateVP8XChunk
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 0
    functionsReached:
    - MuxDeleteAllNamedData
    - MuxSet
    - assert
    - GetAdjustedCanvasSize
    - MuxImageCount
    - PutLE24
    - PutLE32
    - MuxHasAlpha
    linkageType: ''
    returnType: WebPMuxError
    signature: WebPMuxError CreateVP8XChunk(WebPMux* const mux)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: WebPMuxNumChunks
      Src: /src/libwebp/src/mux/muxedit.c:565,1
    - Dst: MuxImageGetNth
      Src: /src/libwebp/src/mux/muxedit.c:569,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:572,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:577,1
    - Dst: ChunkDelete
      Src: /src/libwebp/src/mux/muxedit.c:578,1
    - Dst: WebPMuxNumChunks
      Src: /src/libwebp/src/mux/muxedit.c:584,1
    - Dst: MuxDeleteAllNamedData
      Src: /src/libwebp/src/mux/muxedit.c:587,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 1
    argNames:
    - mux
    argTypes:
    - WebPMux*
    assertStmts:
    - condition: (frame != NULL)
      pos:
        line_end: 571
        line_start: 571
        source_file: /src/libwebp/src/mux/muxedit.c
    - condition: (frame->header->tag == kChunks[IDX_ANMF].tag)
      pos:
        line_end: 576
        line_start: 576
        source_file: /src/libwebp/src/mux/muxedit.c
    constantsTouched: []
    func_position:
      end: 591
      start: 558
    functionDepth: 5
    functionLinenumber: 558
    functionLinenumberEnd: 591
    functionName: MuxCleanup
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 0
    functionsReached:
    - MuxDeleteAllNamedData
    - assert
    - MuxImageGetNth
    - WebPMuxNumChunks
    - ChunkDelete
    linkageType: ''
    returnType: WebPMuxError
    signature: WebPMuxError MuxCleanup(WebPMux* const mux)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MuxImageDiskSize
      Src: /src/libwebp/src/mux/muxedit.c:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - wpi_list
    argTypes:
    - WebPMuxImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 594
    functionDepth: 4
    functionLinenumber: 594
    functionLinenumberEnd: 601
    functionName: ImageListDiskSize
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 0
    functionsReached:
    - MuxImageDiskSize
    linkageType: ''
    returnType: size_t
    signature: size_t ImageListDiskSize(const WebPMuxImage* wpi_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MuxImageEmit
      Src: /src/libwebp/src/mux/muxedit.c:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - wpi_list
    - dst
    argTypes:
    - WebPMuxImage*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 604
    functionDepth: 5
    functionLinenumber: 604
    functionLinenumberEnd: 610
    functionName: ImageListEmit
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 0
    functionsReached:
    - MuxImageEmit
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * ImageListEmit(const WebPMuxImage* wpi_list, uint8_t* dst)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/mux/muxedit.c:622,1
    - Dst: MuxCleanup
      Src: /src/libwebp/src/mux/muxedit.c:629,1
    - Dst: CreateVP8XChunk
      Src: /src/libwebp/src/mux/muxedit.c:631,1
    - Dst: ChunkListDiskSize
      Src: /src/libwebp/src/mux/muxedit.c:635,1
    - Dst: ChunkListDiskSize
      Src: /src/libwebp/src/mux/muxedit.c:635,1
    - Dst: ChunkListDiskSize
      Src: /src/libwebp/src/mux/muxedit.c:636,1
    - Dst: ImageListDiskSize
      Src: /src/libwebp/src/mux/muxedit.c:636,1
    - Dst: ChunkListDiskSize
      Src: /src/libwebp/src/mux/muxedit.c:637,1
    - Dst: ChunkListDiskSize
      Src: /src/libwebp/src/mux/muxedit.c:637,1
    - Dst: ChunkListDiskSize
      Src: /src/libwebp/src/mux/muxedit.c:638,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/mux/muxedit.c:640,1
    - Dst: MuxEmitRiffHeader
      Src: /src/libwebp/src/mux/muxedit.c:644,1
    - Dst: ChunkListEmit
      Src: /src/libwebp/src/mux/muxedit.c:645,1
    - Dst: ChunkListEmit
      Src: /src/libwebp/src/mux/muxedit.c:646,1
    - Dst: ChunkListEmit
      Src: /src/libwebp/src/mux/muxedit.c:647,1
    - Dst: ImageListEmit
      Src: /src/libwebp/src/mux/muxedit.c:648,1
    - Dst: ChunkListEmit
      Src: /src/libwebp/src/mux/muxedit.c:649,1
    - Dst: ChunkListEmit
      Src: /src/libwebp/src/mux/muxedit.c:650,1
    - Dst: ChunkListEmit
      Src: /src/libwebp/src/mux/muxedit.c:651,1
    - Dst: assert
      Src: /src/libwebp/src/mux/muxedit.c:652,1
    - Dst: MuxValidate
      Src: /src/libwebp/src/mux/muxedit.c:655,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/mux/muxedit.c:657,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - mux
    - assembled_data
    argTypes:
    - WebPMux*
    - WebPData*
    assertStmts:
    - condition: (dst == data + size)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/libwebp/src/mux/muxedit.c
    constantsTouched: []
    func_position:
      end: 667
      start: 612
    functionDepth: 6
    functionLinenumber: 612
    functionLinenumberEnd: 667
    functionName: WebPMuxAssemble
    functionSourceFile: /src/libwebp/src/mux/muxedit.c
    functionUses: 4
    functionsReached:
    - CreateVP8XChunk
    - ChunkListDiskSize
    - MuxEmitRiffHeader
    - assert
    - ChunkListEmit
    - ImageListDiskSize
    - MuxValidate
    - memset
    - WebPSafeMalloc
    - MuxCleanup
    - ImageListEmit
    - WebPSafeFree
    linkageType: ''
    returnType: WebPMuxError
    signature: WebPMuxError WebPMuxAssemble(WebPMux* mux, WebPData* assembled_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - xsize
    - dist
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: VP8LDistanceToPlaneCode
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int VP8LDistanceToPlaneCode(int xsize, int dist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LVectorMismatch
      Src: /src/libwebp/src/enc/backward_references_enc.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - array1
    - array2
    - best_len_match
    - max_limit
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: FindMatchLength
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - VP8LVectorMismatch
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE FindMatchLength(const uint32_t* const array1,\n                                       const
      uint32_t* const array2,\n                                       int best_len_match,
      int max_limit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - refs
    argTypes:
    - VP8LBackwardRefs*
    assertStmts:
    - condition: (refs != NULL)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: VP8LClearBackwardRefs
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void VP8LClearBackwardRefs(VP8LBackwardRefs* const refs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:99,1
    - Dst: VP8LClearBackwardRefs
      Src: /src/libwebp/src/enc/backward_references_enc.c:100,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/backward_references_enc.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - refs
    argTypes:
    - VP8LBackwardRefs*
    assertStmts:
    - condition: (refs != NULL)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: VP8LBackwardRefsClear
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPSafeFree
    - VP8LClearBackwardRefs
    linkageType: ''
    returnType: void
    signature: void VP8LBackwardRefsClear(VP8LBackwardRefs* const refs)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - refs1
    - refs2
    argTypes:
    - VP8LBackwardRefs*
    - VP8LBackwardRefs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 120
    functionName: BackwardRefsSwap
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void BackwardRefsSwap(VP8LBackwardRefs* const refs1,\n                             VP8LBackwardRefs*
      const refs2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:123,1
    - Dst: memset
      Src: /src/libwebp/src/enc/backward_references_enc.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - refs
    - block_size
    argTypes:
    - VP8LBackwardRefs*
    - int
    assertStmts:
    - condition: (refs != NULL)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: VP8LBackwardRefsInit
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - memset
    linkageType: ''
    returnType: void
    signature: void VP8LBackwardRefsInit(VP8LBackwardRefs* const refs, int block_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - refs
    argTypes:
    - VP8LBackwardRefs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 141
    functionName: VP8LRefsCursorInit
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VP8LRefsCursor
    signature: VP8LRefsCursor VP8LRefsCursorInit(const VP8LBackwardRefs* const refs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - VP8LRefsCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: VP8LRefsCursorNextBlock
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VP8LRefsCursorNextBlock(VP8LRefsCursor* const c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/backward_references_enc.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - refs
    argTypes:
    - VP8LBackwardRefs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 170
    functionName: BackwardRefsNewBlock
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - WebPSafeMalloc
    linkageType: ''
    returnType: PixOrCopyBlock
    signature: PixOrCopyBlock * BackwardRefsNewBlock(VP8LBackwardRefs* const refs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LClearBackwardRefs
      Src: /src/libwebp/src/enc/backward_references_enc.c:176,1
    - Dst: BackwardRefsNewBlock
      Src: /src/libwebp/src/enc/backward_references_enc.c:178,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/backward_references_enc.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - VP8LBackwardRefs*
    - VP8LBackwardRefs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 186
    functionName: BackwardRefsClone
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BackwardRefsNewBlock
    - VP8LClearBackwardRefs
    linkageType: ''
    returnType: int
    signature: "int BackwardRefsClone(const VP8LBackwardRefs* const from,\n                             VP8LBackwardRefs*
      const to)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BackwardRefsNewBlock
      Src: /src/libwebp/src/enc/backward_references_enc.c:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - refs
    - v
    argTypes:
    - VP8LBackwardRefs*
    - PixOrCopy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 198
    functionName: VP8LBackwardRefsCursorAdd
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - BackwardRefsNewBlock
    linkageType: ''
    returnType: void
    signature: "void VP8LBackwardRefsCursorAdd(VP8LBackwardRefs* const refs,\n                               const
      PixOrCopy v)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:204,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:205,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:206,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/backward_references_enc.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - p
    - size
    argTypes:
    - VP8LHashChain*
    - int
    assertStmts:
    - condition: (p->size == 0)
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    - condition: (p->offset_length == NULL)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    - condition: (size > 0)
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    constantsTouched: []
    func_position:
      end: 212
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 212
    functionName: VP8LHashChainInit
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPSafeMalloc
    linkageType: ''
    returnType: int
    signature: int VP8LHashChainInit(VP8LHashChain* const p, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:215,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/backward_references_enc.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - VP8LHashChain*
    assertStmts:
    - condition: (p != NULL)
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: VP8LHashChainClear
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void VP8LHashChainClear(VP8LHashChain* const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - argb
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: GetPixPairHash64
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_UBSAN_IGNORE_UNSIGNED_OVERFLOW
    signature: WEBP_UBSAN_IGNORE_UNSIGNED_OVERFLOW GetPixPairHash64(const uint32_t*
      const argb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - quality
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: GetMaxItersForQuality
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetMaxItersForQuality(int quality)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - quality
    - xsize
    argTypes:
    - int
    - int
    assertStmts:
    - condition: (xsize > 0)
      pos:
        line_end: 246
        line_start: 246
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    constantsTouched: []
    func_position:
      end: 249
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 249
    functionName: GetWindowSizeForHashChain
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int GetWindowSizeForHashChain(int quality, int xsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: MaxFindCopyLength
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE MaxFindCopyLength(int len)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: GetMaxItersForQuality
      Src: /src/libwebp/src/enc/backward_references_enc.c:260,1
    - Dst: GetWindowSizeForHashChain
      Src: /src/libwebp/src/enc/backward_references_enc.c:261,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:270,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:271,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:272,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/backward_references_enc.c:280,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/backward_references_enc.c:282,1
    - Dst: memset
      Src: /src/libwebp/src/enc/backward_references_enc.c:289,1
    - Dst: memset
      Src: /src/libwebp/src/enc/backward_references_enc.c:314,1
    - Dst: GetPixPairHash64
      Src: /src/libwebp/src/enc/backward_references_enc.c:321,1
    - Dst: GetPixPairHash64
      Src: /src/libwebp/src/enc/backward_references_enc.c:328,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/backward_references_enc.c:334,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/backward_references_enc.c:336,1
    - Dst: GetPixPairHash64
      Src: /src/libwebp/src/enc/backward_references_enc.c:341,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/backward_references_enc.c:343,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/backward_references_enc.c:346,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:353,1
    - Dst: MaxFindCopyLength
      Src: /src/libwebp/src/enc/backward_references_enc.c:356,1
    - Dst: FindMatchLength
      Src: /src/libwebp/src/enc/backward_references_enc.c:372,1
    - Dst: FindMatchLength
      Src: /src/libwebp/src/enc/backward_references_enc.c:382,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:395,1
    - Dst: VP8LVectorMismatch
      Src: /src/libwebp/src/enc/backward_references_enc.c:399,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:412,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:413,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/backward_references_enc.c:438,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/backward_references_enc.c:447,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 111
    argCount: 9
    argNames:
    - p
    - quality
    - argb
    - xsize
    - ysize
    - low_effort
    - pic
    - percent_range
    - percent
    argTypes:
    - VP8LHashChain*
    - int
    - uint32_t*
    - int
    - int
    - int
    - WebPPicture*
    - int
    - int*
    assertStmts:
    - condition: (size > 2)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    - condition: (p->offset_length != NULL)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    - condition: (best_length <= MAX_LENGTH)
      pos:
        line_end: 411
        line_start: 411
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    - condition: (best_distance <= WINDOW_SIZE)
      pos:
        line_end: 412
        line_start: 412
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    - condition: (base_position > (uint32_t)pos)
      pos:
        line_end: 394
        line_start: 394
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    - condition: (size > 0)
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    - condition: (p->size != 0)
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    constantsTouched: []
    func_position:
      end: 448
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 448
    functionName: VP8LHashChainFill
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - GetMaxItersForQuality
    - assert
    - GetPixPairHash64
    - FindMatchLength
    - WebPReportProgress
    - WebPSafeMalloc
    - memset
    - MaxFindCopyLength
    - VP8LVectorMismatch
    - GetWindowSizeForHashChain
    - WebPEncodingSetError
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: "int VP8LHashChainFill(VP8LHashChain* const p, int quality,\n                      const
      uint32_t* const argb, int xsize, int ysize,\n                      int low_effort,
      const WebPPicture* const pic,\n                      int percent_range, int*
      const percent)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8LColorCacheGetIndex
      Src: /src/libwebp/src/enc/backward_references_enc.c:455,1
    - Dst: VP8LColorCacheLookup
      Src: /src/libwebp/src/enc/backward_references_enc.c:456,1
    - Dst: PixOrCopyCreateCacheIdx
      Src: /src/libwebp/src/enc/backward_references_enc.c:457,1
    - Dst: PixOrCopyCreateLiteral
      Src: /src/libwebp/src/enc/backward_references_enc.c:459,1
    - Dst: VP8LColorCacheSet
      Src: /src/libwebp/src/enc/backward_references_enc.c:460,1
    - Dst: PixOrCopyCreateLiteral
      Src: /src/libwebp/src/enc/backward_references_enc.c:463,1
    - Dst: VP8LBackwardRefsCursorAdd
      Src: /src/libwebp/src/enc/backward_references_enc.c:465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - pixel
    - use_color_cache
    - hashers
    - refs
    argTypes:
    - uint32_t
    - int
    - VP8LColorCache*
    - VP8LBackwardRefs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 450
    functionDepth: 3
    functionLinenumber: 450
    functionLinenumberEnd: 466
    functionName: AddSingleLiteral
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - VP8LColorCacheSet
    - VP8LBackwardRefsCursorAdd
    - PixOrCopyCreateCacheIdx
    - PixOrCopyCreateLiteral
    - VP8LColorCacheGetIndex
    - VP8LColorCacheLookup
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE AddSingleLiteral(uint32_t pixel, int use_color_cache,\n
      \                                        VP8LColorCache* const hashers,\n                                         VP8LBackwardRefs*
      const refs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: VP8LColorCacheInit
      Src: /src/libwebp/src/enc/backward_references_enc.c:476,1
    - Dst: VP8LClearBackwardRefs
      Src: /src/libwebp/src/enc/backward_references_enc.c:479,1
    - Dst: AddSingleLiteral
      Src: /src/libwebp/src/enc/backward_references_enc.c:481,1
    - Dst: MaxFindCopyLength
      Src: /src/libwebp/src/enc/backward_references_enc.c:484,1
    - Dst: FindMatchLength
      Src: /src/libwebp/src/enc/backward_references_enc.c:485,1
    - Dst: FindMatchLength
      Src: /src/libwebp/src/enc/backward_references_enc.c:488,1
    - Dst: VP8LBackwardRefsCursorAdd
      Src: /src/libwebp/src/enc/backward_references_enc.c:490,1
    - Dst: PixOrCopyCreateCopy
      Src: /src/libwebp/src/enc/backward_references_enc.c:490,1
    - Dst: VP8LBackwardRefsCursorAdd
      Src: /src/libwebp/src/enc/backward_references_enc.c:496,1
    - Dst: PixOrCopyCreateCopy
      Src: /src/libwebp/src/enc/backward_references_enc.c:496,1
    - Dst: VP8LColorCacheInsert
      Src: /src/libwebp/src/enc/backward_references_enc.c:499,1
    - Dst: AddSingleLiteral
      Src: /src/libwebp/src/enc/backward_references_enc.c:504,1
    - Dst: VP8LColorCacheClear
      Src: /src/libwebp/src/enc/backward_references_enc.c:508,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 5
    argNames:
    - xsize
    - ysize
    - argb
    - cache_bits
    - refs
    argTypes:
    - int
    - int
    - uint32_t*
    - int
    - VP8LBackwardRefs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 468
    functionDepth: 4
    functionLinenumber: 468
    functionLinenumberEnd: 510
    functionName: BackwardReferencesRle
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - VP8LBackwardRefsCursorAdd
    - VP8LColorCacheClear
    - VP8LColorCacheInit
    - FindMatchLength
    - AddSingleLiteral
    - VP8LColorCacheInsert
    - MaxFindCopyLength
    - PixOrCopyCreateCopy
    - VP8LClearBackwardRefs
    linkageType: ''
    returnType: int
    signature: "int BackwardReferencesRle(int xsize, int ysize,\n                                 const
      uint32_t* const argb, int cache_bits,\n                                 VP8LBackwardRefs*
      const refs)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: VP8LColorCacheInit
      Src: /src/libwebp/src/enc/backward_references_enc.c:525,1
    - Dst: VP8LClearBackwardRefs
      Src: /src/libwebp/src/enc/backward_references_enc.c:528,1
    - Dst: VP8LHashChainFindCopy
      Src: /src/libwebp/src/enc/backward_references_enc.c:534,1
    - Dst: VP8LHashChainFindLength
      Src: /src/libwebp/src/enc/backward_references_enc.c:549,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:562,1
    - Dst: AddSingleLiteral
      Src: /src/libwebp/src/enc/backward_references_enc.c:564,1
    - Dst: VP8LBackwardRefsCursorAdd
      Src: /src/libwebp/src/enc/backward_references_enc.c:566,1
    - Dst: PixOrCopyCreateCopy
      Src: /src/libwebp/src/enc/backward_references_enc.c:566,1
    - Dst: VP8LColorCacheInsert
      Src: /src/libwebp/src/enc/backward_references_enc.c:568,1
    - Dst: VP8LColorCacheClear
      Src: /src/libwebp/src/enc/backward_references_enc.c:576,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 6
    argNames:
    - xsize
    - ysize
    - argb
    - cache_bits
    - hash_chain
    - refs
    argTypes:
    - int
    - int
    - uint32_t*
    - int
    - VP8LHashChain*
    - VP8LBackwardRefs*
    assertStmts:
    - condition: (len > 0)
      pos:
        line_end: 561
        line_start: 561
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    constantsTouched: []
    func_position:
      end: 578
      start: 512
    functionDepth: 4
    functionLinenumber: 512
    functionLinenumberEnd: 578
    functionName: BackwardReferencesLz77
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - VP8LBackwardRefsCursorAdd
    - VP8LColorCacheClear
    - assert
    - VP8LColorCacheInit
    - AddSingleLiteral
    - VP8LColorCacheInsert
    - VP8LHashChainFindCopy
    - PixOrCopyCreateCopy
    - VP8LHashChainFindLength
    - VP8LClearBackwardRefs
    linkageType: ''
    returnType: int
    signature: "int BackwardReferencesLz77(int xsize, int ysize,\n                                  const
      uint32_t* const argb, int cache_bits,\n                                  const
      VP8LHashChain* const hash_chain,\n                                  VP8LBackwardRefs*
      const refs)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/backward_references_enc.c:596,1
    - Dst: VP8LDistanceToPlaneCode
      Src: /src/libwebp/src/enc/backward_references_enc.c:622,1
    - Dst: VP8LHashChainFindLength
      Src: /src/libwebp/src/enc/backward_references_enc.c:650,1
    - Dst: VP8LHashChainFindOffset
      Src: /src/libwebp/src/enc/backward_references_enc.c:657,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:711,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:712,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/backward_references_enc.c:725,1
    - Dst: BackwardReferencesLz77
      Src: /src/libwebp/src/enc/backward_references_enc.c:727,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 88
    argCount: 7
    argNames:
    - xsize
    - ysize
    - argb
    - cache_bits
    - hash_chain_best
    - hash_chain
    - refs
    argTypes:
    - int
    - int
    - uint32_t*
    - int
    - VP8LHashChain*
    - VP8LHashChain*
    - VP8LBackwardRefs*
    assertStmts:
    - condition: (i + best_length <= pix_count)
      pos:
        line_end: 710
        line_start: 710
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    - condition: (best_length <= MAX_LENGTH)
      pos:
        line_end: 711
        line_start: 711
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    constantsTouched: []
    func_position:
      end: 729
      start: 584
    functionDepth: 5
    functionLinenumber: 584
    functionLinenumberEnd: 729
    functionName: BackwardReferencesLz77Box
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPSafeMalloc
    - VP8LHashChainFindOffset
    - BackwardReferencesLz77
    - VP8LDistanceToPlaneCode
    - VP8LHashChainFindLength
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: "int BackwardReferencesLz77Box(int xsize, int ysize,\n                                     const
      uint32_t* const argb, int cache_bits,\n                                     const
      VP8LHashChain* const hash_chain_best,\n                                     VP8LHashChain*
      hash_chain,\n                                     VP8LBackwardRefs* const refs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LRefsCursorInit
      Src: /src/libwebp/src/enc/backward_references_enc.c:735,1
    - Dst: VP8LRefsCursorOk
      Src: /src/libwebp/src/enc/backward_references_enc.c:736,1
    - Dst: PixOrCopyIsCopy
      Src: /src/libwebp/src/enc/backward_references_enc.c:737,1
    - Dst: VP8LDistanceToPlaneCode
      Src: /src/libwebp/src/enc/backward_references_enc.c:739,1
    - Dst: VP8LRefsCursorNext
      Src: /src/libwebp/src/enc/backward_references_enc.c:742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - xsize
    - refs
    argTypes:
    - int
    - VP8LBackwardRefs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 744
    functionName: BackwardReferences2DLocality
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - PixOrCopyIsCopy
    - VP8LRefsCursorNext
    - VP8LRefsCursorInit
    - VP8LRefsCursorOk
    - VP8LDistanceToPlaneCode
    linkageType: ''
    returnType: void
    signature: "void BackwardReferences2DLocality(int xsize,\n                                         const
      VP8LBackwardRefs* const refs)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: VP8LRefsCursorInit
      Src: /src/libwebp/src/enc/backward_references_enc.c:759,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:763,1
    - Dst: VP8LAllocateHistogram
      Src: /src/libwebp/src/enc/backward_references_enc.c:773,1
    - Dst: VP8LHistogramInit
      Src: /src/libwebp/src/enc/backward_references_enc.c:775,1
    - Dst: VP8LColorCacheInit
      Src: /src/libwebp/src/enc/backward_references_enc.c:777,1
    - Dst: VP8LRefsCursorOk
      Src: /src/libwebp/src/enc/backward_references_enc.c:784,1
    - Dst: PixOrCopyIsLiteral
      Src: /src/libwebp/src/enc/backward_references_enc.c:786,1
    - Dst: VP8LHashPix
      Src: /src/libwebp/src/enc/backward_references_enc.c:793,1
    - Dst: VP8LColorCacheLookup
      Src: /src/libwebp/src/enc/backward_references_enc.c:801,1
    - Dst: VP8LColorCacheSet
      Src: /src/libwebp/src/enc/backward_references_enc.c:804,1
    - Dst: PixOrCopyLength
      Src: /src/libwebp/src/enc/backward_references_enc.c:818,1
    - Dst: VP8LPrefixEncode
      Src: /src/libwebp/src/enc/backward_references_enc.c:820,1
    - Dst: VP8LHashPix
      Src: /src/libwebp/src/enc/backward_references_enc.c:828,1
    - Dst: VP8LRefsCursorNext
      Src: /src/libwebp/src/enc/backward_references_enc.c:837,1
    - Dst: VP8LHistogramEstimateBits
      Src: /src/libwebp/src/enc/backward_references_enc.c:841,1
    - Dst: VP8LColorCacheClear
      Src: /src/libwebp/src/enc/backward_references_enc.c:850,1
    - Dst: VP8LFreeHistogram
      Src: /src/libwebp/src/enc/backward_references_enc.c:851,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 4
    argNames:
    - argb
    - quality
    - refs
    - best_cache_bits
    argTypes:
    - uint32_t*
    - int
    - VP8LBackwardRefs*
    - int*
    assertStmts:
    - condition: (cache_bits_max >= 0 && cache_bits_max <= MAX_COLOR_CACHE_BITS)
      pos:
        line_end: 762
        line_start: 762
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    constantsTouched: []
    func_position:
      end: 854
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 854
    functionName: CalculateBestCacheSize
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - VP8LColorCacheSet
    - VP8LHistogramInit
    - PixOrCopyLength
    - VP8LHashPix
    - VP8LAllocateHistogram
    - VP8LColorCacheClear
    - assert
    - VP8LColorCacheInit
    - VP8LHistogramEstimateBits
    - VP8LRefsCursorNext
    - PixOrCopyIsLiteral
    - VP8LRefsCursorInit
    - VP8LPrefixEncode
    - VP8LRefsCursorOk
    - VP8LFreeHistogram
    - VP8LColorCacheLookup
    linkageType: ''
    returnType: int
    signature: "int CalculateBestCacheSize(const uint32_t* argb, int quality,\n                                  const
      VP8LBackwardRefs* const refs,\n                                  int* const
      best_cache_bits)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VP8LRefsCursorInit
      Src: /src/libwebp/src/enc/backward_references_enc.c:862,1
    - Dst: VP8LColorCacheInit
      Src: /src/libwebp/src/enc/backward_references_enc.c:863,1
    - Dst: VP8LRefsCursorOk
      Src: /src/libwebp/src/enc/backward_references_enc.c:865,1
    - Dst: PixOrCopyIsLiteral
      Src: /src/libwebp/src/enc/backward_references_enc.c:867,1
    - Dst: VP8LColorCacheContains
      Src: /src/libwebp/src/enc/backward_references_enc.c:869,1
    - Dst: PixOrCopyCreateCacheIdx
      Src: /src/libwebp/src/enc/backward_references_enc.c:872,1
    - Dst: VP8LColorCacheInsert
      Src: /src/libwebp/src/enc/backward_references_enc.c:874,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:880,1
    - Dst: PixOrCopyIsCopy
      Src: /src/libwebp/src/enc/backward_references_enc.c:880,1
    - Dst: VP8LColorCacheInsert
      Src: /src/libwebp/src/enc/backward_references_enc.c:882,1
    - Dst: VP8LRefsCursorNext
      Src: /src/libwebp/src/enc/backward_references_enc.c:885,1
    - Dst: VP8LColorCacheClear
      Src: /src/libwebp/src/enc/backward_references_enc.c:887,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - argb
    - cache_bits
    - refs
    argTypes:
    - uint32_t*
    - int
    - VP8LBackwardRefs*
    assertStmts:
    - condition: (PixOrCopyIsCopy(v))
      pos:
        line_end: 879
        line_start: 879
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    constantsTouched: []
    func_position:
      end: 889
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 889
    functionName: BackwardRefsWithLocalCache
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - VP8LColorCacheContains
    - PixOrCopyCreateCacheIdx
    - assert
    - VP8LColorCacheInit
    - VP8LColorCacheClear
    - VP8LColorCacheInsert
    - PixOrCopyIsCopy
    - PixOrCopyIsLiteral
    - VP8LRefsCursorInit
    - VP8LRefsCursorNext
    - VP8LRefsCursorOk
    linkageType: ''
    returnType: int
    signature: "int BackwardRefsWithLocalCache(const uint32_t* const argb,\n                                      int
      cache_bits,\n                                      VP8LBackwardRefs* const refs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BackwardReferencesLz77
      Src: /src/libwebp/src/enc/backward_references_enc.c:895,1
    - Dst: BackwardReferences2DLocality
      Src: /src/libwebp/src/enc/backward_references_enc.c:898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - width
    - height
    - argb
    - cache_bits
    - hash_chain
    - refs_lz77
    argTypes:
    - int
    - int
    - uint32_t*
    - int*
    - VP8LHashChain*
    - VP8LBackwardRefs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 891
    functionDepth: 5
    functionLinenumber: 891
    functionLinenumberEnd: 900
    functionName: GetBackwardReferencesLowEffort
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - BackwardReferencesLz77
    - BackwardReferences2DLocality
    linkageType: ''
    returnType: VP8LBackwardRefs
    signature: "VP8LBackwardRefs * GetBackwardReferencesLowEffort(\n    int width,
      int height, const uint32_t* const argb, int* const cache_bits,\n    const VP8LHashChain*
      const hash_chain, VP8LBackwardRefs* const refs_lz77)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/enc/backward_references_enc.c:921,1
    - Dst: VP8LAllocateHistogram
      Src: /src/libwebp/src/enc/backward_references_enc.c:923,1
    - Dst: BackwardReferencesRle
      Src: /src/libwebp/src/enc/backward_references_enc.c:933,1
    - Dst: BackwardReferencesLz77
      Src: /src/libwebp/src/enc/backward_references_enc.c:938,1
    - Dst: VP8LHashChainInit
      Src: /src/libwebp/src/enc/backward_references_enc.c:942,1
    - Dst: BackwardReferencesLz77Box
      Src: /src/libwebp/src/enc/backward_references_enc.c:943,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:947,1
    - Dst: CalculateBestCacheSize
      Src: /src/libwebp/src/enc/backward_references_enc.c:959,1
    - Dst: BackwardRefsWithLocalCache
      Src: /src/libwebp/src/enc/backward_references_enc.c:963,1
    - Dst: VP8LHistogramCreate
      Src: /src/libwebp/src/enc/backward_references_enc.c:972,1
    - Dst: VP8LHistogramEstimateBits
      Src: /src/libwebp/src/enc/backward_references_enc.c:973,1
    - Dst: BackwardRefsClone
      Src: /src/libwebp/src/enc/backward_references_enc.c:980,1
    - Dst: BackwardRefsSwap
      Src: /src/libwebp/src/enc/backward_references_enc.c:982,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:990,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.c:991,1
    - Dst: VP8LBackwardReferencesTraceBackwards
      Src: /src/libwebp/src/enc/backward_references_enc.c:1004,1
    - Dst: VP8LHistogramCreate
      Src: /src/libwebp/src/enc/backward_references_enc.c:1009,1
    - Dst: VP8LHistogramEstimateBits
      Src: /src/libwebp/src/enc/backward_references_enc.c:1010,1
    - Dst: BackwardRefsSwap
      Src: /src/libwebp/src/enc/backward_references_enc.c:1012,1
    - Dst: BackwardReferences2DLocality
      Src: /src/libwebp/src/enc/backward_references_enc.c:1016,1
    - Dst: BackwardRefsClone
      Src: /src/libwebp/src/enc/backward_references_enc.c:1022,1
    - Dst: VP8LHashChainClear
      Src: /src/libwebp/src/enc/backward_references_enc.c:1029,1
    - Dst: VP8LFreeHistogram
      Src: /src/libwebp/src/enc/backward_references_enc.c:1030,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 93
    argCount: 10
    argNames:
    - width
    - height
    - argb
    - quality
    - lz77_types_to_try
    - cache_bits_max
    - do_no_cache
    - hash_chain
    - refs
    - cache_bits_best
    argTypes:
    - int
    - int
    - uint32_t*
    - int
    - int
    - int
    - int
    - VP8LHashChain*
    - VP8LBackwardRefs*
    - int*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 946
        line_start: 946
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    - condition: (!do_no_cache || lz77_types_best[1] > 0)
      pos:
        line_end: 990
        line_start: 990
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    - condition: (lz77_types_best[0] > 0)
      pos:
        line_end: 989
        line_start: 989
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    constantsTouched: []
    func_position:
      end: 1032
      start: 906
    functionDepth: 6
    functionLinenumber: 906
    functionLinenumberEnd: 1032
    functionName: GetBackwardReferences
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - BackwardReferencesRle
    - BackwardReferences2DLocality
    - BackwardRefsClone
    - VP8LAllocateHistogram
    - BackwardRefsWithLocalCache
    - assert
    - CalculateBestCacheSize
    - VP8LHistogramEstimateBits
    - VP8LHashChainClear
    - BackwardReferencesLz77Box
    - memset
    - VP8LHashChainInit
    - VP8LFreeHistogram
    - VP8LHistogramCreate
    - BackwardReferencesLz77
    - BackwardRefsSwap
    - VP8LBackwardReferencesTraceBackwards
    linkageType: ''
    returnType: int
    signature: "int GetBackwardReferences(int width, int height,\n                                 const
      uint32_t* const argb, int quality,\n                                 int lz77_types_to_try,
      int cache_bits_max,\n                                 int do_no_cache,\n                                 const
      VP8LHashChain* const hash_chain,\n                                 VP8LBackwardRefs*
      const refs,\n                                 int* const cache_bits_best)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetBackwardReferencesLowEffort
      Src: /src/libwebp/src/enc/backward_references_enc.c:1043,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/backward_references_enc.c:1046,1
    - Dst: BackwardRefsSwap
      Src: /src/libwebp/src/enc/backward_references_enc.c:1049,1
    - Dst: GetBackwardReferences
      Src: /src/libwebp/src/enc/backward_references_enc.c:1051,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/backward_references_enc.c:1054,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/backward_references_enc.c:1058,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 14
    argNames:
    - width
    - height
    - argb
    - quality
    - low_effort
    - lz77_types_to_try
    - cache_bits_max
    - do_no_cache
    - hash_chain
    - refs
    - cache_bits_best
    - pic
    - percent_range
    - percent
    argTypes:
    - int
    - int
    - uint32_t*
    - int
    - int
    - int
    - int
    - int
    - VP8LHashChain*
    - VP8LBackwardRefs*
    - int*
    - WebPPicture*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1034
    functionDepth: 7
    functionLinenumber: 1034
    functionLinenumberEnd: 1059
    functionName: VP8LGetBackwardReferences
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.c
    functionUses: 0
    functionsReached:
    - GetBackwardReferencesLowEffort
    - WebPReportProgress
    - GetBackwardReferences
    - WebPEncodingSetError
    - BackwardRefsSwap
    linkageType: ''
    returnType: int
    signature: "int VP8LGetBackwardReferences(\n    int width, int height, const uint32_t*
      const argb, int quality,\n    int low_effort, int lz77_types_to_try, int cache_bits_max,
      int do_no_cache,\n    const VP8LHashChain* const hash_chain, VP8LBackwardRefs*
      const refs,\n    int* const cache_bits_best, const WebPPicture* const pic, int
      percent_range,\n    int* const percent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/enc/iterator_enc.c:28,1
    - Dst: memset
      Src: /src/libwebp/src/enc/iterator_enc.c:29,1
    - Dst: memset
      Src: /src/libwebp/src/enc/iterator_enc.c:30,1
    - Dst: memset
      Src: /src/libwebp/src/enc/iterator_enc.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: InitLeft
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void InitLeft(VP8EncIterator* const it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/enc/iterator_enc.c:40,1
    - Dst: memset
      Src: /src/libwebp/src/enc/iterator_enc.c:41,1
    - Dst: memset
      Src: /src/libwebp/src/enc/iterator_enc.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: InitTop
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void InitTop(VP8EncIterator* const it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitLeft
      Src: /src/libwebp/src/enc/iterator_enc.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - it
    - y
    argTypes:
    - VP8EncIterator*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: VP8IteratorSetRow
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached:
    - InitLeft
    linkageType: ''
    returnType: void
    signature: void VP8IteratorSetRow(VP8EncIterator* const it, int y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8IteratorSetRow
      Src: /src/libwebp/src/enc/iterator_enc.c:63,1
    - Dst: VP8IteratorSetCountDown
      Src: /src/libwebp/src/enc/iterator_enc.c:64,1
    - Dst: InitTop
      Src: /src/libwebp/src/enc/iterator_enc.c:65,1
    - Dst: memset
      Src: /src/libwebp/src/enc/iterator_enc.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: VP8IteratorReset
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached:
    - VP8IteratorSetCountDown
    - InitTop
    - VP8IteratorSetRow
    - memset
    linkageType: ''
    returnType: void
    signature: void VP8IteratorReset(VP8EncIterator* const it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - count_down
    argTypes:
    - VP8EncIterator*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: VP8IteratorSetCountDown
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VP8IteratorSetCountDown(VP8EncIterator* const it, int count_down)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: VP8IteratorIsDone
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int VP8IteratorIsDone(const VP8EncIterator* const it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_ALIGN
      Src: /src/libwebp/src/enc/iterator_enc.c:80,1
    - Dst: WEBP_ALIGN
      Src: /src/libwebp/src/enc/iterator_enc.c:86,1
    - Dst: VP8IteratorReset
      Src: /src/libwebp/src/enc/iterator_enc.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - enc
    - it
    argTypes:
    - VP8Encoder*
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: VP8IteratorInit
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached:
    - VP8IteratorReset
    - WEBP_ALIGN
    linkageType: ''
    returnType: void
    signature: void VP8IteratorInit(VP8Encoder* const enc, VP8EncIterator* const it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/iterator_enc.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - it
    - delta
    argTypes:
    - VP8EncIterator*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: VP8IteratorProgress
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached:
    - WebPReportProgress
    linkageType: ''
    returnType: int
    signature: int VP8IteratorProgress(const VP8EncIterator* const it, int delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: MinSize
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE MinSize(int a, int b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libwebp/src/enc/iterator_enc.c:115,1
    - Dst: memset
      Src: /src/libwebp/src/enc/iterator_enc.c:117,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/iterator_enc.c:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - src
    - src_stride
    - dst
    - w
    - h
    - size
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 126
    functionName: ImportBlock
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: void
    signature: "void ImportBlock(const uint8_t* src, int src_stride, uint8_t* dst,
      int w,\n                        int h, int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - src
    - src_stride
    - dst
    - len
    - total_len
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: ImportLine
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ImportLine(const uint8_t* src, int src_stride, uint8_t* dst,\n
      \                      int len, int total_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MinSize
      Src: /src/libwebp/src/enc/iterator_enc.c:142,1
    - Dst: MinSize
      Src: /src/libwebp/src/enc/iterator_enc.c:143,1
    - Dst: ImportBlock
      Src: /src/libwebp/src/enc/iterator_enc.c:147,1
    - Dst: ImportBlock
      Src: /src/libwebp/src/enc/iterator_enc.c:148,1
    - Dst: ImportBlock
      Src: /src/libwebp/src/enc/iterator_enc.c:149,1
    - Dst: InitLeft
      Src: /src/libwebp/src/enc/iterator_enc.c:155,1
    - Dst: ImportLine
      Src: /src/libwebp/src/enc/iterator_enc.c:164,1
    - Dst: ImportLine
      Src: /src/libwebp/src/enc/iterator_enc.c:165,1
    - Dst: ImportLine
      Src: /src/libwebp/src/enc/iterator_enc.c:166,1
    - Dst: memset
      Src: /src/libwebp/src/enc/iterator_enc.c:172,1
    - Dst: ImportLine
      Src: /src/libwebp/src/enc/iterator_enc.c:174,1
    - Dst: ImportLine
      Src: /src/libwebp/src/enc/iterator_enc.c:175,1
    - Dst: ImportLine
      Src: /src/libwebp/src/enc/iterator_enc.c:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - it
    - tmp_32
    argTypes:
    - VP8EncIterator*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 178
    functionName: VP8IteratorImport
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached:
    - ImportBlock
    - InitLeft
    - memset
    - ImportLine
    - MinSize
    linkageType: ''
    returnType: void
    signature: void VP8IteratorImport(VP8EncIterator* const it, uint8_t* const tmp_32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libwebp/src/enc/iterator_enc.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - src
    - dst
    - dst_stride
    - w
    - h
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: ExportBlock
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void ExportBlock(const uint8_t* src, uint8_t* dst, int dst_stride,
      int w,\n                        int h)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ExportBlock
      Src: /src/libwebp/src/enc/iterator_enc.c:210,1
    - Dst: ExportBlock
      Src: /src/libwebp/src/enc/iterator_enc.c:215,1
    - Dst: ExportBlock
      Src: /src/libwebp/src/enc/iterator_enc.c:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 219
    functionName: VP8IteratorExport
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached:
    - ExportBlock
    linkageType: ''
    returnType: void
    signature: void VP8IteratorExport(const VP8EncIterator* const it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nz
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: BIT
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIT(nz, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT
      Src: /src/libwebp/src/enc/iterator_enc.c:244,1
    - Dst: BIT
      Src: /src/libwebp/src/enc/iterator_enc.c:245,1
    - Dst: BIT
      Src: /src/libwebp/src/enc/iterator_enc.c:246,1
    - Dst: BIT
      Src: /src/libwebp/src/enc/iterator_enc.c:247,1
    - Dst: BIT
      Src: /src/libwebp/src/enc/iterator_enc.c:249,1
    - Dst: BIT
      Src: /src/libwebp/src/enc/iterator_enc.c:250,1
    - Dst: BIT
      Src: /src/libwebp/src/enc/iterator_enc.c:252,1
    - Dst: BIT
      Src: /src/libwebp/src/enc/iterator_enc.c:253,1
    - Dst: BIT
      Src: /src/libwebp/src/enc/iterator_enc.c:255,1
    - Dst: BIT
      Src: /src/libwebp/src/enc/iterator_enc.c:258,1
    - Dst: BIT
      Src: /src/libwebp/src/enc/iterator_enc.c:259,1
    - Dst: BIT
      Src: /src/libwebp/src/enc/iterator_enc.c:260,1
    - Dst: BIT
      Src: /src/libwebp/src/enc/iterator_enc.c:261,1
    - Dst: BIT
      Src: /src/libwebp/src/enc/iterator_enc.c:263,1
    - Dst: BIT
      Src: /src/libwebp/src/enc/iterator_enc.c:264,1
    - Dst: BIT
      Src: /src/libwebp/src/enc/iterator_enc.c:266,1
    - Dst: BIT
      Src: /src/libwebp/src/enc/iterator_enc.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 269
    functionName: VP8IteratorNzToBytes
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached:
    - BIT
    linkageType: ''
    returnType: void
    signature: void VP8IteratorNzToBytes(VP8EncIterator* const it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 287
    functionName: VP8IteratorBytesToNz
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VP8IteratorBytesToNz(VP8EncIterator* const it)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libwebp/src/enc/iterator_enc.c:314,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/iterator_enc.c:315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 317
    functionName: VP8IteratorSaveBoundary
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void VP8IteratorSaveBoundary(VP8EncIterator* const it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8IteratorSetRow
      Src: /src/libwebp/src/enc/iterator_enc.c:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 330
    functionName: VP8IteratorNext
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached:
    - VP8IteratorSetRow
    linkageType: ''
    returnType: int
    signature: int VP8IteratorNext(VP8EncIterator* const it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/enc/iterator_enc.c:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - it
    - mode
    argTypes:
    - VP8EncIterator*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 343
    functionName: VP8SetIntra16Mode
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void VP8SetIntra16Mode(const VP8EncIterator* const it, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libwebp/src/enc/iterator_enc.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - it
    - modes
    argTypes:
    - VP8EncIterator*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: VP8SetIntra4Mode
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void VP8SetIntra4Mode(const VP8EncIterator* const it, const uint8_t*
      modes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - mode
    argTypes:
    - VP8EncIterator*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 358
    functionName: VP8SetIntraUVMode
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VP8SetIntraUVMode(const VP8EncIterator* const it, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - skip
    argTypes:
    - VP8EncIterator*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 362
    functionName: VP8SetSkip
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VP8SetSkip(const VP8EncIterator* const it, int skip)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - segment
    argTypes:
    - VP8EncIterator*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 366
    functionName: VP8SetSegment
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VP8SetSegment(const VP8EncIterator* const it, int segment)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/enc/iterator_enc.c:434,1
    - Dst: VP8IteratorNzToBytes
      Src: /src/libwebp/src/enc/iterator_enc.c:436,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 437
    functionName: VP8IteratorStartI4
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached:
    - memset
    - VP8IteratorNzToBytes
    linkageType: ''
    returnType: void
    signature: void VP8IteratorStartI4(VP8EncIterator* const it)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - it
    - yuv_out
    argTypes:
    - VP8EncIterator*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 466
    functionName: VP8IteratorRotateI4
    functionSourceFile: /src/libwebp/src/enc/iterator_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int VP8IteratorRotateI4(VP8EncIterator* const it,\n                        const
      uint8_t* const yuv_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: HALVE
    functionSourceFile: /src/libwebp/src/enc/picture_rescale_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HALVE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:34,1
    - Dst: WebPPictureResetBuffers
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - WebPPicture*
    - WebPPicture*
    assertStmts:
    - condition: (src != NULL && dst != NULL)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/libwebp/src/enc/picture_rescale_enc.c
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: PictureGrabSpecs
    functionSourceFile: /src/libwebp/src/enc/picture_rescale_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPPictureResetBuffers
    linkageType: ''
    returnType: void
    signature: "void PictureGrabSpecs(const WebPPicture* const src,\n                             WebPPicture*
      const dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pic
    - left
    - top
    argTypes:
    - WebPPicture*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: SnapTopLeftPosition
    functionSourceFile: /src/libwebp/src/enc/picture_rescale_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SnapTopLeftPosition(const WebPPicture* const pic, int* const
      left,\n                                int* const top)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SnapTopLeftPosition
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:54,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 5
    argNames:
    - pic
    - left
    - top
    - width
    - height
    argTypes:
    - WebPPicture*
    - int*
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: AdjustAndCheckRectangle
    functionSourceFile: /src/libwebp/src/enc/picture_rescale_enc.c
    functionUses: 0
    functionsReached:
    - SnapTopLeftPosition
    linkageType: ''
    returnType: int
    signature: "int AdjustAndCheckRectangle(const WebPPicture* const pic,\n                                   int*
      const left, int* const top, int width,\n                                   int
      height)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PictureGrabSpecs
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:67,1
    - Dst: WebPPictureAlloc
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:68,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:71,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:73,1
    - Dst: HALVE
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:74,1
    - Dst: HALVE
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:74,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:75,1
    - Dst: HALVE
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:76,1
    - Dst: HALVE
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:76,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:78,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:82,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - WebPPicture*
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 87
    functionName: WebPPictureCopy
    functionSourceFile: /src/libwebp/src/enc/picture_rescale_enc.c
    functionUses: 1
    functionsReached:
    - PictureGrabSpecs
    - WebPPictureAlloc
    - HALVE
    - WebPCopyPlane
    linkageType: ''
    returnType: int
    signature: int WebPPictureCopy(const WebPPicture* src, WebPPicture* dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - picture
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: WebPPictureIsView
    functionSourceFile: /src/libwebp/src/enc/picture_rescale_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int WebPPictureIsView(const WebPPicture* picture)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: AdjustAndCheckRectangle
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:103,1
    - Dst: PictureGrabSpecs
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 6
    argNames:
    - src
    - left
    - top
    - width
    - height
    - dst
    argTypes:
    - WebPPicture*
    - int
    - int
    - int
    - int
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 125
    functionName: WebPPictureView
    functionSourceFile: /src/libwebp/src/enc/picture_rescale_enc.c
    functionUses: 3
    functionsReached:
    - AdjustAndCheckRectangle
    - PictureGrabSpecs
    linkageType: ''
    returnType: int
    signature: "int WebPPictureView(const WebPPicture* src, int left, int top, int
      width,\n                    int height, WebPPicture* dst)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: AdjustAndCheckRectangle
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:136,1
    - Dst: PictureGrabSpecs
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:138,1
    - Dst: WebPPictureAlloc
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:141,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:142,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:148,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:150,1
    - Dst: HALVE
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:151,1
    - Dst: HALVE
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:151,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:152,1
    - Dst: HALVE
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:153,1
    - Dst: HALVE
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:153,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:157,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:163,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - pic
    - left
    - top
    - width
    - height
    argTypes:
    - WebPPicture*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 169
    functionName: WebPPictureCrop
    functionSourceFile: /src/libwebp/src/enc/picture_rescale_enc.c
    functionUses: 2
    functionsReached:
    - HALVE
    - AdjustAndCheckRectangle
    - PictureGrabSpecs
    - WebPCopyPlane
    - WebPPictureAlloc
    - WebPPictureFree
    - WebPEncodingSetError
    linkageType: ''
    returnType: int
    signature: "int WebPPictureCrop(WebPPicture* pic, int left, int top, int width,\n
      \                   int height)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPRescalerInit
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:180,1
    - Dst: WebPRescalerImport
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:185,1
    - Dst: WebPRescalerExport
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 10
    argNames:
    - src
    - src_width
    - src_height
    - src_stride
    - dst
    - dst_width
    - dst_height
    - dst_stride
    - work
    - num_channels
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    - int
    - int
    - int
    - rescaler_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 190
    functionName: RescalePlane
    functionSourceFile: /src/libwebp/src/enc/picture_rescale_enc.c
    functionUses: 0
    functionsReached:
    - WebPRescalerImport
    - WebPRescalerExport
    - WebPRescalerInit
    linkageType: ''
    returnType: int
    signature: "int RescalePlane(const uint8_t* src, int src_width, int src_height,\n
      \                       int src_stride, uint8_t* dst, int dst_width,\n                        int
      dst_height, int dst_stride, rescaler_t* const work,\n                        int
      num_channels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:193,1
    - Dst: WebPMultARGBRows
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pic
    - inverse
    argTypes:
    - WebPPicture*
    - int
    assertStmts:
    - condition: (pic->argb != NULL)
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/libwebp/src/enc/picture_rescale_enc.c
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: AlphaMultiplyARGB
    functionSourceFile: /src/libwebp/src/enc/picture_rescale_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPMultARGBRows
    linkageType: ''
    returnType: void
    signature: void AlphaMultiplyARGB(WebPPicture* const pic, int inverse)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPMultRows
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pic
    - inverse
    argTypes:
    - WebPPicture*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: AlphaMultiplyY
    functionSourceFile: /src/libwebp/src/enc/picture_rescale_enc.c
    functionUses: 0
    functionsReached:
    - WebPMultRows
    linkageType: ''
    returnType: void
    signature: void AlphaMultiplyY(WebPPicture* const pic, int inverse)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: WebPRescalerGetScaledDimensions
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:214,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:216,1
    - Dst: PictureGrabSpecs
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:219,1
    - Dst: WebPPictureAlloc
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:222,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:223,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:227,1
    - Dst: WebPInitAlphaProcessing
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:234,1
    - Dst: RescalePlane
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:235,1
    - Dst: AlphaMultiplyY
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:244,1
    - Dst: RescalePlane
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:245,1
    - Dst: RescalePlane
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:247,1
    - Dst: HALVE
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:247,1
    - Dst: HALVE
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:247,1
    - Dst: HALVE
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:248,1
    - Dst: HALVE
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:248,1
    - Dst: RescalePlane
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:250,1
    - Dst: HALVE
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:250,1
    - Dst: HALVE
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:250,1
    - Dst: HALVE
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:251,1
    - Dst: HALVE
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:251,1
    - Dst: AlphaMultiplyY
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:256,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:258,1
    - Dst: WebPInitAlphaProcessing
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:266,1
    - Dst: AlphaMultiplyARGB
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:267,1
    - Dst: RescalePlane
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:268,1
    - Dst: AlphaMultiplyARGB
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:274,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:278,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:280,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:281,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/src/enc/picture_rescale_enc.c:284,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 3
    argNames:
    - picture
    - width
    - height
    argTypes:
    - WebPPicture*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 287
    functionName: WebPPictureRescale
    functionSourceFile: /src/libwebp/src/enc/picture_rescale_enc.c
    functionUses: 4
    functionsReached:
    - RescalePlane
    - AlphaMultiplyY
    - HALVE
    - PictureGrabSpecs
    - AlphaMultiplyARGB
    - WebPPictureAlloc
    - WebPSafeMalloc
    - WebPInitAlphaProcessing
    - WebPPictureFree
    - WebPRescalerGetScaledDimensions
    - WebPEncodingSetError
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: int WebPPictureRescale(WebPPicture* picture, int width, int height)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - WebPPicture*
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: WebPPictureCopy
    functionSourceFile: /src/libwebp/src/enc/picture_rescale_enc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int WebPPictureCopy(const WebPPicture* src, WebPPicture* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - pic
    - left
    - top
    - width
    - height
    argTypes:
    - WebPPicture*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 305
    functionName: WebPPictureCrop
    functionSourceFile: /src/libwebp/src/enc/picture_rescale_enc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int WebPPictureCrop(WebPPicture* pic, int left, int top, int width,\n
      \                   int height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pic
    - width
    - height
    argTypes:
    - WebPPicture*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: WebPPictureRescale
    functionSourceFile: /src/libwebp/src/enc/picture_rescale_enc.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int WebPPictureRescale(WebPPicture* pic, int width, int height)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/enc/tree_enc.c:130,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/tree_enc.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: VP8DefaultProbas
    functionSourceFile: /src/libwebp/src/enc/tree_enc.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: void
    signature: void VP8DefaultProbas(VP8Encoder* const enc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:242,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:243,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:244,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:245,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:246,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:247,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:250,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:251,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:252,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - bw
    - mode
    - prob
    argTypes:
    - VP8BitWriter*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 260
    functionName: PutI4Mode
    functionSourceFile: /src/libwebp/src/enc/tree_enc.c
    functionUses: 0
    functionsReached:
    - VP8PutBit
    linkageType: ''
    returnType: int
    signature: "int PutI4Mode(VP8BitWriter* const bw, int mode,\n                     const
      uint8_t* const prob)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:263,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:264,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bw
    - mode
    argTypes:
    - VP8BitWriter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 268
    functionName: PutI16Mode
    functionSourceFile: /src/libwebp/src/enc/tree_enc.c
    functionUses: 0
    functionsReached:
    - VP8PutBit
    linkageType: ''
    returnType: void
    signature: void PutI16Mode(VP8BitWriter* const bw, int mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:271,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:272,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bw
    - uv_mode
    argTypes:
    - VP8BitWriter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: PutUVMode
    functionSourceFile: /src/libwebp/src/enc/tree_enc.c
    functionUses: 0
    functionsReached:
    - VP8PutBit
    linkageType: ''
    returnType: void
    signature: void PutUVMode(VP8BitWriter* const bw, int uv_mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:279,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bw
    - s
    - p
    argTypes:
    - VP8BitWriter*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: PutSegment
    functionSourceFile: /src/libwebp/src/enc/tree_enc.c
    functionUses: 0
    functionsReached:
    - VP8PutBit
    linkageType: ''
    returnType: void
    signature: void PutSegment(VP8BitWriter* const bw, int s, const uint8_t* p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VP8IteratorInit
      Src: /src/libwebp/src/enc/tree_enc.c:286,1
    - Dst: PutSegment
      Src: /src/libwebp/src/enc/tree_enc.c:291,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:294,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:296,1
    - Dst: PutI16Mode
      Src: /src/libwebp/src/enc/tree_enc.c:297,1
    - Dst: PutI4Mode
      Src: /src/libwebp/src/enc/tree_enc.c:306,1
    - Dst: PutUVMode
      Src: /src/libwebp/src/enc/tree_enc.c:312,1
    - Dst: VP8IteratorNext
      Src: /src/libwebp/src/enc/tree_enc.c:313,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 314
    functionName: VP8CodeIntraModes
    functionSourceFile: /src/libwebp/src/enc/tree_enc.c
    functionUses: 0
    functionsReached:
    - VP8IteratorInit
    - PutI4Mode
    - PutI16Mode
    - VP8PutBit
    - PutUVMode
    - VP8IteratorNext
    - PutSegment
    linkageType: ''
    returnType: void
    signature: void VP8CodeIntraModes(VP8Encoder* const enc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/tree_enc.c:425,1
    - Dst: VP8PutBits
      Src: /src/libwebp/src/enc/tree_enc.c:426,1
    - Dst: VP8PutBitUniform
      Src: /src/libwebp/src/enc/tree_enc.c:432,1
    - Dst: VP8PutBits
      Src: /src/libwebp/src/enc/tree_enc.c:433,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - bw
    - probas
    argTypes:
    - VP8BitWriter*
    - VP8EncProba*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 435
    functionName: VP8WriteProbas
    functionSourceFile: /src/libwebp/src/enc/tree_enc.c
    functionUses: 0
    functionsReached:
    - VP8PutBitUniform
    - VP8PutBit
    - VP8PutBits
    linkageType: ''
    returnType: void
    signature: void VP8WriteProbas(VP8BitWriter* const bw, const VP8EncProba* const
      probas)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: WebPGetEncoderVersion
    functionSourceFile: /src/libwebp/src/enc/webp_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int WebPGetEncoderVersion(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: ResetSegmentHeader
    functionSourceFile: /src/libwebp/src/enc/webp_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetSegmentHeader(VP8Encoder* const enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: ResetFilterHeader
    functionSourceFile: /src/libwebp/src/enc/webp_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetFilterHeader(VP8Encoder* const enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: ResetBoundaryPredictions
    functionSourceFile: /src/libwebp/src/enc/webp_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetBoundaryPredictions(VP8Encoder* const enc)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 127
    functionName: MapConfigToTools
    functionSourceFile: /src/libwebp/src/enc/webp_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MapConfigToTools(VP8Encoder* const enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libwebp/src/enc/webp_enc.c:181,1
    - Dst: printf
      Src: /src/libwebp/src/enc/webp_enc.c:182,1
    - Dst: printf
      Src: /src/libwebp/src/enc/webp_enc.c:194,1
    - Dst: printf
      Src: /src/libwebp/src/enc/webp_enc.c:203,1
    - Dst: printf
      Src: /src/libwebp/src/enc/webp_enc.c:204,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/webp_enc.c:206,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/webp_enc.c:208,1
    - Dst: WEBP_ALIGN
      Src: /src/libwebp/src/enc/webp_enc.c:212,1
    - Dst: memset
      Src: /src/libwebp/src/enc/webp_enc.c:213,1
    - Dst: WEBP_ALIGN
      Src: /src/libwebp/src/enc/webp_enc.c:222,1
    - Dst: WEBP_ALIGN
      Src: /src/libwebp/src/enc/webp_enc.c:224,1
    - Dst: WEBP_ALIGN
      Src: /src/libwebp/src/enc/webp_enc.c:228,1
    - Dst: assert
      Src: /src/libwebp/src/enc/webp_enc.c:234,1
    - Dst: MapConfigToTools
      Src: /src/libwebp/src/enc/webp_enc.c:241,1
    - Dst: VP8EncDspInit
      Src: /src/libwebp/src/enc/webp_enc.c:242,1
    - Dst: VP8DefaultProbas
      Src: /src/libwebp/src/enc/webp_enc.c:243,1
    - Dst: ResetSegmentHeader
      Src: /src/libwebp/src/enc/webp_enc.c:244,1
    - Dst: ResetFilterHeader
      Src: /src/libwebp/src/enc/webp_enc.c:245,1
    - Dst: ResetBoundaryPredictions
      Src: /src/libwebp/src/enc/webp_enc.c:246,1
    - Dst: VP8EncDspCostInit
      Src: /src/libwebp/src/enc/webp_enc.c:247,1
    - Dst: VP8EncInitAlpha
      Src: /src/libwebp/src/enc/webp_enc.c:248,1
    - Dst: VP8TBufferInit
      Src: /src/libwebp/src/enc/webp_enc.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 2
    argNames:
    - config
    - picture
    argTypes:
    - WebPConfig*
    - WebPPicture*
    assertStmts:
    - condition: (mem <= (uint8_t*)enc + size)
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/libwebp/src/enc/webp_enc.c
    constantsTouched: []
    func_position:
      end: 257
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 257
    functionName: InitVP8Encoder
    functionSourceFile: /src/libwebp/src/enc/webp_enc.c
    functionUses: 0
    functionsReached:
    - printf
    - VP8DefaultProbas
    - ResetFilterHeader
    - VP8EncDspCostInit
    - VP8TBufferInit
    - VP8EncDspInit
    - ResetSegmentHeader
    - ResetBoundaryPredictions
    - assert
    - WEBP_ALIGN
    - VP8EncInitAlpha
    - WebPSafeMalloc
    - memset
    - MapConfigToTools
    - WebPEncodingSetError
    linkageType: ''
    returnType: VP8Encoder
    signature: "VP8Encoder * InitVP8Encoder(const WebPConfig* const config,\n                                  WebPPicture*
      const picture)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8EncDeleteAlpha
      Src: /src/libwebp/src/enc/webp_enc.c:262,1
    - Dst: VP8TBufferClear
      Src: /src/libwebp/src/enc/webp_enc.c:263,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/webp_enc.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 267
    functionName: DeleteVP8Encoder
    functionSourceFile: /src/libwebp/src/enc/webp_enc.c
    functionUses: 0
    functionsReached:
    - VP8TBufferClear
    - VP8EncDeleteAlpha
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: int DeleteVP8Encoder(VP8Encoder* enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log10
      Src: /src/libwebp/src/enc/webp_enc.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - err
    - size
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: GetPSNR
    functionSourceFile: /src/libwebp/src/enc/webp_enc.c
    functionUses: 0
    functionsReached:
    - log10
    linkageType: ''
    returnType: double
    signature: double GetPSNR(uint64_t err, uint64_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPSNR
      Src: /src/libwebp/src/enc/webp_enc.c:280,1
    - Dst: GetPSNR
      Src: /src/libwebp/src/enc/webp_enc.c:281,1
    - Dst: GetPSNR
      Src: /src/libwebp/src/enc/webp_enc.c:282,1
    - Dst: GetPSNR
      Src: /src/libwebp/src/enc/webp_enc.c:283,1
    - Dst: GetPSNR
      Src: /src/libwebp/src/enc/webp_enc.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 285
    functionName: FinalizePSNR
    functionSourceFile: /src/libwebp/src/enc/webp_enc.c
    functionUses: 0
    functionsReached:
    - GetPSNR
    linkageType: ''
    returnType: void
    signature: void FinalizePSNR(const VP8Encoder* const enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FinalizePSNR
      Src: /src/libwebp/src/enc/webp_enc.c:300,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/webp_enc.c:307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 309
    functionName: StoreStats
    functionSourceFile: /src/libwebp/src/enc/webp_enc.c
    functionUses: 0
    functionsReached:
    - WebPReportProgress
    - FinalizePSNR
    linkageType: ''
    returnType: void
    signature: void StoreStats(VP8Encoder* const enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/webp_enc.c:313,1
    - Dst: assert
      Src: /src/libwebp/src/enc/webp_enc.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pic
    - error
    argTypes:
    - WebPPicture*
    - WebPEncodingError
    assertStmts:
    - condition: ((int)error < VP8_ENC_ERROR_LAST)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/libwebp/src/enc/webp_enc.c
    - condition: ((int)error >= VP8_ENC_OK)
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/libwebp/src/enc/webp_enc.c
    constantsTouched: []
    func_position:
      end: 320
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 320
    functionName: WebPEncodingSetError
    functionSourceFile: /src/libwebp/src/enc/webp_enc.c
    functionUses: 5
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int WebPEncodingSetError(const WebPPicture* const pic,\n                         WebPEncodingError
      error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPPicture*::progress_hook
      Src: /src/libwebp/src/enc/webp_enc.c:326,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/webp_enc.c:328,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - pic
    - percent
    - percent_store
    argTypes:
    - WebPPicture*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 332
    functionName: WebPReportProgress
    functionSourceFile: /src/libwebp/src/enc/webp_enc.c
    functionUses: 4
    functionsReached:
    - WebPEncodingSetError
    - WebPPicture*::progress_hook
    linkageType: ''
    returnType: int
    signature: "int WebPReportProgress(const WebPPicture* const pic, int percent,\n
      \                      int* const percent_store)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/webp_enc.c:341,1
    - Dst: WebPValidateConfig
      Src: /src/libwebp/src/enc/webp_enc.c:343,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/webp_enc.c:344,1
    - Dst: WebPValidatePicture
      Src: /src/libwebp/src/enc/webp_enc.c:346,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/webp_enc.c:348,1
    - Dst: memset
      Src: /src/libwebp/src/enc/webp_enc.c:351,1
    - Dst: WebPPictureSharpARGBToYUVA
      Src: /src/libwebp/src/enc/webp_enc.c:359,1
    - Dst: WebPPictureARGBToYUVADithered
      Src: /src/libwebp/src/enc/webp_enc.c:371,1
    - Dst: WebPCleanupTransparentArea
      Src: /src/libwebp/src/enc/webp_enc.c:378,1
    - Dst: InitVP8Encoder
      Src: /src/libwebp/src/enc/webp_enc.c:381,1
    - Dst: VP8EncAnalyze
      Src: /src/libwebp/src/enc/webp_enc.c:384,1
    - Dst: VP8EncStartAlpha
      Src: /src/libwebp/src/enc/webp_enc.c:387,1
    - Dst: VP8EncLoop
      Src: /src/libwebp/src/enc/webp_enc.c:389,1
    - Dst: VP8EncTokenLoop
      Src: /src/libwebp/src/enc/webp_enc.c:391,1
    - Dst: VP8EncFinishAlpha
      Src: /src/libwebp/src/enc/webp_enc.c:393,1
    - Dst: VP8EncWrite
      Src: /src/libwebp/src/enc/webp_enc.c:395,1
    - Dst: StoreStats
      Src: /src/libwebp/src/enc/webp_enc.c:396,1
    - Dst: VP8EncFreeBitWriters
      Src: /src/libwebp/src/enc/webp_enc.c:398,1
    - Dst: DeleteVP8Encoder
      Src: /src/libwebp/src/enc/webp_enc.c:400,1
    - Dst: WebPPictureYUVAToARGB
      Src: /src/libwebp/src/enc/webp_enc.c:403,1
    - Dst: WebPReplaceTransparentPixels
      Src: /src/libwebp/src/enc/webp_enc.c:408,1
    - Dst: VP8LEncodeImage
      Src: /src/libwebp/src/enc/webp_enc.c:411,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 62
    argCount: 2
    argNames:
    - config
    - pic
    argTypes:
    - WebPConfig*
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 415
    functionName: WebPEncode
    functionSourceFile: /src/libwebp/src/enc/webp_enc.c
    functionUses: 5
    functionsReached:
    - WebPValidateConfig
    - VP8LEncodeImage
    - VP8EncTokenLoop
    - WebPEncodingSetError
    - VP8EncFreeBitWriters
    - StoreStats
    - WebPPictureARGBToYUVADithered
    - WebPReplaceTransparentPixels
    - WebPPictureYUVAToARGB
    - VP8EncFinishAlpha
    - VP8EncStartAlpha
    - VP8EncAnalyze
    - InitVP8Encoder
    - WebPCleanupTransparentArea
    - WebPPictureSharpARGBToYUVA
    - VP8EncWrite
    - DeleteVP8Encoder
    - memset
    - VP8EncLoop
    - WebPValidatePicture
    linkageType: ''
    returnType: int
    signature: int WebPEncode(const WebPConfig* config, WebPPicture* pic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - r
    - b
    argTypes:
    - uint32_t
    - HistogramBuckets
    - HistogramBuckets
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: AddSingleSubGreen
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AddSingleSubGreen(uint32_t p, HistogramBuckets r,\n                              HistogramBuckets
      b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - p
    - a
    - r
    - g
    - b
    argTypes:
    - uint32_t
    - HistogramBuckets
    - HistogramBuckets
    - HistogramBuckets
    - HistogramBuckets
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: AddSingle
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AddSingle(uint32_t p, HistogramBuckets a, HistogramBuckets r,\n
      \                     HistogramBuckets g, HistogramBuckets b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pix
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: HashPix
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE HashPix(uint32_t pix)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/enc/vp8l_enc.c:117,1
    - Dst: VP8LSubPixels
      Src: /src/libwebp/src/enc/vp8l_enc.c:126,1
    - Dst: AddSingle
      Src: /src/libwebp/src/enc/vp8l_enc.c:131,1
    - Dst: AddSingle
      Src: /src/libwebp/src/enc/vp8l_enc.c:133,1
    - Dst: AddSingleSubGreen
      Src: /src/libwebp/src/enc/vp8l_enc.c:137,1
    - Dst: AddSingleSubGreen
      Src: /src/libwebp/src/enc/vp8l_enc.c:139,1
    - Dst: HashPix
      Src: /src/libwebp/src/enc/vp8l_enc.c:143,1
    - Dst: VP8LBitsEntropy
      Src: /src/libwebp/src/enc/vp8l_enc.c:167,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:185,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:186,1
    - Dst: VP8LFastLog2
      Src: /src/libwebp/src/enc/vp8l_enc.c:187,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:191,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:192,1
    - Dst: VP8LFastLog2
      Src: /src/libwebp/src/enc/vp8l_enc.c:192,1
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:205,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/vp8l_enc.c:229,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 9
    argNames:
    - argb
    - width
    - height
    - argb_stride
    - use_palette
    - palette_size
    - transform_bits
    - min_entropy_ix
    - red_and_blue_always_zero
    argTypes:
    - uint32_t*
    - int
    - int
    - int
    - int
    - int
    - int
    - EntropyIx*
    - int*
    assertStmts:
    - condition: ((int)*min_entropy_ix <= last_mode_to_analyze)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    constantsTouched: []
    func_position:
      end: 234
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 234
    functionName: AnalyzeEntropy
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - HashPix
    - assert
    - VP8LSubSampleSize
    - VP8LSubPixels
    - WebPSafeCalloc
    - AddSingle
    - AddSingleSubGreen
    - VP8LFastLog2
    - WebPSafeFree
    - VP8LBitsEntropy
    linkageType: ''
    returnType: int
    signature: "int AnalyzeEntropy(const uint32_t* argb, int width, int height,\n
      \                         int argb_stride, int use_palette, int palette_size,\n
      \                         int transform_bits, EntropyIx* const min_entropy_ix,\n
      \                         int* const red_and_blue_always_zero)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:241,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:241,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:245,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:245,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:250,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:251,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 6
    argNames:
    - width
    - height
    - bits
    - min_bits
    - max_bits
    - image_size_max
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 256
    functionName: ClampBits
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - VP8LSubSampleSize
    linkageType: ''
    returnType: int
    signature: "int ClampBits(int width, int height, int bits, int min_bits,\n                     int
      max_bits, int image_size_max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClampBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - method
    - use_palette
    - width
    - height
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 263
    functionName: GetHistoBits
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - ClampBits
    linkageType: ''
    returnType: int
    signature: int GetHistoBits(int method, int use_palette, int width, int height)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - method
    - histo_bits
    argTypes:
    - int
    - int
    assertStmts:
    - condition: (res <= MAX_TRANSFORM_BITS)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: GetTransformBits
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int GetTransformBits(int method, int histo_bits)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:306,1
    - Dst: GetColorPalette
      Src: /src/libwebp/src/enc/vp8l_enc.c:309,1
    - Dst: GetHistoBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:316,1
    - Dst: GetTransformBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:317,1
    - Dst: AnalyzeEntropy
      Src: /src/libwebp/src/enc/vp8l_enc.c:332,1
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:345,1
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:390,1
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:394,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 4
    argNames:
    - enc
    - crunch_configs
    - crunch_configs_size
    - red_and_blue_always_zero
    argTypes:
    - VP8LEncoder*
    - CrunchConfig[]
    - int*
    - int*
    assertStmts:
    - condition: (pic != NULL && pic->argb != NULL)
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    - condition: (*crunch_configs_size < CRUNCH_CONFIGS_MAX)
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    - condition: (n_lz77s <= CRUNCH_SUBCONFIGS_MAX)
      pos:
        line_end: 389
        line_start: 389
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    - condition: (j < CRUNCH_SUBCONFIGS_MAX)
      pos:
        line_end: 393
        line_start: 393
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    constantsTouched: []
    func_position:
      end: 402
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 402
    functionName: EncoderAnalyze
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - GetColorPalette
    - assert
    - AnalyzeEntropy
    - GetTransformBits
    - GetHistoBits
    linkageType: ''
    returnType: int
    signature: "int EncoderAnalyze(VP8LEncoder* const enc,\n                          CrunchConfig
      crunch_configs[CRUNCH_CONFIGS_MAX],\n                          int* const crunch_configs_size,\n
      \                         int* const red_and_blue_always_zero)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LHashChainInit
      Src: /src/libwebp/src/enc/vp8l_enc.c:413,1
    - Dst: VP8LBackwardRefsInit
      Src: /src/libwebp/src/enc/vp8l_enc.c:415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8LEncoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 418
    functionName: EncoderInit
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - VP8LBackwardRefsInit
    - VP8LHashChainInit
    linkageType: ''
    returnType: int
    signature: int EncoderInit(VP8LEncoder* const enc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:437,1
    - Dst: VP8LHistogramNumCodes
      Src: /src/libwebp/src/enc/vp8l_enc.c:440,1
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/enc/vp8l_enc.c:452,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/vp8l_enc.c:470,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/vp8l_enc.c:472,1
    - Dst: VP8LCreateHuffmanTree
      Src: /src/libwebp/src/enc/vp8l_enc.c:479,1
    - Dst: VP8LCreateHuffmanTree
      Src: /src/libwebp/src/enc/vp8l_enc.c:480,1
    - Dst: VP8LCreateHuffmanTree
      Src: /src/libwebp/src/enc/vp8l_enc.c:481,1
    - Dst: VP8LCreateHuffmanTree
      Src: /src/libwebp/src/enc/vp8l_enc.c:482,1
    - Dst: VP8LCreateHuffmanTree
      Src: /src/libwebp/src/enc/vp8l_enc.c:483,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/vp8l_enc.c:487,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/vp8l_enc.c:488,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/vp8l_enc.c:490,1
    - Dst: memset
      Src: /src/libwebp/src/enc/vp8l_enc.c:491,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 2
    argNames:
    - histogram_image
    - huffman_codes
    argTypes:
    - VP8LHistogramSet*
    - HuffmanTreeCode*
    assertStmts:
    - condition: (histo != NULL)
      pos:
        line_end: 436
        line_start: 436
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    constantsTouched: []
    func_position:
      end: 494
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 494
    functionName: GetHuffBitLengthsAndCodes
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - VP8LCreateHuffmanTree
    - WebPSafeCalloc
    - WebPSafeMalloc
    - memset
    - VP8LHistogramNumCodes
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: "int GetHuffBitLengthsAndCodes(\n    const VP8LHistogramSet* const
      histogram_image,\n    HuffmanTreeCode* const huffman_codes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:511,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:513,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - bw
    - code_length_bitdepth
    argTypes:
    - VP8LBitWriter*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 515
    functionName: StoreHuffmanTreeOfHuffmanTreeToBitMask
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - VP8LPutBits
    linkageType: ''
    returnType: void
    signature: "void StoreHuffmanTreeOfHuffmanTreeToBitMask(\n    VP8LBitWriter* const
      bw, const uint8_t* code_length_bitdepth)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - huffman_code
    argTypes:
    - HuffmanTreeCode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 531
    functionName: ClearHuffmanTreeIfOnlyOneSymbol
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ClearHuffmanTreeIfOnlyOneSymbol(\n    HuffmanTreeCode* const
      huffman_code)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:540,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:543,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:546,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:549,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - bw
    - tokens
    - num_tokens
    - huffman_code
    argTypes:
    - VP8LBitWriter*
    - HuffmanTreeToken*
    - int
    - HuffmanTreeCode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 553
    functionName: StoreHuffmanTreeToBitMask
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - VP8LPutBits
    linkageType: ''
    returnType: void
    signature: "void StoreHuffmanTreeToBitMask(\n    VP8LBitWriter* const bw, const
      HuffmanTreeToken* const tokens,\n    const int num_tokens, const HuffmanTreeCode*
      const huffman_code)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:569,1
    - Dst: VP8LCreateCompressedHuffmanTree
      Src: /src/libwebp/src/enc/vp8l_enc.c:570,1
    - Dst: VP8LCreateHuffmanTree
      Src: /src/libwebp/src/enc/vp8l_enc.c:579,1
    - Dst: StoreHuffmanTreeOfHuffmanTreeToBitMask
      Src: /src/libwebp/src/enc/vp8l_enc.c:582,1
    - Dst: ClearHuffmanTreeIfOnlyOneSymbol
      Src: /src/libwebp/src/enc/vp8l_enc.c:583,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:606,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:609,1
    - Dst: BitsLog2Floor
      Src: /src/libwebp/src/enc/vp8l_enc.c:611,1
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:613,1
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:614,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:615,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:616,1
    - Dst: StoreHuffmanTreeToBitMask
      Src: /src/libwebp/src/enc/vp8l_enc.c:619,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 4
    argNames:
    - bw
    - huff_tree
    - tokens
    - tree
    argTypes:
    - VP8LBitWriter*
    - HuffmanTree*
    - HuffmanTreeToken*
    - HuffmanTreeCode*
    assertStmts:
    - condition: (trimmed_length > 2)
      pos:
        line_end: 612
        line_start: 612
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    - condition: (nbitpairs - 1 < 8)
      pos:
        line_end: 613
        line_start: 613
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    constantsTouched: []
    func_position:
      end: 621
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 621
    functionName: StoreFullHuffmanCode
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - StoreHuffmanTreeOfHuffmanTreeToBitMask
    - VP8LPutBits
    - assert
    - VP8LCreateHuffmanTree
    - StoreHuffmanTreeToBitMask
    - BitsLog2Floor
    - ClearHuffmanTreeIfOnlyOneSymbol
    - VP8LCreateCompressedHuffmanTree
    linkageType: ''
    returnType: void
    signature: "void StoreFullHuffmanCode(VP8LBitWriter* const bw,\n                                 HuffmanTree*
      const huff_tree,\n                                 HuffmanTreeToken* const tokens,\n
      \                                const HuffmanTreeCode* const tree)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:644,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:646,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:647,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:649,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:650,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:652,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:653,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:656,1
    - Dst: StoreFullHuffmanCode
      Src: /src/libwebp/src/enc/vp8l_enc.c:659,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - bw
    - huff_tree
    - tokens
    - huffman_code
    argTypes:
    - VP8LBitWriter*
    - HuffmanTree*
    - HuffmanTreeToken*
    - HuffmanTreeCode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 624
    functionDepth: 3
    functionLinenumber: 624
    functionLinenumberEnd: 661
    functionName: StoreHuffmanCode
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - VP8LPutBits
    - StoreFullHuffmanCode
    linkageType: ''
    returnType: void
    signature: "void StoreHuffmanCode(VP8LBitWriter* const bw,\n                             HuffmanTree*
      const huff_tree,\n                             HuffmanTreeToken* const tokens,\n
      \                            const HuffmanTreeCode* const huffman_code)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bw
    - code
    - code_index
    argTypes:
    - VP8LBitWriter*
    - HuffmanTreeCode*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 669
    functionName: WriteHuffmanCode
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - VP8LPutBits
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE WriteHuffmanCode(VP8LBitWriter* const bw,\n                                         const
      HuffmanTreeCode* const code,\n                                         int code_index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - bw
    - code
    - code_index
    - bits
    - n_bits
    argTypes:
    - VP8LBitWriter*
    - HuffmanTreeCode*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 677
    functionName: WriteHuffmanCodeWithExtraBits
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - VP8LPutBits
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE WriteHuffmanCodeWithExtraBits(\n    VP8LBitWriter* const
      bw, const HuffmanTreeCode* const code, int code_index,\n    int bits, int n_bits)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:685,1
    - Dst: VP8LRefsCursorInit
      Src: /src/libwebp/src/enc/vp8l_enc.c:694,1
    - Dst: VP8LRefsCursorOk
      Src: /src/libwebp/src/enc/vp8l_enc.c:695,1
    - Dst: PixOrCopyIsLiteral
      Src: /src/libwebp/src/enc/vp8l_enc.c:706,1
    - Dst: PixOrCopyLiteral
      Src: /src/libwebp/src/enc/vp8l_enc.c:710,1
    - Dst: WriteHuffmanCode
      Src: /src/libwebp/src/enc/vp8l_enc.c:711,1
    - Dst: PixOrCopyIsCacheIdx
      Src: /src/libwebp/src/enc/vp8l_enc.c:713,1
    - Dst: PixOrCopyCacheIdx
      Src: /src/libwebp/src/enc/vp8l_enc.c:714,1
    - Dst: WriteHuffmanCode
      Src: /src/libwebp/src/enc/vp8l_enc.c:716,1
    - Dst: PixOrCopyDistance
      Src: /src/libwebp/src/enc/vp8l_enc.c:721,1
    - Dst: VP8LPrefixEncode
      Src: /src/libwebp/src/enc/vp8l_enc.c:722,1
    - Dst: WriteHuffmanCodeWithExtraBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:723,1
    - Dst: VP8LPrefixEncode
      Src: /src/libwebp/src/enc/vp8l_enc.c:728,1
    - Dst: WriteHuffmanCode
      Src: /src/libwebp/src/enc/vp8l_enc.c:729,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:730,1
    - Dst: PixOrCopyLength
      Src: /src/libwebp/src/enc/vp8l_enc.c:732,1
    - Dst: VP8LRefsCursorNext
      Src: /src/libwebp/src/enc/vp8l_enc.c:737,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:740,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 7
    argNames:
    - bw
    - width
    - histo_bits
    - refs
    - histogram_symbols
    - huffman_codes
    - pic
    argTypes:
    - VP8LBitWriter*
    - int
    - int
    - VP8LBackwardRefs*
    - uint32_t*
    - HuffmanTreeCode*
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 743
    functionName: StoreImageToBitMask
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - PixOrCopyLength
    - PixOrCopyDistance
    - PixOrCopyCacheIdx
    - VP8LPutBits
    - VP8LSubSampleSize
    - PixOrCopyIsCacheIdx
    - WriteHuffmanCode
    - PixOrCopyIsLiteral
    - VP8LRefsCursorInit
    - VP8LPrefixEncode
    - VP8LRefsCursorOk
    - VP8LRefsCursorNext
    - WebPEncodingSetError
    - PixOrCopyLiteral
    - WriteHuffmanCodeWithExtraBits
    linkageType: ''
    returnType: int
    signature: "int StoreImageToBitMask(VP8LBitWriter* const bw, int width,\n                               int
      histo_bits,\n                               const VP8LBackwardRefs* const refs,\n
      \                              const uint32_t* histogram_symbols,\n                               const
      HuffmanTreeCode* const huffman_codes,\n                               const
      WebPPicture* const pic)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/vp8l_enc.c:762,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:765,1
    - Dst: VP8LHashChainFill
      Src: /src/libwebp/src/enc/vp8l_enc.c:770,1
    - Dst: VP8LGetBackwardReferences
      Src: /src/libwebp/src/enc/vp8l_enc.c:774,1
    - Dst: VP8LAllocateHistogramSet
      Src: /src/libwebp/src/enc/vp8l_enc.c:782,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:784,1
    - Dst: VP8LHistogramSetClear
      Src: /src/libwebp/src/enc/vp8l_enc.c:787,1
    - Dst: VP8LHistogramStoreRefs
      Src: /src/libwebp/src/enc/vp8l_enc.c:790,1
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:795,1
    - Dst: GetHuffBitLengthsAndCodes
      Src: /src/libwebp/src/enc/vp8l_enc.c:796,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:797,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:802,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/vp8l_enc.c:812,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:814,1
    - Dst: StoreHuffmanCode
      Src: /src/libwebp/src/enc/vp8l_enc.c:821,1
    - Dst: ClearHuffmanTreeIfOnlyOneSymbol
      Src: /src/libwebp/src/enc/vp8l_enc.c:822,1
    - Dst: StoreImageToBitMask
      Src: /src/libwebp/src/enc/vp8l_enc.c:826,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/vp8l_enc.c:832,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/vp8l_enc.c:833,1
    - Dst: VP8LFreeHistogramSet
      Src: /src/libwebp/src/enc/vp8l_enc.c:834,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/vp8l_enc.c:835,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 11
    argNames:
    - bw
    - argb
    - hash_chain
    - refs_array
    - width
    - height
    - quality
    - low_effort
    - pic
    - percent_range
    - percent
    argTypes:
    - VP8LBitWriter*
    - uint32_t*
    - VP8LHashChain*
    - VP8LBackwardRefs*
    - int
    - int
    - int
    - int
    - WebPPicture*
    - int
    - int*
    assertStmts:
    - condition: (histogram_image->size == 1)
      pos:
        line_end: 794
        line_start: 794
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    constantsTouched: []
    func_position:
      end: 837
      start: 747
    functionDepth: 8
    functionLinenumber: 747
    functionLinenumberEnd: 837
    functionName: EncodeImageNoHuffman
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - VP8LHistogramStoreRefs
    - assert
    - VP8LPutBits
    - VP8LGetBackwardReferences
    - ClearHuffmanTreeIfOnlyOneSymbol
    - VP8LAllocateHistogramSet
    - WebPSafeMalloc
    - StoreImageToBitMask
    - GetHuffBitLengthsAndCodes
    - VP8LHistogramSetClear
    - VP8LFreeHistogramSet
    - VP8LHashChainFill
    - WebPEncodingSetError
    - StoreHuffmanCode
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: "int EncodeImageNoHuffman(VP8LBitWriter* const bw,\n                                const
      uint32_t* const argb,\n                                VP8LHashChain* const
      hash_chain,\n                                VP8LBackwardRefs* const refs_array,
      int width,\n                                int height, int quality, int low_effort,\n
      \                               const WebPPicture* const pic, int percent_range,\n
      \                               int* const percent)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:848,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:849,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/vp8l_enc.c:856,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/vp8l_enc.c:860,1
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:868,1
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:869,1
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:870,1
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:871,1
    - Dst: memset
      Src: /src/libwebp/src/enc/vp8l_enc.c:873,1
    - Dst: VP8LBitWriterInit
      Src: /src/libwebp/src/enc/vp8l_enc.c:874,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:875,1
    - Dst: VP8LHashChainInit
      Src: /src/libwebp/src/enc/vp8l_enc.c:881,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:882,1
    - Dst: VP8LHashChainFill
      Src: /src/libwebp/src/enc/vp8l_enc.c:887,1
    - Dst: VP8LBitWriterClone
      Src: /src/libwebp/src/enc/vp8l_enc.c:899,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:900,1
    - Dst: VP8LGetBackwardReferences
      Src: /src/libwebp/src/enc/vp8l_enc.c:913,1
    - Dst: VP8LBitWriterReset
      Src: /src/libwebp/src/enc/vp8l_enc.c:928,1
    - Dst: VP8LAllocateHistogramSet
      Src: /src/libwebp/src/enc/vp8l_enc.c:932,1
    - Dst: VP8LAllocateHistogram
      Src: /src/libwebp/src/enc/vp8l_enc.c:933,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:935,1
    - Dst: VP8LGetHistoImageSymbols
      Src: /src/libwebp/src/enc/vp8l_enc.c:941,1
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/enc/vp8l_enc.c:950,1
    - Dst: GetHuffBitLengthsAndCodes
      Src: /src/libwebp/src/enc/vp8l_enc.c:956,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:957,1
    - Dst: VP8LFreeHistogramSet
      Src: /src/libwebp/src/enc/vp8l_enc.c:961,1
    - Dst: VP8LFreeHistogram
      Src: /src/libwebp/src/enc/vp8l_enc.c:965,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:970,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:971,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:973,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:986,1
    - Dst: VP8LOptimizeSampling
      Src: /src/libwebp/src/enc/vp8l_enc.c:988,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:990,1
    - Dst: EncodeImageNoHuffman
      Src: /src/libwebp/src/enc/vp8l_enc.c:993,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:995,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:996,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/vp8l_enc.c:1012,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1014,1
    - Dst: StoreHuffmanCode
      Src: /src/libwebp/src/enc/vp8l_enc.c:1019,1
    - Dst: ClearHuffmanTreeIfOnlyOneSymbol
      Src: /src/libwebp/src/enc/vp8l_enc.c:1020,1
    - Dst: VP8LBitWriterNumBytes
      Src: /src/libwebp/src/enc/vp8l_enc.c:1024,1
    - Dst: StoreImageToBitMask
      Src: /src/libwebp/src/enc/vp8l_enc.c:1025,1
    - Dst: VP8LBitWriterNumBytes
      Src: /src/libwebp/src/enc/vp8l_enc.c:1030,1
    - Dst: VP8LBitWriterNumBytes
      Src: /src/libwebp/src/enc/vp8l_enc.c:1031,1
    - Dst: VP8LBitWriterNumBytes
      Src: /src/libwebp/src/enc/vp8l_enc.c:1035,1
    - Dst: VP8LBitWriterSwap
      Src: /src/libwebp/src/enc/vp8l_enc.c:1036,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/vp8l_enc.c:1038,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/vp8l_enc.c:1041,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/vp8l_enc.c:1042,1
    - Dst: VP8LBitWriterSwap
      Src: /src/libwebp/src/enc/vp8l_enc.c:1047,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/vp8l_enc.c:1049,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/vp8l_enc.c:1054,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/vp8l_enc.c:1055,1
    - Dst: VP8LFreeHistogramSet
      Src: /src/libwebp/src/enc/vp8l_enc.c:1056,1
    - Dst: VP8LFreeHistogram
      Src: /src/libwebp/src/enc/vp8l_enc.c:1057,1
    - Dst: VP8LHashChainClear
      Src: /src/libwebp/src/enc/vp8l_enc.c:1058,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/vp8l_enc.c:1060,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/vp8l_enc.c:1061,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/vp8l_enc.c:1063,1
    - Dst: VP8LBitWriterWipeOut
      Src: /src/libwebp/src/enc/vp8l_enc.c:1064,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 145
    argCount: 17
    argNames:
    - bw
    - argb
    - hash_chain
    - refs_array
    - width
    - height
    - quality
    - low_effort
    - config
    - cache_bits
    - histogram_bits_in
    - init_byte_position
    - hdr_size
    - data_size
    - pic
    - percent_range
    - percent
    argTypes:
    - VP8LBitWriter*
    - uint32_t*
    - VP8LHashChain*
    - VP8LBackwardRefs[]
    - int
    - int
    - int
    - int
    - CrunchConfig*
    - int*
    - int
    - size_t
    - int*
    - int*
    - WebPPicture*
    - int
    - int*
    assertStmts:
    - condition: (histogram_bits_in <= MAX_HUFFMAN_BITS)
      pos:
        line_end: 868
        line_start: 868
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    - condition: (data_size != NULL)
      pos:
        line_end: 870
        line_start: 870
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    - condition: (histogram_bits_in >= MIN_HUFFMAN_BITS)
      pos:
        line_end: 867
        line_start: 867
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    - condition: (hdr_size != NULL)
      pos:
        line_end: 869
        line_start: 869
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    constantsTouched: []
    func_position:
      end: 1066
      start: 840
    functionDepth: 9
    functionLinenumber: 840
    functionLinenumberEnd: 1066
    functionName: EncodeImageInternal
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - VP8LBitWriterReset
    - WebPSafeCalloc
    - WebPSafeMalloc
    - VP8LBitWriterNumBytes
    - VP8LBitWriterWipeOut
    - VP8LFreeHistogram
    - VP8LGetBackwardReferences
    - WebPEncodingSetError
    - StoreHuffmanCode
    - VP8LAllocateHistogram
    - assert
    - VP8LPutBits
    - VP8LBitWriterClone
    - VP8LAllocateHistogramSet
    - ClearHuffmanTreeIfOnlyOneSymbol
    - StoreImageToBitMask
    - VP8LHashChainInit
    - VP8LSubSampleSize
    - VP8LBitWriterInit
    - VP8LHashChainClear
    - WebPReportProgress
    - VP8LFreeHistogramSet
    - EncodeImageNoHuffman
    - VP8LBitWriterSwap
    - VP8LOptimizeSampling
    - memset
    - GetHuffBitLengthsAndCodes
    - VP8LGetHistoImageSymbols
    - VP8LHashChainFill
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: "int EncodeImageInternal(\n    VP8LBitWriter* const bw, const uint32_t*
      const argb,\n    VP8LHashChain* const hash_chain, VP8LBackwardRefs refs_array[4],
      int width,\n    int height, int quality, int low_effort, const CrunchConfig*
      const config,\n    int* cache_bits, int histogram_bits_in, size_t init_byte_position,\n
      \   int* const hdr_size, int* const data_size, const WebPPicture* const pic,\n
      \   int percent_range, int* const percent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:1073,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:1074,1
    - Dst: VP8LSubtractGreenFromBlueAndRed
      Src: /src/libwebp/src/enc/vp8l_enc.c:1075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - enc
    - width
    - height
    - bw
    argTypes:
    - VP8LEncoder*
    - int
    - int
    - VP8LBitWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1076
    functionName: ApplySubtractGreen
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - VP8LPutBits
    - VP8LSubtractGreenFromBlueAndRed
    linkageType: ''
    returnType: void
    signature: "void ApplySubtractGreen(VP8LEncoder* const enc, int width, int height,\n
      \                              VP8LBitWriter* const bw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ClampBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:1085,1
    - Dst: ClampBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:1088,1
    - Dst: VP8LResidualImage
      Src: /src/libwebp/src/enc/vp8l_enc.c:1093,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:1100,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:1101,1
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:1102,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:1103,1
    - Dst: EncodeImageNoHuffman
      Src: /src/libwebp/src/enc/vp8l_enc.c:1104,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:1106,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:1107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 10
    argNames:
    - enc
    - width
    - height
    - quality
    - low_effort
    - used_subtract_green
    - bw
    - percent_range
    - percent
    - best_bits
    argTypes:
    - VP8LEncoder*
    - int
    - int
    - int
    - int
    - int
    - VP8LBitWriter*
    - int
    - int*
    - int*
    assertStmts:
    - condition: (*best_bits >= MIN_TRANSFORM_BITS && *best_bits <= MAX_TRANSFORM_BITS)
      pos:
        line_end: 1101
        line_start: 1101
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    constantsTouched: []
    func_position:
      end: 1109
      start: 1078
    functionDepth: 9
    functionLinenumber: 1078
    functionLinenumberEnd: 1109
    functionName: ApplyPredictFilter
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - VP8LPutBits
    - assert
    - VP8LSubSampleSize
    - VP8LResidualImage
    - EncodeImageNoHuffman
    - ClampBits
    linkageType: ''
    returnType: int
    signature: "int ApplyPredictFilter(VP8LEncoder* const enc, int width, int height,\n
      \                             int quality, int low_effort,\n                              int
      used_subtract_green, VP8LBitWriter* const bw,\n                              int
      percent_range, int* const percent,\n                              int* const
      best_bits)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LColorSpaceTransform
      Src: /src/libwebp/src/enc/vp8l_enc.c:1117,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:1122,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:1123,1
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:1124,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:1125,1
    - Dst: EncodeImageNoHuffman
      Src: /src/libwebp/src/enc/vp8l_enc.c:1126,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:1128,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:1129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 9
    argNames:
    - enc
    - width
    - height
    - quality
    - low_effort
    - bw
    - percent_range
    - percent
    - best_bits
    argTypes:
    - VP8LEncoder*
    - int
    - int
    - int
    - int
    - VP8LBitWriter*
    - int
    - int*
    - int*
    assertStmts:
    - condition: (*best_bits >= MIN_TRANSFORM_BITS && *best_bits <= MAX_TRANSFORM_BITS)
      pos:
        line_end: 1123
        line_start: 1123
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    constantsTouched: []
    func_position:
      end: 1131
      start: 1111
    functionDepth: 9
    functionLinenumber: 1111
    functionLinenumberEnd: 1131
    functionName: ApplyCrossColorFilter
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - VP8LColorSpaceTransform
    - assert
    - VP8LPutBits
    - VP8LSubSampleSize
    - EncodeImageNoHuffman
    linkageType: ''
    returnType: int
    signature: "int ApplyCrossColorFilter(VP8LEncoder* const enc, int width, int height,\n
      \                                int quality, int low_effort,\n                                 VP8LBitWriter*
      const bw, int percent_range,\n                                 int* const percent,
      int* const best_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PutLE32
      Src: /src/libwebp/src/enc/vp8l_enc.c:1142,1
    - Dst: PutLE32
      Src: /src/libwebp/src/enc/vp8l_enc.c:1143,1
    - Dst: WebPPicture*::writer
      Src: /src/libwebp/src/enc/vp8l_enc.c:1144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pic
    - riff_size
    - vp8l_size
    argTypes:
    - WebPPicture*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1135
    functionDepth: 0
    functionLinenumber: 1135
    functionLinenumberEnd: 1145
    functionName: WriteRiffHeader
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - WebPPicture*::writer
    - PutLE32
    linkageType: ''
    returnType: int
    signature: "int WriteRiffHeader(const WebPPicture* const pic, size_t riff_size,\n
      \                          size_t vp8l_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:1151,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:1153,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:1154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pic
    - bw
    argTypes:
    - WebPPicture*
    - VP8LBitWriter*
    assertStmts:
    - condition: (width < WEBP_MAX_DIMENSION && height < WEBP_MAX_DIMENSION)
      pos:
        line_end: 1150
        line_start: 1150
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    constantsTouched: []
    func_position:
      end: 1156
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1156
    functionName: WriteImageSize
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - VP8LPutBits
    linkageType: ''
    returnType: int
    signature: "int WriteImageSize(const WebPPicture* const pic,\n                          VP8LBitWriter*
      const bw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:1159,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:1160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bw
    - has_alpha
    argTypes:
    - VP8LBitWriter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1162
    functionName: WriteRealAlphaAndVersion
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - VP8LPutBits
    linkageType: ''
    returnType: int
    signature: int WriteRealAlphaAndVersion(VP8LBitWriter* const bw, int has_alpha)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VP8LBitWriterFinish
      Src: /src/libwebp/src/enc/vp8l_enc.c:1166,1
    - Dst: VP8LBitWriterNumBytes
      Src: /src/libwebp/src/enc/vp8l_enc.c:1167,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1174,1
    - Dst: WriteRiffHeader
      Src: /src/libwebp/src/enc/vp8l_enc.c:1177,1
    - Dst: WebPPicture*::writer
      Src: /src/libwebp/src/enc/vp8l_enc.c:1178,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1179,1
    - Dst: WebPPicture*::writer
      Src: /src/libwebp/src/enc/vp8l_enc.c:1184,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1185,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - pic
    - bw
    - coded_size
    argTypes:
    - WebPPicture*
    - VP8LBitWriter*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1164
    functionDepth: 1
    functionLinenumber: 1164
    functionLinenumberEnd: 1190
    functionName: WriteImage
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - WebPPicture*::writer
    - VP8LBitWriterFinish
    - VP8LBitWriterNumBytes
    - WriteRiffHeader
    - WebPEncodingSetError
    linkageType: ''
    returnType: int
    signature: "int WriteImage(const WebPPicture* const pic, VP8LBitWriter* const
      bw,\n                      size_t* const coded_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/vp8l_enc.c:1195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8LEncoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1194
    functionDepth: 1
    functionLinenumber: 1194
    functionLinenumberEnd: 1198
    functionName: ClearTransformBuffer
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void ClearTransformBuffer(VP8LEncoder* const enc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:1217,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:1218,1
    - Dst: ClearTransformBuffer
      Src: /src/libwebp/src/enc/vp8l_enc.c:1227,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/vp8l_enc.c:1228,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1230,1
    - Dst: WEBP_ALIGN
      Src: /src/libwebp/src/enc/vp8l_enc.c:1237,1
    - Dst: WEBP_ALIGN
      Src: /src/libwebp/src/enc/vp8l_enc.c:1239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - enc
    - width
    - height
    argTypes:
    - VP8LEncoder*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1205
    functionDepth: 2
    functionLinenumber: 1205
    functionLinenumberEnd: 1244
    functionName: AllocateTransformBuffer
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - WEBP_ALIGN
    - VP8LSubSampleSize
    - WebPSafeMalloc
    - ClearTransformBuffer
    - WebPEncodingSetError
    linkageType: ''
    returnType: int
    signature: "int AllocateTransformBuffer(VP8LEncoder* const enc, int width,\n                                   int
      height)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AllocateTransformBuffer
      Src: /src/libwebp/src/enc/vp8l_enc.c:1251,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/vp8l_enc.c:1259,1
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:1265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8LEncoder*
    assertStmts:
    - condition: (enc->current_width == width)
      pos:
        line_end: 1264
        line_start: 1264
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    constantsTouched: []
    func_position:
      end: 1267
      start: 1246
    functionDepth: 3
    functionLinenumber: 1246
    functionLinenumberEnd: 1267
    functionName: MakeInputImageCopy
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - AllocateTransformBuffer
    linkageType: ''
    returnType: int
    signature: int MakeInputImageCopy(VP8LEncoder* const enc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:1277,1
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:1278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - palette
    - palette_size
    - color
    argTypes:
    - uint32_t[]
    - int
    - uint32_t
    assertStmts:
    - condition: (palette_size < APPLY_PALETTE_GREEDY_MAX)
      pos:
        line_end: 1276
        line_start: 1276
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    - condition: (3 == APPLY_PALETTE_GREEDY_MAX - 1)
      pos:
        line_end: 1277
        line_start: 1277
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    constantsTouched: []
    func_position:
      end: 1283
      start: 1273
    functionDepth: 0
    functionLinenumber: 1273
    functionLinenumberEnd: 1283
    functionName: SearchColorGreedy
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE SearchColorGreedy(const uint32_t palette[],\n                                              int
      palette_size,\n                                              uint32_t color)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - color
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1285
    functionDepth: 0
    functionLinenumber: 1285
    functionLinenumberEnd: 1288
    functionName: ApplyPaletteHash0
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE ApplyPaletteHash0(uint32_t color)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - color
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1297
    functionName: ApplyPaletteHash1
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE ApplyPaletteHash1(uint32_t color)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - color
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1299
    functionDepth: 0
    functionLinenumber: 1299
    functionLinenumberEnd: 1303
    functionName: ApplyPaletteHash2
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE ApplyPaletteHash2(uint32_t color)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - COLOR_INDEX
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1306
    functionDepth: 0
    functionLinenumber: 1306
    functionLinenumberEnd: 1324
    functionName: APPLY_PALETTE_FOR
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPLY_PALETTE_FOR(COLOR_INDEX)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/vp8l_enc.c:1335,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1339,1
    - Dst: APPLY_PALETTE_FOR
      Src: /src/libwebp/src/enc/vp8l_enc.c:1343,1
    - Dst: SearchColorGreedy
      Src: /src/libwebp/src/enc/vp8l_enc.c:1343,1
    - Dst: memset
      Src: /src/libwebp/src/enc/vp8l_enc.c:1356,1
    - Dst: APPLY_PALETTE_FOR
      Src: /src/libwebp/src/enc/vp8l_enc.c:1370,1
    - Dst: ApplyPaletteHash0
      Src: /src/libwebp/src/enc/vp8l_enc.c:1370,1
    - Dst: APPLY_PALETTE_FOR
      Src: /src/libwebp/src/enc/vp8l_enc.c:1372,1
    - Dst: ApplyPaletteHash1
      Src: /src/libwebp/src/enc/vp8l_enc.c:1372,1
    - Dst: APPLY_PALETTE_FOR
      Src: /src/libwebp/src/enc/vp8l_enc.c:1374,1
    - Dst: ApplyPaletteHash2
      Src: /src/libwebp/src/enc/vp8l_enc.c:1374,1
    - Dst: PrepareMapToPalette
      Src: /src/libwebp/src/enc/vp8l_enc.c:1378,1
    - Dst: APPLY_PALETTE_FOR
      Src: /src/libwebp/src/enc/vp8l_enc.c:1379,1
    - Dst: SearchColorNoIdx
      Src: /src/libwebp/src/enc/vp8l_enc.c:1380,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/vp8l_enc.c:1383,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 10
    argNames:
    - src
    - src_stride
    - dst
    - dst_stride
    - palette
    - palette_size
    - width
    - height
    - xbits
    - pic
    argTypes:
    - uint32_t*
    - uint32_t
    - uint32_t*
    - uint32_t
    - uint32_t*
    - int
    - int
    - int
    - int
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1329
    functionDepth: 1
    functionLinenumber: 1329
    functionLinenumberEnd: 1385
    functionName: ApplyPalette
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - ApplyPaletteHash1
    - PrepareMapToPalette
    - SearchColorGreedy
    - APPLY_PALETTE_FOR
    - WebPSafeMalloc
    - memset
    - ApplyPaletteHash2
    - ApplyPaletteHash0
    - SearchColorNoIdx
    - WebPEncodingSetError
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: "int ApplyPalette(const uint32_t* src, uint32_t src_stride, uint32_t*
      dst,\n                        uint32_t dst_stride, const uint32_t* palette,\n
      \                       int palette_size, int width, int height, int xbits,\n
      \                       const WebPPicture* const pic)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: AllocateTransformBuffer
      Src: /src/libwebp/src/enc/vp8l_enc.c:1408,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:1408,1
    - Dst: ApplyPalette
      Src: /src/libwebp/src/enc/vp8l_enc.c:1411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8LEncoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1392
    functionDepth: 3
    functionLinenumber: 1392
    functionLinenumberEnd: 1417
    functionName: MapImageFromPalette
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - VP8LSubSampleSize
    - AllocateTransformBuffer
    - ApplyPalette
    linkageType: ''
    returnType: int
    signature: int MapImageFromPalette(VP8LEncoder* const enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:1434,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:1435,1
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:1436,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:1437,1
    - Dst: VP8LSubPixels
      Src: /src/libwebp/src/enc/vp8l_enc.c:1439,1
    - Dst: EncodeImageNoHuffman
      Src: /src/libwebp/src/enc/vp8l_enc.c:1442,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - bw
    - low_effort
    - enc
    - percent_range
    - percent
    argTypes:
    - VP8LBitWriter*
    - int
    - VP8LEncoder*
    - int
    - int*
    assertStmts:
    - condition: (palette_size >= 1 && palette_size <= MAX_PALETTE_SIZE)
      pos:
        line_end: 1435
        line_start: 1435
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    constantsTouched: []
    func_position:
      end: 1445
      start: 1420
    functionDepth: 9
    functionLinenumber: 1420
    functionLinenumberEnd: 1445
    functionName: EncodePalette
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - VP8LPutBits
    - EncodeImageNoHuffman
    - assert
    - VP8LSubPixels
    linkageType: ''
    returnType: int
    signature: "int EncodePalette(VP8LBitWriter* const bw, int low_effort,\n                         VP8LEncoder*
      const enc, int percent_range,\n                         int* const percent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/enc/vp8l_enc.c:1452,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1454,1
    - Dst: VP8LEncDspInit
      Src: /src/libwebp/src/enc/vp8l_enc.c:1461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - config
    - picture
    argTypes:
    - WebPConfig*
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1450
    functionDepth: 1
    functionLinenumber: 1450
    functionLinenumberEnd: 1464
    functionName: VP8LEncoderNew
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - VP8LEncDspInit
    - WebPEncodingSetError
    - WebPSafeCalloc
    linkageType: ''
    returnType: VP8LEncoder
    signature: "VP8LEncoder * VP8LEncoderNew(const WebPConfig* const config,\n                                   const
      WebPPicture* const picture)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LHashChainClear
      Src: /src/libwebp/src/enc/vp8l_enc.c:1469,1
    - Dst: VP8LBackwardRefsClear
      Src: /src/libwebp/src/enc/vp8l_enc.c:1470,1
    - Dst: ClearTransformBuffer
      Src: /src/libwebp/src/enc/vp8l_enc.c:1471,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/vp8l_enc.c:1472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8LEncoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1466
    functionDepth: 2
    functionLinenumber: 1466
    functionLinenumberEnd: 1474
    functionName: VP8LEncoderDelete
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - WebPSafeFree
    - VP8LBackwardRefsClear
    - ClearTransformBuffer
    - VP8LHashChainClear
    linkageType: ''
    returnType: void
    signature: void VP8LEncoderDelete(VP8LEncoder* enc)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: VP8LBitWriterNumBytes
      Src: /src/libwebp/src/enc/vp8l_enc.c:1508,1
    - Dst: VP8LBitWriterInit
      Src: /src/libwebp/src/enc/vp8l_enc.c:1520,1
    - Dst: VP8LBitWriterClone
      Src: /src/libwebp/src/enc/vp8l_enc.c:1521,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1522,1
    - Dst: VP8LBackwardRefsClear
      Src: /src/libwebp/src/enc/vp8l_enc.c:1545,1
    - Dst: VP8LBackwardRefsClear
      Src: /src/libwebp/src/enc/vp8l_enc.c:1546,1
    - Dst: AllocateTransformBuffer
      Src: /src/libwebp/src/enc/vp8l_enc.c:1553,1
    - Dst: VP8ApplyNearLossless
      Src: /src/libwebp/src/enc/vp8l_enc.c:1555,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1556,1
    - Dst: PaletteSort
      Src: /src/libwebp/src/enc/vp8l_enc.c:1569,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1571,1
    - Dst: EncodePalette
      Src: /src/libwebp/src/enc/vp8l_enc.c:1575,1
    - Dst: MapImageFromPalette
      Src: /src/libwebp/src/enc/vp8l_enc.c:1579,1
    - Dst: BitsLog2Floor
      Src: /src/libwebp/src/enc/vp8l_enc.c:1583,1
    - Dst: MakeInputImageCopy
      Src: /src/libwebp/src/enc/vp8l_enc.c:1589,1
    - Dst: ApplySubtractGreen
      Src: /src/libwebp/src/enc/vp8l_enc.c:1596,1
    - Dst: ApplyPredictFilter
      Src: /src/libwebp/src/enc/vp8l_enc.c:1601,1
    - Dst: ApplyCrossColorFilter
      Src: /src/libwebp/src/enc/vp8l_enc.c:1612,1
    - Dst: VP8LPutBits
      Src: /src/libwebp/src/enc/vp8l_enc.c:1620,1
    - Dst: EncodeImageInternal
      Src: /src/libwebp/src/enc/vp8l_enc.c:1624,1
    - Dst: VP8LBitWriterNumBytes
      Src: /src/libwebp/src/enc/vp8l_enc.c:1633,1
    - Dst: VP8LBitWriterNumBytes
      Src: /src/libwebp/src/enc/vp8l_enc.c:1634,1
    - Dst: VP8LBitWriterSwap
      Src: /src/libwebp/src/enc/vp8l_enc.c:1636,1
    - Dst: VP8LBitWriterReset
      Src: /src/libwebp/src/enc/vp8l_enc.c:1657,1
    - Dst: VP8LBitWriterSwap
      Src: /src/libwebp/src/enc/vp8l_enc.c:1659,1
    - Dst: VP8LBitWriterWipeOut
      Src: /src/libwebp/src/enc/vp8l_enc.c:1662,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 113
    argCount: 2
    argNames:
    - input
    - data2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1490
    functionDepth: 10
    functionLinenumber: 1490
    functionLinenumberEnd: 1665
    functionName: EncodeStreamHook
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - VP8LBitWriterReset
    - PaletteSort
    - BitsLog2Floor
    - ApplyPredictFilter
    - VP8LBitWriterNumBytes
    - MakeInputImageCopy
    - VP8LBitWriterWipeOut
    - WebPEncodingSetError
    - VP8ApplyNearLossless
    - VP8LPutBits
    - ApplySubtractGreen
    - VP8LBitWriterClone
    - ApplyCrossColorFilter
    - VP8LBitWriterInit
    - VP8LBackwardRefsClear
    - EncodePalette
    - AllocateTransformBuffer
    - EncodeImageInternal
    - MapImageFromPalette
    - VP8LBitWriterSwap
    linkageType: ''
    returnType: int
    signature: int EncodeStreamHook(void* input, void* data2)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: VP8LEncoderNew
      Src: /src/libwebp/src/enc/vp8l_enc.c:1670,1
    - Dst: WebPGetWorkerInterface
      Src: /src/libwebp/src/enc/vp8l_enc.c:1682,1
    - Dst: VP8LBitWriterInit
      Src: /src/libwebp/src/enc/vp8l_enc.c:1685,1
    - Dst: VP8LEncoderDelete
      Src: /src/libwebp/src/enc/vp8l_enc.c:1686,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1687,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/src/enc/vp8l_enc.c:1691,1
    - Dst: EncoderAnalyze
      Src: /src/libwebp/src/enc/vp8l_enc.c:1696,1
    - Dst: EncoderInit
      Src: /src/libwebp/src/enc/vp8l_enc.c:1698,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1699,1
    - Dst: WebPPictureView
      Src: /src/libwebp/src/enc/vp8l_enc.c:1736,1
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:1738,1
    - Dst: VP8LBitWriterClone
      Src: /src/libwebp/src/enc/vp8l_enc.c:1744,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1745,1
    - Dst: VP8LEncoderNew
      Src: /src/libwebp/src/enc/vp8l_enc.c:1750,1
    - Dst: EncoderInit
      Src: /src/libwebp/src/enc/vp8l_enc.c:1751,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1752,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/vp8l_enc.c:1761,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/vp8l_enc.c:1762,1
    - Dst: WebPWorkerInterface*::Init
      Src: /src/libwebp/src/enc/vp8l_enc.c:1767,1
    - Dst: WebPWorkerInterface*::Reset
      Src: /src/libwebp/src/enc/vp8l_enc.c:1776,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1777,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/vp8l_enc.c:1784,1
    - Dst: WebPWorkerInterface*::Launch
      Src: /src/libwebp/src/enc/vp8l_enc.c:1787,1
    - Dst: WebPWorkerInterface*::Execute
      Src: /src/libwebp/src/enc/vp8l_enc.c:1790,1
    - Dst: WebPWorkerInterface*::Sync
      Src: /src/libwebp/src/enc/vp8l_enc.c:1791,1
    - Dst: WebPWorkerInterface*::End
      Src: /src/libwebp/src/enc/vp8l_enc.c:1792,1
    - Dst: WebPWorkerInterface*::Sync
      Src: /src/libwebp/src/enc/vp8l_enc.c:1795,1
    - Dst: WebPWorkerInterface*::End
      Src: /src/libwebp/src/enc/vp8l_enc.c:1796,1
    - Dst: assert
      Src: /src/libwebp/src/enc/vp8l_enc.c:1799,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1800,1
    - Dst: VP8LBitWriterNumBytes
      Src: /src/libwebp/src/enc/vp8l_enc.c:1804,1
    - Dst: VP8LBitWriterNumBytes
      Src: /src/libwebp/src/enc/vp8l_enc.c:1804,1
    - Dst: VP8LBitWriterSwap
      Src: /src/libwebp/src/enc/vp8l_enc.c:1805,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/vp8l_enc.c:1808,1
    - Dst: VP8LBitWriterWipeOut
      Src: /src/libwebp/src/enc/vp8l_enc.c:1815,1
    - Dst: VP8LEncoderDelete
      Src: /src/libwebp/src/enc/vp8l_enc.c:1816,1
    - Dst: VP8LEncoderDelete
      Src: /src/libwebp/src/enc/vp8l_enc.c:1817,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 104
    argCount: 3
    argNames:
    - config
    - picture
    - bw_main
    argTypes:
    - WebPConfig*
    - WebPPicture*
    - VP8LBitWriter*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 1737
        line_start: 1737
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    - condition: (picture_side.error_code != VP8_ENC_OK)
      pos:
        line_end: 1798
        line_start: 1798
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    constantsTouched: []
    func_position:
      end: 1819
      start: 1667
    functionDepth: 4
    functionLinenumber: 1667
    functionLinenumberEnd: 1819
    functionName: VP8LEncodeStream
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 0
    functionsReached:
    - memcpy
    - WebPWorkerInterface*::Launch
    - VP8LEncoderNew
    - WebPWorkerInterface*::End
    - VP8LBitWriterNumBytes
    - VP8LBitWriterWipeOut
    - WebPEncodingSetError
    - WebPPictureInit
    - assert
    - EncoderInit
    - VP8LBitWriterClone
    - WebPWorkerInterface*::Reset
    - WebPWorkerInterface*::Init
    - WebPPictureView
    - WebPWorkerInterface*::Sync
    - WebPWorkerInterface*::Execute
    - VP8LBitWriterInit
    - EncoderAnalyze
    - VP8LEncoderDelete
    - VP8LBitWriterSwap
    - WebPGetWorkerInterface
    linkageType: ''
    returnType: int
    signature: "int VP8LEncodeStream(const WebPConfig* const config,\n                     const
      WebPPicture* const picture,\n                     VP8LBitWriter* const bw_main)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1836,1
    - Dst: VP8LBitWriterInit
      Src: /src/libwebp/src/enc/vp8l_enc.c:1845,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1846,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/vp8l_enc.c:1850,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1852,1
    - Dst: memset
      Src: /src/libwebp/src/enc/vp8l_enc.c:1858,1
    - Dst: WriteImageSize
      Src: /src/libwebp/src/enc/vp8l_enc.c:1867,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1868,1
    - Dst: WebPPictureHasTransparency
      Src: /src/libwebp/src/enc/vp8l_enc.c:1872,1
    - Dst: WriteRealAlphaAndVersion
      Src: /src/libwebp/src/enc/vp8l_enc.c:1874,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1875,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/vp8l_enc.c:1879,1
    - Dst: VP8LEncodeStream
      Src: /src/libwebp/src/enc/vp8l_enc.c:1882,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/vp8l_enc.c:1884,1
    - Dst: WriteImage
      Src: /src/libwebp/src/enc/vp8l_enc.c:1887,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/vp8l_enc.c:1889,1
    - Dst: memset
      Src: /src/libwebp/src/enc/vp8l_enc.c:1902,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/vp8l_enc.c:1907,1
    - Dst: VP8LBitWriterWipeOut
      Src: /src/libwebp/src/enc/vp8l_enc.c:1909,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 69
    argCount: 2
    argNames:
    - config
    - picture
    argTypes:
    - WebPConfig*
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1824
    functionDepth: 5
    functionLinenumber: 1824
    functionLinenumberEnd: 1911
    functionName: VP8LEncodeImage
    functionSourceFile: /src/libwebp/src/enc/vp8l_enc.c
    functionUses: 1
    functionsReached:
    - WriteImageSize
    - WebPPictureHasTransparency
    - VP8LBitWriterInit
    - VP8LEncodeStream
    - WriteImage
    - WebPReportProgress
    - memset
    - WriteRealAlphaAndVersion
    - VP8LBitWriterWipeOut
    - WebPEncodingSetError
    linkageType: ''
    returnType: int
    signature: "int VP8LEncodeImage(const WebPConfig* const config,\n                    const
      WebPPicture* const picture)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 6
    argNames:
    - src
    - src_stride
    - ref
    - ref_stride
    - w
    - h
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 63
    functionName: AccumulateLSIM
    functionSourceFile: /src/libwebp/src/enc/picture_psnr_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: "double AccumulateLSIM(const uint8_t* src, int src_stride,\n                             const
      uint8_t* ref, int ref_stride, int w, int h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8AccumulateSSE
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - src
    - src_stride
    - ref
    - ref_stride
    - w
    - h
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: AccumulateSSE
    functionSourceFile: /src/libwebp/src/enc/picture_psnr_enc.c
    functionUses: 1
    functionsReached:
    - VP8AccumulateSSE
    linkageType: ''
    returnType: double
    signature: "double AccumulateSSE(const uint8_t* src, int src_stride,\n                            const
      uint8_t* ref, int ref_stride, int w, int h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8SSIMGetClipped
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:90,1
    - Dst: VP8SSIMGetClipped
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:95,1
    - Dst: VP8SSIMGet
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:100,1
    - Dst: VP8SSIMGetClipped
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:103,1
    - Dst: VP8SSIMGetClipped
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:108,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 6
    argNames:
    - src
    - src_stride
    - ref
    - ref_stride
    - w
    - h
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 112
    functionName: AccumulateSSIM
    functionSourceFile: /src/libwebp/src/enc/picture_psnr_enc.c
    functionUses: 0
    functionsReached:
    - VP8SSIMGetClipped
    - VP8SSIMGet
    linkageType: ''
    returnType: double
    signature: "double AccumulateSSIM(const uint8_t* src, int src_stride,\n                             const
      uint8_t* ref, int ref_stride, int w, int h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - v
    - size
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: GetPSNR
    functionSourceFile: /src/libwebp/src/enc/picture_psnr_enc.c
    functionUses: 1
    functionsReached:
    - log
    linkageType: ''
    returnType: double
    signature: double GetPSNR(double v, double size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log10
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - size
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: GetLogSSIM
    functionSourceFile: /src/libwebp/src/enc/picture_psnr_enc.c
    functionUses: 0
    functionsReached:
    - log10
    linkageType: ''
    returnType: double
    signature: double GetLogSSIM(double v, double size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VP8SSIMDspInit
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:143,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:149,1
    - Dst: metric
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:162,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:163,1
    - Dst: GetLogSSIM
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:165,1
    - Dst: GetPSNR
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:166,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 10
    argNames:
    - src
    - src_stride
    - ref
    - ref_stride
    - width
    - height
    - x_step
    - type
    - distortion
    - result
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - int
    - int
    - size_t
    - int
    - float*
    - float*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 168
    functionName: WebPPlaneDistortion
    functionSourceFile: /src/libwebp/src/enc/picture_psnr_enc.c
    functionUses: 0
    functionsReached:
    - GetPSNR
    - WebPSafeMalloc
    - VP8SSIMDspInit
    - metric
    - GetLogSSIM
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: "int WebPPlaneDistortion(const uint8_t* src, size_t src_stride,\n                        const
      uint8_t* ref, size_t ref_stride, int width,\n                        int height,
      size_t x_step, int type, float* distortion,\n                        float*
      result)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: VP8SSIMDspInit
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:187,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:188,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:188,1
    - Dst: WebPPictureView
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:191,1
    - Dst: WebPPictureView
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:192,1
    - Dst: WebPPictureYUVAToARGB
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:195,1
    - Dst: WebPPictureYUVAToARGB
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:196,1
    - Dst: WebPPlaneDistortion
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:203,1
    - Dst: GetLogSSIM
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:212,1
    - Dst: GetPSNR
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:213,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:217,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/src/enc/picture_psnr_enc.c:218,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 36
    argCount: 4
    argNames:
    - src
    - ref
    - type
    - results
    argTypes:
    - WebPPicture*
    - WebPPicture*
    - int
    - float[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 220
    functionName: WebPPictureDistortion
    functionSourceFile: /src/libwebp/src/enc/picture_psnr_enc.c
    functionUses: 0
    functionsReached:
    - WebPPictureView
    - WebPPictureYUVAToARGB
    - WebPPictureFree
    - VP8SSIMDspInit
    - GetPSNR
    - WebPPlaneDistortion
    - GetLogSSIM
    - WebPPictureInit
    linkageType: ''
    returnType: int
    signature: "int WebPPictureDistortion(const WebPPicture* src, const WebPPicture*
      ref,\n                          int type, float results[5])"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 10
    argNames:
    - src
    - src_stride
    - ref
    - ref_stride
    - width
    - height
    - x_step
    - type
    - distortion
    - result
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - int
    - int
    - size_t
    - int
    - float*
    - float*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 241
    functionName: WebPPlaneDistortion
    functionSourceFile: /src/libwebp/src/enc/picture_psnr_enc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int WebPPlaneDistortion(const uint8_t* src, size_t src_stride,\n                        const
      uint8_t* ref, size_t ref_stride, int width,\n                        int height,
      size_t x_step, int type, float* distortion,\n                        float*
      result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - src
    - ref
    - type
    - results
    argTypes:
    - WebPPicture*
    - WebPPicture*
    - int
    - float[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 252
    functionName: WebPPictureDistortion
    functionSourceFile: /src/libwebp/src/enc/picture_psnr_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int WebPPictureDistortion(const WebPPicture* src, const WebPPicture*
      ref,\n                          int type, float results[5])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/cost_enc.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - level
    - probas
    argTypes:
    - int
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: VariableLevelCost
    functionSourceFile: /src/libwebp/src/enc/cost_enc.c
    functionUses: 0
    functionsReached:
    - VP8BitCost
    linkageType: ''
    returnType: int
    signature: int VariableLevelCost(int level, const uint8_t probas[NUM_PROBAS])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/cost_enc.c:77,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/cost_enc.c:78,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/cost_enc.c:80,1
    - Dst: VariableLevelCost
      Src: /src/libwebp/src/enc/cost_enc.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - proba
    argTypes:
    - VP8EncProba*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 96
    functionName: VP8CalculateLevelCosts
    functionSourceFile: /src/libwebp/src/enc/cost_enc.c
    functionUses: 0
    functionsReached:
    - VariableLevelCost
    - VP8BitCost
    linkageType: ''
    returnType: void
    signature: void VP8CalculateLevelCosts(VP8EncProba* const proba)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - first
    - coeff_type
    - enc
    - res
    argTypes:
    - int
    - int
    - VP8Encoder*
    - VP8Residual*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: VP8InitResidual
    functionSourceFile: /src/libwebp/src/enc/cost_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void VP8InitResidual(int first, int coeff_type, VP8Encoder* const
      enc,\n                     VP8Residual* const res)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8InitResidual
      Src: /src/libwebp/src/enc/cost_enc.c:230,1
    - Dst: VP8SetResidualCoeffs
      Src: /src/libwebp/src/enc/cost_enc.c:232,1
    - Dst: VP8GetResidualCost
      Src: /src/libwebp/src/enc/cost_enc.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - it
    - levels
    argTypes:
    - VP8EncIterator*
    - int16_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 235
    functionName: VP8GetCostLuma4
    functionSourceFile: /src/libwebp/src/enc/cost_enc.c
    functionUses: 0
    functionsReached:
    - VP8GetResidualCost
    - VP8InitResidual
    - VP8SetResidualCoeffs
    linkageType: ''
    returnType: int
    signature: int VP8GetCostLuma4(VP8EncIterator* const it, const int16_t levels[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8IteratorNzToBytes
      Src: /src/libwebp/src/enc/cost_enc.c:243,1
    - Dst: VP8InitResidual
      Src: /src/libwebp/src/enc/cost_enc.c:246,1
    - Dst: VP8SetResidualCoeffs
      Src: /src/libwebp/src/enc/cost_enc.c:247,1
    - Dst: VP8GetResidualCost
      Src: /src/libwebp/src/enc/cost_enc.c:248,1
    - Dst: VP8InitResidual
      Src: /src/libwebp/src/enc/cost_enc.c:251,1
    - Dst: VP8SetResidualCoeffs
      Src: /src/libwebp/src/enc/cost_enc.c:255,1
    - Dst: VP8GetResidualCost
      Src: /src/libwebp/src/enc/cost_enc.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - it
    - rd
    argTypes:
    - VP8EncIterator*
    - VP8ModeScore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 261
    functionName: VP8GetCostLuma16
    functionSourceFile: /src/libwebp/src/enc/cost_enc.c
    functionUses: 0
    functionsReached:
    - VP8GetResidualCost
    - VP8IteratorNzToBytes
    - VP8InitResidual
    - VP8SetResidualCoeffs
    linkageType: ''
    returnType: int
    signature: int VP8GetCostLuma16(VP8EncIterator* const it, const VP8ModeScore*
      const rd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8IteratorNzToBytes
      Src: /src/libwebp/src/enc/cost_enc.c:269,1
    - Dst: VP8InitResidual
      Src: /src/libwebp/src/enc/cost_enc.c:271,1
    - Dst: VP8SetResidualCoeffs
      Src: /src/libwebp/src/enc/cost_enc.c:276,1
    - Dst: VP8GetResidualCost
      Src: /src/libwebp/src/enc/cost_enc.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - it
    - rd
    argTypes:
    - VP8EncIterator*
    - VP8ModeScore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 283
    functionName: VP8GetCostUV
    functionSourceFile: /src/libwebp/src/enc/cost_enc.c
    functionUses: 0
    functionsReached:
    - VP8GetResidualCost
    - VP8IteratorNzToBytes
    - VP8InitResidual
    - VP8SetResidualCoeffs
    linkageType: ''
    returnType: int
    signature: int VP8GetCostUV(VP8EncIterator* const it, const VP8ModeScore* const
      rd)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: VP8RecordStats
      Src: /src/libwebp/src/enc/cost_enc.c:298,1
    - Dst: VP8RecordStats
      Src: /src/libwebp/src/enc/cost_enc.c:303,1
    - Dst: VP8RecordStats
      Src: /src/libwebp/src/enc/cost_enc.c:305,1
    - Dst: VP8RecordStats
      Src: /src/libwebp/src/enc/cost_enc.c:308,1
    - Dst: VP8RecordStats
      Src: /src/libwebp/src/enc/cost_enc.c:309,1
    - Dst: abs
      Src: /src/libwebp/src/enc/cost_enc.c:312,1
    - Dst: VP8RecordStats
      Src: /src/libwebp/src/enc/cost_enc.c:314,1
    - Dst: VP8RecordStats
      Src: /src/libwebp/src/enc/cost_enc.c:315,1
    - Dst: VP8RecordStats
      Src: /src/libwebp/src/enc/cost_enc.c:315,1
    - Dst: VP8RecordStats
      Src: /src/libwebp/src/enc/cost_enc.c:316,1
    - Dst: VP8RecordStats
      Src: /src/libwebp/src/enc/cost_enc.c:317,1
    - Dst: VP8RecordStats
      Src: /src/libwebp/src/enc/cost_enc.c:318,1
    - Dst: VP8RecordStats
      Src: /src/libwebp/src/enc/cost_enc.c:319,1
    - Dst: VP8RecordStats
      Src: /src/libwebp/src/enc/cost_enc.c:321,1
    - Dst: VP8RecordStats
      Src: /src/libwebp/src/enc/cost_enc.c:334,1
    - Dst: VP8RecordStats
      Src: /src/libwebp/src/enc/cost_enc.c:341,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 2
    argNames:
    - ctx
    - res
    argTypes:
    - int
    - VP8Residual*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 343
    functionName: VP8RecordCoeffs
    functionSourceFile: /src/libwebp/src/enc/cost_enc.c
    functionUses: 0
    functionsReached:
    - abs
    - VP8RecordStats
    linkageType: ''
    returnType: int
    signature: int VP8RecordCoeffs(int ctx, const VP8Residual* const res)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WebPInitAlphaProcessing
      Src: /src/libwebp/src/enc/picture_csp_enc.c:44,1
    - Dst: WebPHasAlpha8b
      Src: /src/libwebp/src/enc/picture_csp_enc.c:47,1
    - Dst: WebPHasAlpha32b
      Src: /src/libwebp/src/enc/picture_csp_enc.c:51,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - alpha
    - width
    - height
    - x_step
    - y_step
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: CheckNonOpaque
    functionSourceFile: /src/libwebp/src/enc/picture_csp_enc.c
    functionUses: 0
    functionsReached:
    - WebPHasAlpha32b
    - WebPHasAlpha8b
    - WebPInitAlphaProcessing
    linkageType: ''
    returnType: int
    signature: "int CheckNonOpaque(const uint8_t* alpha, int width, int height,\n
      \                         int x_step, int y_step)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CheckNonOpaque
      Src: /src/libwebp/src/enc/picture_csp_enc.c:62,1
    - Dst: CheckNonOpaque
      Src: /src/libwebp/src/enc/picture_csp_enc.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - picture
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: WebPPictureHasTransparency
    functionSourceFile: /src/libwebp/src/enc/picture_csp_enc.c
    functionUses: 1
    functionsReached:
    - CheckNonOpaque
    linkageType: ''
    returnType: int
    signature: int WebPPictureHasTransparency(const WebPPicture* picture)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SharpYuvConvert
      Src: /src/libwebp/src/enc/picture_csp_enc.c:85,1
    - Dst: SharpYuvGetConversionMatrix
      Src: /src/libwebp/src/enc/picture_csp_enc.c:89,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/picture_csp_enc.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - r_ptr
    - g_ptr
    - b_ptr
    - step
    - rgb_stride
    - picture
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 94
    functionName: PreprocessARGB
    functionSourceFile: /src/libwebp/src/enc/picture_csp_enc.c
    functionUses: 0
    functionsReached:
    - SharpYuvGetConversionMatrix
    - WebPEncodingSetError
    - SharpYuvConvert
    linkageType: ''
    returnType: int
    signature: "int PreprocessARGB(const uint8_t* r_ptr, const uint8_t* g_ptr,\n                          const
      uint8_t* b_ptr, int step, int rgb_stride,\n                          WebPPicture*
      const picture)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8RGBToY
      Src: /src/libwebp/src/enc/picture_csp_enc.c:104,1
    - Dst: VP8RandomBits
      Src: /src/libwebp/src/enc/picture_csp_enc.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - r_ptr
    - g_ptr
    - b_ptr
    - step
    - dst_y
    - width
    - rg
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - uint8_t*
    - int
    - VP8Random*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: ConvertRowToY
    functionSourceFile: /src/libwebp/src/enc/picture_csp_enc.c
    functionUses: 0
    functionsReached:
    - VP8RGBToY
    - VP8RandomBits
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ConvertRowToY(const uint8_t* const r_ptr,\n                                      const
      uint8_t* const g_ptr,\n                                      const uint8_t*
      const b_ptr, int step,\n                                      uint8_t* const
      dst_y, int width,\n                                      VP8Random* const rg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8RGBToU
      Src: /src/libwebp/src/enc/picture_csp_enc.c:115,1
    - Dst: VP8RandomBits
      Src: /src/libwebp/src/enc/picture_csp_enc.c:115,1
    - Dst: VP8RGBToV
      Src: /src/libwebp/src/enc/picture_csp_enc.c:116,1
    - Dst: VP8RandomBits
      Src: /src/libwebp/src/enc/picture_csp_enc.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - rgb
    - dst_u
    - dst_v
    - width
    - rg
    argTypes:
    - uint16_t*
    - uint8_t*
    - uint8_t*
    - int
    - VP8Random*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: ConvertRowsToUV
    functionSourceFile: /src/libwebp/src/enc/picture_csp_enc.c
    functionUses: 0
    functionsReached:
    - VP8RGBToV
    - VP8RandomBits
    - VP8RGBToU
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ConvertRowsToUV(const uint16_t* rgb,\n                                        uint8_t*
      const dst_u,\n                                        uint8_t* const dst_v,
      int width,\n                                        VP8Random* const rg)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: CheckNonOpaque
      Src: /src/libwebp/src/enc/picture_csp_enc.c:131,1
    - Dst: WebPPictureAllocYUVA
      Src: /src/libwebp/src/enc/picture_csp_enc.c:142,1
    - Dst: assert
      Src: /src/libwebp/src/enc/picture_csp_enc.c:146,1
    - Dst: SharpYuvInit
      Src: /src/libwebp/src/enc/picture_csp_enc.c:150,1
    - Dst: PreprocessARGB
      Src: /src/libwebp/src/enc/picture_csp_enc.c:151,1
    - Dst: WebPExtractAlpha
      Src: /src/libwebp/src/enc/picture_csp_enc.c:155,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/picture_csp_enc.c:162,1
    - Dst: VP8InitRandom
      Src: /src/libwebp/src/enc/picture_csp_enc.c:171,1
    - Dst: WebPInitConvertARGBToYUV
      Src: /src/libwebp/src/enc/picture_csp_enc.c:174,1
    - Dst: WebPInitGammaTables
      Src: /src/libwebp/src/enc/picture_csp_enc.c:175,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/picture_csp_enc.c:178,1
    - Dst: WebPImportYUVAFromRGBA
      Src: /src/libwebp/src/enc/picture_csp_enc.c:183,1
    - Dst: WebPImportYUVAFromRGBALastLine
      Src: /src/libwebp/src/enc/picture_csp_enc.c:198,1
    - Dst: ConvertRowToY
      Src: /src/libwebp/src/enc/picture_csp_enc.c:207,1
    - Dst: ConvertRowToY
      Src: /src/libwebp/src/enc/picture_csp_enc.c:208,1
    - Dst: WebPExtractAlpha
      Src: /src/libwebp/src/enc/picture_csp_enc.c:213,1
    - Dst: WebPAccumulateRGB
      Src: /src/libwebp/src/enc/picture_csp_enc.c:219,1
    - Dst: WebPAccumulateRGBA
      Src: /src/libwebp/src/enc/picture_csp_enc.c:222,1
    - Dst: ConvertRowsToUV
      Src: /src/libwebp/src/enc/picture_csp_enc.c:226,1
    - Dst: ConvertRowToY
      Src: /src/libwebp/src/enc/picture_csp_enc.c:236,1
    - Dst: WebPExtractAlpha
      Src: /src/libwebp/src/enc/picture_csp_enc.c:238,1
    - Dst: WebPAccumulateRGB
      Src: /src/libwebp/src/enc/picture_csp_enc.c:243,1
    - Dst: WebPAccumulateRGBA
      Src: /src/libwebp/src/enc/picture_csp_enc.c:246,1
    - Dst: ConvertRowsToUV
      Src: /src/libwebp/src/enc/picture_csp_enc.c:249,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/picture_csp_enc.c:253,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 84
    argCount: 9
    argNames:
    - r_ptr
    - g_ptr
    - b_ptr
    - a_ptr
    - step
    - rgb_stride
    - dithering
    - use_iterative_conversion
    - picture
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    - float
    - int
    - WebPPicture*
    assertStmts:
    - condition: (step == 4)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/libwebp/src/enc/picture_csp_enc.c
    constantsTouched: []
    func_position:
      end: 256
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 256
    functionName: ImportYUVAFromRGBA
    functionSourceFile: /src/libwebp/src/enc/picture_csp_enc.c
    functionUses: 1
    functionsReached:
    - CheckNonOpaque
    - VP8InitRandom
    - ConvertRowsToUV
    - ConvertRowToY
    - assert
    - PreprocessARGB
    - WebPAccumulateRGB
    - SharpYuvInit
    - WebPInitConvertARGBToYUV
    - WebPImportYUVAFromRGBALastLine
    - WebPPictureAllocYUVA
    - WebPSafeMalloc
    - WebPImportYUVAFromRGBA
    - WebPAccumulateRGBA
    - WebPExtractAlpha
    - WebPEncodingSetError
    - WebPInitGammaTables
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: "int ImportYUVAFromRGBA(const uint8_t* r_ptr, const uint8_t* g_ptr,\n
      \                             const uint8_t* b_ptr, const uint8_t* a_ptr,\n
      \                             int step,        // bytes per pixel\n                              int
      rgb_stride,  // bytes per scanline\n                              float dithering,
      int use_iterative_conversion,\n                              WebPPicture* const
      picture)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/picture_csp_enc.c:270,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/picture_csp_enc.c:272,1
    - Dst: CHANNEL_OFFSET
      Src: /src/libwebp/src/enc/picture_csp_enc.c:275,1
    - Dst: CHANNEL_OFFSET
      Src: /src/libwebp/src/enc/picture_csp_enc.c:276,1
    - Dst: CHANNEL_OFFSET
      Src: /src/libwebp/src/enc/picture_csp_enc.c:277,1
    - Dst: CHANNEL_OFFSET
      Src: /src/libwebp/src/enc/picture_csp_enc.c:278,1
    - Dst: ImportYUVAFromRGBA
      Src: /src/libwebp/src/enc/picture_csp_enc.c:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - picture
    - colorspace
    - dithering
    - use_iterative_conversion
    argTypes:
    - WebPPicture*
    - WebPEncCSP
    - float
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 284
    functionName: PictureARGBToYUVA
    functionSourceFile: /src/libwebp/src/enc/picture_csp_enc.c
    functionUses: 0
    functionsReached:
    - ImportYUVAFromRGBA
    - CHANNEL_OFFSET
    - WebPEncodingSetError
    linkageType: ''
    returnType: int
    signature: "int PictureARGBToYUVA(WebPPicture* picture, WebPEncCSP colorspace,\n
      \                            float dithering, int use_iterative_conversion)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PictureARGBToYUVA
      Src: /src/libwebp/src/enc/picture_csp_enc.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - picture
    - colorspace
    - dithering
    argTypes:
    - WebPPicture*
    - WebPEncCSP
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 4
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: WebPPictureARGBToYUVADithered
    functionSourceFile: /src/libwebp/src/enc/picture_csp_enc.c
    functionUses: 1
    functionsReached:
    - PictureARGBToYUVA
    linkageType: ''
    returnType: int
    signature: "int WebPPictureARGBToYUVADithered(WebPPicture* picture, WebPEncCSP
      colorspace,\n                                  float dithering)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PictureARGBToYUVA
      Src: /src/libwebp/src/enc/picture_csp_enc.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - picture
    - colorspace
    argTypes:
    - WebPPicture*
    - WebPEncCSP
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: WebPPictureARGBToYUVA
    functionSourceFile: /src/libwebp/src/enc/picture_csp_enc.c
    functionUses: 0
    functionsReached:
    - PictureARGBToYUVA
    linkageType: ''
    returnType: int
    signature: int WebPPictureARGBToYUVA(WebPPicture* picture, WebPEncCSP colorspace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PictureARGBToYUVA
      Src: /src/libwebp/src/enc/picture_csp_enc.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - picture
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 4
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: WebPPictureSharpARGBToYUVA
    functionSourceFile: /src/libwebp/src/enc/picture_csp_enc.c
    functionUses: 1
    functionsReached:
    - PictureARGBToYUVA
    linkageType: ''
    returnType: int
    signature: int WebPPictureSharpARGBToYUVA(WebPPicture* picture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureSharpARGBToYUVA
      Src: /src/libwebp/src/enc/picture_csp_enc.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - picture
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 5
    functionLinenumber: 299
    functionLinenumberEnd: 301
    functionName: WebPPictureSmartARGBToYUVA
    functionSourceFile: /src/libwebp/src/enc/picture_csp_enc.c
    functionUses: 0
    functionsReached:
    - WebPPictureSharpARGBToYUVA
    linkageType: ''
    returnType: int
    signature: int WebPPictureSmartARGBToYUVA(WebPPicture* picture)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/picture_csp_enc.c:309,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/picture_csp_enc.c:312,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/picture_csp_enc.c:315,1
    - Dst: WebPPictureAllocARGB
      Src: /src/libwebp/src/enc/picture_csp_enc.c:318,1
    - Dst: WebPGetLinePairConverter
      Src: /src/libwebp/src/enc/picture_csp_enc.c:330,1
    - Dst: upsample
      Src: /src/libwebp/src/enc/picture_csp_enc.c:333,1
    - Dst: upsample
      Src: /src/libwebp/src/enc/picture_csp_enc.c:342,1
    - Dst: upsample
      Src: /src/libwebp/src/enc/picture_csp_enc.c:349,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 1
    argNames:
    - picture
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 364
    functionName: WebPPictureYUVAToARGB
    functionSourceFile: /src/libwebp/src/enc/picture_csp_enc.c
    functionUses: 3
    functionsReached:
    - WebPGetLinePairConverter
    - upsample
    - WebPEncodingSetError
    - WebPPictureAllocARGB
    linkageType: ''
    returnType: int
    signature: int WebPPictureYUVAToARGB(WebPPicture* picture)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/libwebp/src/enc/picture_csp_enc.c:379,1
    - Dst: ImportYUVAFromRGBA
      Src: /src/libwebp/src/enc/picture_csp_enc.c:383,1
    - Dst: WebPPictureAlloc
      Src: /src/libwebp/src/enc/picture_csp_enc.c:386,1
    - Dst: VP8LDspInit
      Src: /src/libwebp/src/enc/picture_csp_enc.c:388,1
    - Dst: WebPInitAlphaProcessing
      Src: /src/libwebp/src/enc/picture_csp_enc.c:389,1
    - Dst: assert
      Src: /src/libwebp/src/enc/picture_csp_enc.c:395,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/picture_csp_enc.c:398,1
    - Dst: WebPPackARGB
      Src: /src/libwebp/src/enc/picture_csp_enc.c:407,1
    - Dst: VP8LConvertBGRAToRGBA
      Src: /src/libwebp/src/enc/picture_csp_enc.c:413,1
    - Dst: assert
      Src: /src/libwebp/src/enc/picture_csp_enc.c:421,1
    - Dst: WebPPackRGB
      Src: /src/libwebp/src/enc/picture_csp_enc.c:423,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 6
    argNames:
    - picture
    - rgb
    - rgb_stride
    - step
    - swap_rb
    - import_alpha
    argTypes:
    - WebPPicture*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (step == 4)
      pos:
        line_end: 394
        line_start: 394
        source_file: /src/libwebp/src/enc/picture_csp_enc.c
    - condition: (step >= 3)
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/libwebp/src/enc/picture_csp_enc.c
    constantsTouched: []
    func_position:
      end: 431
      start: 369
    functionDepth: 3
    functionLinenumber: 369
    functionLinenumberEnd: 431
    functionName: Import
    functionSourceFile: /src/libwebp/src/enc/picture_csp_enc.c
    functionUses: 1
    functionsReached:
    - ImportYUVAFromRGBA
    - assert
    - memcpy
    - WebPPackARGB
    - WebPPackRGB
    - WebPPictureAlloc
    - VP8LConvertBGRAToRGBA
    - VP8LDspInit
    - abs
    - WebPInitAlphaProcessing
    linkageType: ''
    returnType: int
    signature: "int Import(WebPPicture* const picture, const uint8_t* rgb,\n                  int
      rgb_stride, int step, int swap_rb, int import_alpha)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Import
      Src: /src/libwebp/src/enc/picture_csp_enc.c:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - picture
    - bgr
    - bgr_stride
    argTypes:
    - WebPPicture*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 437
    functionDepth: 4
    functionLinenumber: 437
    functionLinenumberEnd: 442
    functionName: WebPPictureImportBGR
    functionSourceFile: /src/libwebp/src/enc/picture_csp_enc.c
    functionUses: 0
    functionsReached:
    - Import
    linkageType: ''
    returnType: int
    signature: "int WebPPictureImportBGR(WebPPicture* picture, const uint8_t* bgr,\n
      \                        int bgr_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Import
      Src: /src/libwebp/src/enc/picture_csp_enc.c:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - picture
    - bgra
    - bgra_stride
    argTypes:
    - WebPPicture*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 444
    functionDepth: 4
    functionLinenumber: 444
    functionLinenumberEnd: 449
    functionName: WebPPictureImportBGRA
    functionSourceFile: /src/libwebp/src/enc/picture_csp_enc.c
    functionUses: 0
    functionsReached:
    - Import
    linkageType: ''
    returnType: int
    signature: "int WebPPictureImportBGRA(WebPPicture* picture, const uint8_t* bgra,\n
      \                         int bgra_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Import
      Src: /src/libwebp/src/enc/picture_csp_enc.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - picture
    - bgrx
    - bgrx_stride
    argTypes:
    - WebPPicture*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 451
    functionDepth: 4
    functionLinenumber: 451
    functionLinenumberEnd: 456
    functionName: WebPPictureImportBGRX
    functionSourceFile: /src/libwebp/src/enc/picture_csp_enc.c
    functionUses: 0
    functionsReached:
    - Import
    linkageType: ''
    returnType: int
    signature: "int WebPPictureImportBGRX(WebPPicture* picture, const uint8_t* bgrx,\n
      \                         int bgrx_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Import
      Src: /src/libwebp/src/enc/picture_csp_enc.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - picture
    - rgb
    - rgb_stride
    argTypes:
    - WebPPicture*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 465
    functionName: WebPPictureImportRGB
    functionSourceFile: /src/libwebp/src/enc/picture_csp_enc.c
    functionUses: 0
    functionsReached:
    - Import
    linkageType: ''
    returnType: int
    signature: "int WebPPictureImportRGB(WebPPicture* picture, const uint8_t* rgb,\n
      \                        int rgb_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Import
      Src: /src/libwebp/src/enc/picture_csp_enc.c:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - picture
    - rgba
    - rgba_stride
    argTypes:
    - WebPPicture*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 467
    functionDepth: 4
    functionLinenumber: 467
    functionLinenumberEnd: 472
    functionName: WebPPictureImportRGBA
    functionSourceFile: /src/libwebp/src/enc/picture_csp_enc.c
    functionUses: 2
    functionsReached:
    - Import
    linkageType: ''
    returnType: int
    signature: "int WebPPictureImportRGBA(WebPPicture* picture, const uint8_t* rgba,\n
      \                         int rgba_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Import
      Src: /src/libwebp/src/enc/picture_csp_enc.c:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - picture
    - rgbx
    - rgbx_stride
    argTypes:
    - WebPPicture*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 474
    functionDepth: 4
    functionLinenumber: 474
    functionLinenumberEnd: 479
    functionName: WebPPictureImportRGBX
    functionSourceFile: /src/libwebp/src/enc/picture_csp_enc.c
    functionUses: 0
    functionsReached:
    - Import
    linkageType: ''
    returnType: int
    signature: "int WebPPictureImportRGBX(WebPPicture* picture, const uint8_t* rgbx,\n
      \                         int rgbx_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LHistogramNumCodes
      Src: /src/libwebp/src/enc/histogram_enc.c:43,1
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cache_bits
    argTypes:
    - int
    assertStmts:
    - condition: (total_size <= (size_t)0x7fffffff)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/libwebp/src/enc/histogram_enc.c
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: GetHistogramSize
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - VP8LHistogramNumCodes
    linkageType: ''
    returnType: int
    signature: int GetHistogramSize(int cache_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/enc/histogram_enc.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - VP8LHistogram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: HistogramStatsClear
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void HistogramStatsClear(VP8LHistogram* const h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetHistogramSize
      Src: /src/libwebp/src/enc/histogram_enc.c:63,1
    - Dst: memset
      Src: /src/libwebp/src/enc/histogram_enc.c:64,1
    - Dst: HistogramStatsClear
      Src: /src/libwebp/src/enc/histogram_enc.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - h
    argTypes:
    - VP8LHistogram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: HistogramClear
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - GetHistogramSize
    - memset
    - HistogramStatsClear
    linkageType: ''
    returnType: void
    signature: void HistogramClear(VP8LHistogram* const h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - h1
    - h2
    argTypes:
    - VP8LHistogram**
    - VP8LHistogram**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: HistogramSwap
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HistogramSwap(VP8LHistogram** const h1, VP8LHistogram** const
      h2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LHistogramNumCodes
      Src: /src/libwebp/src/enc/histogram_enc.c:81,1
    - Dst: GetHistogramSize
      Src: /src/libwebp/src/enc/histogram_enc.c:82,1
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:83,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/histogram_enc.c:84,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/histogram_enc.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - VP8LHistogram*
    - VP8LHistogram*
    assertStmts:
    - condition: (src->palette_code_bits == dst_cache_bits)
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/libwebp/src/enc/histogram_enc.c
    constantsTouched: []
    func_position:
      end: 87
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: HistogramCopy
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - GetHistogramSize
    - VP8LHistogramNumCodes
    - assert
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void HistogramCopy(const VP8LHistogram* const src,\n                          VP8LHistogram*
      const dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/histogram_enc.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - VP8LHistogram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: VP8LFreeHistogram
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 3
    functionsReached:
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void VP8LFreeHistogram(VP8LHistogram* const h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/histogram_enc.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - histograms
    argTypes:
    - VP8LHistogramSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: VP8LFreeHistogramSet
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 2
    functionsReached:
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void VP8LFreeHistogramSet(VP8LHistogramSet* const histograms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HistogramClear
      Src: /src/libwebp/src/enc/histogram_enc.c:101,1
    - Dst: VP8LHistogramStoreRefs
      Src: /src/libwebp/src/enc/histogram_enc.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - h
    - refs
    - palette_code_bits
    argTypes:
    - VP8LHistogram*
    - VP8LBackwardRefs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: VP8LHistogramCreate
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 1
    functionsReached:
    - VP8LHistogramStoreRefs
    - HistogramClear
    linkageType: ''
    returnType: void
    signature: "void VP8LHistogramCreate(VP8LHistogram* const h,\n                         const
      VP8LBackwardRefs* const refs,\n                         int palette_code_bits)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HistogramClear
      Src: /src/libwebp/src/enc/histogram_enc.c:110,1
    - Dst: HistogramStatsClear
      Src: /src/libwebp/src/enc/histogram_enc.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - h
    - palette_code_bits
    - init_arrays
    argTypes:
    - VP8LHistogram*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: VP8LHistogramInit
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 1
    functionsReached:
    - HistogramClear
    - HistogramStatsClear
    linkageType: ''
    returnType: void
    signature: "void VP8LHistogramInit(VP8LHistogram* const h, int palette_code_bits,\n
      \                      int init_arrays)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetHistogramSize
      Src: /src/libwebp/src/enc/histogram_enc.c:118,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/histogram_enc.c:119,1
    - Dst: VP8LHistogramInit
      Src: /src/libwebp/src/enc/histogram_enc.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cache_bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 116
    functionDepth: 4
    functionLinenumber: 116
    functionLinenumberEnd: 126
    functionName: VP8LAllocateHistogram
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 3
    functionsReached:
    - VP8LHistogramInit
    - GetHistogramSize
    - WebPSafeMalloc
    linkageType: ''
    returnType: VP8LHistogram
    signature: VP8LHistogram * VP8LAllocateHistogram(int cache_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetHistogramSize
      Src: /src/libwebp/src/enc/histogram_enc.c:132,1
    - Dst: WEBP_ALIGN
      Src: /src/libwebp/src/enc/histogram_enc.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - set
    - cache_bits
    argTypes:
    - VP8LHistogramSet*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 142
    functionName: HistogramSetResetPointers
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - GetHistogramSize
    - WEBP_ALIGN
    linkageType: ''
    returnType: void
    signature: "void HistogramSetResetPointers(VP8LHistogramSet* const set,\n                                      int
      cache_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetHistogramSize
      Src: /src/libwebp/src/enc/histogram_enc.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - cache_bits
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: HistogramSetTotalSize
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - GetHistogramSize
    linkageType: ''
    returnType: size_t
    signature: size_t HistogramSetTotalSize(int size, int cache_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HistogramSetTotalSize
      Src: /src/libwebp/src/enc/histogram_enc.c:154,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/histogram_enc.c:155,1
    - Dst: HistogramSetResetPointers
      Src: /src/libwebp/src/enc/histogram_enc.c:163,1
    - Dst: VP8LHistogramInit
      Src: /src/libwebp/src/enc/histogram_enc.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - size
    - cache_bits
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 151
    functionDepth: 4
    functionLinenumber: 151
    functionLinenumberEnd: 168
    functionName: VP8LAllocateHistogramSet
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 2
    functionsReached:
    - VP8LHistogramInit
    - WebPSafeMalloc
    - HistogramSetTotalSize
    - HistogramSetResetPointers
    linkageType: ''
    returnType: VP8LHistogramSet
    signature: VP8LHistogramSet * VP8LAllocateHistogramSet(int size, int cache_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HistogramSetTotalSize
      Src: /src/libwebp/src/enc/histogram_enc.c:174,1
    - Dst: memset
      Src: /src/libwebp/src/enc/histogram_enc.c:177,1
    - Dst: HistogramSetResetPointers
      Src: /src/libwebp/src/enc/histogram_enc.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - set
    argTypes:
    - VP8LHistogramSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 186
    functionName: VP8LHistogramSetClear
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 1
    functionsReached:
    - memset
    - HistogramSetTotalSize
    - HistogramSetResetPointers
    linkageType: ''
    returnType: void
    signature: void VP8LHistogramSetClear(VP8LHistogramSet* const set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - set
    - i
    argTypes:
    - VP8LHistogramSet*
    - int
    assertStmts:
    - condition: (set->size > 0)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/libwebp/src/enc/histogram_enc.c
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: HistogramSetRemoveHistogram
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void HistogramSetRemoveHistogram(VP8LHistogramSet* const set, int i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PixOrCopyIsLiteral
      Src: /src/libwebp/src/enc/histogram_enc.c:200,1
    - Dst: PixOrCopyLiteral
      Src: /src/libwebp/src/enc/histogram_enc.c:201,1
    - Dst: PixOrCopyLiteral
      Src: /src/libwebp/src/enc/histogram_enc.c:202,1
    - Dst: PixOrCopyLiteral
      Src: /src/libwebp/src/enc/histogram_enc.c:203,1
    - Dst: PixOrCopyLiteral
      Src: /src/libwebp/src/enc/histogram_enc.c:204,1
    - Dst: PixOrCopyIsCacheIdx
      Src: /src/libwebp/src/enc/histogram_enc.c:205,1
    - Dst: PixOrCopyCacheIdx
      Src: /src/libwebp/src/enc/histogram_enc.c:207,1
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:208,1
    - Dst: VP8LPrefixEncodeBits
      Src: /src/libwebp/src/enc/histogram_enc.c:212,1
    - Dst: PixOrCopyLength
      Src: /src/libwebp/src/enc/histogram_enc.c:212,1
    - Dst: VP8LPrefixEncodeBits
      Src: /src/libwebp/src/enc/histogram_enc.c:215,1
    - Dst: PixOrCopyDistance
      Src: /src/libwebp/src/enc/histogram_enc.c:215,1
    - Dst: VP8LPrefixEncodeBits
      Src: /src/libwebp/src/enc/histogram_enc.c:217,1
    - Dst: distance_modifier
      Src: /src/libwebp/src/enc/histogram_enc.c:218,1
    - Dst: PixOrCopyDistance
      Src: /src/libwebp/src/enc/histogram_enc.c:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - histo
    - v
    - distance_modifier_arg0
    argTypes:
    - VP8LHistogram*
    - PixOrCopy*
    - int
    assertStmts:
    - condition: (histo->palette_code_bits != 0)
      pos:
        line_end: 207
        line_start: 207
        source_file: /src/libwebp/src/enc/histogram_enc.c
    constantsTouched: []
    func_position:
      end: 223
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 223
    functionName: HistogramAddSinglePixOrCopy
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - PixOrCopyLength
    - PixOrCopyDistance
    - VP8LPrefixEncodeBits
    - PixOrCopyCacheIdx
    - assert
    - PixOrCopyIsCacheIdx
    - PixOrCopyIsLiteral
    - distance_modifier
    - PixOrCopyLiteral
    linkageType: ''
    returnType: void
    signature: "void HistogramAddSinglePixOrCopy(\n    VP8LHistogram* const histo,
      const PixOrCopy* const v,\n    int (*const distance_modifier)(int, int), int
      distance_modifier_arg0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LRefsCursorInit
      Src: /src/libwebp/src/enc/histogram_enc.c:229,1
    - Dst: VP8LRefsCursorOk
      Src: /src/libwebp/src/enc/histogram_enc.c:230,1
    - Dst: HistogramAddSinglePixOrCopy
      Src: /src/libwebp/src/enc/histogram_enc.c:231,1
    - Dst: VP8LRefsCursorNext
      Src: /src/libwebp/src/enc/histogram_enc.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - refs
    - distance_modifier_arg0
    - histo
    argTypes:
    - VP8LBackwardRefs*
    - int
    - VP8LHistogram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 235
    functionName: VP8LHistogramStoreRefs
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 2
    functionsReached:
    - HistogramAddSinglePixOrCopy
    - VP8LRefsCursorInit
    - VP8LRefsCursorOk
    - VP8LRefsCursorNext
    linkageType: ''
    returnType: void
    signature: "void VP8LHistogramStoreRefs(const VP8LBackwardRefs* const refs,\n
      \                           int (*const distance_modifier)(int, int),\n                            int
      distance_modifier_arg0,\n                            VP8LHistogram* const histo)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DivRound
      Src: /src/libwebp/src/enc/histogram_enc.c:250,1
    - Dst: DivRound
      Src: /src/libwebp/src/enc/histogram_enc.c:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - entropy
    argTypes:
    - VP8LBitEntropy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 274
    functionName: BitsEntropyRefine
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - DivRound
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE BitsEntropyRefine(const VP8LBitEntropy* entropy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LBitsEntropyUnrefined
      Src: /src/libwebp/src/enc/histogram_enc.c:278,1
    - Dst: BitsEntropyRefine
      Src: /src/libwebp/src/enc/histogram_enc.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - array
    - n
    argTypes:
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: VP8LBitsEntropy
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 1
    functionsReached:
    - VP8LBitsEntropyUnrefined
    - BitsEntropyRefine
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t VP8LBitsEntropy(const uint32_t* const array, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DivRound
      Src: /src/libwebp/src/enc/histogram_enc.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 290
    functionName: InitialHuffmanCost
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - DivRound
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t InitialHuffmanCost(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitialHuffmanCost
      Src: /src/libwebp/src/enc/histogram_enc.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - stats
    argTypes:
    - VP8LStreaks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 309
    functionName: FinalHuffmanCost
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - InitialHuffmanCost
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FinalHuffmanCost(const VP8LStreaks* const stats)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8LGetEntropyUnrefined
      Src: /src/libwebp/src/enc/histogram_enc.c:318,1
    - Dst: BitsEntropyRefine
      Src: /src/libwebp/src/enc/histogram_enc.c:328,1
    - Dst: FinalHuffmanCost
      Src: /src/libwebp/src/enc/histogram_enc.c:328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - population
    - length
    - trivial_sym
    - is_used
    argTypes:
    - uint32_t*
    - int
    - uint16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 329
    functionName: PopulationCost
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - VP8LGetEntropyUnrefined
    - FinalHuffmanCost
    - BitsEntropyRefine
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t PopulationCost(const uint32_t* const population, int length,\n
      \                              uint16_t* const trivial_sym,\n                               uint8_t*
      const is_used)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: VP8LHistogramNumCodes
      Src: /src/libwebp/src/enc/histogram_enc.c:338,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - histo
    - index
    - population
    - length
    argTypes:
    - VP8LHistogram*
    - HistogramIndex
    - uint32_t**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 357
    functionName: GetPopulationInfo
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - VP8LHistogramNumCodes
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE GetPopulationInfo(const VP8LHistogram* const histo,\n
      \                                         HistogramIndex index,\n                                          const
      uint32_t** population,\n                                          int* length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:380,1
    - Dst: GetPopulationInfo
      Src: /src/libwebp/src/enc/histogram_enc.c:382,1
    - Dst: GetPopulationInfo
      Src: /src/libwebp/src/enc/histogram_enc.c:383,1
    - Dst: VP8LGetCombinedEntropyUnrefined
      Src: /src/libwebp/src/enc/histogram_enc.c:384,1
    - Dst: BitsEntropyRefine
      Src: /src/libwebp/src/enc/histogram_enc.c:385,1
    - Dst: FinalHuffmanCost
      Src: /src/libwebp/src/enc/histogram_enc.c:385,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - h1
    - h2
    - index
    argTypes:
    - VP8LHistogram*
    - VP8LHistogram*
    - HistogramIndex
    assertStmts:
    - condition: (is_h1_used && is_h2_used)
      pos:
        line_end: 379
        line_start: 379
        source_file: /src/libwebp/src/enc/histogram_enc.c
    constantsTouched: []
    func_position:
      end: 386
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 386
    functionName: GetCombinedEntropy
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - GetPopulationInfo
    - assert
    - VP8LGetCombinedEntropyUnrefined
    - FinalHuffmanCost
    - BitsEntropyRefine
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE GetCombinedEntropy(const VP8LHistogram* const h1,\n                                               const
      VP8LHistogram* const h2,\n                                               HistogramIndex
      index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPopulationInfo
      Src: /src/libwebp/src/enc/histogram_enc.c:395,1
    - Dst: PopulationCost
      Src: /src/libwebp/src/enc/histogram_enc.c:396,1
    - Dst: VP8LExtraCost
      Src: /src/libwebp/src/enc/histogram_enc.c:399,1
    - Dst: VP8LExtraCost
      Src: /src/libwebp/src/enc/histogram_enc.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - VP8LHistogram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 389
    functionDepth: 4
    functionLinenumber: 389
    functionLinenumberEnd: 404
    functionName: VP8LHistogramEstimateBits
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 2
    functionsReached:
    - GetPopulationInfo
    - PopulationCost
    - VP8LExtraCost
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t VP8LHistogramEstimateBits(const VP8LHistogram* const h)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 416
    functionName: SaturateAdd
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE SaturateAdd(uint64_t a, int64_t* b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:425,1
    - Dst: GetCombinedEntropy
      Src: /src/libwebp/src/enc/histogram_enc.c:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - a
    - b
    - cost_threshold_in
    - cost
    - costs
    argTypes:
    - VP8LHistogram*
    - VP8LHistogram*
    - int64_t
    - uint64_t*
    - uint64_t[]
    assertStmts:
    - condition: (a->palette_code_bits == b->palette_code_bits)
      pos:
        line_end: 424
        line_start: 424
        source_file: /src/libwebp/src/enc/histogram_enc.c
    constantsTouched: []
    func_position:
      end: 438
      start: 420
    functionDepth: 4
    functionLinenumber: 420
    functionLinenumberEnd: 438
    functionName: GetCombinedHistogramEntropy
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - GetCombinedEntropy
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD GetCombinedHistogramEntropy(\n    const VP8LHistogram*
      const a, const VP8LHistogram* const b,\n    int64_t cost_threshold_in, uint64_t*
      cost, uint64_t costs[5])"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:444,1
    - Dst: GetPopulationInfo
      Src: /src/libwebp/src/enc/histogram_enc.c:450,1
    - Dst: GetPopulationInfo
      Src: /src/libwebp/src/enc/histogram_enc.c:451,1
    - Dst: GetPopulationInfo
      Src: /src/libwebp/src/enc/histogram_enc.c:452,1
    - Dst: VP8LAddVectorEq
      Src: /src/libwebp/src/enc/histogram_enc.c:457,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/histogram_enc.c:459,1
    - Dst: VP8LAddVector
      Src: /src/libwebp/src/enc/histogram_enc.c:465,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/histogram_enc.c:467,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/histogram_enc.c:470,1
    - Dst: memset
      Src: /src/libwebp/src/enc/histogram_enc.c:472,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - h1
    - h2
    - hout
    argTypes:
    - VP8LHistogram*
    - VP8LHistogram*
    - VP8LHistogram*
    assertStmts:
    - condition: (h1->palette_code_bits == h2->palette_code_bits)
      pos:
        line_end: 443
        line_start: 443
        source_file: /src/libwebp/src/enc/histogram_enc.c
    constantsTouched: []
    func_position:
      end: 483
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 483
    functionName: HistogramAdd
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - GetPopulationInfo
    - assert
    - memcpy
    - VP8LAddVector
    - VP8LAddVectorEq
    - memset
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE HistogramAdd(const VP8LHistogram* const h1,\n                                     const
      VP8LHistogram* const h2,\n                                     VP8LHistogram*
      const hout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bit_cost
    - costs
    - h
    argTypes:
    - uint64_t
    - uint64_t[]
    - VP8LHistogram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 492
    functionName: UpdateHistogramCost
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void UpdateHistogramCost(uint64_t bit_cost, uint64_t costs[5],\n                                VP8LHistogram*
      const h)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SaturateAdd
      Src: /src/libwebp/src/enc/histogram_enc.c:508,1
    - Dst: GetCombinedHistogramEntropy
      Src: /src/libwebp/src/enc/histogram_enc.c:509,1
    - Dst: HistogramAdd
      Src: /src/libwebp/src/enc/histogram_enc.c:513,1
    - Dst: UpdateHistogramCost
      Src: /src/libwebp/src/enc/histogram_enc.c:514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - a
    - b
    - out
    - cost_threshold
    argTypes:
    - VP8LHistogram*
    - VP8LHistogram*
    - VP8LHistogram*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 502
    functionDepth: 5
    functionLinenumber: 502
    functionLinenumberEnd: 516
    functionName: HistogramAddEval
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - HistogramAdd
    - UpdateHistogramCost
    - GetCombinedHistogramEntropy
    - SaturateAdd
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD HistogramAddEval(const VP8LHistogram* const a,\n                                           const
      VP8LHistogram* const b,\n                                           VP8LHistogram*
      const out,\n                                           int64_t cost_threshold)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:528,1
    - Dst: SaturateAdd
      Src: /src/libwebp/src/enc/histogram_enc.c:529,1
    - Dst: GetCombinedHistogramEntropy
      Src: /src/libwebp/src/enc/histogram_enc.c:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - a
    - b
    - cost_threshold
    - cost_out
    argTypes:
    - VP8LHistogram*
    - VP8LHistogram*
    - int64_t
    - int64_t*
    assertStmts:
    - condition: (a != NULL && b != NULL)
      pos:
        line_end: 527
        line_start: 527
        source_file: /src/libwebp/src/enc/histogram_enc.c
    constantsTouched: []
    func_position:
      end: 536
      start: 523
    functionDepth: 5
    functionLinenumber: 523
    functionLinenumberEnd: 536
    functionName: HistogramAddThresh
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - GetCombinedHistogramEntropy
    - SaturateAdd
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD HistogramAddThresh(const VP8LHistogram* const a,\n
      \                                            const VP8LHistogram* const b,\n
      \                                            int64_t cost_threshold,\n                                             int64_t*
      cost_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - DominantCostRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 558
    functionName: DominantCostRangeInit
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DominantCostRangeInit(DominantCostRange* const c)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - h
    - c
    argTypes:
    - VP8LHistogram*
    - DominantCostRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 568
    functionName: UpdateDominantCostRange
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void UpdateDominantCostRange(const VP8LHistogram* const h,\n                                    DominantCostRange*
      const c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPopulationInfo
      Src: /src/libwebp/src/enc/histogram_enc.c:577,1
    - Dst: PopulationCost
      Src: /src/libwebp/src/enc/histogram_enc.c:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - h
    argTypes:
    - VP8LHistogram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 570
    functionDepth: 4
    functionLinenumber: 570
    functionLinenumberEnd: 583
    functionName: ComputeHistogramCost
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - GetPopulationInfo
    - PopulationCost
    linkageType: ''
    returnType: void
    signature: void ComputeHistogramCost(VP8LHistogram* const h)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - min
    - max
    - val
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 593
    functionName: GetBinIdForEntropy
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetBinIdForEntropy(uint64_t min, uint64_t max, uint64_t val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetBinIdForEntropy
      Src: /src/libwebp/src/enc/histogram_enc.c:598,1
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:599,1
    - Dst: GetBinIdForEntropy
      Src: /src/libwebp/src/enc/histogram_enc.c:602,1
    - Dst: GetBinIdForEntropy
      Src: /src/libwebp/src/enc/histogram_enc.c:604,1
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - h
    - c
    - low_effort
    argTypes:
    - VP8LHistogram*
    - DominantCostRange*
    - int
    assertStmts:
    - condition: (bin_id < BIN_SIZE)
      pos:
        line_end: 604
        line_start: 604
        source_file: /src/libwebp/src/enc/histogram_enc.c
    - condition: (bin_id < NUM_PARTITIONS)
      pos:
        line_end: 598
        line_start: 598
        source_file: /src/libwebp/src/enc/histogram_enc.c
    constantsTouched: []
    func_position:
      end: 608
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 608
    functionName: GetHistoBinIndex
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - GetBinIdForEntropy
    linkageType: ''
    returnType: int
    signature: "int GetHistoBinIndex(const VP8LHistogram* const h,\n                            const
      DominantCostRange* const c, int low_effort)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/histogram_enc.c:615,1
    - Dst: VP8LRefsCursorInit
      Src: /src/libwebp/src/enc/histogram_enc.c:617,1
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:618,1
    - Dst: VP8LHistogramSetClear
      Src: /src/libwebp/src/enc/histogram_enc.c:619,1
    - Dst: VP8LRefsCursorOk
      Src: /src/libwebp/src/enc/histogram_enc.c:620,1
    - Dst: HistogramAddSinglePixOrCopy
      Src: /src/libwebp/src/enc/histogram_enc.c:623,1
    - Dst: PixOrCopyLength
      Src: /src/libwebp/src/enc/histogram_enc.c:624,1
    - Dst: VP8LRefsCursorNext
      Src: /src/libwebp/src/enc/histogram_enc.c:629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - xsize
    - histo_bits
    - backward_refs
    - image_histo
    argTypes:
    - int
    - int
    - VP8LBackwardRefs*
    - VP8LHistogramSet*
    assertStmts:
    - condition: (histo_bits > 0)
      pos:
        line_end: 617
        line_start: 617
        source_file: /src/libwebp/src/enc/histogram_enc.c
    constantsTouched: []
    func_position:
      end: 631
      start: 611
    functionDepth: 4
    functionLinenumber: 611
    functionLinenumberEnd: 631
    functionName: HistogramBuild
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - HistogramAddSinglePixOrCopy
    - PixOrCopyLength
    - assert
    - VP8LSubSampleSize
    - VP8LRefsCursorNext
    - VP8LRefsCursorInit
    - VP8LRefsCursorOk
    - VP8LHistogramSetClear
    linkageType: ''
    returnType: void
    signature: "void HistogramBuild(int xsize, int histo_bits,\n                           const
      VP8LBackwardRefs* const backward_refs,\n                           VP8LHistogramSet*
      const image_histo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:639,1
    - Dst: ComputeHistogramCost
      Src: /src/libwebp/src/enc/histogram_enc.c:643,1
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:651,1
    - Dst: HistogramCopy
      Src: /src/libwebp/src/enc/histogram_enc.c:655,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - orig_histo
    - image_histo
    argTypes:
    - VP8LHistogramSet*
    - VP8LHistogramSet*
    assertStmts:
    - condition: (image_histo->max_size == orig_histo->max_size)
      pos:
        line_end: 638
        line_start: 638
        source_file: /src/libwebp/src/enc/histogram_enc.c
    - condition: (i > 0)
      pos:
        line_end: 650
        line_start: 650
        source_file: /src/libwebp/src/enc/histogram_enc.c
    constantsTouched: []
    func_position:
      end: 659
      start: 634
    functionDepth: 5
    functionLinenumber: 634
    functionLinenumberEnd: 659
    functionName: HistogramCopyAndAnalyze
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - ComputeHistogramCost
    - HistogramCopy
    linkageType: ''
    returnType: void
    signature: "void HistogramCopyAndAnalyze(VP8LHistogramSet* const orig_histo,\n
      \                                   VP8LHistogramSet* const image_histo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DominantCostRangeInit
      Src: /src/libwebp/src/enc/histogram_enc.c:669,1
    - Dst: UpdateDominantCostRange
      Src: /src/libwebp/src/enc/histogram_enc.c:673,1
    - Dst: GetHistoBinIndex
      Src: /src/libwebp/src/enc/histogram_enc.c:680,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - image_histo
    - low_effort
    argTypes:
    - VP8LHistogramSet*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 682
    functionName: HistogramAnalyzeEntropyBin
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - GetHistoBinIndex
    - UpdateDominantCostRange
    - DominantCostRangeInit
    linkageType: ''
    returnType: void
    signature: "void HistogramAnalyzeEntropyBin(VP8LHistogramSet* const image_histo,\n
      \                                      int low_effort)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:699,1
    - Dst: HistogramAdd
      Src: /src/libwebp/src/enc/histogram_enc.c:712,1
    - Dst: HistogramSetRemoveHistogram
      Src: /src/libwebp/src/enc/histogram_enc.c:713,1
    - Dst: DivRound
      Src: /src/libwebp/src/enc/histogram_enc.c:718,1
    - Dst: HistogramAddEval
      Src: /src/libwebp/src/enc/histogram_enc.c:719,1
    - Dst: HistogramSwap
      Src: /src/libwebp/src/enc/histogram_enc.c:744,1
    - Dst: HistogramSetRemoveHistogram
      Src: /src/libwebp/src/enc/histogram_enc.c:745,1
    - Dst: ComputeHistogramCost
      Src: /src/libwebp/src/enc/histogram_enc.c:758,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 5
    argNames:
    - image_histo
    - cur_combo
    - num_bins
    - combine_cost_factor
    - low_effort
    argTypes:
    - VP8LHistogramSet*
    - VP8LHistogram*
    - int
    - int32_t
    - int
    assertStmts:
    - condition: (num_bins <= BIN_SIZE)
      pos:
        line_end: 698
        line_start: 698
        source_file: /src/libwebp/src/enc/histogram_enc.c
    constantsTouched: []
    func_position:
      end: 761
      start: 687
    functionDepth: 6
    functionLinenumber: 687
    functionLinenumberEnd: 761
    functionName: HistogramCombineEntropyBin
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - ComputeHistogramCost
    - DivRound
    - assert
    - HistogramAdd
    - HistogramAddEval
    - HistogramSwap
    - HistogramSetRemoveHistogram
    linkageType: ''
    returnType: void
    signature: "void HistogramCombineEntropyBin(VP8LHistogramSet* const image_histo,\n
      \                                      VP8LHistogram* cur_combo, int num_bins,\n
      \                                      int32_t combine_cost_factor,\n                                       int
      low_effort)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - seed
    argTypes:
    - uint32_t*
    assertStmts:
    - condition: (*seed > 0)
      pos:
        line_end: 766
        line_start: 766
        source_file: /src/libwebp/src/enc/histogram_enc.c
    constantsTouched: []
    func_position:
      end: 769
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 769
    functionName: MyRand
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t MyRand(uint32_t* const seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/histogram_enc.c:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - histo_queue
    - max_size
    argTypes:
    - HistoQueue*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 797
    functionName: HistoQueueInit
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - WebPSafeMalloc
    linkageType: ''
    returnType: int
    signature: int HistoQueueInit(HistoQueue* const histo_queue, const int max_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:800,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/histogram_enc.c:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - histo_queue
    argTypes:
    - HistoQueue*
    assertStmts:
    - condition: (histo_queue != NULL)
      pos:
        line_end: 799
        line_start: 799
        source_file: /src/libwebp/src/enc/histogram_enc.c
    constantsTouched: []
    func_position:
      end: 804
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 804
    functionName: HistoQueueClear
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void HistoQueueClear(HistoQueue* const histo_queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:810,1
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - histo_queue
    - pair
    argTypes:
    - HistoQueue*
    - HistogramPair*
    assertStmts:
    - condition: "(pair >= histo_queue->queue &&\n         pair < (histo_queue->queue
        + histo_queue->size))"
      pos:
        line_end: 810
        line_start: 809
        source_file: /src/libwebp/src/enc/histogram_enc.c
    - condition: (histo_queue->size > 0)
      pos:
        line_end: 811
        line_start: 811
        source_file: /src/libwebp/src/enc/histogram_enc.c
    constantsTouched: []
    func_position:
      end: 815
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 815
    functionName: HistoQueuePopPair
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void HistoQueuePopPair(HistoQueue* const histo_queue,\n                              HistogramPair*
      const pair)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:820,1
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:821,1
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - histo_queue
    - pair
    argTypes:
    - HistoQueue*
    - HistogramPair*
    assertStmts:
    - condition: (pair->cost_diff < 0)
      pos:
        line_end: 819
        line_start: 819
        source_file: /src/libwebp/src/enc/histogram_enc.c
    - condition: "(pair >= histo_queue->queue &&\n         pair < (histo_queue->queue
        + histo_queue->size))"
      pos:
        line_end: 821
        line_start: 820
        source_file: /src/libwebp/src/enc/histogram_enc.c
    - condition: (histo_queue->size > 0)
      pos:
        line_end: 822
        line_start: 822
        source_file: /src/libwebp/src/enc/histogram_enc.c
    constantsTouched: []
    func_position:
      end: 830
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 830
    functionName: HistoQueueUpdateHead
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void HistoQueueUpdateHead(HistoQueue* const histo_queue,\n                                 HistogramPair*
      const pair)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - bad_id
    - good_id
    - pair
    argTypes:
    - int
    - int
    - HistogramPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 842
    functionName: HistoQueueFixPair
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void HistoQueueFixPair(int bad_id, int good_id,\n                              HistogramPair*
      const pair)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SaturateAdd
      Src: /src/libwebp/src/enc/histogram_enc.c:853,1
    - Dst: GetCombinedHistogramEntropy
      Src: /src/libwebp/src/enc/histogram_enc.c:854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - h1
    - h2
    - cost_threshold
    - pair
    argTypes:
    - VP8LHistogram*
    - VP8LHistogram*
    - int64_t
    - HistogramPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 848
    functionDepth: 5
    functionLinenumber: 848
    functionLinenumberEnd: 860
    functionName: HistoQueueUpdatePair
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - GetCombinedHistogramEntropy
    - SaturateAdd
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD HistoQueueUpdatePair(const VP8LHistogram* const h1,\n
      \                                              const VP8LHistogram* const h2,\n
      \                                              int64_t cost_threshold,\n                                               HistogramPair*
      const pair)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:874,1
    - Dst: HistoQueueUpdatePair
      Src: /src/libwebp/src/enc/histogram_enc.c:886,1
    - Dst: HistoQueueUpdateHead
      Src: /src/libwebp/src/enc/histogram_enc.c:889,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - histo_queue
    - histograms
    - idx1
    - idx2
    - threshold
    argTypes:
    - HistoQueue*
    - VP8LHistogram**
    - int
    - int
    - int64_t
    assertStmts:
    - condition: (threshold <= 0)
      pos:
        line_end: 873
        line_start: 873
        source_file: /src/libwebp/src/enc/histogram_enc.c
    constantsTouched: []
    func_position:
      end: 892
      start: 865
    functionDepth: 6
    functionLinenumber: 865
    functionLinenumberEnd: 892
    functionName: HistoQueuePush
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - HistoQueueUpdatePair
    - HistoQueueUpdateHead
    linkageType: ''
    returnType: int64_t
    signature: "int64_t HistoQueuePush(HistoQueue* const histo_queue,\n                              VP8LHistogram**
      const histograms, int idx1,\n                              int idx2, int64_t
      threshold)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HistoQueueInit
      Src: /src/libwebp/src/enc/histogram_enc.c:913,1
    - Dst: HistoQueuePush
      Src: /src/libwebp/src/enc/histogram_enc.c:920,1
    - Dst: HistogramAdd
      Src: /src/libwebp/src/enc/histogram_enc.c:927,1
    - Dst: UpdateHistogramCost
      Src: /src/libwebp/src/enc/histogram_enc.c:928,1
    - Dst: HistogramSetRemoveHistogram
      Src: /src/libwebp/src/enc/histogram_enc.c:932,1
    - Dst: HistoQueuePopPair
      Src: /src/libwebp/src/enc/histogram_enc.c:939,1
    - Dst: HistoQueueFixPair
      Src: /src/libwebp/src/enc/histogram_enc.c:941,1
    - Dst: HistoQueueUpdateHead
      Src: /src/libwebp/src/enc/histogram_enc.c:942,1
    - Dst: HistoQueuePush
      Src: /src/libwebp/src/enc/histogram_enc.c:950,1
    - Dst: HistoQueueClear
      Src: /src/libwebp/src/enc/histogram_enc.c:957,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 1
    argNames:
    - image_histo
    argTypes:
    - VP8LHistogramSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 898
    functionDepth: 7
    functionLinenumber: 898
    functionLinenumberEnd: 959
    functionName: HistogramCombineGreedy
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - HistoQueueClear
    - HistoQueuePush
    - HistogramAdd
    - HistoQueuePopPair
    - HistoQueueUpdateHead
    - HistoQueueFixPair
    - UpdateHistogramCost
    - HistoQueueInit
    - HistogramSetRemoveHistogram
    linkageType: ''
    returnType: int
    signature: int HistogramCombineGreedy(VP8LHistogramSet* const image_histo)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: HistoQueueInit
      Src: /src/libwebp/src/enc/histogram_enc.c:985,1
    - Dst: MyRand
      Src: /src/libwebp/src/enc/histogram_enc.c:1003,1
    - Dst: HistoQueuePush
      Src: /src/libwebp/src/enc/histogram_enc.c:1010,1
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:1022,1
    - Dst: HistogramAdd
      Src: /src/libwebp/src/enc/histogram_enc.c:1024,1
    - Dst: UpdateHistogramCost
      Src: /src/libwebp/src/enc/histogram_enc.c:1026,1
    - Dst: HistogramSetRemoveHistogram
      Src: /src/libwebp/src/enc/histogram_enc.c:1028,1
    - Dst: HistoQueuePopPair
      Src: /src/libwebp/src/enc/histogram_enc.c:1038,1
    - Dst: HistoQueueFixPair
      Src: /src/libwebp/src/enc/histogram_enc.c:1044,1
    - Dst: HistoQueueUpdatePair
      Src: /src/libwebp/src/enc/histogram_enc.c:1046,1
    - Dst: HistoQueuePopPair
      Src: /src/libwebp/src/enc/histogram_enc.c:1048,1
    - Dst: HistoQueueFixPair
      Src: /src/libwebp/src/enc/histogram_enc.c:1052,1
    - Dst: HistoQueueUpdateHead
      Src: /src/libwebp/src/enc/histogram_enc.c:1053,1
    - Dst: HistoQueueClear
      Src: /src/libwebp/src/enc/histogram_enc.c:1062,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 51
    argCount: 3
    argNames:
    - image_histo
    - min_cluster_size
    - do_greedy
    argTypes:
    - VP8LHistogramSet*
    - int
    - int*
    assertStmts:
    - condition: (best_idx1 < best_idx2)
      pos:
        line_end: 1021
        line_start: 1021
        source_file: /src/libwebp/src/enc/histogram_enc.c
    constantsTouched: []
    func_position:
      end: 1064
      start: 964
    functionDepth: 7
    functionLinenumber: 964
    functionLinenumberEnd: 1064
    functionName: HistogramCombineStochastic
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - HistoQueueClear
    - HistoQueuePush
    - assert
    - HistogramAdd
    - HistoQueuePopPair
    - HistoQueueUpdateHead
    - HistoQueueFixPair
    - MyRand
    - HistoQueueUpdatePair
    - UpdateHistogramCost
    - HistoQueueInit
    - HistogramSetRemoveHistogram
    linkageType: ''
    returnType: int
    signature: "int HistogramCombineStochastic(VP8LHistogramSet* const image_histo,\n
      \                                     int min_cluster_size,\n                                      int*
      const do_greedy)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HistogramAddThresh
      Src: /src/libwebp/src/enc/histogram_enc.c:1092,1
    - Dst: assert
      Src: /src/libwebp/src/enc/histogram_enc.c:1101,1
    - Dst: VP8LHistogramSetClear
      Src: /src/libwebp/src/enc/histogram_enc.c:1108,1
    - Dst: HistogramAdd
      Src: /src/libwebp/src/enc/histogram_enc.c:1115,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - in
    - out
    - symbols
    argTypes:
    - VP8LHistogramSet*
    - VP8LHistogramSet*
    - uint32_t*
    assertStmts:
    - condition: (out_size == 1)
      pos:
        line_end: 1100
        line_start: 1100
        source_file: /src/libwebp/src/enc/histogram_enc.c
    constantsTouched: []
    func_position:
      end: 1117
      start: 1072
    functionDepth: 6
    functionLinenumber: 1072
    functionLinenumberEnd: 1117
    functionName: HistogramRemap
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - HistogramAdd
    - HistogramAddThresh
    - VP8LHistogramSetClear
    linkageType: ''
    returnType: void
    signature: "void HistogramRemap(const VP8LHistogramSet* const in,\n                           VP8LHistogramSet*
      const out,\n                           uint32_t* const symbols)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - histo_size
    - quality
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1128
    functionName: GetCombineCostFactor
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t GetCombineCostFactor(int histo_size, int quality)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/histogram_enc.c:1139,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/histogram_enc.c:1141,1
    - Dst: VP8LAllocateHistogramSet
      Src: /src/libwebp/src/enc/histogram_enc.c:1144,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/histogram_enc.c:1151,1
    - Dst: HistogramBuild
      Src: /src/libwebp/src/enc/histogram_enc.c:1156,1
    - Dst: HistogramCopyAndAnalyze
      Src: /src/libwebp/src/enc/histogram_enc.c:1157,1
    - Dst: GetCombineCostFactor
      Src: /src/libwebp/src/enc/histogram_enc.c:1163,1
    - Dst: HistogramAnalyzeEntropyBin
      Src: /src/libwebp/src/enc/histogram_enc.c:1165,1
    - Dst: HistogramCombineEntropyBin
      Src: /src/libwebp/src/enc/histogram_enc.c:1167,1
    - Dst: DivRound
      Src: /src/libwebp/src/enc/histogram_enc.c:1176,1
    - Dst: HistogramCombineStochastic
      Src: /src/libwebp/src/enc/histogram_enc.c:1179,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/histogram_enc.c:1180,1
    - Dst: HistogramCombineGreedy
      Src: /src/libwebp/src/enc/histogram_enc.c:1184,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/histogram_enc.c:1185,1
    - Dst: HistogramRemap
      Src: /src/libwebp/src/enc/histogram_enc.c:1192,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/histogram_enc.c:1194,1
    - Dst: VP8LFreeHistogramSet
      Src: /src/libwebp/src/enc/histogram_enc.c:1199,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 13
    argNames:
    - xsize
    - ysize
    - refs
    - quality
    - low_effort
    - histogram_bits
    - cache_bits
    - image_histo
    - tmp_histo
    - histogram_symbols
    - pic
    - percent_range
    - percent
    argTypes:
    - int
    - int
    - VP8LBackwardRefs*
    - int
    - int
    - int
    - int
    - VP8LHistogramSet*
    - VP8LHistogram*
    - uint32_t*
    - WebPPicture*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1130
    functionDepth: 8
    functionLinenumber: 1130
    functionLinenumberEnd: 1201
    functionName: VP8LGetHistoImageSymbols
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.c
    functionUses: 1
    functionsReached:
    - HistogramBuild
    - DivRound
    - HistogramCombineStochastic
    - HistogramRemap
    - VP8LSubSampleSize
    - HistogramCopyAndAnalyze
    - VP8LAllocateHistogramSet
    - HistogramAnalyzeEntropyBin
    - WebPReportProgress
    - HistogramCombineEntropyBin
    - GetCombineCostFactor
    - VP8LFreeHistogramSet
    - HistogramCombineGreedy
    - WebPEncodingSetError
    linkageType: ''
    returnType: int
    signature: "int VP8LGetHistoImageSymbols(int xsize, int ysize,\n                             const
      VP8LBackwardRefs* const refs, int quality,\n                             int
      low_effort, int histogram_bits, int cache_bits,\n                             VP8LHistogramSet*
      const image_histo,\n                             VP8LHistogram* const tmp_histo,\n
      \                            uint32_t* const histogram_symbols,\n                             const
      WebPPicture* const pic, int percent_range,\n                             int*
      const percent)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:55,1
    - Dst: VP8LFastLog2
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:57,1
    - Dst: VP8LFastLog2
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - num_symbols
    - population_counts
    - output
    argTypes:
    - int
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 62
    functionName: ConvertPopulationCountTableToBitEstimates
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached:
    - memset
    - VP8LFastLog2
    linkageType: ''
    returnType: void
    signature: "void ConvertPopulationCountTableToBitEstimates(\n    int num_symbols,
      const uint32_t population_counts[], uint32_t output[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LAllocateHistogram
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:67,1
    - Dst: VP8LHistogramInit
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:72,1
    - Dst: VP8LHistogramStoreRefs
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:73,1
    - Dst: ConvertPopulationCountTableToBitEstimates
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:75,1
    - Dst: VP8LHistogramNumCodes
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:76,1
    - Dst: ConvertPopulationCountTableToBitEstimates
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:78,1
    - Dst: ConvertPopulationCountTableToBitEstimates
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:79,1
    - Dst: ConvertPopulationCountTableToBitEstimates
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:81,1
    - Dst: ConvertPopulationCountTableToBitEstimates
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:83,1
    - Dst: VP8LFreeHistogram
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - m
    - xsize
    - cache_bits
    - refs
    argTypes:
    - CostModel*
    - int
    - int
    - VP8LBackwardRefs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 64
    functionDepth: 5
    functionLinenumber: 64
    functionLinenumberEnd: 90
    functionName: CostModelBuild
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached:
    - VP8LHistogramInit
    - VP8LAllocateHistogram
    - VP8LHistogramStoreRefs
    - ConvertPopulationCountTableToBitEstimates
    - VP8LFreeHistogram
    - VP8LHistogramNumCodes
    linkageType: ''
    returnType: int
    signature: "int CostModelBuild(CostModel* const m, int xsize, int cache_bits,\n
      \                         const VP8LBackwardRefs* const refs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - v
    argTypes:
    - CostModel*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: GetLiteralCost
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE GetLiteralCost(const CostModel* const m,\n                                          uint32_t
      v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - idx
    argTypes:
    - CostModel*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: GetCacheCost
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE GetCacheCost(const CostModel* const m,\n                                        uint32_t
      idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LPrefixEncodeBits
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - m
    - length
    argTypes:
    - CostModel*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: GetLengthCost
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached:
    - VP8LPrefixEncodeBits
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE GetLengthCost(const CostModel* const m,\n                                         uint32_t
      length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LPrefixEncodeBits
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - m
    - distance
    argTypes:
    - CostModel*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: GetDistanceCost
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached:
    - VP8LPrefixEncodeBits
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE GetDistanceCost(const CostModel* const m,\n                                           uint32_t
      distance)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VP8LColorCacheContains
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:126,1
    - Dst: DivRound
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:129,1
    - Dst: GetCacheCost
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:129,1
    - Dst: VP8LColorCacheInsert
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:131,1
    - Dst: DivRound
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:132,1
    - Dst: GetLiteralCost
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 8
    argNames:
    - argb
    - hashers
    - cost_model
    - idx
    - use_color_cache
    - prev_cost
    - cost
    - dist_array
    argTypes:
    - uint32_t*
    - VP8LColorCache*
    - CostModel*
    - int
    - int
    - int64_t
    - int64_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 138
    functionName: AddSingleLiteralWithCostModel
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached:
    - VP8LColorCacheContains
    - DivRound
    - GetCacheCost
    - VP8LColorCacheInsert
    - GetLiteralCost
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE AddSingleLiteralWithCostModel(\n    const uint32_t* const
      argb, VP8LColorCache* const hashers,\n    const CostModel* const cost_model,
      int idx, int use_color_cache,\n    int64_t prev_cost, int64_t* const cost, uint16_t*
      const dist_array)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - manager
    - interval
    argTypes:
    - CostManager*
    - CostInterval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: CostIntervalAddToFreeList
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CostIntervalAddToFreeList(CostManager* const manager,\n                                      CostInterval*
      const interval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - manager
    - interval
    argTypes:
    - CostManager*
    - CostInterval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: CostIntervalIsInFreeList
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int CostIntervalIsInFreeList(const CostManager* const manager,\n                                    const
      CostInterval* const interval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CostIntervalAddToFreeList
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - manager
    argTypes:
    - CostManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: CostManagerInitFreeList
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached:
    - CostIntervalAddToFreeList
    linkageType: ''
    returnType: void
    signature: void CostManagerInitFreeList(CostManager* const manager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CostIntervalIsInFreeList
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:224,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - manager
    - interval
    argTypes:
    - CostManager*
    - CostInterval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 229
    functionName: DeleteIntervalList
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached:
    - CostIntervalIsInFreeList
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: "void DeleteIntervalList(CostManager* const manager,\n                               const
      CostInterval* interval)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:234,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:235,1
    - Dst: DeleteIntervalList
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:238,1
    - Dst: DeleteIntervalList
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:240,1
    - Dst: memset
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:244,1
    - Dst: CostManagerInitFreeList
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - manager
    argTypes:
    - CostManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 246
    functionName: CostManagerClear
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached:
    - CostManagerInitFreeList
    - memset
    - DeleteIntervalList
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void CostManagerClear(CostManager* const manager)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CostManagerInitFreeList
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:260,1
    - Dst: GetLengthCost
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:266,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:280,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:281,1
    - Dst: CostManagerClear
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:284,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:307,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:311,1
    - Dst: CostManagerClear
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:313,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 4
    argNames:
    - manager
    - dist_array
    - pix_count
    - cost_model
    argTypes:
    - CostManager*
    - uint16_t*
    - int
    - CostModel*
    assertStmts:
    - condition: (manager->cache_intervals_size <= MAX_LENGTH)
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/libwebp/src/enc/backward_references_cost_enc.c
    - condition: "((size_t)(cur - manager->cache_intervals) + 1 ==\n           manager->cache_intervals_size)"
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/libwebp/src/enc/backward_references_cost_enc.c
    constantsTouched: []
    func_position:
      end: 321
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 321
    functionName: CostManagerInit
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached:
    - GetLengthCost
    - CostManagerClear
    - CostManagerInitFreeList
    - assert
    - WebPSafeMalloc
    linkageType: ''
    returnType: int
    signature: "int CostManagerInit(CostManager* const manager,\n                           uint16_t*
      const dist_array, int pix_count,\n                           const CostModel*
      const cost_model)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - manager
    - i
    - position
    - cost
    argTypes:
    - CostManager*
    - int
    - int
    - int64_t
    assertStmts:
    - condition: (k >= 0 && k < MAX_LENGTH)
      pos:
        line_end: 327
        line_start: 327
        source_file: /src/libwebp/src/enc/backward_references_cost_enc.c
    constantsTouched: []
    func_position:
      end: 334
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 334
    functionName: UpdateCost
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE UpdateCost(CostManager* const manager, int i,\n                                   int
      position, int64_t cost)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UpdateCost
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 5
    argNames:
    - manager
    - start
    - end
    - position
    - cost
    argTypes:
    - CostManager*
    - int
    - int
    - int
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 343
    functionName: UpdateCostPerInterval
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached:
    - UpdateCost
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE UpdateCostPerInterval(CostManager* const manager,\n                                              int
      start, int end, int position,\n                                              int64_t
      cost)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - manager
    - prev
    - next
    argTypes:
    - CostManager*
    - CostInterval*
    - CostInterval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 356
    functionName: ConnectIntervals
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ConnectIntervals(CostManager* const manager,\n                                         CostInterval*
      const prev,\n                                         CostInterval* const next)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ConnectIntervals
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:363,1
    - Dst: CostIntervalIsInFreeList
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:364,1
    - Dst: CostIntervalAddToFreeList
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:365,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - manager
    - interval
    argTypes:
    - CostManager*
    - CostInterval*
    assertStmts:
    - condition: (manager->count >= 0)
      pos:
        line_end: 370
        line_start: 370
        source_file: /src/libwebp/src/enc/backward_references_cost_enc.c
    constantsTouched: []
    func_position:
      end: 372
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 372
    functionName: PopInterval
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached:
    - ConnectIntervals
    - assert
    - CostIntervalIsInFreeList
    - CostIntervalAddToFreeList
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PopInterval(CostManager* const manager,\n                                    CostInterval*
      const interval)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PopInterval
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:387,1
    - Dst: UpdateCost
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:390,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - manager
    - i
    - do_clean_intervals
    argTypes:
    - CostManager*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 394
    functionName: UpdateCostAtIndex
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached:
    - PopInterval
    - UpdateCost
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE UpdateCostAtIndex(CostManager* const manager, int i,\n
      \                                         int do_clean_intervals)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:402,1
    - Dst: ConnectIntervals
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:414,1
    - Dst: ConnectIntervals
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:416,1
    - Dst: ConnectIntervals
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:418,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - manager
    - current
    - previous
    argTypes:
    - CostManager*
    - CostInterval*
    - CostInterval*
    assertStmts:
    - condition: (current != NULL)
      pos:
        line_end: 401
        line_start: 401
        source_file: /src/libwebp/src/enc/backward_references_cost_enc.c
    constantsTouched: []
    func_position:
      end: 419
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 419
    functionName: PositionOrphanInterval
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - ConnectIntervals
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PositionOrphanInterval(CostManager* const manager,\n                                               CostInterval*
      const current,\n                                               CostInterval*
      previous)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UpdateCostPerInterval
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:432,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:442,1
    - Dst: UpdateCostPerInterval
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:445,1
    - Dst: PositionOrphanInterval
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:454,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 6
    argNames:
    - manager
    - interval_in
    - cost
    - position
    - start
    - end
    argTypes:
    - CostManager*
    - CostInterval*
    - int64_t
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 457
    functionName: InsertInterval
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached:
    - UpdateCostPerInterval
    - WebPSafeMalloc
    - PositionOrphanInterval
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE InsertInterval(CostManager* const manager,\n                                       CostInterval*
      const interval_in,\n                                       int64_t cost, int
      position, int start,\n                                       int end)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:480,1
    - Dst: InsertInterval
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:517,1
    - Dst: PopInterval
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:531,1
    - Dst: InsertInterval
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:549,1
    - Dst: InsertInterval
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:563,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 4
    argNames:
    - manager
    - distance_cost
    - position
    - len
    argTypes:
    - CostManager*
    - int64_t
    - int
    - int
    assertStmts:
    - condition: (k >= 0 && k < MAX_LENGTH)
      pos:
        line_end: 479
        line_start: 479
        source_file: /src/libwebp/src/enc/backward_references_cost_enc.c
    constantsTouched: []
    func_position:
      end: 565
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 565
    functionName: PushInterval
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - PopInterval
    - InsertInterval
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PushInterval(CostManager* const manager,\n                                     int64_t
      distance_cost, int position,\n                                     int len)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: VP8LHistogramNumCodes
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:577,1
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:580,1
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:583,1
    - Dst: VP8LColorCacheInit
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:593,1
    - Dst: CostModelBuild
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:597,1
    - Dst: CostManagerInit
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:601,1
    - Dst: AddSingleLiteralWithCostModel
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:609,1
    - Dst: VP8LHashChainFindCopy
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:616,1
    - Dst: AddSingleLiteralWithCostModel
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:619,1
    - Dst: VP8LDistanceToPlaneCode
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:626,1
    - Dst: GetDistanceCost
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:627,1
    - Dst: PushInterval
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:629,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:631,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:632,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:633,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:655,1
    - Dst: VP8LHashChainFindCopy
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:659,1
    - Dst: VP8LHashChainFindCopy
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:661,1
    - Dst: UpdateCostAtIndex
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:666,1
    - Dst: UpdateCostAtIndex
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:667,1
    - Dst: PushInterval
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:669,1
    - Dst: UpdateCostAtIndex
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:676,1
    - Dst: VP8LColorCacheClear
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:683,1
    - Dst: CostManagerClear
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:684,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:685,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:686,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 7
    argNames:
    - xsize
    - ysize
    - argb
    - cache_bits
    - hash_chain
    - refs
    - dist_array
    argTypes:
    - int
    - int
    - uint32_t*
    - int
    - VP8LHashChain*
    - VP8LBackwardRefs*
    - uint16_t*
    assertStmts:
    - condition: (len == MAX_LENGTH || len == pix_count - i)
      pos:
        line_end: 654
        line_start: 654
        source_file: /src/libwebp/src/enc/backward_references_cost_enc.c
    - condition: (first_offset_is_constant == 0 || first_offset_is_constant == 1)
      pos:
        line_end: 632
        line_start: 632
        source_file: /src/libwebp/src/enc/backward_references_cost_enc.c
    - condition: (len_prev >= 0)
      pos:
        line_end: 631
        line_start: 631
        source_file: /src/libwebp/src/enc/backward_references_cost_enc.c
    - condition: (offset_cost >= 0)
      pos:
        line_end: 630
        line_start: 630
        source_file: /src/libwebp/src/enc/backward_references_cost_enc.c
    constantsTouched: []
    func_position:
      end: 688
      start: 567
    functionDepth: 6
    functionLinenumber: 567
    functionLinenumberEnd: 688
    functionName: BackwardReferencesHashChainDistanceOnly
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached:
    - CostManagerClear
    - UpdateCostAtIndex
    - assert
    - VP8LColorCacheInit
    - VP8LColorCacheClear
    - WebPSafeCalloc
    - CostManagerInit
    - VP8LHashChainFindCopy
    - PushInterval
    - AddSingleLiteralWithCostModel
    - CostModelBuild
    - VP8LHistogramNumCodes
    - GetDistanceCost
    - VP8LDistanceToPlaneCode
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: "int BackwardReferencesHashChainDistanceOnly(\n    int xsize, int ysize,
      const uint32_t* const argb, int cache_bits,\n    const VP8LHashChain* const
      hash_chain, const VP8LBackwardRefs* const refs,\n    uint16_t* const dist_array)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - dist_array
    - dist_array_size
    - chosen_path
    - chosen_path_size
    argTypes:
    - uint16_t*
    - int
    - uint16_t**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 706
    functionName: TraceBackwards
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TraceBackwards(uint16_t* const dist_array, int dist_array_size,\n
      \                          uint16_t** const chosen_path,\n                           int*
      const chosen_path_size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: VP8LColorCacheInit
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:720,1
    - Dst: VP8LClearBackwardRefs
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:724,1
    - Dst: VP8LHashChainFindOffset
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:729,1
    - Dst: VP8LBackwardRefsCursorAdd
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:730,1
    - Dst: PixOrCopyCreateCopy
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:730,1
    - Dst: VP8LColorCacheInsert
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:733,1
    - Dst: VP8LColorCacheContains
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:740,1
    - Dst: PixOrCopyCreateCacheIdx
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:744,1
    - Dst: VP8LColorCacheInsert
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:746,1
    - Dst: PixOrCopyCreateLiteral
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:747,1
    - Dst: VP8LBackwardRefsCursorAdd
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:749,1
    - Dst: VP8LColorCacheClear
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:755,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 6
    argNames:
    - argb
    - cache_bits
    - chosen_path
    - chosen_path_size
    - hash_chain
    - refs
    argTypes:
    - uint32_t*
    - int
    - uint16_t*
    - int
    - VP8LHashChain*
    - VP8LBackwardRefs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 708
    functionDepth: 3
    functionLinenumber: 708
    functionLinenumberEnd: 757
    functionName: BackwardReferencesHashChainFollowChosenPath
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 0
    functionsReached:
    - VP8LColorCacheContains
    - VP8LBackwardRefsCursorAdd
    - PixOrCopyCreateCacheIdx
    - VP8LColorCacheClear
    - VP8LColorCacheInit
    - VP8LColorCacheInsert
    - PixOrCopyCreateCopy
    - PixOrCopyCreateLiteral
    - VP8LHashChainFindOffset
    - VP8LClearBackwardRefs
    linkageType: ''
    returnType: int
    signature: "int BackwardReferencesHashChainFollowChosenPath(\n    const uint32_t*
      const argb, int cache_bits,\n    const uint16_t* const chosen_path, int chosen_path_size,\n
      \   const VP8LHashChain* const hash_chain, VP8LBackwardRefs* const refs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:775,1
    - Dst: BackwardReferencesHashChainDistanceOnly
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:779,1
    - Dst: TraceBackwards
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:783,1
    - Dst: BackwardReferencesHashChainFollowChosenPath
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:784,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/backward_references_cost_enc.c:791,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 7
    argNames:
    - xsize
    - ysize
    - argb
    - cache_bits
    - hash_chain
    - refs_src
    - refs_dst
    argTypes:
    - int
    - int
    - uint32_t*
    - int
    - VP8LHashChain*
    - VP8LBackwardRefs*
    - VP8LBackwardRefs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 764
    functionDepth: 7
    functionLinenumber: 764
    functionLinenumberEnd: 793
    functionName: VP8LBackwardReferencesTraceBackwards
    functionSourceFile: /src/libwebp/src/enc/backward_references_cost_enc.c
    functionUses: 1
    functionsReached:
    - TraceBackwards
    - WebPSafeMalloc
    - BackwardReferencesHashChainDistanceOnly
    - BackwardReferencesHashChainFollowChosenPath
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: "int VP8LBackwardReferencesTraceBackwards(int xsize, int ysize,\n                                         const
      uint32_t* const argb,\n                                         int cache_bits,\n
      \                                        const VP8LHashChain* const hash_chain,\n
      \                                        const VP8LBackwardRefs* const refs_src,\n
      \                                        VP8LBackwardRefs* const refs_dst)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_ABI_IS_INCOMPATIBLE
      Src: /src/libwebp/src/enc/config_enc.c:29,1
    - Dst: WebPValidateConfig
      Src: /src/libwebp/src/enc/config_enc.c:97,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 68
    argCount: 4
    argNames:
    - config
    - preset
    - quality
    - version
    argTypes:
    - WebPConfig*
    - WebPPreset
    - float
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 98
    functionName: WebPConfigInitInternal
    functionSourceFile: /src/libwebp/src/enc/config_enc.c
    functionUses: 0
    functionsReached:
    - WEBP_ABI_IS_INCOMPATIBLE
    - WebPValidateConfig
    linkageType: ''
    returnType: int
    signature: "int WebPConfigInitInternal(WebPConfig* config, WebPPreset preset,
      float quality,\n                           int version)"
  - BBCount: 29
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 59
    argCount: 1
    argNames:
    - config
    argTypes:
    - WebPConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 133
    functionName: WebPValidateConfig
    functionSourceFile: /src/libwebp/src/enc/config_enc.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int WebPValidateConfig(const WebPConfig* config)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - config
    - level
    argTypes:
    - WebPConfig*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: WebPConfigLosslessPreset
    functionSourceFile: /src/libwebp/src/enc/config_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int WebPConfigLosslessPreset(WebPConfig* config, int level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureInit
      Src: /src/libwebp/src/enc/alpha_enc.c:62,1
    - Dst: WebPPictureAlloc
      Src: /src/libwebp/src/enc/alpha_enc.c:67,1
    - Dst: WebPDispatchAlphaToGreen
      Src: /src/libwebp/src/enc/alpha_enc.c:70,1
    - Dst: WebPConfigInit
      Src: /src/libwebp/src/enc/alpha_enc.c:73,1
    - Dst: assert
      Src: /src/libwebp/src/enc/alpha_enc.c:88,1
    - Dst: VP8LEncodeStream
      Src: /src/libwebp/src/enc/alpha_enc.c:90,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/src/enc/alpha_enc.c:91,1
    - Dst: VP8LBitWriterWipeOut
      Src: /src/libwebp/src/enc/alpha_enc.c:94,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 7
    argNames:
    - data
    - width
    - height
    - effort_level
    - use_quality_100
    - bw
    - stats
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    - VP8LBitWriter*
    - WebPAuxStats*
    assertStmts:
    - condition: (config.quality >= 0 && config.quality <= 100.f)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/libwebp/src/enc/alpha_enc.c
    constantsTouched: []
    func_position:
      end: 98
      start: 54
    functionDepth: 5
    functionLinenumber: 54
    functionLinenumberEnd: 98
    functionName: EncodeLossless
    functionSourceFile: /src/libwebp/src/enc/alpha_enc.c
    functionUses: 0
    functionsReached:
    - WebPDispatchAlphaToGreen
    - assert
    - VP8LEncodeStream
    - WebPPictureAlloc
    - WebPConfigInit
    - VP8LBitWriterWipeOut
    - WebPPictureFree
    - WebPPictureInit
    linkageType: ''
    returnType: int
    signature: "int EncodeLossless(const uint8_t* const data, int width, int height,\n
      \                         int effort_level,  // in [0..6] range\n                          int
      use_quality_100, VP8LBitWriter* const bw,\n                          WebPAuxStats*
      const stats)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/alpha_enc.c:123,1
    - Dst: assert
      Src: /src/libwebp/src/enc/alpha_enc.c:124,1
    - Dst: assert
      Src: /src/libwebp/src/enc/alpha_enc.c:125,1
    - Dst: assert
      Src: /src/libwebp/src/enc/alpha_enc.c:126,1
    - Dst: assert
      Src: /src/libwebp/src/enc/alpha_enc.c:127,1
    - Dst: filter_func
      Src: /src/libwebp/src/enc/alpha_enc.c:131,1
    - Dst: VP8LBitWriterInit
      Src: /src/libwebp/src/enc/alpha_enc.c:138,1
    - Dst: EncodeLossless
      Src: /src/libwebp/src/enc/alpha_enc.c:139,1
    - Dst: VP8LBitWriterFinish
      Src: /src/libwebp/src/enc/alpha_enc.c:142,1
    - Dst: VP8LBitWriterWipeOut
      Src: /src/libwebp/src/enc/alpha_enc.c:144,1
    - Dst: memset
      Src: /src/libwebp/src/enc/alpha_enc.c:145,1
    - Dst: VP8LBitWriterNumBytes
      Src: /src/libwebp/src/enc/alpha_enc.c:148,1
    - Dst: VP8LBitWriterWipeOut
      Src: /src/libwebp/src/enc/alpha_enc.c:152,1
    - Dst: VP8LBitWriterWipeOut
      Src: /src/libwebp/src/enc/alpha_enc.c:155,1
    - Dst: memset
      Src: /src/libwebp/src/enc/alpha_enc.c:156,1
    - Dst: VP8BitWriterInit
      Src: /src/libwebp/src/enc/alpha_enc.c:171,1
    - Dst: VP8BitWriterAppend
      Src: /src/libwebp/src/enc/alpha_enc.c:172,1
    - Dst: VP8BitWriterAppend
      Src: /src/libwebp/src/enc/alpha_enc.c:173,1
    - Dst: VP8LBitWriterWipeOut
      Src: /src/libwebp/src/enc/alpha_enc.c:176,1
    - Dst: VP8BitWriterSize
      Src: /src/libwebp/src/enc/alpha_enc.c:179,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 9
    argNames:
    - data
    - width
    - height
    - method
    - filter
    - reduce_levels
    - effort_level
    - tmp_alpha
    - result
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    - int
    - uint8_t*
    - FilterTrial*
    assertStmts:
    - condition: ((uint64_t)data_size == (uint64_t)width * height)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/libwebp/src/enc/alpha_enc.c
    - condition: (sizeof(header) == ALPHA_HEADER_LEN)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/libwebp/src/enc/alpha_enc.c
    - condition: (method <= ALPHA_LOSSLESS_COMPRESSION)
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/libwebp/src/enc/alpha_enc.c
    - condition: (method >= ALPHA_NO_COMPRESSION)
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/libwebp/src/enc/alpha_enc.c
    - condition: (filter >= 0 && filter < WEBP_FILTER_LAST)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/libwebp/src/enc/alpha_enc.c
    constantsTouched: []
    func_position:
      end: 181
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 181
    functionName: EncodeAlphaInternal
    functionSourceFile: /src/libwebp/src/enc/alpha_enc.c
    functionUses: 0
    functionsReached:
    - VP8BitWriterSize
    - assert
    - filter_func
    - VP8BitWriterInit
    - VP8LBitWriterFinish
    - VP8LBitWriterInit
    - EncodeLossless
    - memset
    - VP8LBitWriterNumBytes
    - VP8BitWriterAppend
    - VP8LBitWriterWipeOut
    linkageType: ''
    returnType: int
    signature: "int EncodeAlphaInternal(const uint8_t* const data, int width, int
      height,\n                               int method, int filter, int reduce_levels,\n
      \                              int effort_level,  // in [0..6] range\n                               uint8_t*
      const tmp_alpha, FilterTrial* result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - data
    - width
    - height
    - stride
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 202
    functionName: GetNumColors
    functionSourceFile: /src/libwebp/src/enc/alpha_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int GetNumColors(const uint8_t* data, int width, int height,\n                        int
      stride)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetNumColors
      Src: /src/libwebp/src/enc/alpha_enc.c:216,1
    - Dst: WebPEstimateBestFilter
      Src: /src/libwebp/src/enc/alpha_enc.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - alpha
    - width
    - height
    - filter
    - effort_level
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 233
    functionName: GetFilterMap
    functionSourceFile: /src/libwebp/src/enc/alpha_enc.c
    functionUses: 12
    functionsReached:
    - GetNumColors
    - WebPEstimateBestFilter
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t GetFilterMap(const uint8_t* alpha, int width, int height,\n
      \                            int filter, int effort_level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8BitWriterInit
      Src: /src/libwebp/src/enc/alpha_enc.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - score
    argTypes:
    - FilterTrial*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: InitFilterTrial
    functionSourceFile: /src/libwebp/src/enc/alpha_enc.c
    functionUses: 0
    functionsReached:
    - VP8BitWriterInit
    linkageType: ''
    returnType: void
    signature: void InitFilterTrial(FilterTrial* const score)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GetFilterMap
      Src: /src/libwebp/src/enc/alpha_enc.c:248,1
    - Dst: InitFilterTrial
      Src: /src/libwebp/src/enc/alpha_enc.c:249,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/alpha_enc.c:252,1
    - Dst: EncodeAlphaInternal
      Src: /src/libwebp/src/enc/alpha_enc.c:258,1
    - Dst: VP8BitWriterWipeOut
      Src: /src/libwebp/src/enc/alpha_enc.c:262,1
    - Dst: VP8BitWriterWipeOut
      Src: /src/libwebp/src/enc/alpha_enc.c:265,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/alpha_enc.c:269,1
    - Dst: EncodeAlphaInternal
      Src: /src/libwebp/src/enc/alpha_enc.c:271,1
    - Dst: VP8BitWriterSize
      Src: /src/libwebp/src/enc/alpha_enc.c:290,1
    - Dst: VP8BitWriterBuf
      Src: /src/libwebp/src/enc/alpha_enc.c:291,1
    - Dst: VP8BitWriterWipeOut
      Src: /src/libwebp/src/enc/alpha_enc.c:293,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 11
    argNames:
    - alpha
    - width
    - height
    - data_size
    - method
    - filter
    - reduce_levels
    - effort_level
    - output
    - output_size
    - stats
    argTypes:
    - uint8_t*
    - int
    - int
    - size_t
    - int
    - int
    - int
    - int
    - uint8_t**
    - size_t*
    - WebPAuxStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 296
    functionName: ApplyFiltersAndEncode
    functionSourceFile: /src/libwebp/src/enc/alpha_enc.c
    functionUses: 0
    functionsReached:
    - VP8BitWriterSize
    - EncodeAlphaInternal
    - GetFilterMap
    - VP8BitWriterBuf
    - WebPSafeMalloc
    - InitFilterTrial
    - VP8BitWriterWipeOut
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: "int ApplyFiltersAndEncode(const uint8_t* alpha, int width, int height,\n
      \                                size_t data_size, int method, int filter,\n
      \                                int reduce_levels, int effort_level,\n                                 uint8_t**
      const output,\n                                 size_t* const output_size,\n
      \                                WebPAuxStats* const stats)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/alpha_enc.c:312,1
    - Dst: assert
      Src: /src/libwebp/src/enc/alpha_enc.c:313,1
    - Dst: assert
      Src: /src/libwebp/src/enc/alpha_enc.c:314,1
    - Dst: assert
      Src: /src/libwebp/src/enc/alpha_enc.c:315,1
    - Dst: assert
      Src: /src/libwebp/src/enc/alpha_enc.c:316,1
    - Dst: assert
      Src: /src/libwebp/src/enc/alpha_enc.c:317,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/alpha_enc.c:320,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/alpha_enc.c:324,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/alpha_enc.c:332,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/alpha_enc.c:334,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/enc/alpha_enc.c:338,1
    - Dst: QuantizeLevels
      Src: /src/libwebp/src/enc/alpha_enc.c:346,1
    - Dst: VP8FiltersInit
      Src: /src/libwebp/src/enc/alpha_enc.c:350,1
    - Dst: ApplyFiltersAndEncode
      Src: /src/libwebp/src/enc/alpha_enc.c:351,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/alpha_enc.c:355,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/alpha_enc.c:365,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 7
    argNames:
    - enc
    - quality
    - method
    - filter
    - effort_level
    - output
    - output_size
    argTypes:
    - VP8Encoder*
    - int
    - int
    - int
    - int
    - uint8_t**
    - size_t*
    assertStmts:
    - condition: ((uint64_t)data_size == (uint64_t)width * height)
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/libwebp/src/enc/alpha_enc.c
    - condition: (pic->a_stride >= width)
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/libwebp/src/enc/alpha_enc.c
    - condition: (output != NULL && output_size != NULL)
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/libwebp/src/enc/alpha_enc.c
    - condition: (enc != NULL && pic != NULL && pic->a != NULL)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/libwebp/src/enc/alpha_enc.c
    - condition: (width > 0 && height > 0)
      pos:
        line_end: 314
        line_start: 314
        source_file: /src/libwebp/src/enc/alpha_enc.c
    - condition: (filter >= WEBP_FILTER_NONE && filter <= WEBP_FILTER_FAST)
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/libwebp/src/enc/alpha_enc.c
    constantsTouched: []
    func_position:
      end: 367
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 367
    functionName: EncodeAlpha
    functionSourceFile: /src/libwebp/src/enc/alpha_enc.c
    functionUses: 0
    functionsReached:
    - ApplyFiltersAndEncode
    - VP8FiltersInit
    - assert
    - QuantizeLevels
    - WebPCopyPlane
    - WebPSafeMalloc
    - WebPEncodingSetError
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: "int EncodeAlpha(VP8Encoder* const enc, int quality, int method,\n
      \                      int filter, int effort_level, uint8_t** const output,\n
      \                      size_t* const output_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EncodeAlpha
      Src: /src/libwebp/src/enc/alpha_enc.c:382,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/alpha_enc.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - arg1
    - unused
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 372
    functionDepth: 4
    functionLinenumber: 372
    functionLinenumberEnd: 394
    functionName: CompressAlphaJob
    functionSourceFile: /src/libwebp/src/enc/alpha_enc.c
    functionUses: 0
    functionsReached:
    - EncodeAlpha
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: int CompressAlphaJob(void* arg1, void* unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPInitAlphaProcessing
      Src: /src/libwebp/src/enc/alpha_enc.c:397,1
    - Dst: WebPPictureHasTransparency
      Src: /src/libwebp/src/enc/alpha_enc.c:398,1
    - Dst: WebPGetWorkerInterface
      Src: /src/libwebp/src/enc/alpha_enc.c:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 408
    functionName: VP8EncInitAlpha
    functionSourceFile: /src/libwebp/src/enc/alpha_enc.c
    functionUses: 1
    functionsReached:
    - WebPGetWorkerInterface
    - WebPPictureHasTransparency
    - WebPInitAlphaProcessing
    linkageType: ''
    returnType: void
    signature: void VP8EncInitAlpha(VP8Encoder* const enc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WebPGetWorkerInterface
      Src: /src/libwebp/src/enc/alpha_enc.c:415,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/alpha_enc.c:416,1
    - Dst: WebPGetWorkerInterface
      Src: /src/libwebp/src/enc/alpha_enc.c:418,1
    - Dst: CompressAlphaJob
      Src: /src/libwebp/src/enc/alpha_enc.c:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 410
    functionDepth: 5
    functionLinenumber: 410
    functionLinenumberEnd: 425
    functionName: VP8EncStartAlpha
    functionSourceFile: /src/libwebp/src/enc/alpha_enc.c
    functionUses: 1
    functionsReached:
    - WebPGetWorkerInterface
    - WebPEncodingSetError
    - CompressAlphaJob
    linkageType: ''
    returnType: int
    signature: int VP8EncStartAlpha(VP8Encoder* const enc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WebPGetWorkerInterface
      Src: /src/libwebp/src/enc/alpha_enc.c:431,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/alpha_enc.c:434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 435
    functionName: VP8EncFinishAlpha
    functionSourceFile: /src/libwebp/src/enc/alpha_enc.c
    functionUses: 1
    functionsReached:
    - WebPReportProgress
    - WebPGetWorkerInterface
    linkageType: ''
    returnType: int
    signature: int VP8EncFinishAlpha(VP8Encoder* const enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPGetWorkerInterface
      Src: /src/libwebp/src/enc/alpha_enc.c:442,1
    - Dst: WebPGetWorkerInterface
      Src: /src/libwebp/src/enc/alpha_enc.c:444,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/alpha_enc.c:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 451
    functionName: VP8EncDeleteAlpha
    functionSourceFile: /src/libwebp/src/enc/alpha_enc.c
    functionUses: 1
    functionsReached:
    - WebPGetWorkerInterface
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: int VP8EncDeleteAlpha(VP8Encoder* const enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - bit
    - stats
    argTypes:
    - int
    - proba_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: VP8RecordStats
    functionSourceFile: /src/libwebp/src/enc/cost_enc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8RecordStats(int bit, proba_t* const stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bit
    - proba
    argTypes:
    - int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: VP8BitCost
    functionSourceFile: /src/libwebp/src/enc/cost_enc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8BitCost(int bit, uint8_t proba)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - table
    - level
    argTypes:
    - uint16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: VP8LevelCost
    functionSourceFile: /src/libwebp/src/enc/cost_enc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8LevelCost(const uint16_t* const table, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - palette_code_bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: VP8LHistogramNumCodes
    functionSourceFile: /src/libwebp/src/enc/histogram_enc.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8LHistogramNumCodes(int palette_code_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: TOKEN_DATA
    functionSourceFile: /src/libwebp/src/enc/token_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOKEN_DATA(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - b
    - page_size
    argTypes:
    - VP8TBuffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: VP8TBufferInit
    functionSourceFile: /src/libwebp/src/enc/token_enc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VP8TBufferInit(VP8TBuffer* const b, int page_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/token_enc.c:63,1
    - Dst: VP8TBufferInit
      Src: /src/libwebp/src/enc/token_enc.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - b
    argTypes:
    - VP8TBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: VP8TBufferClear
    functionSourceFile: /src/libwebp/src/enc/token_enc.c
    functionUses: 1
    functionsReached:
    - VP8TBufferInit
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void VP8TBufferClear(VP8TBuffer* const b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/token_enc.c:74,1
    - Dst: TOKEN_DATA
      Src: /src/libwebp/src/enc/token_enc.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - b
    argTypes:
    - VP8TBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 87
    functionName: TBufferNewPage
    functionSourceFile: /src/libwebp/src/enc/token_enc.c
    functionUses: 0
    functionsReached:
    - WebPSafeMalloc
    - TOKEN_DATA
    linkageType: ''
    returnType: int
    signature: int TBufferNewPage(VP8TBuffer* const b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - t
    - ','
    - b
    - ','
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: TOKEN_ID
    functionSourceFile: /src/libwebp/src/enc/token_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOKEN_ID(t, b, ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/token_enc.c:96,1
    - Dst: assert
      Src: /src/libwebp/src/enc/token_enc.c:97,1
    - Dst: TBufferNewPage
      Src: /src/libwebp/src/enc/token_enc.c:98,1
    - Dst: VP8RecordStats
      Src: /src/libwebp/src/enc/token_enc.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - b
    - bit
    - proba_idx
    - stats
    argTypes:
    - VP8TBuffer*
    - uint32_t
    - uint32_t
    - proba_t*
    assertStmts:
    - condition: (proba_idx < FIXED_PROBA_BIT)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/libwebp/src/enc/token_enc.c
    - condition: (bit <= 1)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/libwebp/src/enc/token_enc.c
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: AddToken
    functionSourceFile: /src/libwebp/src/enc/token_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - VP8RecordStats
    - TBufferNewPage
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE AddToken(VP8TBuffer* const b, uint32_t bit,\n                                     uint32_t
      proba_idx, proba_t* const stats)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/token_enc.c:108,1
    - Dst: assert
      Src: /src/libwebp/src/enc/token_enc.c:109,1
    - Dst: TBufferNewPage
      Src: /src/libwebp/src/enc/token_enc.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - b
    - bit
    - proba
    argTypes:
    - VP8TBuffer*
    - uint32_t
    - uint32_t
    assertStmts:
    - condition: (proba < 256)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/libwebp/src/enc/token_enc.c
    - condition: (bit <= 1)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/libwebp/src/enc/token_enc.c
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: AddConstantToken
    functionSourceFile: /src/libwebp/src/enc/token_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - TBufferNewPage
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE AddConstantToken(VP8TBuffer* const b, uint32_t bit,\n
      \                                        uint32_t proba)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TOKEN_ID
      Src: /src/libwebp/src/enc/token_enc.c:122,1
    - Dst: AddToken
      Src: /src/libwebp/src/enc/token_enc.c:125,1
    - Dst: AddToken
      Src: /src/libwebp/src/enc/token_enc.c:133,1
    - Dst: TOKEN_ID
      Src: /src/libwebp/src/enc/token_enc.c:134,1
    - Dst: AddToken
      Src: /src/libwebp/src/enc/token_enc.c:138,1
    - Dst: TOKEN_ID
      Src: /src/libwebp/src/enc/token_enc.c:139,1
    - Dst: AddToken
      Src: /src/libwebp/src/enc/token_enc.c:142,1
    - Dst: AddToken
      Src: /src/libwebp/src/enc/token_enc.c:143,1
    - Dst: AddToken
      Src: /src/libwebp/src/enc/token_enc.c:144,1
    - Dst: AddToken
      Src: /src/libwebp/src/enc/token_enc.c:146,1
    - Dst: AddToken
      Src: /src/libwebp/src/enc/token_enc.c:147,1
    - Dst: AddConstantToken
      Src: /src/libwebp/src/enc/token_enc.c:148,1
    - Dst: AddConstantToken
      Src: /src/libwebp/src/enc/token_enc.c:150,1
    - Dst: AddConstantToken
      Src: /src/libwebp/src/enc/token_enc.c:151,1
    - Dst: AddToken
      Src: /src/libwebp/src/enc/token_enc.c:158,1
    - Dst: AddToken
      Src: /src/libwebp/src/enc/token_enc.c:159,1
    - Dst: AddToken
      Src: /src/libwebp/src/enc/token_enc.c:164,1
    - Dst: AddToken
      Src: /src/libwebp/src/enc/token_enc.c:165,1
    - Dst: AddToken
      Src: /src/libwebp/src/enc/token_enc.c:170,1
    - Dst: AddToken
      Src: /src/libwebp/src/enc/token_enc.c:171,1
    - Dst: AddToken
      Src: /src/libwebp/src/enc/token_enc.c:176,1
    - Dst: AddToken
      Src: /src/libwebp/src/enc/token_enc.c:177,1
    - Dst: AddConstantToken
      Src: /src/libwebp/src/enc/token_enc.c:183,1
    - Dst: TOKEN_ID
      Src: /src/libwebp/src/enc/token_enc.c:187,1
    - Dst: AddConstantToken
      Src: /src/libwebp/src/enc/token_enc.c:190,1
    - Dst: AddToken
      Src: /src/libwebp/src/enc/token_enc.c:191,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 68
    argCount: 3
    argNames:
    - ctx
    - res
    - tokens
    argTypes:
    - int
    - struct VP8Residual*
    - VP8TBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 196
    functionName: VP8RecordCoeffTokens
    functionSourceFile: /src/libwebp/src/enc/token_enc.c
    functionUses: 0
    functionsReached:
    - TOKEN_ID
    - AddConstantToken
    - AddToken
    linkageType: ''
    returnType: int
    signature: "int VP8RecordCoeffTokens(int ctx, const struct VP8Residual* const
      res,\n                         VP8TBuffer* const tokens)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/token_enc.c:206,1
    - Dst: TOKEN_DATA
      Src: /src/libwebp/src/enc/token_enc.c:211,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/token_enc.c:216,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/token_enc.c:218,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/token_enc.c:221,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - b
    - bw
    - probas
    - final_pass
    argTypes:
    - VP8TBuffer*
    - VP8BitWriter*
    - uint8_t*
    - int
    assertStmts:
    - condition: (!b->error)
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/libwebp/src/enc/token_enc.c
    constantsTouched: []
    func_position:
      end: 226
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 226
    functionName: VP8EmitTokens
    functionSourceFile: /src/libwebp/src/enc/token_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPSafeFree
    - VP8PutBit
    - TOKEN_DATA
    linkageType: ''
    returnType: int
    signature: "int VP8EmitTokens(VP8TBuffer* const b, VP8BitWriter* const bw,\n                  const
      uint8_t* const probas, int final_pass)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/token_enc.c:232,1
    - Dst: TOKEN_DATA
      Src: /src/libwebp/src/enc/token_enc.c:237,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/token_enc.c:242,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/token_enc.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - b
    - probas
    argTypes:
    - VP8TBuffer*
    - uint8_t*
    assertStmts:
    - condition: (!b->error)
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/libwebp/src/enc/token_enc.c
    constantsTouched: []
    func_position:
      end: 250
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 250
    functionName: VP8EstimateTokenSize
    functionSourceFile: /src/libwebp/src/enc/token_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - VP8BitCost
    - TOKEN_DATA
    linkageType: ''
    returnType: size_t
    signature: size_t VP8EstimateTokenSize(VP8TBuffer* const b, const uint8_t* const
      probas)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - page_size
    argTypes:
    - VP8TBuffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: VP8TBufferInit
    functionSourceFile: /src/libwebp/src/enc/token_enc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VP8TBufferInit(VP8TBuffer* const b, int page_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - VP8TBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 260
    functionName: VP8TBufferClear
    functionSourceFile: /src/libwebp/src/enc/token_enc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VP8TBufferClear(VP8TBuffer* const b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: IsVP8XNeeded
    functionSourceFile: /src/libwebp/src/enc/syntax_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IsVP8XNeeded(const VP8Encoder* const enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPPicture*::writer
      Src: /src/libwebp/src/enc/syntax_enc.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pic
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: PutPaddingByte
    functionSourceFile: /src/libwebp/src/enc/syntax_enc.c
    functionUses: 0
    functionsReached:
    - WebPPicture*::writer
    linkageType: ''
    returnType: int
    signature: int PutPaddingByte(const WebPPicture* const pic)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/syntax_enc.c:47,1
    - Dst: PutLE32
      Src: /src/libwebp/src/enc/syntax_enc.c:48,1
    - Dst: WebPPicture*::writer
      Src: /src/libwebp/src/enc/syntax_enc.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - enc
    - riff_size
    argTypes:
    - VP8Encoder*
    - size_t
    assertStmts:
    - condition: (riff_size == (uint32_t)riff_size)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/libwebp/src/enc/syntax_enc.c
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: PutRIFFHeader
    functionSourceFile: /src/libwebp/src/enc/syntax_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPPicture*::writer
    - PutLE32
    linkageType: ''
    returnType: WebPEncodingError
    signature: "WebPEncodingError PutRIFFHeader(const VP8Encoder* const enc,\n                                       size_t
      riff_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/syntax_enc.c:60,1
    - Dst: IsVP8XNeeded
      Src: /src/libwebp/src/enc/syntax_enc.c:60,1
    - Dst: assert
      Src: /src/libwebp/src/enc/syntax_enc.c:61,1
    - Dst: assert
      Src: /src/libwebp/src/enc/syntax_enc.c:62,1
    - Dst: PutLE32
      Src: /src/libwebp/src/enc/syntax_enc.c:68,1
    - Dst: PutLE32
      Src: /src/libwebp/src/enc/syntax_enc.c:69,1
    - Dst: PutLE24
      Src: /src/libwebp/src/enc/syntax_enc.c:70,1
    - Dst: PutLE24
      Src: /src/libwebp/src/enc/syntax_enc.c:71,1
    - Dst: WebPPicture*::writer
      Src: /src/libwebp/src/enc/syntax_enc.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts:
    - condition: (IsVP8XNeeded(enc))
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/libwebp/src/enc/syntax_enc.c
    - condition: (pic->width >= 1 && pic->height >= 1)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/libwebp/src/enc/syntax_enc.c
    - condition: (pic->width <= MAX_CANVAS_SIZE && pic->height <= MAX_CANVAS_SIZE)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/libwebp/src/enc/syntax_enc.c
    constantsTouched: []
    func_position:
      end: 76
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 76
    functionName: PutVP8XHeader
    functionSourceFile: /src/libwebp/src/enc/syntax_enc.c
    functionUses: 0
    functionsReached:
    - WebPPicture*::writer
    - assert
    - IsVP8XNeeded
    - PutLE24
    - PutLE32
    linkageType: ''
    returnType: WebPEncodingError
    signature: WebPEncodingError PutVP8XHeader(const VP8Encoder* const enc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/syntax_enc.c:82,1
    - Dst: PutLE32
      Src: /src/libwebp/src/enc/syntax_enc.c:85,1
    - Dst: WebPPicture*::writer
      Src: /src/libwebp/src/enc/syntax_enc.c:86,1
    - Dst: WebPPicture*::writer
      Src: /src/libwebp/src/enc/syntax_enc.c:91,1
    - Dst: PutPaddingByte
      Src: /src/libwebp/src/enc/syntax_enc.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts:
    - condition: (enc->has_alpha)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/libwebp/src/enc/syntax_enc.c
    constantsTouched: []
    func_position:
      end: 100
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 100
    functionName: PutAlphaChunk
    functionSourceFile: /src/libwebp/src/enc/syntax_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPPicture*::writer
    - PutLE32
    - PutPaddingByte
    linkageType: ''
    returnType: WebPEncodingError
    signature: WebPEncodingError PutAlphaChunk(const VP8Encoder* const enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/syntax_enc.c:105,1
    - Dst: PutLE32
      Src: /src/libwebp/src/enc/syntax_enc.c:106,1
    - Dst: WebPPicture*::writer
      Src: /src/libwebp/src/enc/syntax_enc.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pic
    - vp8_size
    argTypes:
    - WebPPicture*
    - size_t
    assertStmts:
    - condition: (vp8_size == (uint32_t)vp8_size)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/libwebp/src/enc/syntax_enc.c
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: PutVP8Header
    functionSourceFile: /src/libwebp/src/enc/syntax_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPPicture*::writer
    - PutLE32
    linkageType: ''
    returnType: WebPEncodingError
    signature: "WebPEncodingError PutVP8Header(const WebPPicture* const pic,\n                                      size_t
      vp8_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPPicture*::writer
      Src: /src/libwebp/src/enc/syntax_enc.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - pic
    - profile
    - size0
    argTypes:
    - WebPPicture*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 144
    functionName: PutVP8FrameHeader
    functionSourceFile: /src/libwebp/src/enc/syntax_enc.c
    functionUses: 0
    functionsReached:
    - WebPPicture*::writer
    linkageType: ''
    returnType: WebPEncodingError
    signature: "WebPEncodingError PutVP8FrameHeader(const WebPPicture* const pic,\n
      \                                          int profile, size_t size0)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PutRIFFHeader
      Src: /src/libwebp/src/enc/syntax_enc.c:153,1
    - Dst: IsVP8XNeeded
      Src: /src/libwebp/src/enc/syntax_enc.c:157,1
    - Dst: PutVP8XHeader
      Src: /src/libwebp/src/enc/syntax_enc.c:158,1
    - Dst: PutAlphaChunk
      Src: /src/libwebp/src/enc/syntax_enc.c:164,1
    - Dst: PutVP8Header
      Src: /src/libwebp/src/enc/syntax_enc.c:169,1
    - Dst: PutVP8FrameHeader
      Src: /src/libwebp/src/enc/syntax_enc.c:173,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/syntax_enc.c:181,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 4
    argNames:
    - enc
    - size0
    - vp8_size
    - riff_size
    argTypes:
    - VP8Encoder*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 182
    functionName: PutWebPHeaders
    functionSourceFile: /src/libwebp/src/enc/syntax_enc.c
    functionUses: 0
    functionsReached:
    - PutVP8FrameHeader
    - IsVP8XNeeded
    - PutVP8XHeader
    - PutRIFFHeader
    - PutVP8Header
    - PutAlphaChunk
    - WebPEncodingSetError
    linkageType: ''
    returnType: int
    signature: "int PutWebPHeaders(const VP8Encoder* const enc, size_t size0,\n                          size_t
      vp8_size, size_t riff_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VP8PutBitUniform
      Src: /src/libwebp/src/enc/syntax_enc.c:189,1
    - Dst: VP8PutBitUniform
      Src: /src/libwebp/src/enc/syntax_enc.c:193,1
    - Dst: VP8PutBitUniform
      Src: /src/libwebp/src/enc/syntax_enc.c:194,1
    - Dst: VP8PutBitUniform
      Src: /src/libwebp/src/enc/syntax_enc.c:196,1
    - Dst: VP8PutSignedBits
      Src: /src/libwebp/src/enc/syntax_enc.c:198,1
    - Dst: VP8PutSignedBits
      Src: /src/libwebp/src/enc/syntax_enc.c:201,1
    - Dst: VP8PutBitUniform
      Src: /src/libwebp/src/enc/syntax_enc.c:206,1
    - Dst: VP8PutBits
      Src: /src/libwebp/src/enc/syntax_enc.c:207,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - bw
    - enc
    argTypes:
    - VP8BitWriter*
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 212
    functionName: PutSegmentHeader
    functionSourceFile: /src/libwebp/src/enc/syntax_enc.c
    functionUses: 0
    functionsReached:
    - VP8PutSignedBits
    - VP8PutBitUniform
    - VP8PutBits
    linkageType: ''
    returnType: void
    signature: "void PutSegmentHeader(VP8BitWriter* const bw,\n                             const
      VP8Encoder* const enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8PutBitUniform
      Src: /src/libwebp/src/enc/syntax_enc.c:218,1
    - Dst: VP8PutBits
      Src: /src/libwebp/src/enc/syntax_enc.c:219,1
    - Dst: VP8PutBits
      Src: /src/libwebp/src/enc/syntax_enc.c:220,1
    - Dst: VP8PutBitUniform
      Src: /src/libwebp/src/enc/syntax_enc.c:221,1
    - Dst: VP8PutBitUniform
      Src: /src/libwebp/src/enc/syntax_enc.c:224,1
    - Dst: VP8PutBits
      Src: /src/libwebp/src/enc/syntax_enc.c:226,1
    - Dst: VP8PutSignedBits
      Src: /src/libwebp/src/enc/syntax_enc.c:228,1
    - Dst: VP8PutBits
      Src: /src/libwebp/src/enc/syntax_enc.c:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - bw
    - hdr
    argTypes:
    - VP8BitWriter*
    - VP8EncFilterHeader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 232
    functionName: PutFilterHeader
    functionSourceFile: /src/libwebp/src/enc/syntax_enc.c
    functionUses: 0
    functionsReached:
    - VP8PutSignedBits
    - VP8PutBitUniform
    - VP8PutBits
    linkageType: ''
    returnType: void
    signature: "void PutFilterHeader(VP8BitWriter* const bw,\n                            const
      VP8EncFilterHeader* const hdr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8PutBits
      Src: /src/libwebp/src/enc/syntax_enc.c:236,1
    - Dst: VP8PutSignedBits
      Src: /src/libwebp/src/enc/syntax_enc.c:237,1
    - Dst: VP8PutSignedBits
      Src: /src/libwebp/src/enc/syntax_enc.c:238,1
    - Dst: VP8PutSignedBits
      Src: /src/libwebp/src/enc/syntax_enc.c:239,1
    - Dst: VP8PutSignedBits
      Src: /src/libwebp/src/enc/syntax_enc.c:240,1
    - Dst: VP8PutSignedBits
      Src: /src/libwebp/src/enc/syntax_enc.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - bw
    - enc
    argTypes:
    - VP8BitWriter*
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 242
    functionName: PutQuant
    functionSourceFile: /src/libwebp/src/enc/syntax_enc.c
    functionUses: 0
    functionsReached:
    - VP8PutSignedBits
    - VP8PutBits
    linkageType: ''
    returnType: void
    signature: void PutQuant(VP8BitWriter* const bw, const VP8Encoder* const enc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8BitWriterSize
      Src: /src/libwebp/src/enc/syntax_enc.c:250,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/syntax_enc.c:252,1
    - Dst: WebPPicture*::writer
      Src: /src/libwebp/src/enc/syntax_enc.c:258,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/syntax_enc.c:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - enc
    - pic
    argTypes:
    - VP8Encoder*
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 262
    functionName: EmitPartitionsSize
    functionSourceFile: /src/libwebp/src/enc/syntax_enc.c
    functionUses: 0
    functionsReached:
    - WebPPicture*::writer
    - VP8BitWriterSize
    - WebPEncodingSetError
    linkageType: ''
    returnType: int
    signature: "int EmitPartitionsSize(const VP8Encoder* const enc,\n                              WebPPicture*
      const pic)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VP8BitWriterPos
      Src: /src/libwebp/src/enc/syntax_enc.c:271,1
    - Dst: VP8BitWriterInit
      Src: /src/libwebp/src/enc/syntax_enc.c:272,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/syntax_enc.c:273,1
    - Dst: VP8PutBitUniform
      Src: /src/libwebp/src/enc/syntax_enc.c:275,1
    - Dst: VP8PutBitUniform
      Src: /src/libwebp/src/enc/syntax_enc.c:276,1
    - Dst: PutSegmentHeader
      Src: /src/libwebp/src/enc/syntax_enc.c:278,1
    - Dst: PutFilterHeader
      Src: /src/libwebp/src/enc/syntax_enc.c:279,1
    - Dst: VP8PutBits
      Src: /src/libwebp/src/enc/syntax_enc.c:280,1
    - Dst: PutQuant
      Src: /src/libwebp/src/enc/syntax_enc.c:286,1
    - Dst: VP8PutBitUniform
      Src: /src/libwebp/src/enc/syntax_enc.c:287,1
    - Dst: VP8WriteProbas
      Src: /src/libwebp/src/enc/syntax_enc.c:288,1
    - Dst: VP8BitWriterPos
      Src: /src/libwebp/src/enc/syntax_enc.c:289,1
    - Dst: VP8CodeIntraModes
      Src: /src/libwebp/src/enc/syntax_enc.c:290,1
    - Dst: VP8BitWriterFinish
      Src: /src/libwebp/src/enc/syntax_enc.c:291,1
    - Dst: VP8BitWriterPos
      Src: /src/libwebp/src/enc/syntax_enc.c:293,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/syntax_enc.c:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 266
    functionDepth: 5
    functionLinenumber: 266
    functionLinenumberEnd: 310
    functionName: GeneratePartition0
    functionSourceFile: /src/libwebp/src/enc/syntax_enc.c
    functionUses: 0
    functionsReached:
    - VP8WriteProbas
    - VP8CodeIntraModes
    - VP8BitWriterPos
    - VP8BitWriterInit
    - PutFilterHeader
    - VP8PutBitUniform
    - VP8BitWriterFinish
    - PutSegmentHeader
    - VP8PutBits
    - PutQuant
    - WebPEncodingSetError
    linkageType: ''
    returnType: int
    signature: int GeneratePartition0(VP8Encoder* const enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8BitWriterWipeOut
      Src: /src/libwebp/src/enc/syntax_enc.c:314,1
    - Dst: VP8BitWriterWipeOut
      Src: /src/libwebp/src/enc/syntax_enc.c:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 318
    functionName: VP8EncFreeBitWriters
    functionSourceFile: /src/libwebp/src/enc/syntax_enc.c
    functionUses: 1
    functionsReached:
    - VP8BitWriterWipeOut
    linkageType: ''
    returnType: void
    signature: void VP8EncFreeBitWriters(VP8Encoder* const enc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GeneratePartition0
      Src: /src/libwebp/src/enc/syntax_enc.c:331,1
    - Dst: VP8BitWriterSize
      Src: /src/libwebp/src/enc/syntax_enc.c:336,1
    - Dst: VP8BitWriterSize
      Src: /src/libwebp/src/enc/syntax_enc.c:338,1
    - Dst: IsVP8XNeeded
      Src: /src/libwebp/src/enc/syntax_enc.c:346,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/syntax_enc.c:356,1
    - Dst: VP8BitWriterBuf
      Src: /src/libwebp/src/enc/syntax_enc.c:361,1
    - Dst: VP8BitWriterSize
      Src: /src/libwebp/src/enc/syntax_enc.c:362,1
    - Dst: PutWebPHeaders
      Src: /src/libwebp/src/enc/syntax_enc.c:363,1
    - Dst: WebPPicture*::writer
      Src: /src/libwebp/src/enc/syntax_enc.c:364,1
    - Dst: EmitPartitionsSize
      Src: /src/libwebp/src/enc/syntax_enc.c:364,1
    - Dst: VP8BitWriterWipeOut
      Src: /src/libwebp/src/enc/syntax_enc.c:365,1
    - Dst: VP8BitWriterBuf
      Src: /src/libwebp/src/enc/syntax_enc.c:370,1
    - Dst: VP8BitWriterSize
      Src: /src/libwebp/src/enc/syntax_enc.c:371,1
    - Dst: WebPPicture*::writer
      Src: /src/libwebp/src/enc/syntax_enc.c:372,1
    - Dst: VP8BitWriterWipeOut
      Src: /src/libwebp/src/enc/syntax_enc.c:373,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/syntax_enc.c:374,1
    - Dst: PutPaddingByte
      Src: /src/libwebp/src/enc/syntax_enc.c:380,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/syntax_enc.c:384,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/syntax_enc.c:385,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 320
    functionDepth: 6
    functionLinenumber: 320
    functionLinenumberEnd: 387
    functionName: VP8EncWrite
    functionSourceFile: /src/libwebp/src/enc/syntax_enc.c
    functionUses: 1
    functionsReached:
    - WebPPicture*::writer
    - PutPaddingByte
    - VP8BitWriterSize
    - WebPEncodingSetError
    - PutWebPHeaders
    - IsVP8XNeeded
    - VP8BitWriterBuf
    - WebPReportProgress
    - EmitPartitionsSize
    - GeneratePartition0
    - VP8BitWriterWipeOut
    linkageType: ''
    returnType: int
    signature: int VP8EncWrite(VP8Encoder* const enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/near_lossless_enc.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - bits
    argTypes:
    - uint32_t
    - int
    assertStmts:
    - condition: (bits > 0)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/libwebp/src/enc/near_lossless_enc.c
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: FindClosestDiscretized
    functionSourceFile: /src/libwebp/src/enc/near_lossless_enc.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t FindClosestDiscretized(uint32_t a, int bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindClosestDiscretized
      Src: /src/libwebp/src/enc/near_lossless_enc.c:44,1
    - Dst: FindClosestDiscretized
      Src: /src/libwebp/src/enc/near_lossless_enc.c:45,1
    - Dst: FindClosestDiscretized
      Src: /src/libwebp/src/enc/near_lossless_enc.c:46,1
    - Dst: FindClosestDiscretized
      Src: /src/libwebp/src/enc/near_lossless_enc.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - bits
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: ClosestDiscretizedArgb
    functionSourceFile: /src/libwebp/src/enc/near_lossless_enc.c
    functionUses: 0
    functionsReached:
    - FindClosestDiscretized
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ClosestDiscretizedArgb(uint32_t a, int bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - a
    - b
    - limit
    argTypes:
    - uint32_t
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: IsNear
    functionSourceFile: /src/libwebp/src/enc/near_lossless_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IsNear(uint32_t a, uint32_t b, int limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsNear
      Src: /src/libwebp/src/enc/near_lossless_enc.c:68,1
    - Dst: IsNear
      Src: /src/libwebp/src/enc/near_lossless_enc.c:69,1
    - Dst: IsNear
      Src: /src/libwebp/src/enc/near_lossless_enc.c:70,1
    - Dst: IsNear
      Src: /src/libwebp/src/enc/near_lossless_enc.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 5
    argNames:
    - prev_row
    - curr_row
    - next_row
    - ix
    - limit
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: IsSmooth
    functionSourceFile: /src/libwebp/src/enc/near_lossless_enc.c
    functionUses: 0
    functionsReached:
    - IsNear
    linkageType: ''
    returnType: int
    signature: "int IsSmooth(const uint32_t* const prev_row,\n                    const
      uint32_t* const curr_row,\n                    const uint32_t* const next_row,
      int ix, int limit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libwebp/src/enc/near_lossless_enc.c:83,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/near_lossless_enc.c:84,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/near_lossless_enc.c:88,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/near_lossless_enc.c:90,1
    - Dst: IsSmooth
      Src: /src/libwebp/src/enc/near_lossless_enc.c:94,1
    - Dst: ClosestDiscretizedArgb
      Src: /src/libwebp/src/enc/near_lossless_enc.c:97,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 7
    argNames:
    - xsize
    - ysize
    - argb_src
    - stride
    - limit_bits
    - copy_buffer
    - argb_dst
    argTypes:
    - int
    - int
    - uint32_t*
    - int
    - int
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 109
    functionName: NearLossless
    functionSourceFile: /src/libwebp/src/enc/near_lossless_enc.c
    functionUses: 1
    functionsReached:
    - ClosestDiscretizedArgb
    - memcpy
    - IsSmooth
    linkageType: ''
    returnType: void
    signature: "void NearLossless(int xsize, int ysize, const uint32_t* argb_src,\n
      \                        int stride, int limit_bits, uint32_t* copy_buffer,\n
      \                        uint32_t* argb_dst)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8LNearLosslessBits
      Src: /src/libwebp/src/enc/near_lossless_enc.c:118,1
    - Dst: assert
      Src: /src/libwebp/src/enc/near_lossless_enc.c:119,1
    - Dst: assert
      Src: /src/libwebp/src/enc/near_lossless_enc.c:120,1
    - Dst: assert
      Src: /src/libwebp/src/enc/near_lossless_enc.c:121,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/near_lossless_enc.c:128,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/near_lossless_enc.c:134,1
    - Dst: NearLossless
      Src: /src/libwebp/src/enc/near_lossless_enc.c:139,1
    - Dst: NearLossless
      Src: /src/libwebp/src/enc/near_lossless_enc.c:142,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/near_lossless_enc.c:144,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - picture
    - quality
    - argb_dst
    argTypes:
    - WebPPicture*
    - int
    - uint32_t*
    assertStmts:
    - condition: (limit_bits <= MAX_LIMIT_BITS)
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/libwebp/src/enc/near_lossless_enc.c
    - condition: (argb_dst != NULL)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/libwebp/src/enc/near_lossless_enc.c
    - condition: (limit_bits > 0)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/libwebp/src/enc/near_lossless_enc.c
    constantsTouched: []
    func_position:
      end: 146
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 146
    functionName: VP8ApplyNearLossless
    functionSourceFile: /src/libwebp/src/enc/near_lossless_enc.c
    functionUses: 1
    functionsReached:
    - VP8LNearLosslessBits
    - assert
    - memcpy
    - NearLossless
    - WebPSafeMalloc
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: "int VP8ApplyNearLossless(const WebPPicture* const picture, int quality,\n
      \                        uint32_t* const argb_dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: VP8LNearLosslessStub
    functionSourceFile: /src/libwebp/src/enc/near_lossless_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VP8LNearLosslessStub(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - distance
    - len
    argTypes:
    - uint32_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: PixOrCopyCreateCopy
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PixOrCopyCreateCopy(uint32_t distance,\n                                                 uint16_t
      len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.h:53,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts:
    - condition: (idx >= 0)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/libwebp/src/enc/backward_references_enc.h
    - condition: (idx < (1 << MAX_COLOR_CACHE_BITS))
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/libwebp/src/enc/backward_references_enc.h
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: PixOrCopyCreateCacheIdx
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.h
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE PixOrCopyCreateCacheIdx(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - argb
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: PixOrCopyCreateLiteral
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE PixOrCopyCreateLiteral(uint32_t argb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - PixOrCopy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: PixOrCopyIsLiteral
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE PixOrCopyIsLiteral(const PixOrCopy* const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - PixOrCopy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: PixOrCopyIsCacheIdx
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE PixOrCopyIsCacheIdx(const PixOrCopy* const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - PixOrCopy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: PixOrCopyIsCopy
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE PixOrCopyIsCopy(const PixOrCopy* const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - component
    argTypes:
    - PixOrCopy*
    - int
    assertStmts:
    - condition: (p->mode == kLiteral)
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/libwebp/src/enc/backward_references_enc.h
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: PixOrCopyLiteral
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.h
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PixOrCopyLiteral(const PixOrCopy* const p,\n                                             int
      component)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - PixOrCopy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: PixOrCopyLength
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE PixOrCopyLength(const PixOrCopy* const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.h:92,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - PixOrCopy*
    assertStmts:
    - condition: (p->mode == kCacheIdx)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/libwebp/src/enc/backward_references_enc.h
    - condition: (p->argb_or_distance < (1U << MAX_COLOR_CACHE_BITS))
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/libwebp/src/enc/backward_references_enc.h
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: PixOrCopyCacheIdx
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.h
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE PixOrCopyCacheIdx(const PixOrCopy* const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - PixOrCopy*
    assertStmts:
    - condition: (p->mode == kCopy)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/libwebp/src/enc/backward_references_enc.h
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: PixOrCopyDistance
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.h
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE PixOrCopyDistance(const PixOrCopy* const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - base_position
    argTypes:
    - VP8LHashChain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: VP8LHashChainFindOffset
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8LHashChainFindOffset(const VP8LHashChain* const p,\n
      \                                              const int base_position)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - base_position
    argTypes:
    - VP8LHashChain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: VP8LHashChainFindLength
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8LHashChainFindLength(const VP8LHashChain* const p,\n
      \                                              const int base_position)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LHashChainFindOffset
      Src: /src/libwebp/src/enc/backward_references_enc.h:154,1
    - Dst: VP8LHashChainFindLength
      Src: /src/libwebp/src/enc/backward_references_enc.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - p
    - base_position
    - offset_ptr
    - length_ptr
    argTypes:
    - VP8LHashChain*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: VP8LHashChainFindCopy
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.h
    functionUses: 2
    functionsReached:
    - VP8LHashChainFindLength
    - VP8LHashChainFindOffset
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8LHashChainFindCopy(const VP8LHashChain* const p,\n
      \                                             int base_position,\n                                              int*
      const offset_ptr,\n                                              int* const
      length_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - VP8LRefsCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: VP8LRefsCursorOk
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8LRefsCursorOk(const VP8LRefsCursor* const c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.h:202,1
    - Dst: assert
      Src: /src/libwebp/src/enc/backward_references_enc.h:203,1
    - Dst: VP8LRefsCursorOk
      Src: /src/libwebp/src/enc/backward_references_enc.h:203,1
    - Dst: VP8LRefsCursorNextBlock
      Src: /src/libwebp/src/enc/backward_references_enc.h:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - VP8LRefsCursor*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/libwebp/src/enc/backward_references_enc.h
    - condition: (VP8LRefsCursorOk(c))
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/libwebp/src/enc/backward_references_enc.h
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: VP8LRefsCursorNext
    functionSourceFile: /src/libwebp/src/enc/backward_references_enc.h
    functionUses: 6
    functionsReached:
    - assert
    - VP8LRefsCursorNextBlock
    - VP8LRefsCursorOk
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8LRefsCursorNext(VP8LRefsCursor* const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - data
    - data_size
    - picture
    argTypes:
    - uint8_t*
    - size_t
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: DummyWriter
    functionSourceFile: /src/libwebp/src/enc/picture_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DummyWriter(const uint8_t* data, size_t data_size,\n                       const
      WebPPicture* const picture)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_ABI_IS_INCOMPATIBLE
      Src: /src/libwebp/src/enc/picture_enc.c:38,1
    - Dst: memset
      Src: /src/libwebp/src/enc/picture_enc.c:42,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/picture_enc.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - picture
    - version
    argTypes:
    - WebPPicture*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: WebPPictureInitInternal
    functionSourceFile: /src/libwebp/src/enc/picture_enc.c
    functionUses: 0
    functionsReached:
    - WEBP_ABI_IS_INCOMPATIBLE
    - WebPEncodingSetError
    - memset
    linkageType: ''
    returnType: int
    signature: int WebPPictureInitInternal(WebPPicture* picture, int version)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/picture_enc.c:55,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/picture_enc.c:59,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - picture
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: WebPValidatePicture
    functionSourceFile: /src/libwebp/src/enc/picture_enc.c
    functionUses: 1
    functionsReached:
    - WebPEncodingSetError
    linkageType: ''
    returnType: int
    signature: int WebPValidatePicture(const WebPPicture* const picture)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - picture
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: WebPPictureResetBufferARGB
    functionSourceFile: /src/libwebp/src/enc/picture_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WebPPictureResetBufferARGB(WebPPicture* const picture)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - picture
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: WebPPictureResetBufferYUVA
    functionSourceFile: /src/libwebp/src/enc/picture_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WebPPictureResetBufferYUVA(WebPPicture* const picture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureResetBufferARGB
      Src: /src/libwebp/src/enc/picture_enc.c:78,1
    - Dst: WebPPictureResetBufferYUVA
      Src: /src/libwebp/src/enc/picture_enc.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - picture
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: WebPPictureResetBuffers
    functionSourceFile: /src/libwebp/src/enc/picture_enc.c
    functionUses: 1
    functionsReached:
    - WebPPictureResetBufferYUVA
    - WebPPictureResetBufferARGB
    linkageType: ''
    returnType: void
    signature: void WebPPictureResetBuffers(WebPPicture* const picture)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPValidatePicture
      Src: /src/libwebp/src/enc/picture_enc.c:88,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/picture_enc.c:90,1
    - Dst: WebPPictureResetBufferARGB
      Src: /src/libwebp/src/enc/picture_enc.c:91,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/picture_enc.c:94,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/picture_enc.c:96,1
    - Dst: WEBP_ALIGN
      Src: /src/libwebp/src/enc/picture_enc.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - picture
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 102
    functionName: WebPPictureAllocARGB
    functionSourceFile: /src/libwebp/src/enc/picture_enc.c
    functionUses: 1
    functionsReached:
    - WebPPictureResetBufferARGB
    - WEBP_ALIGN
    - WebPValidatePicture
    - WebPSafeMalloc
    - WebPEncodingSetError
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: int WebPPictureAllocARGB(WebPPicture* const picture)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WebPValidatePicture
      Src: /src/libwebp/src/enc/picture_enc.c:116,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/picture_enc.c:118,1
    - Dst: WebPPictureResetBufferYUVA
      Src: /src/libwebp/src/enc/picture_enc.c:119,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/picture_enc.c:133,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/picture_enc.c:136,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/picture_enc.c:138,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - picture
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 162
    functionName: WebPPictureAllocYUVA
    functionSourceFile: /src/libwebp/src/enc/picture_enc.c
    functionUses: 1
    functionsReached:
    - WebPPictureResetBufferYUVA
    - WebPValidatePicture
    - WebPSafeMalloc
    - WebPEncodingSetError
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: int WebPPictureAllocYUVA(WebPPicture* const picture)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureFree
      Src: /src/libwebp/src/enc/picture_enc.c:166,1
    - Dst: WebPPictureAllocYUVA
      Src: /src/libwebp/src/enc/picture_enc.c:169,1
    - Dst: WebPPictureAllocARGB
      Src: /src/libwebp/src/enc/picture_enc.c:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - picture
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 175
    functionName: WebPPictureAlloc
    functionSourceFile: /src/libwebp/src/enc/picture_enc.c
    functionUses: 8
    functionsReached:
    - WebPPictureAllocYUVA
    - WebPPictureFree
    - WebPPictureAllocARGB
    linkageType: ''
    returnType: int
    signature: int WebPPictureAlloc(WebPPicture* picture)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/picture_enc.c:179,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/picture_enc.c:180,1
    - Dst: WebPPictureResetBuffers
      Src: /src/libwebp/src/enc/picture_enc.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - picture
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: WebPPictureFree
    functionSourceFile: /src/libwebp/src/enc/picture_enc.c
    functionUses: 15
    functionsReached:
    - WebPPictureResetBuffers
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void WebPPictureFree(WebPPicture* picture)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - writer
    argTypes:
    - WebPMemoryWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: WebPMemoryWriterInit
    functionSourceFile: /src/libwebp/src/enc/picture_enc.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WebPMemoryWriterInit(WebPMemoryWriter* writer)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/picture_enc.c:207,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/picture_enc.c:212,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/picture_enc.c:214,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/picture_enc.c:220,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - data
    - data_size
    - picture
    argTypes:
    - uint8_t*
    - size_t
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 224
    functionName: WebPMemoryWrite
    functionSourceFile: /src/libwebp/src/enc/picture_enc.c
    functionUses: 0
    functionsReached:
    - memcpy
    - WebPSafeMalloc
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: "int WebPMemoryWrite(const uint8_t* data, size_t data_size,\n                    const
      WebPPicture* picture)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/picture_enc.c:228,1
    - Dst: WebPMemoryWriterInit
      Src: /src/libwebp/src/enc/picture_enc.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - writer
    argTypes:
    - WebPMemoryWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: WebPMemoryWriterClear
    functionSourceFile: /src/libwebp/src/enc/picture_enc.c
    functionUses: 8
    functionsReached:
    - WebPMemoryWriterInit
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void WebPMemoryWriterClear(WebPMemoryWriter* writer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WebPConfigPreset
      Src: /src/libwebp/src/enc/picture_enc.c:248,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/src/enc/picture_enc.c:249,1
    - Dst: WebPMemoryWriterInit
      Src: /src/libwebp/src/enc/picture_enc.c:259,1
    - Dst: import
      Src: /src/libwebp/src/enc/picture_enc.c:261,1
    - Dst: WebPEncode
      Src: /src/libwebp/src/enc/picture_enc.c:261,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/src/enc/picture_enc.c:262,1
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/src/enc/picture_enc.c:264,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 8
    argNames:
    - rgba
    - width
    - height
    - stride
    - import
    - quality_factor
    - lossless
    - output
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - Importer
    - float
    - int
    - uint8_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 270
    functionName: Encode
    functionSourceFile: /src/libwebp/src/enc/picture_enc.c
    functionUses: 9
    functionsReached:
    - import
    - WebPMemoryWriterClear
    - WebPMemoryWriterInit
    - WebPConfigPreset
    - WebPEncode
    - WebPPictureFree
    - WebPPictureInit
    linkageType: ''
    returnType: size_t
    signature: "size_t Encode(const uint8_t* rgba, int width, int height, int stride,\n
      \                    Importer import, float quality_factor, int lossless,\n
      \                    uint8_t** output)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - IMPORTER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 277
    functionName: ENCODE_FUNC
    functionSourceFile: /src/libwebp/src/enc/picture_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCODE_FUNC(NAME, IMPORTER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - IMPORTER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: LOSSLESS_ENCODE_FUNC
    functionSourceFile: /src/libwebp/src/enc/picture_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOSSLESS_ENCODE_FUNC(NAME, IMPORTER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - min
    - max
    argTypes:
    - float
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Clamp
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float Clamp(float v, float min, float max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Clamp
      Src: /src/libwebp/src/enc/frame_enc.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - enc
    - s
    argTypes:
    - VP8Encoder*
    - PassStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 69
    functionName: InitPassStats
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - Clamp
    linkageType: ''
    returnType: int
    signature: int InitPassStats(const VP8Encoder* const enc, PassStats* const s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Clamp
      Src: /src/libwebp/src/enc/frame_enc.c:83,1
    - Dst: Clamp
      Src: /src/libwebp/src/enc/frame_enc.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - PassStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 88
    functionName: ComputeNextQ
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - Clamp
    linkageType: ''
    returnType: float
    signature: float ComputeNextQ(PassStats* const s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8CalculateLevelCosts
      Src: /src/libwebp/src/enc/frame_enc.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: ResetStats
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - VP8CalculateLevelCosts
    linkageType: ''
    returnType: void
    signature: void ResetStats(VP8Encoder* const enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nb
    - total
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: CalcSkipProba
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CalcSkipProba(uint64_t nb, uint64_t total)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CalcSkipProba
      Src: /src/libwebp/src/enc/frame_enc.c:123,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/frame_enc.c:127,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/frame_enc.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 132
    functionName: FinalizeSkipProba
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - CalcSkipProba
    - VP8BitCost
    linkageType: ''
    returnType: int
    signature: int FinalizeSkipProba(VP8Encoder* const enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/frame_enc.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nb
    - total
    argTypes:
    - int
    - int
    assertStmts:
    - condition: (nb <= total)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/libwebp/src/enc/frame_enc.c
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: CalcTokenProba
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int CalcTokenProba(int nb, int total)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/frame_enc.c:143,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/frame_enc.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nb
    - total
    - proba
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: BranchCost
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - VP8BitCost
    linkageType: ''
    returnType: int
    signature: int BranchCost(int nb, int total, int proba)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/enc/frame_enc.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: ResetTokenStats
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void ResetTokenStats(VP8Encoder* const enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CalcTokenProba
      Src: /src/libwebp/src/enc/frame_enc.c:164,1
    - Dst: BranchCost
      Src: /src/libwebp/src/enc/frame_enc.c:166,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/frame_enc.c:166,1
    - Dst: BranchCost
      Src: /src/libwebp/src/enc/frame_enc.c:167,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/frame_enc.c:168,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/frame_enc.c:170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - proba
    argTypes:
    - VP8EncProba*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 184
    functionName: FinalizeTokenProbas
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - BranchCost
    - VP8BitCost
    - CalcTokenProba
    linkageType: ''
    returnType: int
    signature: int FinalizeTokenProbas(VP8EncProba* const proba)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: GetProba
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetProba(int a, int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: ResetSegments
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetSegments(VP8Encoder* const enc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetProba
      Src: /src/libwebp/src/enc/frame_enc.c:219,1
    - Dst: GetProba
      Src: /src/libwebp/src/enc/frame_enc.c:220,1
    - Dst: GetProba
      Src: /src/libwebp/src/enc/frame_enc.c:221,1
    - Dst: ResetSegments
      Src: /src/libwebp/src/enc/frame_enc.c:225,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/frame_enc.c:227,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/frame_enc.c:227,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/frame_enc.c:228,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/frame_enc.c:228,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/frame_enc.c:229,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/frame_enc.c:229,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/frame_enc.c:230,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/frame_enc.c:230,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 235
    functionName: SetSegmentProbas
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - ResetSegments
    - GetProba
    - VP8BitCost
    linkageType: ''
    returnType: void
    signature: void SetSegmentProbas(VP8Encoder* const enc)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:244,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:252,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:256,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:259,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:260,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:261,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:263,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:264,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:265,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:267,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:268,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:274,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:275,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:280,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:281,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:286,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:287,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:292,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:293,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:299,1
    - Dst: VP8PutBitUniform
      Src: /src/libwebp/src/enc/frame_enc.c:305,1
    - Dst: VP8PutBit
      Src: /src/libwebp/src/enc/frame_enc.c:306,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 65
    argCount: 3
    argNames:
    - bw
    - ctx
    - res
    argTypes:
    - VP8BitWriter*
    - int
    - VP8Residual*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 311
    functionName: PutCoeffs
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - VP8PutBitUniform
    - VP8PutBit
    linkageType: ''
    returnType: int
    signature: int PutCoeffs(VP8BitWriter* const bw, int ctx, const VP8Residual* res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8IteratorNzToBytes
      Src: /src/libwebp/src/enc/frame_enc.c:322,1
    - Dst: VP8BitWriterPos
      Src: /src/libwebp/src/enc/frame_enc.c:324,1
    - Dst: VP8InitResidual
      Src: /src/libwebp/src/enc/frame_enc.c:326,1
    - Dst: VP8SetResidualCoeffs
      Src: /src/libwebp/src/enc/frame_enc.c:327,1
    - Dst: PutCoeffs
      Src: /src/libwebp/src/enc/frame_enc.c:329,1
    - Dst: VP8InitResidual
      Src: /src/libwebp/src/enc/frame_enc.c:330,1
    - Dst: VP8InitResidual
      Src: /src/libwebp/src/enc/frame_enc.c:332,1
    - Dst: VP8SetResidualCoeffs
      Src: /src/libwebp/src/enc/frame_enc.c:339,1
    - Dst: PutCoeffs
      Src: /src/libwebp/src/enc/frame_enc.c:340,1
    - Dst: VP8BitWriterPos
      Src: /src/libwebp/src/enc/frame_enc.c:343,1
    - Dst: VP8InitResidual
      Src: /src/libwebp/src/enc/frame_enc.c:346,1
    - Dst: VP8SetResidualCoeffs
      Src: /src/libwebp/src/enc/frame_enc.c:351,1
    - Dst: PutCoeffs
      Src: /src/libwebp/src/enc/frame_enc.c:353,1
    - Dst: VP8BitWriterPos
      Src: /src/libwebp/src/enc/frame_enc.c:357,1
    - Dst: VP8IteratorBytesToNz
      Src: /src/libwebp/src/enc/frame_enc.c:362,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - bw
    - it
    - rd
    argTypes:
    - VP8BitWriter*
    - VP8EncIterator*
    - VP8ModeScore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 363
    functionName: CodeResiduals
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - VP8SetResidualCoeffs
    - VP8BitWriterPos
    - VP8InitResidual
    - PutCoeffs
    - VP8IteratorNzToBytes
    - VP8IteratorBytesToNz
    linkageType: ''
    returnType: void
    signature: "void CodeResiduals(VP8BitWriter* const bw, VP8EncIterator* const it,\n
      \                         const VP8ModeScore* const rd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8IteratorNzToBytes
      Src: /src/libwebp/src/enc/frame_enc.c:373,1
    - Dst: VP8InitResidual
      Src: /src/libwebp/src/enc/frame_enc.c:376,1
    - Dst: VP8SetResidualCoeffs
      Src: /src/libwebp/src/enc/frame_enc.c:377,1
    - Dst: VP8RecordCoeffs
      Src: /src/libwebp/src/enc/frame_enc.c:379,1
    - Dst: VP8InitResidual
      Src: /src/libwebp/src/enc/frame_enc.c:380,1
    - Dst: VP8InitResidual
      Src: /src/libwebp/src/enc/frame_enc.c:382,1
    - Dst: VP8SetResidualCoeffs
      Src: /src/libwebp/src/enc/frame_enc.c:389,1
    - Dst: VP8RecordCoeffs
      Src: /src/libwebp/src/enc/frame_enc.c:390,1
    - Dst: VP8InitResidual
      Src: /src/libwebp/src/enc/frame_enc.c:395,1
    - Dst: VP8SetResidualCoeffs
      Src: /src/libwebp/src/enc/frame_enc.c:400,1
    - Dst: VP8RecordCoeffs
      Src: /src/libwebp/src/enc/frame_enc.c:402,1
    - Dst: VP8IteratorBytesToNz
      Src: /src/libwebp/src/enc/frame_enc.c:407,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - it
    - rd
    argTypes:
    - VP8EncIterator*
    - VP8ModeScore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 408
    functionName: RecordResiduals
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - VP8SetResidualCoeffs
    - VP8InitResidual
    - VP8RecordCoeffs
    - VP8IteratorNzToBytes
    - VP8IteratorBytesToNz
    linkageType: ''
    returnType: void
    signature: "void RecordResiduals(VP8EncIterator* const it,\n                            const
      VP8ModeScore* const rd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8IteratorNzToBytes
      Src: /src/libwebp/src/enc/frame_enc.c:421,1
    - Dst: VP8InitResidual
      Src: /src/libwebp/src/enc/frame_enc.c:424,1
    - Dst: VP8SetResidualCoeffs
      Src: /src/libwebp/src/enc/frame_enc.c:425,1
    - Dst: VP8RecordCoeffTokens
      Src: /src/libwebp/src/enc/frame_enc.c:426,1
    - Dst: VP8InitResidual
      Src: /src/libwebp/src/enc/frame_enc.c:427,1
    - Dst: VP8InitResidual
      Src: /src/libwebp/src/enc/frame_enc.c:429,1
    - Dst: VP8SetResidualCoeffs
      Src: /src/libwebp/src/enc/frame_enc.c:436,1
    - Dst: VP8RecordCoeffTokens
      Src: /src/libwebp/src/enc/frame_enc.c:437,1
    - Dst: VP8InitResidual
      Src: /src/libwebp/src/enc/frame_enc.c:442,1
    - Dst: VP8SetResidualCoeffs
      Src: /src/libwebp/src/enc/frame_enc.c:447,1
    - Dst: VP8RecordCoeffTokens
      Src: /src/libwebp/src/enc/frame_enc.c:449,1
    - Dst: VP8IteratorBytesToNz
      Src: /src/libwebp/src/enc/frame_enc.c:453,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - it
    - rd
    - tokens
    argTypes:
    - VP8EncIterator*
    - VP8ModeScore*
    - VP8TBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 415
    functionDepth: 4
    functionLinenumber: 415
    functionLinenumberEnd: 455
    functionName: RecordTokens
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - VP8SetResidualCoeffs
    - VP8InitResidual
    - VP8RecordCoeffTokens
    - VP8IteratorNzToBytes
    - VP8IteratorBytesToNz
    linkageType: ''
    returnType: int
    signature: "int RecordTokens(VP8EncIterator* const it, const VP8ModeScore* const
      rd,\n                        VP8TBuffer* const tokens)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/enc/frame_enc.c:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - value
    - size
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 471
    functionName: SetBlock
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void SetBlock(uint8_t* p, int value, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 480
    functionName: ResetSSE
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetSSE(VP8Encoder* const enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8SSE16x16
      Src: /src/libwebp/src/enc/frame_enc.c:487,1
    - Dst: VP8SSE8x8
      Src: /src/libwebp/src/enc/frame_enc.c:488,1
    - Dst: VP8SSE8x8
      Src: /src/libwebp/src/enc/frame_enc.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 491
    functionName: StoreSSE
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - VP8SSE8x8
    - VP8SSE16x16
    linkageType: ''
    returnType: void
    signature: void StoreSSE(const VP8EncIterator* const it)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: StoreSSE
      Src: /src/libwebp/src/enc/frame_enc.c:499,1
    - Dst: SetBlock
      Src: /src/libwebp/src/enc/frame_enc.c:537,1
    - Dst: SetBlock
      Src: /src/libwebp/src/enc/frame_enc.c:538,1
    - Dst: SetBlock
      Src: /src/libwebp/src/enc/frame_enc.c:539,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 541
    functionName: StoreSideInfo
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - StoreSSE
    - SetBlock
    linkageType: ''
    returnType: void
    signature: void StoreSideInfo(const VP8EncIterator* const it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/enc/frame_enc.c:547,1
    - Dst: ResetSSE
      Src: /src/libwebp/src/enc/frame_enc.c:549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 550
    functionName: ResetSideInfo
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - memset
    - ResetSSE
    linkageType: ''
    returnType: void
    signature: void ResetSideInfo(const VP8EncIterator* const it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 552
    functionName: ResetSSE
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetSSE(VP8Encoder* const enc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/enc/frame_enc.c:558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 562
    functionName: StoreSideInfo
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void StoreSideInfo(const VP8EncIterator* const it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 564
    functionName: ResetSideInfo
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetSideInfo(const VP8EncIterator* const it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log10
      Src: /src/libwebp/src/enc/frame_enc.c:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - mse
    - size
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 569
    functionName: GetPSNR
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 3
    functionsReached:
    - log10
    linkageType: ''
    returnType: double
    signature: double GetPSNR(uint64_t mse, uint64_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Clamp
      Src: /src/libwebp/src/enc/frame_enc.c:578,1
    - Dst: VP8SetSegmentParams
      Src: /src/libwebp/src/enc/frame_enc.c:580,1
    - Dst: SetSegmentProbas
      Src: /src/libwebp/src/enc/frame_enc.c:581,1
    - Dst: ResetStats
      Src: /src/libwebp/src/enc/frame_enc.c:583,1
    - Dst: ResetSSE
      Src: /src/libwebp/src/enc/frame_enc.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - enc
    - q
    argTypes:
    - VP8Encoder*
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 576
    functionDepth: 4
    functionLinenumber: 576
    functionLinenumberEnd: 585
    functionName: SetLoopParams
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - ResetSSE
    - VP8SetSegmentParams
    - SetSegmentProbas
    - ResetStats
    - Clamp
    linkageType: ''
    returnType: void
    signature: void SetLoopParams(VP8Encoder* const enc, float q)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VP8IteratorInit
      Src: /src/libwebp/src/enc/frame_enc.c:595,1
    - Dst: SetLoopParams
      Src: /src/libwebp/src/enc/frame_enc.c:596,1
    - Dst: VP8IteratorImport
      Src: /src/libwebp/src/enc/frame_enc.c:599,1
    - Dst: VP8Decimate
      Src: /src/libwebp/src/enc/frame_enc.c:600,1
    - Dst: RecordResiduals
      Src: /src/libwebp/src/enc/frame_enc.c:604,1
    - Dst: VP8IteratorProgress
      Src: /src/libwebp/src/enc/frame_enc.c:608,1
    - Dst: VP8IteratorSaveBoundary
      Src: /src/libwebp/src/enc/frame_enc.c:611,1
    - Dst: VP8IteratorNext
      Src: /src/libwebp/src/enc/frame_enc.c:612,1
    - Dst: FinalizeSkipProba
      Src: /src/libwebp/src/enc/frame_enc.c:616,1
    - Dst: FinalizeTokenProbas
      Src: /src/libwebp/src/enc/frame_enc.c:617,1
    - Dst: GetPSNR
      Src: /src/libwebp/src/enc/frame_enc.c:621,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - enc
    - rd_opt
    - nb_mbs
    - percent_delta
    - s
    argTypes:
    - VP8Encoder*
    - VP8RDLevel
    - int
    - int
    - PassStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 587
    functionDepth: 5
    functionLinenumber: 587
    functionLinenumberEnd: 624
    functionName: OneStatPass
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - VP8IteratorInit
    - FinalizeTokenProbas
    - VP8IteratorImport
    - VP8IteratorProgress
    - VP8IteratorSaveBoundary
    - VP8IteratorNext
    - FinalizeSkipProba
    - VP8Decimate
    - GetPSNR
    - RecordResiduals
    - SetLoopParams
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t OneStatPass(VP8Encoder* const enc, VP8RDLevel rd_opt,\n                            int
      nb_mbs, int percent_delta, PassStats* const s)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: InitPassStats
      Src: /src/libwebp/src/enc/frame_enc.c:640,1
    - Dst: ResetTokenStats
      Src: /src/libwebp/src/enc/frame_enc.c:641,1
    - Dst: fabs
      Src: /src/libwebp/src/enc/frame_enc.c:653,1
    - Dst: OneStatPass
      Src: /src/libwebp/src/enc/frame_enc.c:657,1
    - Dst: printf
      Src: /src/libwebp/src/enc/frame_enc.c:660,1
    - Dst: ComputeNextQ
      Src: /src/libwebp/src/enc/frame_enc.c:673,1
    - Dst: fabs
      Src: /src/libwebp/src/enc/frame_enc.c:674,1
    - Dst: FinalizeSkipProba
      Src: /src/libwebp/src/enc/frame_enc.c:679,1
    - Dst: FinalizeTokenProbas
      Src: /src/libwebp/src/enc/frame_enc.c:680,1
    - Dst: VP8CalculateLevelCosts
      Src: /src/libwebp/src/enc/frame_enc.c:682,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/frame_enc.c:683,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 34
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 626
    functionDepth: 6
    functionLinenumber: 626
    functionLinenumberEnd: 684
    functionName: StatLoop
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - OneStatPass
    - printf
    - FinalizeTokenProbas
    - InitPassStats
    - VP8CalculateLevelCosts
    - fabs
    - WebPReportProgress
    - ResetTokenStats
    - ComputeNextQ
    - FinalizeSkipProba
    linkageType: ''
    returnType: int
    signature: int StatLoop(VP8Encoder* const enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8BitWriterInit
      Src: /src/libwebp/src/enc/frame_enc.c:700,1
    - Dst: VP8EncFreeBitWriters
      Src: /src/libwebp/src/enc/frame_enc.c:703,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/frame_enc.c:704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 707
    functionName: PreLoopInitialize
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - VP8BitWriterInit
    - WebPEncodingSetError
    - VP8EncFreeBitWriters
    linkageType: ''
    returnType: int
    signature: int PreLoopInitialize(VP8Encoder* const enc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VP8BitWriterFinish
      Src: /src/libwebp/src/enc/frame_enc.c:714,1
    - Dst: VP8AdjustFilterStrength
      Src: /src/libwebp/src/enc/frame_enc.c:730,1
    - Dst: VP8EncFreeBitWriters
      Src: /src/libwebp/src/enc/frame_enc.c:733,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/frame_enc.c:734,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - it
    - ok
    argTypes:
    - VP8EncIterator*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 709
    functionDepth: 2
    functionLinenumber: 709
    functionLinenumberEnd: 737
    functionName: PostLoopFinalize
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached:
    - VP8BitWriterFinish
    - WebPEncodingSetError
    - VP8AdjustFilterStrength
    - VP8EncFreeBitWriters
    linkageType: ''
    returnType: int
    signature: int PostLoopFinalize(VP8EncIterator* const it, int ok)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 749
    functionName: ResetAfterSkip
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetAfterSkip(VP8EncIterator* const it)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PreLoopInitialize
      Src: /src/libwebp/src/enc/frame_enc.c:753,1
    - Dst: StatLoop
      Src: /src/libwebp/src/enc/frame_enc.c:756,1
    - Dst: VP8IteratorInit
      Src: /src/libwebp/src/enc/frame_enc.c:758,1
    - Dst: VP8InitFilter
      Src: /src/libwebp/src/enc/frame_enc.c:759,1
    - Dst: VP8IteratorImport
      Src: /src/libwebp/src/enc/frame_enc.c:765,1
    - Dst: VP8Decimate
      Src: /src/libwebp/src/enc/frame_enc.c:768,1
    - Dst: CodeResiduals
      Src: /src/libwebp/src/enc/frame_enc.c:769,1
    - Dst: ResetAfterSkip
      Src: /src/libwebp/src/enc/frame_enc.c:776,1
    - Dst: StoreSideInfo
      Src: /src/libwebp/src/enc/frame_enc.c:778,1
    - Dst: VP8StoreFilterStats
      Src: /src/libwebp/src/enc/frame_enc.c:779,1
    - Dst: VP8IteratorExport
      Src: /src/libwebp/src/enc/frame_enc.c:780,1
    - Dst: VP8IteratorProgress
      Src: /src/libwebp/src/enc/frame_enc.c:781,1
    - Dst: VP8IteratorSaveBoundary
      Src: /src/libwebp/src/enc/frame_enc.c:782,1
    - Dst: VP8IteratorNext
      Src: /src/libwebp/src/enc/frame_enc.c:783,1
    - Dst: PostLoopFinalize
      Src: /src/libwebp/src/enc/frame_enc.c:785,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 751
    functionDepth: 7
    functionLinenumber: 751
    functionLinenumberEnd: 786
    functionName: VP8EncLoop
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 1
    functionsReached:
    - VP8IteratorInit
    - StatLoop
    - VP8IteratorExport
    - VP8IteratorImport
    - PostLoopFinalize
    - CodeResiduals
    - VP8InitFilter
    - VP8StoreFilterStats
    - ResetAfterSkip
    - VP8IteratorSaveBoundary
    - VP8IteratorNext
    - VP8Decimate
    - PreLoopInitialize
    - StoreSideInfo
    - VP8IteratorProgress
    linkageType: ''
    returnType: int
    signature: int VP8EncLoop(VP8Encoder* const enc)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: InitPassStats
      Src: /src/libwebp/src/enc/frame_enc.c:808,1
    - Dst: PreLoopInitialize
      Src: /src/libwebp/src/enc/frame_enc.c:809,1
    - Dst: assert
      Src: /src/libwebp/src/enc/frame_enc.c:814,1
    - Dst: assert
      Src: /src/libwebp/src/enc/frame_enc.c:815,1
    - Dst: assert
      Src: /src/libwebp/src/enc/frame_enc.c:816,1
    - Dst: assert
      Src: /src/libwebp/src/enc/frame_enc.c:817,1
    - Dst: assert
      Src: /src/libwebp/src/enc/frame_enc.c:818,1
    - Dst: fabs
      Src: /src/libwebp/src/enc/frame_enc.c:821,1
    - Dst: VP8IteratorInit
      Src: /src/libwebp/src/enc/frame_enc.c:830,1
    - Dst: SetLoopParams
      Src: /src/libwebp/src/enc/frame_enc.c:831,1
    - Dst: ResetTokenStats
      Src: /src/libwebp/src/enc/frame_enc.c:833,1
    - Dst: VP8InitFilter
      Src: /src/libwebp/src/enc/frame_enc.c:834,1
    - Dst: VP8TBufferClear
      Src: /src/libwebp/src/enc/frame_enc.c:836,1
    - Dst: VP8IteratorImport
      Src: /src/libwebp/src/enc/frame_enc.c:839,1
    - Dst: FinalizeTokenProbas
      Src: /src/libwebp/src/enc/frame_enc.c:841,1
    - Dst: VP8CalculateLevelCosts
      Src: /src/libwebp/src/enc/frame_enc.c:842,1
    - Dst: VP8Decimate
      Src: /src/libwebp/src/enc/frame_enc.c:845,1
    - Dst: RecordTokens
      Src: /src/libwebp/src/enc/frame_enc.c:846,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/frame_enc.c:848,1
    - Dst: StoreSideInfo
      Src: /src/libwebp/src/enc/frame_enc.c:854,1
    - Dst: VP8StoreFilterStats
      Src: /src/libwebp/src/enc/frame_enc.c:855,1
    - Dst: VP8IteratorExport
      Src: /src/libwebp/src/enc/frame_enc.c:856,1
    - Dst: VP8IteratorProgress
      Src: /src/libwebp/src/enc/frame_enc.c:857,1
    - Dst: VP8IteratorSaveBoundary
      Src: /src/libwebp/src/enc/frame_enc.c:859,1
    - Dst: VP8IteratorNext
      Src: /src/libwebp/src/enc/frame_enc.c:860,1
    - Dst: FinalizeTokenProbas
      Src: /src/libwebp/src/enc/frame_enc.c:865,1
    - Dst: VP8EstimateTokenSize
      Src: /src/libwebp/src/enc/frame_enc.c:866,1
    - Dst: GetPSNR
      Src: /src/libwebp/src/enc/frame_enc.c:871,1
    - Dst: printf
      Src: /src/libwebp/src/enc/frame_enc.c:875,1
    - Dst: ResetSideInfo
      Src: /src/libwebp/src/enc/frame_enc.c:885,1
    - Dst: ComputeNextQ
      Src: /src/libwebp/src/enc/frame_enc.c:893,1
    - Dst: FinalizeTokenProbas
      Src: /src/libwebp/src/enc/frame_enc.c:898,1
    - Dst: VP8EmitTokens
      Src: /src/libwebp/src/enc/frame_enc.c:900,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/frame_enc.c:903,1
    - Dst: PostLoopFinalize
      Src: /src/libwebp/src/enc/frame_enc.c:905,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 79
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts:
    - condition: (enc->use_tokens)
      pos:
        line_end: 814
        line_start: 814
        source_file: /src/libwebp/src/enc/frame_enc.c
    - condition: (enc->num_parts == 1)
      pos:
        line_end: 813
        line_start: 813
        source_file: /src/libwebp/src/enc/frame_enc.c
    - condition: (num_pass_left > 0)
      pos:
        line_end: 817
        line_start: 817
        source_file: /src/libwebp/src/enc/frame_enc.c
    - condition: (proba->use_skip_proba == 0)
      pos:
        line_end: 815
        line_start: 815
        source_file: /src/libwebp/src/enc/frame_enc.c
    - condition: (rd_opt >= RD_OPT_BASIC)
      pos:
        line_end: 816
        line_start: 816
        source_file: /src/libwebp/src/enc/frame_enc.c
    constantsTouched: []
    func_position:
      end: 906
      start: 795
    functionDepth: 5
    functionLinenumber: 795
    functionLinenumberEnd: 906
    functionName: VP8EncTokenLoop
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 1
    functionsReached:
    - VP8IteratorInit
    - InitPassStats
    - VP8TBufferClear
    - VP8StoreFilterStats
    - WebPEncodingSetError
    - StoreSideInfo
    - VP8IteratorProgress
    - VP8IteratorExport
    - VP8IteratorImport
    - VP8EstimateTokenSize
    - assert
    - VP8CalculateLevelCosts
    - VP8EmitTokens
    - RecordTokens
    - ComputeNextQ
    - printf
    - FinalizeTokenProbas
    - WebPReportProgress
    - VP8IteratorSaveBoundary
    - ResetSideInfo
    - VP8IteratorNext
    - VP8Decimate
    - GetPSNR
    - PostLoopFinalize
    - VP8InitFilter
    - fabs
    - ResetTokenStats
    - PreLoopInitialize
    - SetLoopParams
    linkageType: ''
    returnType: int
    signature: int VP8EncTokenLoop(VP8Encoder* const enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 913
    functionName: VP8EncTokenLoop
    functionSourceFile: /src/libwebp/src/enc/frame_enc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int VP8EncTokenLoop(VP8Encoder* const enc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/analysis_enc.c:37,1
    - Dst: assert
      Src: /src/libwebp/src/enc/analysis_enc.c:38,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/analysis_enc.c:70,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts:
    - condition: ((uint64_t)(w * h) == (uint64_t)w * h)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/libwebp/src/enc/analysis_enc.c
    constantsTouched: []
    func_position:
      end: 71
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 71
    functionName: SmoothSegmentMap
    functionSourceFile: /src/libwebp/src/enc/analysis_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPSafeMalloc
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void SmoothSegmentMap(VP8Encoder* const enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - m
    - M
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: clip
    functionSourceFile: /src/libwebp/src/enc/analysis_enc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE clip(int v, int m, int M)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/analysis_enc.c:93,1
    - Dst: clip
      Src: /src/libwebp/src/enc/analysis_enc.c:97,1
    - Dst: clip
      Src: /src/libwebp/src/enc/analysis_enc.c:98,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - enc
    - centers
    - mid
    argTypes:
    - VP8Encoder*
    - int[]
    - int
    assertStmts:
    - condition: (mid <= max && mid >= min)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/libwebp/src/enc/analysis_enc.c
    constantsTouched: []
    func_position:
      end: 100
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 100
    functionName: SetSegmentAlphas
    functionSourceFile: /src/libwebp/src/enc/analysis_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - clip
    linkageType: ''
    returnType: void
    signature: "void SetSegmentAlphas(VP8Encoder* const enc,\n                             const
      int centers[NUM_MB_SEGMENTS], int mid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - alpha
    - ','
    - best_alpha
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: IS_BETTER_ALPHA
    functionSourceFile: /src/libwebp/src/enc/analysis_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BETTER_ALPHA(alpha, best_alpha)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clip
      Src: /src/libwebp/src/enc/analysis_enc.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alpha
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: FinalAlphaValue
    functionSourceFile: /src/libwebp/src/enc/analysis_enc.c
    functionUses: 0
    functionsReached:
    - clip
    linkageType: ''
    returnType: int
    signature: int FinalAlphaValue(int alpha)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - histo
    argTypes:
    - VP8Histogram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: GetAlpha
    functionSourceFile: /src/libwebp/src/enc/analysis_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetAlpha(const VP8Histogram* const histo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - histo
    argTypes:
    - VP8Histogram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: InitHistogram
    functionSourceFile: /src/libwebp/src/enc/analysis_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitHistogram(VP8Histogram* const histo)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/analysis_enc.c:151,1
    - Dst: assert
      Src: /src/libwebp/src/enc/analysis_enc.c:152,1
    - Dst: assert
      Src: /src/libwebp/src/enc/analysis_enc.c:165,1
    - Dst: abs
      Src: /src/libwebp/src/enc/analysis_enc.c:181,1
    - Dst: abs
      Src: /src/libwebp/src/enc/analysis_enc.c:181,1
    - Dst: abs
      Src: /src/libwebp/src/enc/analysis_enc.c:198,1
    - Dst: SmoothSegmentMap
      Src: /src/libwebp/src/enc/analysis_enc.c:218,1
    - Dst: SetSegmentAlphas
      Src: /src/libwebp/src/enc/analysis_enc.c:221,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 2
    argNames:
    - enc
    - alphas
    argTypes:
    - VP8Encoder*
    - int[]
    assertStmts:
    - condition: (nb >= 1)
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/libwebp/src/enc/analysis_enc.c
    - condition: (nb <= NUM_MB_SEGMENTS)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/libwebp/src/enc/analysis_enc.c
    - condition: (n < 2 * nb)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/libwebp/src/enc/analysis_enc.c
    constantsTouched: []
    func_position:
      end: 222
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 222
    functionName: AssignSegments
    functionSourceFile: /src/libwebp/src/enc/analysis_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - abs
    - SetSegmentAlphas
    - SmoothSegmentMap
    linkageType: ''
    returnType: void
    signature: "void AssignSegments(VP8Encoder* const enc,\n                           const
      int alphas[MAX_ALPHA + 1])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8MakeLuma16Preds
      Src: /src/libwebp/src/enc/analysis_enc.c:242,1
    - Dst: InitHistogram
      Src: /src/libwebp/src/enc/analysis_enc.c:247,1
    - Dst: VP8CollectHistogram
      Src: /src/libwebp/src/enc/analysis_enc.c:248,1
    - Dst: GetAlpha
      Src: /src/libwebp/src/enc/analysis_enc.c:250,1
    - Dst: IS_BETTER_ALPHA
      Src: /src/libwebp/src/enc/analysis_enc.c:251,1
    - Dst: VP8SetIntra16Mode
      Src: /src/libwebp/src/enc/analysis_enc.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 258
    functionName: MBAnalyzeBestIntra16Mode
    functionSourceFile: /src/libwebp/src/enc/analysis_enc.c
    functionUses: 0
    functionsReached:
    - VP8CollectHistogram
    - VP8MakeLuma16Preds
    - GetAlpha
    - VP8SetIntra16Mode
    - IS_BETTER_ALPHA
    - InitHistogram
    linkageType: ''
    returnType: int
    signature: int MBAnalyzeBestIntra16Mode(VP8EncIterator* const it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8Mean16x4
      Src: /src/libwebp/src/enc/analysis_enc.c:269,1
    - Dst: VP8SetIntra16Mode
      Src: /src/libwebp/src/enc/analysis_enc.c:280,1
    - Dst: VP8SetIntra4Mode
      Src: /src/libwebp/src/enc/analysis_enc.c:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 286
    functionName: FastMBAnalyze
    functionSourceFile: /src/libwebp/src/enc/analysis_enc.c
    functionUses: 0
    functionsReached:
    - VP8SetIntra16Mode
    - VP8Mean16x4
    - VP8SetIntra4Mode
    linkageType: ''
    returnType: int
    signature: int FastMBAnalyze(VP8EncIterator* const it)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8MakeChroma8Preds
      Src: /src/libwebp/src/enc/analysis_enc.c:295,1
    - Dst: InitHistogram
      Src: /src/libwebp/src/enc/analysis_enc.c:299,1
    - Dst: VP8CollectHistogram
      Src: /src/libwebp/src/enc/analysis_enc.c:300,1
    - Dst: GetAlpha
      Src: /src/libwebp/src/enc/analysis_enc.c:303,1
    - Dst: IS_BETTER_ALPHA
      Src: /src/libwebp/src/enc/analysis_enc.c:304,1
    - Dst: VP8SetIntraUVMode
      Src: /src/libwebp/src/enc/analysis_enc.c:313,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 315
    functionName: MBAnalyzeBestUVMode
    functionSourceFile: /src/libwebp/src/enc/analysis_enc.c
    functionUses: 0
    functionsReached:
    - VP8CollectHistogram
    - GetAlpha
    - VP8MakeChroma8Preds
    - IS_BETTER_ALPHA
    - VP8SetIntraUVMode
    - InitHistogram
    linkageType: ''
    returnType: int
    signature: int MBAnalyzeBestUVMode(VP8EncIterator* const it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8SetIntra16Mode
      Src: /src/libwebp/src/enc/analysis_enc.c:322,1
    - Dst: VP8SetSkip
      Src: /src/libwebp/src/enc/analysis_enc.c:323,1
    - Dst: VP8SetSegment
      Src: /src/libwebp/src/enc/analysis_enc.c:324,1
    - Dst: FastMBAnalyze
      Src: /src/libwebp/src/enc/analysis_enc.c:327,1
    - Dst: MBAnalyzeBestIntra16Mode
      Src: /src/libwebp/src/enc/analysis_enc.c:329,1
    - Dst: MBAnalyzeBestUVMode
      Src: /src/libwebp/src/enc/analysis_enc.c:331,1
    - Dst: FinalAlphaValue
      Src: /src/libwebp/src/enc/analysis_enc.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - it
    - alphas
    - alpha
    - uv_alpha
    argTypes:
    - VP8EncIterator*
    - int[]
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 342
    functionName: MBAnalyze
    functionSourceFile: /src/libwebp/src/enc/analysis_enc.c
    functionUses: 1
    functionsReached:
    - VP8SetIntra16Mode
    - MBAnalyzeBestUVMode
    - VP8SetSegment
    - MBAnalyzeBestIntra16Mode
    - VP8SetSkip
    - FastMBAnalyze
    - FinalAlphaValue
    linkageType: ''
    returnType: void
    signature: "void MBAnalyze(VP8EncIterator* const it, int alphas[MAX_ALPHA + 1],\n
      \                     int* const alpha, int* const uv_alpha)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - mb
    argTypes:
    - VP8MBInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 350
    functionName: DefaultMBInfo
    functionSourceFile: /src/libwebp/src/enc/analysis_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DefaultMBInfo(VP8MBInfo* const mb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DefaultMBInfo
      Src: /src/libwebp/src/enc/analysis_enc.c:365,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/analysis_enc.c:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 374
    functionName: ResetAllMBInfo
    functionSourceFile: /src/libwebp/src/enc/analysis_enc.c
    functionUses: 0
    functionsReached:
    - WebPReportProgress
    - DefaultMBInfo
    linkageType: ''
    returnType: void
    signature: void ResetAllMBInfo(VP8Encoder* const enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8IteratorIsDone
      Src: /src/libwebp/src/enc/analysis_enc.c:390,1
    - Dst: WEBP_ALIGN
      Src: /src/libwebp/src/enc/analysis_enc.c:392,1
    - Dst: VP8IteratorImport
      Src: /src/libwebp/src/enc/analysis_enc.c:395,1
    - Dst: MBAnalyze
      Src: /src/libwebp/src/enc/analysis_enc.c:396,1
    - Dst: VP8IteratorProgress
      Src: /src/libwebp/src/enc/analysis_enc.c:397,1
    - Dst: VP8IteratorNext
      Src: /src/libwebp/src/enc/analysis_enc.c:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - arg1
    - arg2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 401
    functionName: DoSegmentsJob
    functionSourceFile: /src/libwebp/src/enc/analysis_enc.c
    functionUses: 0
    functionsReached:
    - VP8IteratorImport
    - VP8IteratorIsDone
    - WEBP_ALIGN
    - MBAnalyze
    - VP8IteratorNext
    - VP8IteratorProgress
    linkageType: ''
    returnType: int
    signature: int DoSegmentsJob(void* arg1, void* arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - SegmentJob*
    - SegmentJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: MergeJobs
    functionSourceFile: /src/libwebp/src/enc/analysis_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MergeJobs(const SegmentJob* const src, SegmentJob* const dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPGetWorkerInterface
      Src: /src/libwebp/src/enc/analysis_enc.c:415,1
    - Dst: VP8IteratorInit
      Src: /src/libwebp/src/enc/analysis_enc.c:419,1
    - Dst: VP8IteratorSetRow
      Src: /src/libwebp/src/enc/analysis_enc.c:420,1
    - Dst: VP8IteratorSetCountDown
      Src: /src/libwebp/src/enc/analysis_enc.c:421,1
    - Dst: memset
      Src: /src/libwebp/src/enc/analysis_enc.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - enc
    - job
    - start_row
    - end_row
    argTypes:
    - VP8Encoder*
    - SegmentJob*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 413
    functionDepth: 4
    functionLinenumber: 413
    functionLinenumberEnd: 428
    functionName: InitSegmentJob
    functionSourceFile: /src/libwebp/src/enc/analysis_enc.c
    functionUses: 0
    functionsReached:
    - VP8IteratorInit
    - memset
    - WebPGetWorkerInterface
    - VP8IteratorSetCountDown
    - VP8IteratorSetRow
    linkageType: ''
    returnType: void
    signature: "void InitSegmentJob(VP8Encoder* const enc, SegmentJob* const job,\n
      \                          int start_row, int end_row)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WebPGetWorkerInterface
      Src: /src/libwebp/src/enc/analysis_enc.c:449,1
    - Dst: InitSegmentJob
      Src: /src/libwebp/src/enc/analysis_enc.c:456,1
    - Dst: InitSegmentJob
      Src: /src/libwebp/src/enc/analysis_enc.c:457,1
    - Dst: WebPWorkerInterface*::Reset
      Src: /src/libwebp/src/enc/analysis_enc.c:460,1
    - Dst: WebPWorkerInterface*::Launch
      Src: /src/libwebp/src/enc/analysis_enc.c:463,1
    - Dst: WebPWorkerInterface*::Execute
      Src: /src/libwebp/src/enc/analysis_enc.c:464,1
    - Dst: WebPWorkerInterface*::Sync
      Src: /src/libwebp/src/enc/analysis_enc.c:465,1
    - Dst: WebPWorkerInterface*::Sync
      Src: /src/libwebp/src/enc/analysis_enc.c:466,1
    - Dst: WebPWorkerInterface*::End
      Src: /src/libwebp/src/enc/analysis_enc.c:468,1
    - Dst: MergeJobs
      Src: /src/libwebp/src/enc/analysis_enc.c:469,1
    - Dst: InitSegmentJob
      Src: /src/libwebp/src/enc/analysis_enc.c:473,1
    - Dst: WebPWorkerInterface*::Execute
      Src: /src/libwebp/src/enc/analysis_enc.c:474,1
    - Dst: WebPWorkerInterface*::Sync
      Src: /src/libwebp/src/enc/analysis_enc.c:475,1
    - Dst: WebPWorkerInterface*::End
      Src: /src/libwebp/src/enc/analysis_enc.c:477,1
    - Dst: AssignSegments
      Src: /src/libwebp/src/enc/analysis_enc.c:481,1
    - Dst: ResetAllMBInfo
      Src: /src/libwebp/src/enc/analysis_enc.c:484,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/analysis_enc.c:487,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 431
    functionDepth: 5
    functionLinenumber: 431
    functionLinenumberEnd: 491
    functionName: VP8EncAnalyze
    functionSourceFile: /src/libwebp/src/enc/analysis_enc.c
    functionUses: 1
    functionsReached:
    - MergeJobs
    - WebPWorkerInterface*::Sync
    - WebPWorkerInterface*::Execute
    - WebPWorkerInterface*::Launch
    - WebPWorkerInterface*::End
    - WebPGetWorkerInterface
    - WebPWorkerInterface*::Reset
    - AssignSegments
    - ResetAllMBInfo
    - WebPEncodingSetError
    - InitSegmentJob
    linkageType: ''
    returnType: int
    signature: int VP8EncAnalyze(VP8Encoder* const enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: MULT_8B
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULT_8B(a, b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:67,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:69,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:70,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:71,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:72,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:74,1
    - Dst: abs
      Src: /src/libwebp/src/enc/quant_enc.c:74,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:76,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:78,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:80,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:81,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:82,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:83,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:84,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:85,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:86,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:87,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:89,1
    - Dst: abs
      Src: /src/libwebp/src/enc/quant_enc.c:89,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:91,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:93,1
    - Dst: abs
      Src: /src/libwebp/src/enc/quant_enc.c:93,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:95,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:97,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:100,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:101,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:102,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:103,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:105,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:106,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:107,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:109,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:112,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:114,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:116,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:117,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:120,1
    - Dst: printf
      Src: /src/libwebp/src/enc/quant_enc.c:122,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 2
    argNames:
    - it
    - rd
    argTypes:
    - VP8EncIterator*
    - VP8ModeScore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 124
    functionName: PrintBlockInfo
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached:
    - printf
    - abs
    linkageType: ''
    returnType: void
    signature: "void PrintBlockInfo(const VP8EncIterator* const it,\n                           const
      VP8ModeScore* const rd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - m
    - M
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: clip
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE clip(int v, int m, int M)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIAS
      Src: /src/libwebp/src/enc/quant_enc.c:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - m
    - type
    argTypes:
    - VP8Matrix*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 212
    functionName: ExpandMatrix
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached:
    - BIAS
    linkageType: ''
    returnType: int
    signature: int ExpandMatrix(VP8Matrix* const m, int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: CheckLambdaValue
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CheckLambdaValue(int* const v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clip
      Src: /src/libwebp/src/enc/quant_enc.c:226,1
    - Dst: clip
      Src: /src/libwebp/src/enc/quant_enc.c:227,1
    - Dst: clip
      Src: /src/libwebp/src/enc/quant_enc.c:229,1
    - Dst: clip
      Src: /src/libwebp/src/enc/quant_enc.c:230,1
    - Dst: clip
      Src: /src/libwebp/src/enc/quant_enc.c:232,1
    - Dst: clip
      Src: /src/libwebp/src/enc/quant_enc.c:233,1
    - Dst: ExpandMatrix
      Src: /src/libwebp/src/enc/quant_enc.c:235,1
    - Dst: ExpandMatrix
      Src: /src/libwebp/src/enc/quant_enc.c:236,1
    - Dst: ExpandMatrix
      Src: /src/libwebp/src/enc/quant_enc.c:237,1
    - Dst: CheckLambdaValue
      Src: /src/libwebp/src/enc/quant_enc.c:249,1
    - Dst: CheckLambdaValue
      Src: /src/libwebp/src/enc/quant_enc.c:250,1
    - Dst: CheckLambdaValue
      Src: /src/libwebp/src/enc/quant_enc.c:251,1
    - Dst: CheckLambdaValue
      Src: /src/libwebp/src/enc/quant_enc.c:252,1
    - Dst: CheckLambdaValue
      Src: /src/libwebp/src/enc/quant_enc.c:253,1
    - Dst: CheckLambdaValue
      Src: /src/libwebp/src/enc/quant_enc.c:254,1
    - Dst: CheckLambdaValue
      Src: /src/libwebp/src/enc/quant_enc.c:255,1
    - Dst: CheckLambdaValue
      Src: /src/libwebp/src/enc/quant_enc.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 263
    functionName: SetupMatrices
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached:
    - clip
    - ExpandMatrix
    - CheckLambdaValue
    linkageType: ''
    returnType: void
    signature: void SetupMatrices(VP8Encoder* enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clip
      Src: /src/libwebp/src/enc/quant_enc.c:279,1
    - Dst: VP8FilterStrengthFromDelta
      Src: /src/libwebp/src/enc/quant_enc.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 290
    functionName: SetupFilterStrength
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached:
    - clip
    - VP8FilterStrengthFromDelta
    linkageType: ''
    returnType: void
    signature: void SetupFilterStrength(VP8Encoder* const enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pow
      Src: /src/libwebp/src/enc/quant_enc.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 312
    functionName: QualityToCompression
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached:
    - pow
    linkageType: ''
    returnType: double
    signature: double QualityToCompression(double c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pow
      Src: /src/libwebp/src/enc/quant_enc.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - alpha
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 331
    functionName: QualityToJPEGCompression
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached:
    - pow
    linkageType: ''
    returnType: double
    signature: double QualityToJPEGCompression(double c, double alpha)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - S1
    - S2
    argTypes:
    - VP8SegmentInfo*
    - VP8SegmentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: SegmentsAreEquivalent
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SegmentsAreEquivalent(const VP8SegmentInfo* const S1,\n                                 const
      VP8SegmentInfo* const S2)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SegmentsAreEquivalent
      Src: /src/libwebp/src/enc/quant_enc.c:354,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - enc
    argTypes:
    - VP8Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 376
    functionName: SimplifySegments
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached:
    - SegmentsAreEquivalent
    linkageType: ''
    returnType: void
    signature: void SimplifySegments(VP8Encoder* const enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QualityToJPEGCompression
      Src: /src/libwebp/src/enc/quant_enc.c:385,1
    - Dst: QualityToCompression
      Src: /src/libwebp/src/enc/quant_enc.c:386,1
    - Dst: pow
      Src: /src/libwebp/src/enc/quant_enc.c:391,1
    - Dst: assert
      Src: /src/libwebp/src/enc/quant_enc.c:393,1
    - Dst: clip
      Src: /src/libwebp/src/enc/quant_enc.c:394,1
    - Dst: clip
      Src: /src/libwebp/src/enc/quant_enc.c:413,1
    - Dst: clip
      Src: /src/libwebp/src/enc/quant_enc.c:418,1
    - Dst: SetupFilterStrength
      Src: /src/libwebp/src/enc/quant_enc.c:426,1
    - Dst: SimplifySegments
      Src: /src/libwebp/src/enc/quant_enc.c:428,1
    - Dst: SetupMatrices
      Src: /src/libwebp/src/enc/quant_enc.c:430,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - enc
    - quality
    argTypes:
    - VP8Encoder*
    - float
    assertStmts:
    - condition: (expn > 0.)
      pos:
        line_end: 392
        line_start: 392
        source_file: /src/libwebp/src/enc/quant_enc.c
    constantsTouched: []
    func_position:
      end: 431
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 431
    functionName: VP8SetSegmentParams
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 1
    functionsReached:
    - clip
    - SimplifySegments
    - QualityToCompression
    - assert
    - QualityToJPEGCompression
    - SetupMatrices
    - pow
    - SetupFilterStrength
    linkageType: ''
    returnType: void
    signature: void VP8SetSegmentParams(VP8Encoder* const enc, float quality)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8EncPredLuma16
      Src: /src/libwebp/src/enc/quant_enc.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: VP8MakeLuma16Preds
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 1
    functionsReached:
    - VP8EncPredLuma16
    linkageType: ''
    returnType: void
    signature: void VP8MakeLuma16Preds(const VP8EncIterator* const it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8EncPredChroma8
      Src: /src/libwebp/src/enc/quant_enc.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: VP8MakeChroma8Preds
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 1
    functionsReached:
    - VP8EncPredChroma8
    linkageType: ''
    returnType: void
    signature: void VP8MakeChroma8Preds(const VP8EncIterator* const it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8EncPredLuma4
      Src: /src/libwebp/src/enc/quant_enc.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 460
    functionName: MakeIntra4Preds
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached:
    - VP8EncPredLuma4
    linkageType: ''
    returnType: void
    signature: void MakeIntra4Preds(const VP8EncIterator* const it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - rd
    argTypes:
    - VP8ModeScore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 510
    functionName: InitScore
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitScore(VP8ModeScore* const rd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 555
    functionName: NODE
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NODE(n, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 556
    functionName: SCORE_STATE
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCORE_STATE(n, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lambda
    - rd
    argTypes:
    - int
    - VP8ModeScore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 559
    functionName: SetRDScore
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE SetRDScore(int lambda, VP8ModeScore* const rd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lambda
    - rate
    - distortion
    argTypes:
    - int
    - score_t
    - score_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 564
    functionName: RDScoreTrellis
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE RDScoreTrellis(int lambda, score_t rate,\n                                          score_t
      distortion)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SCORE_STATE
      Src: /src/libwebp/src/enc/quant_enc.c:580,1
    - Dst: SCORE_STATE
      Src: /src/libwebp/src/enc/quant_enc.c:581,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/quant_enc.c:606,1
    - Dst: RDScoreTrellis
      Src: /src/libwebp/src/enc/quant_enc.c:607,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/quant_enc.c:611,1
    - Dst: RDScoreTrellis
      Src: /src/libwebp/src/enc/quant_enc.c:612,1
    - Dst: BIAS
      Src: /src/libwebp/src/enc/quant_enc.c:622,1
    - Dst: QUANTDIV
      Src: /src/libwebp/src/enc/quant_enc.c:627,1
    - Dst: QUANTDIV
      Src: /src/libwebp/src/enc/quant_enc.c:628,1
    - Dst: BIAS
      Src: /src/libwebp/src/enc/quant_enc.c:628,1
    - Dst: NODE
      Src: /src/libwebp/src/enc/quant_enc.c:640,1
    - Dst: RDScoreTrellis
      Src: /src/libwebp/src/enc/quant_enc.c:669,1
    - Dst: VP8LevelCost
      Src: /src/libwebp/src/enc/quant_enc.c:675,1
    - Dst: RDScoreTrellis
      Src: /src/libwebp/src/enc/quant_enc.c:677,1
    - Dst: VP8LevelCost
      Src: /src/libwebp/src/enc/quant_enc.c:682,1
    - Dst: RDScoreTrellis
      Src: /src/libwebp/src/enc/quant_enc.c:684,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/enc/quant_enc.c:700,1
    - Dst: RDScoreTrellis
      Src: /src/libwebp/src/enc/quant_enc.c:701,1
    - Dst: memset
      Src: /src/libwebp/src/enc/quant_enc.c:716,1
    - Dst: memset
      Src: /src/libwebp/src/enc/quant_enc.c:717,1
    - Dst: memset
      Src: /src/libwebp/src/enc/quant_enc.c:719,1
    - Dst: memset
      Src: /src/libwebp/src/enc/quant_enc.c:720,1
    - Dst: NODE
      Src: /src/libwebp/src/enc/quant_enc.c:733,1
    - Dst: NODE
      Src: /src/libwebp/src/enc/quant_enc.c:736,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 84
    argCount: 7
    argNames:
    - enc
    - in
    - out
    - ctx0
    - coeff_type
    - mtx
    - lambda
    argTypes:
    - VP8Encoder*
    - int16_t[]
    - int16_t[]
    - int
    - int
    - VP8Matrix*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 745
    functionName: TrellisQuantizeBlock
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached:
    - QUANTDIV
    - VP8BitCost
    - RDScoreTrellis
    - VP8LevelCost
    - SCORE_STATE
    - memset
    - NODE
    - BIAS
    linkageType: ''
    returnType: int
    signature: "int TrellisQuantizeBlock(const VP8Encoder* WEBP_RESTRICT const enc,\n
      \                               int16_t in[16], int16_t out[16], int ctx0,\n
      \                               int coeff_type,\n                                const
      VP8Matrix* WEBP_RESTRICT const mtx,\n                                int lambda)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: QUANTDIV
      Src: /src/libwebp/src/enc/quant_enc.c:846,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - v
    - mtx
    argTypes:
    - int16_t*
    - VP8Matrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 853
    functionName: QuantizeSingle
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached:
    - QUANTDIV
    linkageType: ''
    returnType: int
    signature: "int QuantizeSingle(int16_t* WEBP_RESTRICT const v,\n                          const
      VP8Matrix* WEBP_RESTRICT const mtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QuantizeSingle
      Src: /src/libwebp/src/enc/quant_enc.c:873,1
    - Dst: QuantizeSingle
      Src: /src/libwebp/src/enc/quant_enc.c:875,1
    - Dst: QuantizeSingle
      Src: /src/libwebp/src/enc/quant_enc.c:877,1
    - Dst: QuantizeSingle
      Src: /src/libwebp/src/enc/quant_enc.c:879,1
    - Dst: assert
      Src: /src/libwebp/src/enc/quant_enc.c:882,1
    - Dst: abs
      Src: /src/libwebp/src/enc/quant_enc.c:882,1
    - Dst: abs
      Src: /src/libwebp/src/enc/quant_enc.c:882,1
    - Dst: abs
      Src: /src/libwebp/src/enc/quant_enc.c:882,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - it
    - mtx
    - tmp
    - rd
    argTypes:
    - VP8EncIterator*
    - VP8Matrix*
    - int16_t[][]
    - VP8ModeScore*
    assertStmts:
    - condition: (abs(err1) <= 127 && abs(err2) <= 127 && abs(err3) <= 127)
      pos:
        line_end: 881
        line_start: 881
        source_file: /src/libwebp/src/enc/quant_enc.c
    constantsTouched: []
    func_position:
      end: 887
      start: 855
    functionDepth: 2
    functionLinenumber: 855
    functionLinenumberEnd: 887
    functionName: CorrectDCValues
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - abs
    - QuantizeSingle
    linkageType: ''
    returnType: void
    signature: "void CorrectDCValues(const VP8EncIterator* WEBP_RESTRICT const it,\n
      \                           const VP8Matrix* WEBP_RESTRICT const mtx,\n                            int16_t
      tmp[][16],\n                            VP8ModeScore* WEBP_RESTRICT const rd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/libwebp/src/enc/quant_enc.c:958,1
    - Dst: abs
      Src: /src/libwebp/src/enc/quant_enc.c:959,1
    - Dst: abs
      Src: /src/libwebp/src/enc/quant_enc.c:960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dqm
    - DCs
    argTypes:
    - VP8SegmentInfo*
    - int16_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 964
    functionName: StoreMaxDelta
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached:
    - abs
    linkageType: ''
    returnType: void
    signature: void StoreMaxDelta(VP8SegmentInfo* const dqm, const int16_t DCs[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - VP8ModeScore**
    - VP8ModeScore**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 970
    functionName: SwapModeScore
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SwapModeScore(VP8ModeScore** a, VP8ModeScore** b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint8_t**
    - uint8_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 976
    functionName: SwapPtr
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SwapPtr(uint8_t** a, uint8_t** b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SwapPtr
      Src: /src/libwebp/src/enc/quant_enc.c:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 980
    functionName: SwapOut
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached:
    - SwapPtr
    linkageType: ''
    returnType: void
    signature: void SwapOut(VP8EncIterator* const it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - modes
    argTypes:
    - VP8EncIterator*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1050
    functionName: GetCostModeI4
    functionSourceFile: /src/libwebp/src/enc/quant_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: "uint16_t * GetCostModeI4(VP8EncIterator* WEBP_RESTRICT const it,\n
      \                                    const uint8_t modes[16])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/enc/filter_enc.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - sharpness
    - delta
    argTypes:
    - int
    - int
    assertStmts:
    - condition: (sharpness >= 0 && sharpness <= 7)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/libwebp/src/enc/filter_enc.c
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: VP8FilterStrengthFromDelta
    functionSourceFile: /src/libwebp/src/enc/filter_enc.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int VP8FilterStrengthFromDelta(int sharpness, int delta)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - sharpness
    - level
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 87
    functionName: GetILevel
    functionSourceFile: /src/libwebp/src/enc/filter_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetILevel(int sharpness, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetILevel
      Src: /src/libwebp/src/enc/filter_enc.c:91,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/filter_enc.c:99,1
    - Dst: VP8SimpleHFilter16i
      Src: /src/libwebp/src/enc/filter_enc.c:102,1
    - Dst: VP8SimpleVFilter16i
      Src: /src/libwebp/src/enc/filter_enc.c:103,1
    - Dst: VP8HFilter16i
      Src: /src/libwebp/src/enc/filter_enc.c:106,1
    - Dst: VP8HFilter8i
      Src: /src/libwebp/src/enc/filter_enc.c:107,1
    - Dst: VP8VFilter16i
      Src: /src/libwebp/src/enc/filter_enc.c:108,1
    - Dst: VP8VFilter8i
      Src: /src/libwebp/src/enc/filter_enc.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - it
    - level
    argTypes:
    - VP8EncIterator*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 111
    functionName: DoFilter
    functionSourceFile: /src/libwebp/src/enc/filter_enc.c
    functionUses: 0
    functionsReached:
    - VP8VFilter16i
    - memcpy
    - VP8VFilter8i
    - VP8HFilter8i
    - VP8SimpleVFilter16i
    - VP8HFilter16i
    - GetILevel
    - VP8SimpleHFilter16i
    linkageType: ''
    returnType: void
    signature: void DoFilter(const VP8EncIterator* const it, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8SSIMGetClipped
      Src: /src/libwebp/src/enc/filter_enc.c:123,1
    - Dst: VP8SSIMGetClipped
      Src: /src/libwebp/src/enc/filter_enc.c:129,1
    - Dst: VP8SSIMGetClipped
      Src: /src/libwebp/src/enc/filter_enc.c:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - yuv1
    - yuv2
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 136
    functionName: GetMBSSIM
    functionSourceFile: /src/libwebp/src/enc/filter_enc.c
    functionUses: 0
    functionsReached:
    - VP8SSIMGetClipped
    linkageType: ''
    returnType: double
    signature: double GetMBSSIM(const uint8_t* yuv1, const uint8_t* yuv2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8SSIMDspInit
      Src: /src/libwebp/src/enc/filter_enc.c:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 158
    functionName: VP8InitFilter
    functionSourceFile: /src/libwebp/src/enc/filter_enc.c
    functionUses: 2
    functionsReached:
    - VP8SSIMDspInit
    linkageType: ''
    returnType: void
    signature: void VP8InitFilter(VP8EncIterator* const it)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetMBSSIM
      Src: /src/libwebp/src/enc/filter_enc.c:183,1
    - Dst: DoFilter
      Src: /src/libwebp/src/enc/filter_enc.c:190,1
    - Dst: GetMBSSIM
      Src: /src/libwebp/src/enc/filter_enc.c:191,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 196
    functionName: VP8StoreFilterStats
    functionSourceFile: /src/libwebp/src/enc/filter_enc.c
    functionUses: 2
    functionsReached:
    - DoFilter
    - GetMBSSIM
    linkageType: ''
    returnType: void
    signature: void VP8StoreFilterStats(VP8EncIterator* const it)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: VP8FilterStrengthFromDelta
      Src: /src/libwebp/src/enc/filter_enc.c:227,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - it
    argTypes:
    - VP8EncIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 237
    functionName: VP8AdjustFilterStrength
    functionSourceFile: /src/libwebp/src/enc/filter_enc.c
    functionUses: 1
    functionsReached:
    - VP8FilterStrengthFromDelta
    linkageType: ''
    returnType: void
    signature: void VP8AdjustFilterStrength(VP8EncIterator* const it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: BIAS
    functionSourceFile: /src/libwebp/src/enc/vp8i_enc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIAS(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - n
    - iQ
    - B
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: QUANTDIV
    functionSourceFile: /src/libwebp/src/enc/vp8i_enc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE QUANTDIV(uint32_t n, uint32_t iQ, uint32_t B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: GetMin
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GetMin(int a, int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: GetMax
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GetMax(int a, int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DivRound
      Src: /src/libwebp/src/enc/predictor_enc.c:54,1
    - Dst: DivRound
      Src: /src/libwebp/src/enc/predictor_enc.c:55,1
    - Dst: DivRound
      Src: /src/libwebp/src/enc/predictor_enc.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - counts
    - weight_0
    - exp_val
    argTypes:
    - uint32_t[]
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: PredictionCostBias
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached:
    - DivRound
    linkageType: ''
    returnType: int64_t
    signature: "int64_t PredictionCostBias(const uint32_t counts[256], uint64_t weight_0,\n
      \                                 uint64_t exp_val)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PredictionCostBias
      Src: /src/libwebp/src/enc/predictor_enc.c:67,1
    - Dst: VP8LCombinedShannonEntropy
      Src: /src/libwebp/src/enc/predictor_enc.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - accumulated
    - tile
    - mode
    - left_mode
    - above_mode
    argTypes:
    - uint32_t[]
    - uint32_t[]
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 78
    functionName: PredictionCostSpatialHistogram
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached:
    - PredictionCostBias
    - VP8LCombinedShannonEntropy
    linkageType: ''
    returnType: int64_t
    signature: "int64_t PredictionCostSpatialHistogram(\n    const uint32_t accumulated[HISTO_SIZE],
      const uint32_t tile[HISTO_SIZE],\n    int mode, int left_mode, int above_mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - histo_argb
    - argb
    argTypes:
    - uint32_t[]
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: UpdateHisto
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE UpdateHisto(uint32_t histo_argb[HISTO_SIZE],\n                                    uint32_t
      argb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 7
    argNames:
    - mode
    - x_start
    - y
    - num_pixels
    - current
    - upper
    - out
    argTypes:
    - int
    - int
    - int
    - int
    - uint32_t*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 113
    functionName: PredictBatch
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PredictBatch(int mode, int x_start, int y,\n                                     int
      num_pixels, const uint32_t* current,\n                                     const
      uint32_t* upper, uint32_t* out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/libwebp/src/enc/predictor_enc.c:117,1
    - Dst: abs
      Src: /src/libwebp/src/enc/predictor_enc.c:118,1
    - Dst: abs
      Src: /src/libwebp/src/enc/predictor_enc.c:119,1
    - Dst: abs
      Src: /src/libwebp/src/enc/predictor_enc.c:120,1
    - Dst: GetMax
      Src: /src/libwebp/src/enc/predictor_enc.c:121,1
    - Dst: GetMax
      Src: /src/libwebp/src/enc/predictor_enc.c:121,1
    - Dst: GetMax
      Src: /src/libwebp/src/enc/predictor_enc.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: MaxDiffBetweenPixels
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached:
    - abs
    - GetMax
    linkageType: ''
    returnType: int
    signature: int MaxDiffBetweenPixels(uint32_t p1, uint32_t p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MaxDiffBetweenPixels
      Src: /src/libwebp/src/enc/predictor_enc.c:126,1
    - Dst: MaxDiffBetweenPixels
      Src: /src/libwebp/src/enc/predictor_enc.c:127,1
    - Dst: MaxDiffBetweenPixels
      Src: /src/libwebp/src/enc/predictor_enc.c:128,1
    - Dst: MaxDiffBetweenPixels
      Src: /src/libwebp/src/enc/predictor_enc.c:129,1
    - Dst: GetMax
      Src: /src/libwebp/src/enc/predictor_enc.c:130,1
    - Dst: GetMax
      Src: /src/libwebp/src/enc/predictor_enc.c:130,1
    - Dst: GetMax
      Src: /src/libwebp/src/enc/predictor_enc.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - current
    - up
    - down
    - left
    - right
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: MaxDiffAroundPixel
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached:
    - GetMax
    - MaxDiffBetweenPixels
    linkageType: ''
    returnType: int
    signature: "int MaxDiffAroundPixel(uint32_t current, uint32_t up, uint32_t down,\n
      \                             uint32_t left, uint32_t right)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - argb
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: AddGreenToBlueAndRed
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t AddGreenToBlueAndRed(uint32_t argb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: AddGreenToBlueAndRed
      Src: /src/libwebp/src/enc/predictor_enc.c:149,1
    - Dst: AddGreenToBlueAndRed
      Src: /src/libwebp/src/enc/predictor_enc.c:150,1
    - Dst: AddGreenToBlueAndRed
      Src: /src/libwebp/src/enc/predictor_enc.c:160,1
    - Dst: AddGreenToBlueAndRed
      Src: /src/libwebp/src/enc/predictor_enc.c:161,1
    - Dst: AddGreenToBlueAndRed
      Src: /src/libwebp/src/enc/predictor_enc.c:162,1
    - Dst: MaxDiffAroundPixel
      Src: /src/libwebp/src/enc/predictor_enc.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - width
    - stride
    - argb
    - max_diffs
    - used_subtract_green
    argTypes:
    - int
    - int
    - uint32_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 166
    functionName: MaxDiffsForRow
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached:
    - MaxDiffAroundPixel
    - AddGreenToBlueAndRed
    linkageType: ''
    returnType: void
    signature: "void MaxDiffsForRow(int width, int stride, const uint32_t* const argb,\n
      \                          uint8_t* const max_diffs, int used_subtract_green)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - value
    - predict
    - boundary
    - quantization
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 199
    functionName: NearLosslessComponent
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t NearLosslessComponent(uint8_t value, uint8_t predict,\n                                     uint8_t
      boundary, int quantization)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: NearLosslessDiff
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE NearLosslessDiff(uint8_t a, uint8_t b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VP8LSubPixels
      Src: /src/libwebp/src/enc/predictor_enc.c:218,1
    - Dst: NearLosslessDiff
      Src: /src/libwebp/src/enc/predictor_enc.c:226,1
    - Dst: NearLosslessComponent
      Src: /src/libwebp/src/enc/predictor_enc.c:228,1
    - Dst: NearLosslessComponent
      Src: /src/libwebp/src/enc/predictor_enc.c:230,1
    - Dst: NearLosslessDiff
      Src: /src/libwebp/src/enc/predictor_enc.c:239,1
    - Dst: NearLosslessComponent
      Src: /src/libwebp/src/enc/predictor_enc.c:241,1
    - Dst: NearLosslessDiff
      Src: /src/libwebp/src/enc/predictor_enc.c:241,1
    - Dst: NearLosslessComponent
      Src: /src/libwebp/src/enc/predictor_enc.c:244,1
    - Dst: NearLosslessDiff
      Src: /src/libwebp/src/enc/predictor_enc.c:244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - value
    - predict
    - max_quantization
    - max_diff
    - used_subtract_green
    argTypes:
    - uint32_t
    - uint32_t
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 247
    functionName: NearLossless
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 2
    functionsReached:
    - NearLosslessDiff
    - NearLosslessComponent
    - VP8LSubPixels
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t NearLossless(uint32_t value, uint32_t predict,\n                             int
      max_quantization, int max_diff,\n                             int used_subtract_green)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PredictBatch
      Src: /src/libwebp/src/enc/predictor_enc.c:260,1
    - Dst: pred_func
      Src: /src/libwebp/src/enc/predictor_enc.c:273,1
    - Dst: VP8LSubPixels
      Src: /src/libwebp/src/enc/predictor_enc.c:278,1
    - Dst: NearLossless
      Src: /src/libwebp/src/enc/predictor_enc.c:280,1
    - Dst: VP8LAddPixels
      Src: /src/libwebp/src/enc/predictor_enc.c:283,1
    - Dst: VP8LSubPixels
      Src: /src/libwebp/src/enc/predictor_enc.c:291,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 13
    argNames:
    - width
    - height
    - upper_row
    - current_row
    - max_diffs
    - mode
    - x_start
    - x_end
    - y
    - max_quantization
    - exact
    - used_subtract_green
    - out
    argTypes:
    - int
    - int
    - uint32_t*
    - uint32_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 312
    functionName: GetResidual
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached:
    - PredictBatch
    - pred_func
    - NearLossless
    - VP8LSubPixels
    - VP8LAddPixels
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE GetResidual(\n    int width, int height, uint32_t* const
      upper_row,\n    uint32_t* const current_row, const uint8_t* const max_diffs,
      int mode,\n    int x_start, int x_end, int y, int max_quantization, int exact,\n
      \   int used_subtract_green, uint32_t* const out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - all_histos
    - subsampling_index
    - mode
    argTypes:
    - uint32_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: GetHistoArgb
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE * GetHistoArgb(uint32_t* const all_histos,\n                                          int
      subsampling_index, int mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - all_histos
    - subsampling_index
    - mode
    argTypes:
    - uint32_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: GetHistoArgbConst
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE * GetHistoArgbConst(\n    const uint32_t* const all_histos,
      int subsampling_index, int mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - all_accumulated
    - subsampling_index
    argTypes:
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: GetAccumulatedHisto
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE * GetAccumulatedHisto(uint32_t* all_accumulated,\n                                                 int
      subsampling_index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetAccumulatedHisto
      Src: /src/libwebp/src/enc/predictor_enc.c:341,1
    - Dst: GetHistoArgbConst
      Src: /src/libwebp/src/enc/predictor_enc.c:356,1
    - Dst: GetHistoArgbConst
      Src: /src/libwebp/src/enc/predictor_enc.c:359,1
    - Dst: PredictionCostSpatialHistogram
      Src: /src/libwebp/src/enc/predictor_enc.c:360,1
    - Dst: VP8LAddVectorEq
      Src: /src/libwebp/src/enc/predictor_enc.c:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 8
    argNames:
    - all_argb
    - subsampling_index
    - tile_x
    - tile_y
    - tiles_per_row
    - all_accumulated_argb
    - all_modes
    - all_pred_histos
    argTypes:
    - uint32_t*
    - int
    - int
    - int
    - int
    - uint32_t*
    - uint32_t**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 373
    functionName: GetBestPredictorForTile
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached:
    - GetHistoArgbConst
    - PredictionCostSpatialHistogram
    - VP8LAddVectorEq
    - GetAccumulatedHisto
    linkageType: ''
    returnType: void
    signature: "void GetBestPredictorForTile(const uint32_t* const all_argb,\n                                    int
      subsampling_index, int tile_x,\n                                    int tile_y,
      int tiles_per_row,\n                                    uint32_t* all_accumulated_argb,\n
      \                                   uint32_t** const all_modes,\n                                    uint32_t*
      const all_pred_histos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetMin
      Src: /src/libwebp/src/enc/predictor_enc.c:388,1
    - Dst: GetMin
      Src: /src/libwebp/src/enc/predictor_enc.c:389,1
    - Dst: assert
      Src: /src/libwebp/src/enc/predictor_enc.c:407,1
    - Dst: GetHistoArgb
      Src: /src/libwebp/src/enc/predictor_enc.c:411,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/predictor_enc.c:417,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/predictor_enc.c:431,1
    - Dst: MaxDiffsForRow
      Src: /src/libwebp/src/enc/predictor_enc.c:435,1
    - Dst: GetResidual
      Src: /src/libwebp/src/enc/predictor_enc.c:440,1
    - Dst: UpdateHisto
      Src: /src/libwebp/src/enc/predictor_enc.c:444,1
    - Dst: GetHistoArgb
      Src: /src/libwebp/src/enc/predictor_enc.c:451,1
    - Dst: UpdateHisto
      Src: /src/libwebp/src/enc/predictor_enc.c:453,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 12
    argNames:
    - width
    - height
    - tile_x
    - tile_y
    - min_bits
    - update_up_to_index
    - all_argb
    - argb_scratch
    - argb
    - max_quantization
    - exact
    - used_subtract_green
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - uint32_t
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - int
    - int
    - int
    assertStmts:
    - condition: (max_x <= (1 << MAX_TRANSFORM_BITS))
      pos:
        line_end: 406
        line_start: 406
        source_file: /src/libwebp/src/enc/predictor_enc.c
    constantsTouched: []
    func_position:
      end: 459
      start: 380
    functionDepth: 4
    functionLinenumber: 380
    functionLinenumberEnd: 459
    functionName: ComputeResidualsForTile
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached:
    - UpdateHisto
    - assert
    - memcpy
    - GetMin
    - GetHistoArgb
    - GetResidual
    - MaxDiffsForRow
    linkageType: ''
    returnType: void
    signature: "void ComputeResidualsForTile(\n    int width, int height, int tile_x,
      int tile_y, int min_bits,\n    uint32_t update_up_to_index, uint32_t* const
      all_argb,\n    uint32_t* const argb_scratch, const uint32_t* const argb,\n    int
      max_quantization, int exact, int used_subtract_green)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/predictor_enc.c:471,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/predictor_enc.c:488,1
    - Dst: PredictBatch
      Src: /src/libwebp/src/enc/predictor_enc.c:492,1
    - Dst: MaxDiffsForRow
      Src: /src/libwebp/src/enc/predictor_enc.c:504,1
    - Dst: GetResidual
      Src: /src/libwebp/src/enc/predictor_enc.c:514,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 10
    argNames:
    - width
    - height
    - bits
    - modes
    - argb_scratch
    - argb
    - low_effort
    - max_quantization
    - exact
    - used_subtract_green
    argTypes:
    - int
    - int
    - int
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 465
    functionDepth: 4
    functionLinenumber: 465
    functionLinenumberEnd: 521
    functionName: CopyImageWithPrediction
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached:
    - PredictBatch
    - memcpy
    - VP8LSubSampleSize
    - GetResidual
    - MaxDiffsForRow
    linkageType: ''
    returnType: void
    signature: "void CopyImageWithPrediction(int width, int height, int bits,\n                                    const
      uint32_t* const modes,\n                                    uint32_t* const
      argb_scratch,\n                                    uint32_t* const argb, int
      low_effort,\n                                    int max_quantization, int exact,\n
      \                                   int used_subtract_green)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/predictor_enc.c:528,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/predictor_enc.c:529,1
    - Dst: memcmp
      Src: /src/libwebp/src/enc/predictor_enc.c:540,1
    - Dst: GetMin
      Src: /src/libwebp/src/enc/predictor_enc.c:561,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/predictor_enc.c:579,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/predictor_enc.c:580,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 6
    argNames:
    - image
    - full_width
    - full_height
    - bits
    - max_bits
    - best_bits_out
    argTypes:
    - uint32_t*
    - int
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 587
    functionName: VP8LOptimizeSampling
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 1
    functionsReached:
    - memcmp
    - VP8LSubSampleSize
    - GetMin
    linkageType: ''
    returnType: void
    signature: "void VP8LOptimizeSampling(uint32_t* const image, int full_width,\n
      \                         int full_height, int bits, int max_bits,\n                          int*
      best_bits_out)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/predictor_enc.c:620,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/predictor_enc.c:621,1
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/enc/predictor_enc.c:630,1
    - Dst: GetMax
      Src: /src/libwebp/src/enc/predictor_enc.c:647,1
    - Dst: GetMin
      Src: /src/libwebp/src/enc/predictor_enc.c:647,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/predictor_enc.c:656,1
    - Dst: ComputeResidualsForTile
      Src: /src/libwebp/src/enc/predictor_enc.c:661,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/predictor_enc.c:671,1
    - Dst: GetBestPredictorForTile
      Src: /src/libwebp/src/enc/predictor_enc.c:672,1
    - Dst: VP8LAddVectorEq
      Src: /src/libwebp/src/enc/predictor_enc.c:682,1
    - Dst: GetHistoArgbConst
      Src: /src/libwebp/src/enc/predictor_enc.c:683,1
    - Dst: GetHistoArgb
      Src: /src/libwebp/src/enc/predictor_enc.c:684,1
    - Dst: memset
      Src: /src/libwebp/src/enc/predictor_enc.c:700,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/predictor_enc.c:736,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/predictor_enc.c:739,1
    - Dst: GetAccumulatedHisto
      Src: /src/libwebp/src/enc/predictor_enc.c:750,1
    - Dst: VP8LShannonEntropy
      Src: /src/libwebp/src/enc/predictor_enc.c:751,1
    - Dst: VP8LShannonEntropy
      Src: /src/libwebp/src/enc/predictor_enc.c:754,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/predictor_enc.c:763,1
    - Dst: VP8LOptimizeSampling
      Src: /src/libwebp/src/enc/predictor_enc.c:765,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 67
    argCount: 15
    argNames:
    - width
    - height
    - min_bits
    - max_bits
    - argb_scratch
    - argb
    - max_quantization
    - exact
    - used_subtract_green
    - pic
    - percent_range
    - percent
    - all_modes
    - best_bits
    - best_mode
    argTypes:
    - int
    - int
    - int
    - int
    - uint32_t*
    - uint32_t*
    - int
    - int
    - int
    - WebPPicture*
    - int
    - int*
    - uint32_t**
    - int*
    - uint32_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 614
    functionDepth: 5
    functionLinenumber: 614
    functionLinenumberEnd: 767
    functionName: GetBestPredictorsAndSubSampling
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached:
    - GetAccumulatedHisto
    - VP8LSubSampleSize
    - ComputeResidualsForTile
    - GetMax
    - WebPSafeCalloc
    - VP8LShannonEntropy
    - VP8LAddVectorEq
    - GetBestPredictorForTile
    - memset
    - WebPReportProgress
    - VP8LOptimizeSampling
    - GetMin
    - GetHistoArgbConst
    - GetHistoArgb
    - WebPEncodingSetError
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: "void GetBestPredictorsAndSubSampling(\n    int width, int height,
      const int min_bits, const int max_bits,\n    uint32_t* const argb_scratch, const
      uint32_t* const argb,\n    int max_quantization, int exact, int used_subtract_green,\n
      \   const WebPPicture* const pic, int percent_range, int* const percent,\n    uint32_t**
      const all_modes, int* best_bits, uint32_t** best_mode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VP8LNearLosslessBits
      Src: /src/libwebp/src/enc/predictor_enc.c:781,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/predictor_enc.c:783,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/predictor_enc.c:784,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/predictor_enc.c:798,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/predictor_enc.c:799,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/enc/predictor_enc.c:803,1
    - Dst: WebPEncodingSetError
      Src: /src/libwebp/src/enc/predictor_enc.c:805,1
    - Dst: GetBestPredictorsAndSubSampling
      Src: /src/libwebp/src/enc/predictor_enc.c:813,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/predictor_enc.c:818,1
    - Dst: memcpy
      Src: /src/libwebp/src/enc/predictor_enc.c:822,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/predictor_enc.c:823,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/predictor_enc.c:824,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/enc/predictor_enc.c:825,1
    - Dst: CopyImageWithPrediction
      Src: /src/libwebp/src/enc/predictor_enc.c:828,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/predictor_enc.c:831,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 15
    argNames:
    - width
    - height
    - min_bits
    - max_bits
    - low_effort
    - argb
    - argb_scratch
    - image
    - near_lossless_quality
    - exact
    - used_subtract_green
    - pic
    - percent_range
    - percent
    - best_bits
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - int
    - int
    - int
    - WebPPicture*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 773
    functionDepth: 6
    functionLinenumber: 773
    functionLinenumberEnd: 832
    functionName: VP8LResidualImage
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 1
    functionsReached:
    - VP8LNearLosslessBits
    - memcpy
    - VP8LSubSampleSize
    - GetBestPredictorsAndSubSampling
    - WebPSafeMalloc
    - CopyImageWithPrediction
    - WebPReportProgress
    - WebPEncodingSetError
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: "int VP8LResidualImage(int width, int height, int min_bits, int max_bits,\n
      \                     int low_effort, uint32_t* const argb,\n                      uint32_t*
      const argb_scratch, uint32_t* const image,\n                      int near_lossless_quality,
      int exact,\n                      int used_subtract_green, const WebPPicture*
      const pic,\n                      int percent_range, int* const percent,\n                      int*
      const best_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - VP8LMultipliers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 841
    functionName: MultipliersClear
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE MultipliersClear(VP8LMultipliers* const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - color_code
    - m
    argTypes:
    - uint32_t
    - VP8LMultipliers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 848
    functionName: ColorCodeToMultipliers
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ColorCodeToMultipliers(uint32_t color_code,\n                                               VP8LMultipliers*
      const m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - VP8LMultipliers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 854
    functionName: MultipliersToColorCode
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE MultipliersToColorCode(const VP8LMultipliers* const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LCombinedShannonEntropy
      Src: /src/libwebp/src/enc/predictor_enc.c:861,1
    - Dst: PredictionCostBias
      Src: /src/libwebp/src/enc/predictor_enc.c:862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - accumulated
    - counts
    argTypes:
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 856
    functionDepth: 2
    functionLinenumber: 856
    functionLinenumberEnd: 863
    functionName: PredictionCostCrossColor
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached:
    - PredictionCostBias
    - VP8LCombinedShannonEntropy
    linkageType: ''
    returnType: int64_t
    signature: "int64_t PredictionCostCrossColor(const uint32_t accumulated[256],\n
      \                                       const uint32_t counts[256])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VP8LCollectColorRedTransforms
      Src: /src/libwebp/src/enc/predictor_enc.c:872,1
    - Dst: PredictionCostCrossColor
      Src: /src/libwebp/src/enc/predictor_enc.c:875,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 8
    argNames:
    - argb
    - stride
    - tile_width
    - tile_height
    - prev_x
    - prev_y
    - green_to_red
    - accumulated_red_histo
    argTypes:
    - uint32_t*
    - int
    - int
    - int
    - VP8LMultipliers
    - VP8LMultipliers
    - int
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 865
    functionDepth: 3
    functionLinenumber: 865
    functionLinenumberEnd: 888
    functionName: GetPredictionCostCrossColorRed
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached:
    - VP8LCollectColorRedTransforms
    - PredictionCostCrossColor
    linkageType: ''
    returnType: int64_t
    signature: "int64_t GetPredictionCostCrossColorRed(\n    const uint32_t* argb,
      int stride, int tile_width, int tile_height,\n    VP8LMultipliers prev_x, VP8LMultipliers
      prev_y, int green_to_red,\n    const uint32_t accumulated_red_histo[256])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetPredictionCostCrossColorRed
      Src: /src/libwebp/src/enc/predictor_enc.c:898,1
    - Dst: GetPredictionCostCrossColorRed
      Src: /src/libwebp/src/enc/predictor_enc.c:909,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 9
    argNames:
    - argb
    - stride
    - tile_width
    - tile_height
    - prev_x
    - prev_y
    - quality
    - accumulated_red_histo
    - best_tx
    argTypes:
    - uint32_t*
    - int
    - int
    - int
    - VP8LMultipliers
    - VP8LMultipliers
    - int
    - uint32_t[]
    - VP8LMultipliers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 890
    functionDepth: 4
    functionLinenumber: 890
    functionLinenumberEnd: 919
    functionName: GetBestGreenToRed
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached:
    - GetPredictionCostCrossColorRed
    linkageType: ''
    returnType: void
    signature: "void GetBestGreenToRed(const uint32_t* argb, int stride, int tile_width,\n
      \                             int tile_height, VP8LMultipliers prev_x,\n                              VP8LMultipliers
      prev_y, int quality,\n                              const uint32_t accumulated_red_histo[256],\n
      \                             VP8LMultipliers* const best_tx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VP8LCollectColorBlueTransforms
      Src: /src/libwebp/src/enc/predictor_enc.c:928,1
    - Dst: PredictionCostCrossColor
      Src: /src/libwebp/src/enc/predictor_enc.c:931,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 9
    argNames:
    - argb
    - stride
    - tile_width
    - tile_height
    - prev_x
    - prev_y
    - green_to_blue
    - red_to_blue
    - accumulated_blue_histo
    argTypes:
    - uint32_t*
    - int
    - int
    - int
    - VP8LMultipliers
    - VP8LMultipliers
    - int
    - int
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 921
    functionDepth: 3
    functionLinenumber: 921
    functionLinenumberEnd: 955
    functionName: GetPredictionCostCrossColorBlue
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached:
    - VP8LCollectColorBlueTransforms
    - PredictionCostCrossColor
    linkageType: ''
    returnType: int64_t
    signature: "int64_t GetPredictionCostCrossColorBlue(\n    const uint32_t* argb,
      int stride, int tile_width, int tile_height,\n    VP8LMultipliers prev_x, VP8LMultipliers
      prev_y, int green_to_blue,\n    int red_to_blue, const uint32_t accumulated_blue_histo[256])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetPredictionCostCrossColorBlue
      Src: /src/libwebp/src/enc/predictor_enc.c:976,1
    - Dst: GetPredictionCostCrossColorBlue
      Src: /src/libwebp/src/enc/predictor_enc.c:986,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 9
    argNames:
    - argb
    - stride
    - tile_width
    - tile_height
    - prev_x
    - prev_y
    - quality
    - accumulated_blue_histo
    - best_tx
    argTypes:
    - uint32_t*
    - int
    - int
    - int
    - VP8LMultipliers
    - VP8LMultipliers
    - int
    - uint32_t[]
    - VP8LMultipliers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 959
    functionDepth: 4
    functionLinenumber: 959
    functionLinenumberEnd: 1002
    functionName: GetBestGreenRedToBlue
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached:
    - GetPredictionCostCrossColorBlue
    linkageType: ''
    returnType: void
    signature: "void GetBestGreenRedToBlue(const uint32_t* argb, int stride,\n                                  int
      tile_width, int tile_height,\n                                  VP8LMultipliers
      prev_x,\n                                  VP8LMultipliers prev_y, int quality,\n
      \                                 const uint32_t accumulated_blue_histo[256],\n
      \                                 VP8LMultipliers* const best_tx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetMin
      Src: /src/libwebp/src/enc/predictor_enc.c:1014,1
    - Dst: GetMin
      Src: /src/libwebp/src/enc/predictor_enc.c:1015,1
    - Dst: MultipliersClear
      Src: /src/libwebp/src/enc/predictor_enc.c:1021,1
    - Dst: GetBestGreenToRed
      Src: /src/libwebp/src/enc/predictor_enc.c:1023,1
    - Dst: GetBestGreenRedToBlue
      Src: /src/libwebp/src/enc/predictor_enc.c:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 11
    argNames:
    - tile_x
    - tile_y
    - bits
    - prev_x
    - prev_y
    - quality
    - xsize
    - ysize
    - accumulated_red_histo
    - accumulated_blue_histo
    - argb
    argTypes:
    - int
    - int
    - int
    - VP8LMultipliers
    - VP8LMultipliers
    - int
    - int
    - int
    - uint32_t[]
    - uint32_t[]
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1006
    functionDepth: 5
    functionLinenumber: 1006
    functionLinenumberEnd: 1028
    functionName: GetBestColorTransformForTile
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached:
    - GetBestGreenRedToBlue
    - GetBestGreenToRed
    - MultipliersClear
    - GetMin
    linkageType: ''
    returnType: VP8LMultipliers
    signature: "VP8LMultipliers GetBestColorTransformForTile(\n    int tile_x, int
      tile_y, int bits, VP8LMultipliers prev_x,\n    VP8LMultipliers prev_y, int quality,
      int xsize, int ysize,\n    const uint32_t accumulated_red_histo[256],\n    const
      uint32_t accumulated_blue_histo[256], const uint32_t* const argb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetMin
      Src: /src/libwebp/src/enc/predictor_enc.c:1034,1
    - Dst: GetMin
      Src: /src/libwebp/src/enc/predictor_enc.c:1035,1
    - Dst: VP8LTransformColor
      Src: /src/libwebp/src/enc/predictor_enc.c:1038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - xsize
    - ysize
    - tile_x
    - tile_y
    - max_tile_size
    - color_transform
    - argb
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - VP8LMultipliers
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1030
    functionDepth: 1
    functionLinenumber: 1030
    functionLinenumberEnd: 1041
    functionName: CopyTileWithColorTransform
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 0
    functionsReached:
    - VP8LTransformColor
    - GetMin
    linkageType: ''
    returnType: void
    signature: "void CopyTileWithColorTransform(int xsize, int ysize, int tile_x,\n
      \                                      int tile_y, int max_tile_size,\n                                       VP8LMultipliers
      color_transform,\n                                       uint32_t* argb)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/predictor_enc.c:1048,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/enc/predictor_enc.c:1049,1
    - Dst: MultipliersClear
      Src: /src/libwebp/src/enc/predictor_enc.c:1055,1
    - Dst: MultipliersClear
      Src: /src/libwebp/src/enc/predictor_enc.c:1056,1
    - Dst: GetMin
      Src: /src/libwebp/src/enc/predictor_enc.c:1062,1
    - Dst: GetMin
      Src: /src/libwebp/src/enc/predictor_enc.c:1063,1
    - Dst: ColorCodeToMultipliers
      Src: /src/libwebp/src/enc/predictor_enc.c:1066,1
    - Dst: GetBestColorTransformForTile
      Src: /src/libwebp/src/enc/predictor_enc.c:1068,1
    - Dst: MultipliersToColorCode
      Src: /src/libwebp/src/enc/predictor_enc.c:1071,1
    - Dst: CopyTileWithColorTransform
      Src: /src/libwebp/src/enc/predictor_enc.c:1072,1
    - Dst: WebPReportProgress
      Src: /src/libwebp/src/enc/predictor_enc.c:1093,1
    - Dst: VP8LOptimizeSampling
      Src: /src/libwebp/src/enc/predictor_enc.c:1099,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 10
    argNames:
    - width
    - height
    - bits
    - quality
    - argb
    - image
    - pic
    - percent_range
    - percent
    - best_bits
    argTypes:
    - int
    - int
    - int
    - int
    - uint32_t*
    - uint32_t*
    - WebPPicture*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1043
    functionDepth: 6
    functionLinenumber: 1043
    functionLinenumberEnd: 1102
    functionName: VP8LColorSpaceTransform
    functionSourceFile: /src/libwebp/src/enc/predictor_enc.c
    functionUses: 1
    functionsReached:
    - MultipliersClear
    - VP8LSubSampleSize
    - ColorCodeToMultipliers
    - GetBestColorTransformForTile
    - WebPReportProgress
    - VP8LOptimizeSampling
    - MultipliersToColorCode
    - GetMin
    - CopyTileWithColorTransform
    linkageType: ''
    returnType: int
    signature: "int VP8LColorSpaceTransform(int width, int height, int bits, int quality,\n
      \                           uint32_t* const argb, uint32_t* image,\n                            const
      WebPPicture* const pic, int percent_range,\n                            int*
      const percent, int* const best_bits)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ptr
    - stride
    - size
    argTypes:
    - uint32_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 40
    functionName: IsTransparentARGBArea
    functionSourceFile: /src/libwebp/src/enc/picture_tools_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IsTransparentARGBArea(const uint32_t* ptr, int stride, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/enc/picture_tools_enc.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ptr
    - v
    - stride
    - size
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: Flatten
    functionSourceFile: /src/libwebp/src/enc/picture_tools_enc.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void Flatten(uint8_t* ptr, int v, int stride, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - v
    - stride
    - size
    argTypes:
    - uint32_t*
    - uint32_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: FlattenARGB
    functionSourceFile: /src/libwebp/src/enc/picture_tools_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FlattenARGB(uint32_t* ptr, uint32_t v, int stride, int size)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 6
    argNames:
    - a_ptr
    - a_stride
    - y_ptr
    - y_stride
    - width
    - height
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 89
    functionName: SmoothenBlock
    functionSourceFile: /src/libwebp/src/enc/picture_tools_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SmoothenBlock(const uint8_t* a_ptr, int a_stride, uint8_t* y_ptr,\n
      \                        int y_stride, int width, int height)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPInitAlphaProcessing
      Src: /src/libwebp/src/enc/picture_tools_enc.c:96,1
    - Dst: WebPAlphaReplace
      Src: /src/libwebp/src/enc/picture_tools_enc.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pic
    - color
    argTypes:
    - WebPPicture*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: WebPReplaceTransparentPixels
    functionSourceFile: /src/libwebp/src/enc/picture_tools_enc.c
    functionUses: 1
    functionsReached:
    - WebPAlphaReplace
    - WebPInitAlphaProcessing
    linkageType: ''
    returnType: void
    signature: void WebPReplaceTransparentPixels(WebPPicture* const pic, uint32_t
      color)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: IsTransparentARGBArea
      Src: /src/libwebp/src/enc/picture_tools_enc.c:117,1
    - Dst: FlattenARGB
      Src: /src/libwebp/src/enc/picture_tools_enc.c:122,1
    - Dst: SmoothenBlock
      Src: /src/libwebp/src/enc/picture_tools_enc.c:145,1
    - Dst: Flatten
      Src: /src/libwebp/src/enc/picture_tools_enc.c:153,1
    - Dst: Flatten
      Src: /src/libwebp/src/enc/picture_tools_enc.c:154,1
    - Dst: Flatten
      Src: /src/libwebp/src/enc/picture_tools_enc.c:155,1
    - Dst: SmoothenBlock
      Src: /src/libwebp/src/enc/picture_tools_enc.c:161,1
    - Dst: SmoothenBlock
      Src: /src/libwebp/src/enc/picture_tools_enc.c:172,1
    - Dst: SmoothenBlock
      Src: /src/libwebp/src/enc/picture_tools_enc.c:176,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 1
    argNames:
    - pic
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 181
    functionName: WebPCleanupTransparentArea
    functionSourceFile: /src/libwebp/src/enc/picture_tools_enc.c
    functionUses: 1
    functionsReached:
    - IsTransparentARGBArea
    - FlattenARGB
    - SmoothenBlock
    - Flatten
    linkageType: ''
    returnType: void
    signature: void WebPCleanupTransparentArea(WebPPicture* pic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - V0
    - ','
    - V1
    - ','
    - ALPHA
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: BLEND
    functionSourceFile: /src/libwebp/src/enc/picture_tools_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLEND(V0, V1, ALPHA)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - V0
    - ','
    - V1
    - ','
    - ALPHA
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: BLEND_10BIT
    functionSourceFile: /src/libwebp/src/enc/picture_tools_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLEND_10BIT(V0, V1, ALPHA)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - g
    - b
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: MakeARGB32
    functionSourceFile: /src/libwebp/src/enc/picture_tools_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE MakeARGB32(int r, int g, int b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: VP8RGBToY
      Src: /src/libwebp/src/enc/picture_tools_enc.c:207,1
    - Dst: VP8RGBToU
      Src: /src/libwebp/src/enc/picture_tools_enc.c:209,1
    - Dst: VP8RGBToV
      Src: /src/libwebp/src/enc/picture_tools_enc.c:210,1
    - Dst: BLEND
      Src: /src/libwebp/src/enc/picture_tools_enc.c:222,1
    - Dst: BLEND_10BIT
      Src: /src/libwebp/src/enc/picture_tools_enc.c:234,1
    - Dst: BLEND_10BIT
      Src: /src/libwebp/src/enc/picture_tools_enc.c:235,1
    - Dst: BLEND_10BIT
      Src: /src/libwebp/src/enc/picture_tools_enc.c:239,1
    - Dst: BLEND_10BIT
      Src: /src/libwebp/src/enc/picture_tools_enc.c:240,1
    - Dst: memset
      Src: /src/libwebp/src/enc/picture_tools_enc.c:246,1
    - Dst: MakeARGB32
      Src: /src/libwebp/src/enc/picture_tools_enc.c:252,1
    - Dst: BLEND
      Src: /src/libwebp/src/enc/picture_tools_enc.c:261,1
    - Dst: BLEND
      Src: /src/libwebp/src/enc/picture_tools_enc.c:262,1
    - Dst: BLEND
      Src: /src/libwebp/src/enc/picture_tools_enc.c:263,1
    - Dst: MakeARGB32
      Src: /src/libwebp/src/enc/picture_tools_enc.c:264,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 2
    argNames:
    - picture
    - background_rgb
    argTypes:
    - WebPPicture*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 273
    functionName: WebPBlendAlpha
    functionSourceFile: /src/libwebp/src/enc/picture_tools_enc.c
    functionUses: 0
    functionsReached:
    - BLEND
    - MakeARGB32
    - VP8RGBToU
    - VP8RGBToV
    - memset
    - VP8RGBToY
    - BLEND_10BIT
    linkageType: ''
    returnType: void
    signature: void WebPBlendAlpha(WebPPicture* picture, uint32_t background_rgb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: CHANNEL_SHIFT
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHANNEL_SHIFT(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: CHANNEL_SHIFT
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHANNEL_SHIFT(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dec_options
    argTypes:
    - WebPAnimDecoderOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: DefaultDecoderOptions
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DefaultDecoderOptions(WebPAnimDecoderOptions* const dec_options)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_ABI_IS_INCOMPATIBLE
      Src: /src/libwebp/src/demux/anim_decode.c:69,1
    - Dst: DefaultDecoderOptions
      Src: /src/libwebp/src/demux/anim_decode.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dec_options
    - abi_version
    argTypes:
    - WebPAnimDecoderOptions*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: WebPAnimDecoderOptionsInitInternal
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 0
    functionsReached:
    - WEBP_ABI_IS_INCOMPATIBLE
    - DefaultDecoderOptions
    linkageType: ''
    returnType: int
    signature: "int WebPAnimDecoderOptionsInitInternal(WebPAnimDecoderOptions* dec_options,\n
      \                                      int abi_version)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/demux/anim_decode.c:81,1
    - Dst: WebPInitDecoderConfig
      Src: /src/libwebp/src/demux/anim_decode.c:91,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - dec_options
    - dec
    argTypes:
    - WebPAnimDecoderOptions*
    - WebPAnimDecoder*
    assertStmts:
    - condition: (dec_options != NULL)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/libwebp/src/demux/anim_decode.c
    constantsTouched: []
    func_position:
      end: 99
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 99
    functionName: ApplyDecoderOptions
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPInitDecoderConfig
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD ApplyDecoderOptions(\n    const WebPAnimDecoderOptions*
      const dec_options,\n    WebPAnimDecoder* const dec)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_ABI_IS_INCOMPATIBLE
      Src: /src/libwebp/src/demux/anim_decode.c:108,1
    - Dst: WebPGetFeatures
      Src: /src/libwebp/src/demux/anim_decode.c:114,1
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/demux/anim_decode.c:120,1
    - Dst: DefaultDecoderOptions
      Src: /src/libwebp/src/demux/anim_decode.c:126,1
    - Dst: ApplyDecoderOptions
      Src: /src/libwebp/src/demux/anim_decode.c:128,1
    - Dst: WebPDemux
      Src: /src/libwebp/src/demux/anim_decode.c:130,1
    - Dst: WebPDemuxGetI
      Src: /src/libwebp/src/demux/anim_decode.c:133,1
    - Dst: WebPDemuxGetI
      Src: /src/libwebp/src/demux/anim_decode.c:134,1
    - Dst: WebPDemuxGetI
      Src: /src/libwebp/src/demux/anim_decode.c:135,1
    - Dst: WebPDemuxGetI
      Src: /src/libwebp/src/demux/anim_decode.c:136,1
    - Dst: WebPDemuxGetI
      Src: /src/libwebp/src/demux/anim_decode.c:137,1
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/demux/anim_decode.c:140,1
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/demux/anim_decode.c:143,1
    - Dst: WebPAnimDecoderReset
      Src: /src/libwebp/src/demux/anim_decode.c:147,1
    - Dst: WebPAnimDecoderDelete
      Src: /src/libwebp/src/demux/anim_decode.c:151,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - webp_data
    - dec_options
    - abi_version
    argTypes:
    - WebPData*
    - WebPAnimDecoderOptions*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 153
    functionName: WebPAnimDecoderNewInternal
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 0
    functionsReached:
    - WebPDemux
    - WebPDemuxGetI
    - WebPAnimDecoderReset
    - ApplyDecoderOptions
    - WebPAnimDecoderDelete
    - DefaultDecoderOptions
    - WebPSafeCalloc
    - WEBP_ABI_IS_INCOMPATIBLE
    - WebPGetFeatures
    linkageType: ''
    returnType: WebPAnimDecoder
    signature: "WebPAnimDecoder * WebPAnimDecoderNewInternal(\n    const WebPData*
      webp_data, const WebPAnimDecoderOptions* dec_options,\n    int abi_version)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - dec
    - info
    argTypes:
    - WebPAnimDecoder*
    - WebPAnimInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: WebPAnimDecoderGetInfo
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int WebPAnimDecoderGetInfo(const WebPAnimDecoder* dec, WebPAnimInfo*
      info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - width
    - height
    - canvas_width
    - canvas_height
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: IsFullFrame
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int IsFullFrame(int width, int height, int canvas_width,\n                       int
      canvas_height)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CheckSizeOverflow
      Src: /src/libwebp/src/demux/anim_decode.c:172,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/demux/anim_decode.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - canvas_width
    - canvas_height
    argTypes:
    - uint8_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 175
    functionName: ZeroFillCanvas
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 0
    functionsReached:
    - WEBP_UNSAFE_MEMSET
    - CheckSizeOverflow
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD ZeroFillCanvas(uint8_t* buf, uint32_t canvas_width,\n
      \                                        uint32_t canvas_height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/demux/anim_decode.c:183,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/demux/anim_decode.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - buf
    - buf_stride
    - x_offset
    - y_offset
    - width
    - height
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (width * NUM_CHANNELS <= buf_stride)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/libwebp/src/demux/anim_decode.c
    constantsTouched: []
    func_position:
      end: 189
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 189
    functionName: ZeroFillFrameRect
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 0
    functionsReached:
    - assert
    - WEBP_UNSAFE_MEMSET
    linkageType: ''
    returnType: void
    signature: "void ZeroFillFrameRect(uint8_t* buf, int buf_stride, int x_offset,\n
      \                             int y_offset, int width, int height)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CheckSizeOverflow
      Src: /src/libwebp/src/demux/anim_decode.c:195,1
    - Dst: assert
      Src: /src/libwebp/src/demux/anim_decode.c:196,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/demux/anim_decode.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - src
    - dst
    - width
    - height
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint32_t
    assertStmts:
    - condition: (src != NULL && dst != NULL)
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/libwebp/src/demux/anim_decode.c
    constantsTouched: []
    func_position:
      end: 199
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: CopyCanvas
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 0
    functionsReached:
    - assert
    - WEBP_UNSAFE_MEMCPY
    - CheckSizeOverflow
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD CopyCanvas(const uint8_t* src, uint8_t* dst,\n                                     uint32_t
      width, uint32_t height)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsFullFrame
      Src: /src/libwebp/src/demux/anim_decode.c:209,1
    - Dst: IsFullFrame
      Src: /src/libwebp/src/demux/anim_decode.c:214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 5
    argNames:
    - curr
    - prev
    - prev_frame_was_key_frame
    - canvas_width
    - canvas_height
    argTypes:
    - WebPIterator*
    - WebPIterator*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 218
    functionName: IsKeyFrame
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 0
    functionsReached:
    - IsFullFrame
    linkageType: ''
    returnType: int
    signature: "int IsKeyFrame(const WebPIterator* const curr,\n                      const
      WebPIterator* const prev,\n                      int prev_frame_was_key_frame,
      int canvas_width,\n                      int canvas_height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/demux/anim_decode.c:228,1
    - Dst: CHANNEL_SHIFT
      Src: /src/libwebp/src/demux/anim_decode.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - src
    - src_a
    - dst
    - dst_a
    - scale
    - shift
    argTypes:
    - uint32_t
    - uint8_t
    - uint32_t
    - uint8_t
    - uint32_t
    - int
    assertStmts:
    - condition: (blend_unscaled < (1ULL << 32) / scale)
      pos:
        line_end: 227
        line_start: 227
        source_file: /src/libwebp/src/demux/anim_decode.c
    constantsTouched: []
    func_position:
      end: 230
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 230
    functionName: BlendChannelNonPremult
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 0
    functionsReached:
    - assert
    - CHANNEL_SHIFT
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t BlendChannelNonPremult(uint32_t src, uint8_t src_a, uint32_t
      dst,\n                                      uint8_t dst_a, uint32_t scale,\n
      \                                     int shift)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHANNEL_SHIFT
      Src: /src/libwebp/src/demux/anim_decode.c:234,1
    - Dst: CHANNEL_SHIFT
      Src: /src/libwebp/src/demux/anim_decode.c:239,1
    - Dst: BlendChannelNonPremult
      Src: /src/libwebp/src/demux/anim_decode.c:246,1
    - Dst: CHANNEL_SHIFT
      Src: /src/libwebp/src/demux/anim_decode.c:247,1
    - Dst: BlendChannelNonPremult
      Src: /src/libwebp/src/demux/anim_decode.c:248,1
    - Dst: CHANNEL_SHIFT
      Src: /src/libwebp/src/demux/anim_decode.c:249,1
    - Dst: BlendChannelNonPremult
      Src: /src/libwebp/src/demux/anim_decode.c:250,1
    - Dst: CHANNEL_SHIFT
      Src: /src/libwebp/src/demux/anim_decode.c:251,1
    - Dst: assert
      Src: /src/libwebp/src/demux/anim_decode.c:252,1
    - Dst: CHANNEL_SHIFT
      Src: /src/libwebp/src/demux/anim_decode.c:254,1
    - Dst: CHANNEL_SHIFT
      Src: /src/libwebp/src/demux/anim_decode.c:255,1
    - Dst: CHANNEL_SHIFT
      Src: /src/libwebp/src/demux/anim_decode.c:256,1
    - Dst: CHANNEL_SHIFT
      Src: /src/libwebp/src/demux/anim_decode.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts:
    - condition: (src_a + dst_factor_a < 256)
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/libwebp/src/demux/anim_decode.c
    constantsTouched: []
    func_position:
      end: 259
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 259
    functionName: BlendPixelNonPremult
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 0
    functionsReached:
    - assert
    - BlendChannelNonPremult
    - CHANNEL_SHIFT
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t BlendPixelNonPremult(uint32_t src, uint32_t dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHANNEL_SHIFT
      Src: /src/libwebp/src/demux/anim_decode.c:267,1
    - Dst: BlendPixelNonPremult
      Src: /src/libwebp/src/demux/anim_decode.c:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - src
    - dst
    - num_pixels
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 272
    functionName: BlendPixelRowNonPremult
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 0
    functionsReached:
    - BlendPixelNonPremult
    - CHANNEL_SHIFT
    linkageType: ''
    returnType: void
    signature: "void BlendPixelRowNonPremult(uint32_t* const src,\n                                    const
      uint32_t* const dst, int num_pixels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pix
    - scale
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: ChannelwiseMultiply
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE ChannelwiseMultiply(uint32_t pix, uint32_t scale)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHANNEL_SHIFT
      Src: /src/libwebp/src/demux/anim_decode.c:284,1
    - Dst: ChannelwiseMultiply
      Src: /src/libwebp/src/demux/anim_decode.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: BlendPixelPremult
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 0
    functionsReached:
    - ChannelwiseMultiply
    - CHANNEL_SHIFT
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t BlendPixelPremult(uint32_t src, uint32_t dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHANNEL_SHIFT
      Src: /src/libwebp/src/demux/anim_decode.c:294,1
    - Dst: BlendPixelPremult
      Src: /src/libwebp/src/demux/anim_decode.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - src
    - dst
    - num_pixels
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 299
    functionName: BlendPixelRowPremult
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 0
    functionsReached:
    - CHANNEL_SHIFT
    - BlendPixelPremult
    linkageType: ''
    returnType: void
    signature: "void BlendPixelRowPremult(uint32_t* const src, const uint32_t* const
      dst,\n                                 int num_pixels)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/demux/anim_decode.c:310,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 7
    argNames:
    - src
    - dst
    - canvas_y
    - left1
    - width1
    - left2
    - width2
    argTypes:
    - WebPIterator*
    - WebPIterator*
    - int
    - int*
    - int*
    - int*
    - int*
    assertStmts:
    - condition: (canvas_y >= src->y_offset && canvas_y < (src->y_offset + src->height))
      pos:
        line_end: 309
        line_start: 309
        source_file: /src/libwebp/src/demux/anim_decode.c
    constantsTouched: []
    func_position:
      end: 332
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 332
    functionName: FindBlendRangeAtRow
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void FindBlendRangeAtRow(const WebPIterator* const src,\n                                const
      WebPIterator* const dst, int canvas_y,\n                                int*
      const left1, int* const width1,\n                                int* const
      left2, int* const width2)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: WebPAnimDecoderHasMoreFrames
      Src: /src/libwebp/src/demux/anim_decode.c:344,1
    - Dst: WebPDemuxGetFrame
      Src: /src/libwebp/src/demux/anim_decode.c:351,1
    - Dst: IsKeyFrame
      Src: /src/libwebp/src/demux/anim_decode.c:357,1
    - Dst: ZeroFillCanvas
      Src: /src/libwebp/src/demux/anim_decode.c:360,1
    - Dst: CopyCanvas
      Src: /src/libwebp/src/demux/anim_decode.c:364,1
    - Dst: WebPDecode
      Src: /src/libwebp/src/demux/anim_decode.c:384,1
    - Dst: blend_row
      Src: /src/libwebp/src/demux/anim_decode.c:400,1
    - Dst: assert
      Src: /src/libwebp/src/demux/anim_decode.c:405,1
    - Dst: FindBlendRangeAtRow
      Src: /src/libwebp/src/demux/anim_decode.c:413,1
    - Dst: blend_row
      Src: /src/libwebp/src/demux/anim_decode.c:417,1
    - Dst: blend_row
      Src: /src/libwebp/src/demux/anim_decode.c:422,1
    - Dst: WebPDemuxReleaseIterator
      Src: /src/libwebp/src/demux/anim_decode.c:431,1
    - Dst: CopyCanvas
      Src: /src/libwebp/src/demux/anim_decode.c:434,1
    - Dst: ZeroFillFrameRect
      Src: /src/libwebp/src/demux/anim_decode.c:438,1
    - Dst: WebPDemuxReleaseIterator
      Src: /src/libwebp/src/demux/anim_decode.c:450,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 72
    argCount: 3
    argNames:
    - dec
    - buf_ptr
    - timestamp_ptr
    argTypes:
    - WebPAnimDecoder*
    - uint8_t**
    - int*
    assertStmts:
    - condition: (dec->prev_iter.dispose_method == WEBP_MUX_DISPOSE_BACKGROUND)
      pos:
        line_end: 404
        line_start: 404
        source_file: /src/libwebp/src/demux/anim_decode.c
    constantsTouched: []
    func_position:
      end: 452
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 452
    functionName: WebPAnimDecoderGetNext
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 4
    functionsReached:
    - blend_row
    - ZeroFillCanvas
    - WebPDemuxReleaseIterator
    - assert
    - FindBlendRangeAtRow
    - WebPAnimDecoderHasMoreFrames
    - ZeroFillFrameRect
    - IsKeyFrame
    - CopyCanvas
    - WebPDecode
    - WebPDemuxGetFrame
    linkageType: ''
    returnType: int
    signature: "int WebPAnimDecoderGetNext(WebPAnimDecoder* dec, uint8_t** buf_ptr,\n
      \                          int* timestamp_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dec
    argTypes:
    - WebPAnimDecoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 457
    functionName: WebPAnimDecoderHasMoreFrames
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int WebPAnimDecoderHasMoreFrames(const WebPAnimDecoder* dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPDemuxReleaseIterator
      Src: /src/libwebp/src/demux/anim_decode.c:462,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/demux/anim_decode.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - dec
    argTypes:
    - WebPAnimDecoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 467
    functionName: WebPAnimDecoderReset
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 1
    functionsReached:
    - WEBP_UNSAFE_MEMSET
    - WebPDemuxReleaseIterator
    linkageType: ''
    returnType: void
    signature: void WebPAnimDecoderReset(WebPAnimDecoder* dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dec
    argTypes:
    - WebPAnimDecoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 472
    functionName: WebPAnimDecoderGetDemuxer
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WebPDemuxer
    signature: WebPDemuxer * WebPAnimDecoderGetDemuxer(const WebPAnimDecoder* dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPDemuxReleaseIterator
      Src: /src/libwebp/src/demux/anim_decode.c:476,1
    - Dst: WebPDemuxDelete
      Src: /src/libwebp/src/demux/anim_decode.c:477,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/demux/anim_decode.c:478,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/demux/anim_decode.c:479,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/demux/anim_decode.c:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - dec
    argTypes:
    - WebPAnimDecoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 482
    functionName: WebPAnimDecoderDelete
    functionSourceFile: /src/libwebp/src/demux/anim_decode.c
    functionUses: 5
    functionsReached:
    - WebPDemuxDelete
    - WebPDemuxReleaseIterator
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void WebPAnimDecoderDelete(WebPAnimDecoder* dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: WebPGetDemuxVersion
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int WebPGetDemuxVersion(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - mem
    - data
    - size
    argTypes:
    - MemBuffer*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: RemapMemBuffer
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int RemapMemBuffer(MemBuffer* const mem, const uint8_t* data,\n                          size_t
      size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/demux/demux.c:121,1
    - Dst: RemapMemBuffer
      Src: /src/libwebp/src/demux/demux.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mem
    - data
    - size
    argTypes:
    - MemBuffer*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: InitMemBuffer
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached:
    - RemapMemBuffer
    - WEBP_UNSAFE_MEMSET
    linkageType: ''
    returnType: int
    signature: "int InitMemBuffer(MemBuffer* const mem, const uint8_t* data,\n                         size_t
      size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mem
    argTypes:
    - MemBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: MemDataSize
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE MemDataSize(const MemBuffer* const mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mem
    - size
    argTypes:
    - MemBuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: SizeIsInvalid
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE SizeIsInvalid(const MemBuffer* const mem, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mem
    - size
    argTypes:
    - MemBuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: Skip
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Skip(MemBuffer* const mem, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mem
    - size
    argTypes:
    - MemBuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: Rewind
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Rewind(MemBuffer* const mem, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mem
    argTypes:
    - MemBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: GetBuffer
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE * GetBuffer(MemBuffer* const mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Skip
      Src: /src/libwebp/src/demux/demux.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mem
    argTypes:
    - MemBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: ReadByte
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached:
    - Skip
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE ReadByte(MemBuffer* const mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLE16
      Src: /src/libwebp/src/demux/demux.c:156,1
    - Dst: Skip
      Src: /src/libwebp/src/demux/demux.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mem
    argTypes:
    - MemBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: ReadLE16s
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached:
    - Skip
    - GetLE16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE ReadLE16s(MemBuffer* const mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLE24
      Src: /src/libwebp/src/demux/demux.c:163,1
    - Dst: Skip
      Src: /src/libwebp/src/demux/demux.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mem
    argTypes:
    - MemBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: ReadLE24s
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached:
    - GetLE24
    - Skip
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE ReadLE24s(MemBuffer* const mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLE32
      Src: /src/libwebp/src/demux/demux.c:170,1
    - Dst: Skip
      Src: /src/libwebp/src/demux/demux.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mem
    argTypes:
    - MemBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: ReadLE32
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached:
    - GetLE32
    - Skip
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE ReadLE32(MemBuffer* const mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dmux
    - chunk
    argTypes:
    - WebPDemuxer*
    - Chunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: AddChunk
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AddChunk(WebPDemuxer* const dmux, Chunk* const chunk)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - dmux
    - frame
    argTypes:
    - WebPDemuxer*
    - Frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 194
    functionName: AddFrame
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int AddFrame(WebPDemuxer* const dmux, Frame* const frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - start_offset
    - size
    - frame_num
    - complete
    - features
    - frame
    argTypes:
    - size_t
    - size_t
    - int
    - int
    - WebPBitstreamFeatures*
    - Frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 207
    functionName: SetFrameInfo
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SetFrameInfo(size_t start_offset, size_t size, int frame_num,\n
      \                        int complete,\n                         const WebPBitstreamFeatures*
      const features,\n                         Frame* const frame)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: MemDataSize
      Src: /src/libwebp/src/demux/demux.c:216,1
    - Dst: MemDataSize
      Src: /src/libwebp/src/demux/demux.c:216,1
    - Dst: ReadLE32
      Src: /src/libwebp/src/demux/demux.c:223,1
    - Dst: ReadLE32
      Src: /src/libwebp/src/demux/demux.c:224,1
    - Dst: MemDataSize
      Src: /src/libwebp/src/demux/demux.c:232,1
    - Dst: MemDataSize
      Src: /src/libwebp/src/demux/demux.c:233,1
    - Dst: SizeIsInvalid
      Src: /src/libwebp/src/demux/demux.c:236,1
    - Dst: MemDataSize
      Src: /src/libwebp/src/demux/demux.c:237,1
    - Dst: MKFOURCC
      Src: /src/libwebp/src/demux/demux.c:240,1
    - Dst: Skip
      Src: /src/libwebp/src/demux/demux.c:247,1
    - Dst: MKFOURCC
      Src: /src/libwebp/src/demux/demux.c:252,1
    - Dst: MKFOURCC
      Src: /src/libwebp/src/demux/demux.c:255,1
    - Dst: WebPGetFeatures
      Src: /src/libwebp/src/demux/demux.c:260,1
    - Dst: SetFrameInfo
      Src: /src/libwebp/src/demux/demux.c:270,1
    - Dst: Skip
      Src: /src/libwebp/src/demux/demux.c:272,1
    - Dst: Rewind
      Src: /src/libwebp/src/demux/demux.c:280,1
    - Dst: MemDataSize
      Src: /src/libwebp/src/demux/demux.c:287,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 4
    argNames:
    - frame_num
    - min_size
    - mem
    - frame
    argTypes:
    - int
    - uint32_t
    - MemBuffer*
    - Frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 293
    functionName: StoreFrame
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached:
    - MemDataSize
    - SizeIsInvalid
    - MKFOURCC
    - SetFrameInfo
    - ReadLE32
    - Rewind
    - WebPGetFeatures
    - Skip
    linkageType: ''
    returnType: ParseStatus
    signature: "ParseStatus StoreFrame(int frame_num, uint32_t min_size,\n                              MemBuffer*
      const mem, Frame* const frame)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SizeIsInvalid
      Src: /src/libwebp/src/demux/demux.c:301,1
    - Dst: MemDataSize
      Src: /src/libwebp/src/demux/demux.c:303,1
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/demux/demux.c:305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - mem
    - min_size
    - actual_size
    - frame
    argTypes:
    - MemBuffer*
    - uint32_t
    - uint32_t
    - Frame**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 307
    functionName: NewFrame
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached:
    - SizeIsInvalid
    - WebPSafeCalloc
    - MemDataSize
    linkageType: ''
    returnType: ParseStatus
    signature: "ParseStatus NewFrame(const MemBuffer* const mem, uint32_t min_size,\n
      \                           uint32_t actual_size, Frame** frame)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NewFrame
      Src: /src/libwebp/src/demux/demux.c:319,1
    - Dst: ReadLE24s
      Src: /src/libwebp/src/demux/demux.c:322,1
    - Dst: ReadLE24s
      Src: /src/libwebp/src/demux/demux.c:323,1
    - Dst: ReadLE24s
      Src: /src/libwebp/src/demux/demux.c:324,1
    - Dst: ReadLE24s
      Src: /src/libwebp/src/demux/demux.c:325,1
    - Dst: ReadLE24s
      Src: /src/libwebp/src/demux/demux.c:326,1
    - Dst: ReadByte
      Src: /src/libwebp/src/demux/demux.c:327,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/demux/demux.c:332,1
    - Dst: StoreFrame
      Src: /src/libwebp/src/demux/demux.c:341,1
    - Dst: AddFrame
      Src: /src/libwebp/src/demux/demux.c:348,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/demux/demux.c:356,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - dmux
    - frame_chunk_size
    argTypes:
    - WebPDemuxer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 358
    functionName: ParseAnimationFrame
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached:
    - NewFrame
    - AddFrame
    - ReadByte
    - ReadLE24s
    - StoreFrame
    - WebPSafeFree
    linkageType: ''
    returnType: ParseStatus
    signature: "ParseStatus ParseAnimationFrame(WebPDemuxer* const dmux,\n                                       uint32_t
      frame_chunk_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/demux/demux.c:366,1
    - Dst: AddChunk
      Src: /src/libwebp/src/demux/demux.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - dmux
    - start_offset
    - size
    argTypes:
    - WebPDemuxer*
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 373
    functionName: StoreChunk
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached:
    - AddChunk
    - WebPSafeCalloc
    linkageType: ''
    returnType: int
    signature: "int StoreChunk(WebPDemuxer* const dmux, size_t start_offset,\n                      uint32_t
      size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MemDataSize
      Src: /src/libwebp/src/demux/demux.c:383,1
    - Dst: memcmp
      Src: /src/libwebp/src/demux/demux.c:384,1
    - Dst: GetBuffer
      Src: /src/libwebp/src/demux/demux.c:384,1
    - Dst: memcmp
      Src: /src/libwebp/src/demux/demux.c:385,1
    - Dst: GetBuffer
      Src: /src/libwebp/src/demux/demux.c:385,1
    - Dst: GetLE32
      Src: /src/libwebp/src/demux/demux.c:389,1
    - Dst: GetBuffer
      Src: /src/libwebp/src/demux/demux.c:389,1
    - Dst: Skip
      Src: /src/libwebp/src/demux/demux.c:399,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - mem
    argTypes:
    - MemBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 401
    functionName: ReadHeader
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached:
    - MemDataSize
    - GetLE32
    - GetBuffer
    - memcmp
    - Skip
    linkageType: ''
    returnType: ParseStatus
    signature: ParseStatus ReadHeader(MemBuffer* const mem)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SizeIsInvalid
      Src: /src/libwebp/src/demux/demux.c:411,1
    - Dst: MemDataSize
      Src: /src/libwebp/src/demux/demux.c:412,1
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/demux/demux.c:414,1
    - Dst: StoreFrame
      Src: /src/libwebp/src/demux/demux.c:419,1
    - Dst: AddFrame
      Src: /src/libwebp/src/demux/demux.c:437,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/demux/demux.c:445,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - dmux
    argTypes:
    - WebPDemuxer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 447
    functionName: ParseSingleImage
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached:
    - SizeIsInvalid
    - MemDataSize
    - WebPSafeCalloc
    - WebPSafeFree
    - StoreFrame
    - AddFrame
    linkageType: ''
    returnType: ParseStatus
    signature: ParseStatus ParseSingleImage(WebPDemuxer* const dmux)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: ReadLE32
      Src: /src/libwebp/src/demux/demux.c:458,1
    - Dst: ReadLE32
      Src: /src/libwebp/src/demux/demux.c:459,1
    - Dst: SizeIsInvalid
      Src: /src/libwebp/src/demux/demux.c:465,1
    - Dst: MKFOURCC
      Src: /src/libwebp/src/demux/demux.c:468,1
    - Dst: MKFOURCC
      Src: /src/libwebp/src/demux/demux.c:471,1
    - Dst: MKFOURCC
      Src: /src/libwebp/src/demux/demux.c:472,1
    - Dst: MKFOURCC
      Src: /src/libwebp/src/demux/demux.c:473,1
    - Dst: Rewind
      Src: /src/libwebp/src/demux/demux.c:477,1
    - Dst: ParseSingleImage
      Src: /src/libwebp/src/demux/demux.c:478,1
    - Dst: MKFOURCC
      Src: /src/libwebp/src/demux/demux.c:481,1
    - Dst: MemDataSize
      Src: /src/libwebp/src/demux/demux.c:484,1
    - Dst: ReadLE32
      Src: /src/libwebp/src/demux/demux.c:488,1
    - Dst: ReadLE16s
      Src: /src/libwebp/src/demux/demux.c:489,1
    - Dst: Skip
      Src: /src/libwebp/src/demux/demux.c:490,1
    - Dst: MKFOURCC
      Src: /src/libwebp/src/demux/demux.c:497,1
    - Dst: ParseAnimationFrame
      Src: /src/libwebp/src/demux/demux.c:499,1
    - Dst: MKFOURCC
      Src: /src/libwebp/src/demux/demux.c:502,1
    - Dst: MKFOURCC
      Src: /src/libwebp/src/demux/demux.c:506,1
    - Dst: MKFOURCC
      Src: /src/libwebp/src/demux/demux.c:510,1
    - Dst: MemDataSize
      Src: /src/libwebp/src/demux/demux.c:516,1
    - Dst: StoreChunk
      Src: /src/libwebp/src/demux/demux.c:520,1
    - Dst: Skip
      Src: /src/libwebp/src/demux/demux.c:525,1
    - Dst: MemDataSize
      Src: /src/libwebp/src/demux/demux.c:534,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 82
    argCount: 1
    argNames:
    - dmux
    argTypes:
    - WebPDemuxer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 540
    functionName: ParseVP8XChunks
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached:
    - SizeIsInvalid
    - MemDataSize
    - ParseAnimationFrame
    - MKFOURCC
    - ReadLE16s
    - ParseSingleImage
    - ReadLE32
    - Rewind
    - Skip
    - StoreChunk
    linkageType: ''
    returnType: ParseStatus
    signature: ParseStatus ParseVP8XChunks(WebPDemuxer* const dmux)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MemDataSize
      Src: /src/libwebp/src/demux/demux.c:546,1
    - Dst: Skip
      Src: /src/libwebp/src/demux/demux.c:549,1
    - Dst: ReadLE32
      Src: /src/libwebp/src/demux/demux.c:550,1
    - Dst: SizeIsInvalid
      Src: /src/libwebp/src/demux/demux.c:554,1
    - Dst: MemDataSize
      Src: /src/libwebp/src/demux/demux.c:555,1
    - Dst: ReadByte
      Src: /src/libwebp/src/demux/demux.c:557,1
    - Dst: Skip
      Src: /src/libwebp/src/demux/demux.c:558,1
    - Dst: ReadLE24s
      Src: /src/libwebp/src/demux/demux.c:559,1
    - Dst: ReadLE24s
      Src: /src/libwebp/src/demux/demux.c:560,1
    - Dst: Skip
      Src: /src/libwebp/src/demux/demux.c:564,1
    - Dst: SizeIsInvalid
      Src: /src/libwebp/src/demux/demux.c:567,1
    - Dst: MemDataSize
      Src: /src/libwebp/src/demux/demux.c:568,1
    - Dst: ParseVP8XChunks
      Src: /src/libwebp/src/demux/demux.c:570,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - dmux
    argTypes:
    - WebPDemuxer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 542
    functionDepth: 4
    functionLinenumber: 542
    functionLinenumberEnd: 571
    functionName: ParseVP8X
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached:
    - ParseVP8XChunks
    - MemDataSize
    - SizeIsInvalid
    - ReadByte
    - ReadLE32
    - ReadLE24s
    - Skip
    linkageType: ''
    returnType: ParseStatus
    signature: ParseStatus ParseVP8X(WebPDemuxer* const dmux)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - dmux
    argTypes:
    - WebPDemuxer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 585
    functionName: IsValidSimpleFormat
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IsValidSimpleFormat(const WebPDemuxer* const dmux)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 4
    argNames:
    - frame
    - exact
    - canvas_width
    - canvas_height
    argTypes:
    - Frame*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 604
    functionName: CheckFrameBounds
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int CheckFrameBounds(const Frame* const frame, int exact,\n                            int
      canvas_width, int canvas_height)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CheckFrameBounds
      Src: /src/libwebp/src/demux/demux.c:649,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 38
    argCount: 1
    argNames:
    - dmux
    argTypes:
    - WebPDemuxer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 656
    functionName: IsValidExtendedFormat
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached:
    - CheckFrameBounds
    linkageType: ''
    returnType: int
    signature: int IsValidExtendedFormat(const WebPDemuxer* const dmux)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - dmux
    - mem
    argTypes:
    - WebPDemuxer*
    - MemBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 670
    functionName: InitDemux
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitDemux(WebPDemuxer* const dmux, const MemBuffer* const mem)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WebPGetFeatures
      Src: /src/libwebp/src/demux/demux.c:676,1
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/demux/demux.c:684,1
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/demux/demux.c:685,1
    - Dst: InitDemux
      Src: /src/libwebp/src/demux/demux.c:687,1
    - Dst: SetFrameInfo
      Src: /src/libwebp/src/demux/demux.c:688,1
    - Dst: AddFrame
      Src: /src/libwebp/src/demux/demux.c:690,1
    - Dst: assert
      Src: /src/libwebp/src/demux/demux.c:696,1
    - Dst: IsValidSimpleFormat
      Src: /src/libwebp/src/demux/demux.c:696,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/demux/demux.c:701,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/demux/demux.c:702,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - mem
    - demuxer
    argTypes:
    - MemBuffer*
    - WebPDemuxer**
    assertStmts:
    - condition: (IsValidSimpleFormat(dmux))
      pos:
        line_end: 695
        line_start: 695
        source_file: /src/libwebp/src/demux/demux.c
    constantsTouched: []
    func_position:
      end: 705
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 705
    functionName: CreateRawImageDemuxer
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached:
    - InitDemux
    - assert
    - WebPSafeCalloc
    - IsValidSimpleFormat
    - WebPSafeFree
    - SetFrameInfo
    - WebPGetFeatures
    - AddFrame
    linkageType: ''
    returnType: ParseStatus
    signature: "ParseStatus CreateRawImageDemuxer(MemBuffer* const mem,\n                                         WebPDemuxer**
      demuxer)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_ABI_IS_INCOMPATIBLE
      Src: /src/libwebp/src/demux/demux.c:717,1
    - Dst: InitMemBuffer
      Src: /src/libwebp/src/demux/demux.c:720,1
    - Dst: ReadHeader
      Src: /src/libwebp/src/demux/demux.c:721,1
    - Dst: CreateRawImageDemuxer
      Src: /src/libwebp/src/demux/demux.c:726,1
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/demux/demux.c:742,1
    - Dst: InitDemux
      Src: /src/libwebp/src/demux/demux.c:744,1
    - Dst: memcmp
      Src: /src/libwebp/src/demux/demux.c:748,1
    - Dst: GetBuffer
      Src: /src/libwebp/src/demux/demux.c:748,1
    - Dst: ChunkParser*::parse
      Src: /src/libwebp/src/demux/demux.c:749,1
    - Dst: ChunkParser*::valid
      Src: /src/libwebp/src/demux/demux.c:752,1
    - Dst: WebPDemuxDelete
      Src: /src/libwebp/src/demux/demux.c:760,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 53
    argCount: 4
    argNames:
    - data
    - allow_partial
    - state
    - version
    argTypes:
    - WebPData*
    - int
    - WebPDemuxState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 707
    functionDepth: 2
    functionLinenumber: 707
    functionLinenumberEnd: 764
    functionName: WebPDemuxInternal
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached:
    - InitDemux
    - ChunkParser*::valid
    - ReadHeader
    - GetBuffer
    - WebPSafeCalloc
    - WebPDemuxDelete
    - InitMemBuffer
    - ChunkParser*::parse
    - CreateRawImageDemuxer
    - memcmp
    - WEBP_ABI_IS_INCOMPATIBLE
    linkageType: ''
    returnType: WebPDemuxer
    signature: "WebPDemuxer * WebPDemuxInternal(const WebPData* data, int allow_partial,\n
      \                              WebPDemuxState* state, int version)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/demux/demux.c:774,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/demux/demux.c:779,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/demux/demux.c:781,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - dmux
    argTypes:
    - WebPDemuxer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 782
    functionName: WebPDemuxDelete
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 6
    functionsReached:
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void WebPDemuxDelete(WebPDemuxer* dmux)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - dmux
    - feature
    argTypes:
    - WebPDemuxer*
    - WebPFormatFeature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 804
    functionName: WebPDemuxGetI
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t WebPDemuxGetI(const WebPDemuxer* dmux, WebPFormatFeature feature)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - dmux
    - frame_num
    argTypes:
    - WebPDemuxer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 815
    functionName: GetFrame
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: Frame
    signature: Frame * GetFrame(const WebPDemuxer* const dmux, int frame_num)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - mem_buf
    - frame
    - data_size
    argTypes:
    - uint8_t*
    - Frame*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 839
    functionName: GetFramePayload
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * GetFramePayload(const uint8_t* const mem_buf,\n                                      const
      Frame* const frame,\n                                      size_t* const data_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetFramePayload
      Src: /src/libwebp/src/demux/demux.c:846,1
    - Dst: assert
      Src: /src/libwebp/src/demux/demux.c:848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 3
    argNames:
    - dmux
    - frame
    - iter
    argTypes:
    - WebPDemuxer*
    - Frame*
    - WebPIterator*
    assertStmts:
    - condition: (frame != NULL)
      pos:
        line_end: 847
        line_start: 847
        source_file: /src/libwebp/src/demux/demux.c
    constantsTouched: []
    func_position:
      end: 864
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 864
    functionName: SynthesizeFrame
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached:
    - assert
    - GetFramePayload
    linkageType: ''
    returnType: int
    signature: "int SynthesizeFrame(const WebPDemuxer* const dmux,\n                           const
      Frame* const frame, WebPIterator* const iter)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetFrame
      Src: /src/libwebp/src/demux/demux.c:873,1
    - Dst: SynthesizeFrame
      Src: /src/libwebp/src/demux/demux.c:876,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - frame_num
    - iter
    argTypes:
    - int
    - WebPIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 877
    functionName: SetFrame
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 1
    functionsReached:
    - GetFrame
    - SynthesizeFrame
    linkageType: ''
    returnType: int
    signature: int SetFrame(int frame_num, WebPIterator* const iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/demux/demux.c:882,1
    - Dst: SetFrame
      Src: /src/libwebp/src/demux/demux.c:884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dmux
    - frame
    - iter
    argTypes:
    - WebPDemuxer*
    - int
    - WebPIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 885
    functionName: WebPDemuxGetFrame
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 5
    functionsReached:
    - SetFrame
    - WEBP_UNSAFE_MEMSET
    linkageType: ''
    returnType: int
    signature: int WebPDemuxGetFrame(const WebPDemuxer* dmux, int frame, WebPIterator*
      iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetFrame
      Src: /src/libwebp/src/demux/demux.c:889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - iter
    argTypes:
    - WebPIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 890
    functionName: WebPDemuxNextFrame
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 2
    functionsReached:
    - SetFrame
    linkageType: ''
    returnType: int
    signature: int WebPDemuxNextFrame(WebPIterator* iter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SetFrame
      Src: /src/libwebp/src/demux/demux.c:895,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - iter
    argTypes:
    - WebPIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 896
    functionName: WebPDemuxPrevFrame
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached:
    - SetFrame
    linkageType: ''
    returnType: int
    signature: int WebPDemuxPrevFrame(WebPIterator* iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - WebPIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 898
    functionName: WebPDemuxReleaseIterator
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WebPDemuxReleaseIterator(WebPIterator* iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/libwebp/src/demux/demux.c:909,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dmux
    - fourcc
    argTypes:
    - WebPDemuxer*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 912
    functionName: ChunkCount
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int ChunkCount(const WebPDemuxer* const dmux, const char fourcc[4])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/libwebp/src/demux/demux.c:921,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - dmux
    - fourcc
    - chunk_num
    argTypes:
    - WebPDemuxer*
    - char[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 925
    functionName: GetChunk
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 3
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: Chunk
    signature: "Chunk * GetChunk(const WebPDemuxer* const dmux,\n                             const
      char fourcc[4], int chunk_num)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ChunkCount
      Src: /src/libwebp/src/demux/demux.c:933,1
    - Dst: GetChunk
      Src: /src/libwebp/src/demux/demux.c:939,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - fourcc
    - chunk_num
    - iter
    argTypes:
    - char[]
    - int
    - WebPChunkIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 947
    functionName: SetChunk
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 3
    functionsReached:
    - GetChunk
    - ChunkCount
    linkageType: ''
    returnType: int
    signature: "int SetChunk(const char fourcc[4], int chunk_num,\n                    WebPChunkIterator*
      const iter)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/demux/demux.c:953,1
    - Dst: SetChunk
      Src: /src/libwebp/src/demux/demux.c:955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - dmux
    - fourcc
    - chunk_num
    - iter
    argTypes:
    - WebPDemuxer*
    - char[]
    - int
    - WebPChunkIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 949
    functionDepth: 2
    functionLinenumber: 949
    functionLinenumberEnd: 956
    functionName: WebPDemuxGetChunk
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 2
    functionsReached:
    - SetChunk
    - WEBP_UNSAFE_MEMSET
    linkageType: ''
    returnType: int
    signature: "int WebPDemuxGetChunk(const WebPDemuxer* dmux, const char fourcc[4],\n
      \                     int chunk_num, WebPChunkIterator* iter)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetChunk
      Src: /src/libwebp/src/demux/demux.c:962,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - iter
    argTypes:
    - WebPChunkIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 958
    functionDepth: 2
    functionLinenumber: 958
    functionLinenumberEnd: 965
    functionName: WebPDemuxNextChunk
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 2
    functionsReached:
    - SetChunk
    linkageType: ''
    returnType: int
    signature: int WebPDemuxNextChunk(WebPChunkIterator* iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetChunk
      Src: /src/libwebp/src/demux/demux.c:971,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - iter
    argTypes:
    - WebPChunkIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 967
    functionDepth: 2
    functionLinenumber: 967
    functionLinenumberEnd: 974
    functionName: WebPDemuxPrevChunk
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 2
    functionsReached:
    - SetChunk
    linkageType: ''
    returnType: int
    signature: int WebPDemuxPrevChunk(WebPChunkIterator* iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - WebPChunkIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 976
    functionName: WebPDemuxReleaseChunkIterator
    functionSourceFile: /src/libwebp/src/demux/demux.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WebPDemuxReleaseChunkIterator(WebPChunkIterator* iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: WebPGetDecoderVersion
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI
    signature: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI WebPGetDecoderVersion(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dec
    argTypes:
    - VP8Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: SetOk
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetOk(VP8Decoder* const dec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_ABI_IS_INCOMPATIBLE
      Src: /src/libwebp/src/dec/vp8_dec.c:62,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/vp8_dec.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - io
    - version
    argTypes:
    - VP8Io*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: VP8InitIoInternal
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached:
    - WEBP_ABI_IS_INCOMPATIBLE
    - WEBP_UNSAFE_MEMSET
    linkageType: ''
    returnType: int
    signature: int VP8InitIoInternal(VP8Io* const io, int version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/dec/vp8_dec.c:72,1
    - Dst: SetOk
      Src: /src/libwebp/src/dec/vp8_dec.c:74,1
    - Dst: WebPGetWorkerInterface
      Src: /src/libwebp/src/dec/vp8_dec.c:75,1
    - Dst: InitGetCoeffs
      Src: /src/libwebp/src/dec/vp8_dec.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: VP8New
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached:
    - InitGetCoeffs
    - WebPGetWorkerInterface
    - SetOk
    - WebPSafeCalloc
    linkageType: ''
    returnType: VP8Decoder
    signature: VP8Decoder * VP8New(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dec
    argTypes:
    - VP8Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: VP8Status
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VP8StatusCode
    signature: VP8StatusCode VP8Status(VP8Decoder* const dec)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dec
    argTypes:
    - VP8Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: VP8StatusMessage
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * VP8StatusMessage(VP8Decoder* const dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8Clear
      Src: /src/libwebp/src/dec/vp8_dec.c:96,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/vp8_dec.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dec
    argTypes:
    - VP8Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: VP8Delete
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached:
    - VP8Clear
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void VP8Delete(VP8Decoder* const dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8_dec.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - dec
    - error
    - msg
    argTypes:
    - VP8Decoder*
    - VP8StatusCode
    - char*
    assertStmts:
    - condition: (dec->incremental || error != VP8_STATUS_SUSPENDED)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/libwebp/src/dec/vp8_dec.c
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: VP8SetError
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int VP8SetError(VP8Decoder* const dec, VP8StatusCode error,\n                const
      char* const msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: VP8CheckSignature
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int VP8CheckSignature(const uint8_t* const WEBP_COUNTED_BY(data_size)
      data,\n                      size_t data_size)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: VP8CheckSignature
      Src: /src/libwebp/src/dec/vp8_dec.c:128,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 5
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    - chunk_size
    - width
    - height
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 162
    functionName: VP8GetInfo
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 1
    functionsReached:
    - VP8CheckSignature
    linkageType: ''
    returnType: int
    signature: "int VP8GetInfo(const uint8_t* WEBP_COUNTED_BY(data_size) data, size_t
      data_size,\n               size_t chunk_size, int* const width, int* const height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8_dec.c:168,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/vp8_dec.c:172,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/vp8_dec.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - VP8SegmentHeader*
    assertStmts:
    - condition: (hdr != NULL)
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/libwebp/src/dec/vp8_dec.c
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: ResetSegmentHeader
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 1
    functionsReached:
    - assert
    - WEBP_UNSAFE_MEMSET
    linkageType: ''
    returnType: void
    signature: void ResetSegmentHeader(VP8SegmentHeader* const hdr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8_dec.c:179,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8_dec.c:180,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/vp8_dec.c:181,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/vp8_dec.c:183,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/vp8_dec.c:184,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/vp8_dec.c:186,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/vp8_dec.c:188,1
    - Dst: VP8GetSignedValue
      Src: /src/libwebp/src/dec/vp8_dec.c:189,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/vp8_dec.c:194,1
    - Dst: VP8GetSignedValue
      Src: /src/libwebp/src/dec/vp8_dec.c:195,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/vp8_dec.c:202,1
    - Dst: VP8GetValue
      Src: /src/libwebp/src/dec/vp8_dec.c:203,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - br
    - hdr
    - proba
    argTypes:
    - VP8BitReader*
    - VP8SegmentHeader*
    - VP8Proba*
    assertStmts:
    - condition: (br != NULL)
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/libwebp/src/dec/vp8_dec.c
    - condition: (hdr != NULL)
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/libwebp/src/dec/vp8_dec.c
    constantsTouched: []
    func_position:
      end: 211
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 211
    functionName: ParseSegmentHeader
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - VP8Get
    - VP8GetSignedValue
    - VP8GetValue
    linkageType: ''
    returnType: int
    signature: "int ParseSegmentHeader(VP8BitReader* br, VP8SegmentHeader* hdr,\n
      \                             VP8Proba* proba)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VP8GetValue
      Src: /src/libwebp/src/dec/vp8_dec.c:233,1
    - Dst: VP8InitBitReader
      Src: /src/libwebp/src/dec/vp8_dec.c:244,1
    - Dst: VP8InitBitReader
      Src: /src/libwebp/src/dec/vp8_dec.c:249,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - dec
    - WEBP_COUNTED_BY(size)
    - size
    argTypes:
    - VP8Decoder*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 254
    functionName: ParsePartitions
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached:
    - VP8InitBitReader
    - VP8GetValue
    linkageType: ''
    returnType: VP8StatusCode
    signature: "VP8StatusCode ParsePartitions(VP8Decoder* const dec,\n                                     const
      uint8_t* WEBP_COUNTED_BY(size) buf,\n                                     size_t
      size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/vp8_dec.c:259,1
    - Dst: VP8GetValue
      Src: /src/libwebp/src/dec/vp8_dec.c:260,1
    - Dst: VP8GetValue
      Src: /src/libwebp/src/dec/vp8_dec.c:261,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/vp8_dec.c:262,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/vp8_dec.c:264,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/vp8_dec.c:267,1
    - Dst: VP8GetSignedValue
      Src: /src/libwebp/src/dec/vp8_dec.c:268,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/vp8_dec.c:272,1
    - Dst: VP8GetSignedValue
      Src: /src/libwebp/src/dec/vp8_dec.c:273,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - br
    - dec
    argTypes:
    - VP8BitReader*
    - VP8Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 280
    functionName: ParseFilterHeader
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached:
    - VP8Get
    - VP8GetSignedValue
    - VP8GetValue
    linkageType: ''
    returnType: int
    signature: int ParseFilterHeader(VP8BitReader* br, VP8Decoder* const dec)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: SetOk
      Src: /src/libwebp/src/dec/vp8_dec.c:294,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/vp8_dec.c:296,1
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/dec/vp8_dec.c:301,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/vp8_dec.c:303,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/vp8_dec.c:315,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/vp8_dec.c:319,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/vp8_dec.c:330,1
    - Dst: VP8CheckSignature
      Src: /src/libwebp/src/dec/vp8_dec.c:333,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/vp8_dec.c:334,1
    - Dst: VP8ResetProba
      Src: /src/libwebp/src/dec/vp8_dec.c:364,1
    - Dst: ResetSegmentHeader
      Src: /src/libwebp/src/dec/vp8_dec.c:365,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/vp8_dec.c:371,1
    - Dst: VP8InitBitReader
      Src: /src/libwebp/src/dec/vp8_dec.c:375,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/vp8_dec.c:380,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/vp8_dec.c:381,1
    - Dst: ParseSegmentHeader
      Src: /src/libwebp/src/dec/vp8_dec.c:383,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/vp8_dec.c:384,1
    - Dst: ParseFilterHeader
      Src: /src/libwebp/src/dec/vp8_dec.c:388,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/vp8_dec.c:389,1
    - Dst: ParsePartitions
      Src: /src/libwebp/src/dec/vp8_dec.c:392,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/vp8_dec.c:394,1
    - Dst: VP8ParseQuant
      Src: /src/libwebp/src/dec/vp8_dec.c:398,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/vp8_dec.c:402,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/vp8_dec.c:405,1
    - Dst: VP8ParseProba
      Src: /src/libwebp/src/dec/vp8_dec.c:407,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 87
    argCount: 2
    argNames:
    - dec
    - io
    argTypes:
    - VP8Decoder*
    - VP8Io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 412
    functionName: VP8GetHeaders
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached:
    - VP8ResetProba
    - VP8Get
    - VP8InitBitReader
    - ResetSegmentHeader
    - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    - ParseFilterHeader
    - VP8ParseProba
    - ParsePartitions
    - VP8CheckSignature
    - ParseSegmentHeader
    - SetOk
    - VP8ParseQuant
    - VP8SetError
    linkageType: ''
    returnType: int
    signature: int VP8GetHeaders(VP8Decoder* const dec, VP8Io* const io)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/vp8_dec.c:429,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/vp8_dec.c:430,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/vp8_dec.c:433,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/vp8_dec.c:436,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/vp8_dec.c:437,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/vp8_dec.c:438,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/vp8_dec.c:440,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/vp8_dec.c:441,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/vp8_dec.c:445,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/vp8_dec.c:446,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/vp8_dec.c:450,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - br
    - p
    argTypes:
    - VP8BitReader*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 456
    functionName: GetLargeValue
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached:
    - VP8GetBit
    linkageType: ''
    returnType: int
    signature: int GetLargeValue(VP8BitReader* const br, const uint8_t* const p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/vp8_dec.c:464,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/vp8_dec.c:467,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/vp8_dec.c:474,1
    - Dst: GetLargeValue
      Src: /src/libwebp/src/dec/vp8_dec.c:478,1
    - Dst: VP8GetSigned
      Src: /src/libwebp/src/dec/vp8_dec.c:481,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 6
    argNames:
    - br
    - prob
    - ctx
    - dq
    - n
    - out
    argTypes:
    - VP8BitReader*
    - VP8BandProbas*[]
    - int
    - quant_t
    - int
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 485
    functionName: GetCoeffsFast
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached:
    - VP8GetSigned
    - GetLargeValue
    - VP8GetBit
    linkageType: ''
    returnType: int
    signature: "int GetCoeffsFast(VP8BitReader* const br,\n                         const
      VP8BandProbas* const prob[], int ctx,\n                         const quant_t
      dq, int n, int16_t* out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VP8GetBitAlt
      Src: /src/libwebp/src/dec/vp8_dec.c:494,1
    - Dst: VP8GetBitAlt
      Src: /src/libwebp/src/dec/vp8_dec.c:497,1
    - Dst: VP8GetBitAlt
      Src: /src/libwebp/src/dec/vp8_dec.c:504,1
    - Dst: GetLargeValue
      Src: /src/libwebp/src/dec/vp8_dec.c:508,1
    - Dst: VP8GetSigned
      Src: /src/libwebp/src/dec/vp8_dec.c:511,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 6
    argNames:
    - br
    - prob
    - ctx
    - dq
    - n
    - out
    argTypes:
    - VP8BitReader*
    - VP8BandProbas*[]
    - int
    - quant_t
    - int
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 515
    functionName: GetCoeffsAlt
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached:
    - VP8GetSigned
    - GetLargeValue
    - VP8GetBitAlt
    linkageType: ''
    returnType: int
    signature: "int GetCoeffsAlt(VP8BitReader* const br,\n                        const
      VP8BandProbas* const prob[], int ctx,\n                        const quant_t
      dq, int n, int16_t* out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dec/vp8_dec.c:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 525
    functionName: WEBP_DSP_INIT_FUNC
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached:
    - VP8GetCPUInfo
    linkageType: ''
    returnType: void
    signature: void WEBP_DSP_INIT_FUNC(InitGetCoeffs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - nz_coeffs
    - nz
    - dc_nz
    argTypes:
    - uint32_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 531
    functionName: NzCodeBits
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE NzCodeBits(uint32_t nz_coeffs, int nz, int dc_nz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/vp8_dec.c:548,1
    - Dst: GetCoeffs
      Src: /src/libwebp/src/dec/vp8_dec.c:552,1
    - Dst: VP8TransformWHT
      Src: /src/libwebp/src/dec/vp8_dec.c:555,1
    - Dst: GetCoeffs
      Src: /src/libwebp/src/dec/vp8_dec.c:575,1
    - Dst: NzCodeBits
      Src: /src/libwebp/src/dec/vp8_dec.c:578,1
    - Dst: GetCoeffs
      Src: /src/libwebp/src/dec/vp8_dec.c:596,1
    - Dst: NzCodeBits
      Src: /src/libwebp/src/dec/vp8_dec.c:599,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 54
    argCount: 3
    argNames:
    - dec
    - mb
    - token_br
    argTypes:
    - VP8Decoder*
    - VP8MB*
    - VP8BitReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 622
    functionName: ParseResiduals
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached:
    - WEBP_UNSAFE_MEMSET
    - NzCodeBits
    - GetCoeffs
    - VP8TransformWHT
    linkageType: ''
    returnType: int
    signature: "int ParseResiduals(VP8Decoder* const dec, VP8MB* const mb,\n                          VP8BitReader*
      const token_br)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ParseResiduals
      Src: /src/libwebp/src/dec/vp8_dec.c:634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - dec
    - token_br
    argTypes:
    - VP8Decoder*
    - VP8BitReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 652
    functionName: VP8DecodeMB
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached:
    - ParseResiduals
    linkageType: ''
    returnType: int
    signature: int VP8DecodeMB(VP8Decoder* const dec, VP8BitReader* const token_br)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/vp8_dec.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dec
    argTypes:
    - VP8Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 660
    functionName: VP8InitScanline
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached:
    - WEBP_UNSAFE_MEMSET
    linkageType: ''
    returnType: void
    signature: void VP8InitScanline(VP8Decoder* const dec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: VP8ParseIntraModeRow
      Src: /src/libwebp/src/dec/vp8_dec.c:667,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/vp8_dec.c:668,1
    - Dst: VP8DecodeMB
      Src: /src/libwebp/src/dec/vp8_dec.c:672,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/vp8_dec.c:673,1
    - Dst: VP8InitScanline
      Src: /src/libwebp/src/dec/vp8_dec.c:677,1
    - Dst: VP8ProcessRow
      Src: /src/libwebp/src/dec/vp8_dec.c:680,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/vp8_dec.c:681,1
    - Dst: WebPGetWorkerInterface
      Src: /src/libwebp/src/dec/vp8_dec.c:686,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/vp8_dec.c:687,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - dec
    - io
    argTypes:
    - VP8Decoder*
    - VP8Io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 662
    functionDepth: 3
    functionLinenumber: 662
    functionLinenumberEnd: 692
    functionName: ParseFrame
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached:
    - VP8InitScanline
    - VP8ProcessRow
    - VP8ParseIntraModeRow
    - WebPGetWorkerInterface
    - VP8DecodeMB
    - VP8SetError
    linkageType: ''
    returnType: int
    signature: int ParseFrame(VP8Decoder* const dec, VP8Io* io)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/vp8_dec.c:701,1
    - Dst: VP8GetHeaders
      Src: /src/libwebp/src/dec/vp8_dec.c:706,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8_dec.c:710,1
    - Dst: VP8EnterCritical
      Src: /src/libwebp/src/dec/vp8_dec.c:713,1
    - Dst: VP8InitFrame
      Src: /src/libwebp/src/dec/vp8_dec.c:716,1
    - Dst: ParseFrame
      Src: /src/libwebp/src/dec/vp8_dec.c:719,1
    - Dst: VP8ExitCritical
      Src: /src/libwebp/src/dec/vp8_dec.c:722,1
    - Dst: VP8Clear
      Src: /src/libwebp/src/dec/vp8_dec.c:726,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - dec
    - io
    argTypes:
    - VP8Decoder*
    - VP8Io*
    assertStmts:
    - condition: (dec->ready)
      pos:
        line_end: 709
        line_start: 709
        source_file: /src/libwebp/src/dec/vp8_dec.c
    constantsTouched: []
    func_position:
      end: 732
      start: 695
    functionDepth: 4
    functionLinenumber: 695
    functionLinenumberEnd: 732
    functionName: VP8Decode
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 0
    functionsReached:
    - VP8EnterCritical
    - VP8GetHeaders
    - VP8InitFrame
    - assert
    - ParseFrame
    - VP8Clear
    - VP8ExitCritical
    - VP8SetError
    linkageType: ''
    returnType: int
    signature: int VP8Decode(VP8Decoder* const dec, VP8Io* const io)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPGetWorkerInterface
      Src: /src/libwebp/src/dec/vp8_dec.c:738,1
    - Dst: WebPDeallocateAlphaMemory
      Src: /src/libwebp/src/dec/vp8_dec.c:739,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/vp8_dec.c:740,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/vp8_dec.c:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - dec
    argTypes:
    - VP8Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 745
    functionName: VP8Clear
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.c
    functionUses: 2
    functionsReached:
    - WebPDeallocateAlphaMemory
    - WEBP_UNSAFE_MEMSET
    - WebPGetWorkerInterface
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void VP8Clear(VP8Decoder* const dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - M
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: clip
    functionSourceFile: /src/libwebp/src/dec/quant_dec.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI
    signature: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI clip(int v, int M)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VP8GetValue
      Src: /src/libwebp/src/dec/quant_dec.c:52,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/quant_dec.c:53,1
    - Dst: VP8GetSignedValue
      Src: /src/libwebp/src/dec/quant_dec.c:54,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/quant_dec.c:56,1
    - Dst: VP8GetSignedValue
      Src: /src/libwebp/src/dec/quant_dec.c:57,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/quant_dec.c:59,1
    - Dst: VP8GetSignedValue
      Src: /src/libwebp/src/dec/quant_dec.c:60,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/quant_dec.c:62,1
    - Dst: VP8GetSignedValue
      Src: /src/libwebp/src/dec/quant_dec.c:63,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/quant_dec.c:65,1
    - Dst: VP8GetSignedValue
      Src: /src/libwebp/src/dec/quant_dec.c:66,1
    - Dst: clip
      Src: /src/libwebp/src/dec/quant_dec.c:89,1
    - Dst: clip
      Src: /src/libwebp/src/dec/quant_dec.c:90,1
    - Dst: clip
      Src: /src/libwebp/src/dec/quant_dec.c:92,1
    - Dst: clip
      Src: /src/libwebp/src/dec/quant_dec.c:96,1
    - Dst: clip
      Src: /src/libwebp/src/dec/quant_dec.c:99,1
    - Dst: clip
      Src: /src/libwebp/src/dec/quant_dec.c:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - dec
    argTypes:
    - VP8Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 105
    functionName: VP8ParseQuant
    functionSourceFile: /src/libwebp/src/dec/quant_dec.c
    functionUses: 1
    functionsReached:
    - clip
    - VP8Get
    - VP8GetSignedValue
    - VP8GetValue
    linkageType: ''
    returnType: void
    signature: void VP8ParseQuant(VP8Decoder* const dec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:69,1
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:70,1
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:71,1
    - Dst: memcmp
      Src: /src/libwebp/src/dec/webp_dec.c:74,1
    - Dst: memcmp
      Src: /src/libwebp/src/dec/webp_dec.c:75,1
    - Dst: GetLE32
      Src: /src/libwebp/src/dec/webp_dec.c:78,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - data
    - data_size
    - have_all_data
    - riff_size
    argTypes:
    - uint8_t*
    - size_t*
    - int
    - size_t*
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/libwebp/src/dec/webp_dec.c
    - condition: (riff_size != NULL)
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/libwebp/src/dec/webp_dec.c
    - condition: (data_size != NULL)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/libwebp/src/dec/webp_dec.c
    constantsTouched: []
    func_position:
      end: 96
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 96
    functionName: VP8StatusCode::ParseRIFF
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - memcmp
    - GetLE32
    linkageType: ''
    returnType: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI
    signature: "WEBP_ASSUME_UNSAFE_INDEXABLE_ABI VP8StatusCode ParseRIFF(const uint8_t*
      WEBP_COUNTED_BY(*data_size) *\n                                   WEBP_SINGLE
      const data,\n                               size_t* WEBP_SINGLE const data_size,\n
      \                              int have_all_data,\n                               size_t*
      WEBP_SINGLE const riff_size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:113,1
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:114,1
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:115,1
    - Dst: memcmp
      Src: /src/libwebp/src/dec/webp_dec.c:123,1
    - Dst: GetLE32
      Src: /src/libwebp/src/dec/webp_dec.c:126,1
    - Dst: GetLE32
      Src: /src/libwebp/src/dec/webp_dec.c:135,1
    - Dst: GetLE24
      Src: /src/libwebp/src/dec/webp_dec.c:136,1
    - Dst: GetLE24
      Src: /src/libwebp/src/dec/webp_dec.c:137,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 6
    argNames:
    - data
    - data_size
    - found_vp8x
    - width_ptr
    - height_ptr
    - flags_ptr
    argTypes:
    - uint8_t*
    - size_t*
    - int*
    - int*
    - int*
    - uint32_t*
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/libwebp/src/dec/webp_dec.c
    - condition: (data_size != NULL)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/libwebp/src/dec/webp_dec.c
    - condition: (found_vp8x != NULL)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/libwebp/src/dec/webp_dec.c
    constantsTouched: []
    func_position:
      end: 151
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 151
    functionName: ParseVP8X
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - memcmp
    - GetLE24
    - GetLE32
    linkageType: ''
    returnType: VP8StatusCode
    signature: "VP8StatusCode ParseVP8X(const uint8_t* WEBP_COUNTED_BY(*data_size)
      *\n                                   WEBP_SINGLE const data,\n                               size_t*
      WEBP_SINGLE const data_size,\n                               int* WEBP_SINGLE
      const found_vp8x,\n                               int* WEBP_SINGLE const width_ptr,\n
      \                              int* WEBP_SINGLE const height_ptr,\n                               uint32_t*
      WEBP_SINGLE const flags_ptr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:170,1
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:171,1
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:175,1
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:176,1
    - Dst: GetLE32
      Src: /src/libwebp/src/dec/webp_dec.c:191,1
    - Dst: memcmp
      Src: /src/libwebp/src/dec/webp_dec.c:208,1
    - Dst: memcmp
      Src: /src/libwebp/src/dec/webp_dec.c:208,1
    - Dst: memcmp
      Src: /src/libwebp/src/dec/webp_dec.c:216,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 5
    argNames:
    - data
    - data_size
    - riff_size
    - alpha_data
    - alpha_size
    argTypes:
    - uint8_t*
    - size_t*
    - size_t
    - uint8_t*
    - size_t*
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/libwebp/src/dec/webp_dec.c
    - condition: (alpha_data != NULL)
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/libwebp/src/dec/webp_dec.c
    - condition: (alpha_size != NULL)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/libwebp/src/dec/webp_dec.c
    - condition: (data_size != NULL)
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/libwebp/src/dec/webp_dec.c
    constantsTouched: []
    func_position:
      end: 225
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 225
    functionName: ParseOptionalChunks
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - memcmp
    - GetLE32
    linkageType: ''
    returnType: VP8StatusCode
    signature: "VP8StatusCode ParseOptionalChunks(\n    const uint8_t* WEBP_COUNTED_BY(*data_size)
      * WEBP_SINGLE const data,\n    size_t* WEBP_SINGLE const data_size, size_t const
      riff_size,\n    const uint8_t* WEBP_COUNTED_BY(*alpha_size) * WEBP_SINGLE const
      alpha_data,\n    size_t* WEBP_SINGLE const alpha_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/libwebp/src/dec/webp_dec.c:243,1
    - Dst: memcmp
      Src: /src/libwebp/src/dec/webp_dec.c:244,1
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:249,1
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:250,1
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:251,1
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:252,1
    - Dst: GetLE32
      Src: /src/libwebp/src/dec/webp_dec.c:260,1
    - Dst: VP8LCheckSignature
      Src: /src/libwebp/src/dec/webp_dec.c:274,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 6
    argNames:
    - data_ptr
    - data_size
    - have_all_data
    - riff_size
    - chunk_size
    - is_lossless
    argTypes:
    - uint8_t*
    - size_t*
    - int
    - size_t
    - size_t*
    - int*
    assertStmts:
    - condition: (chunk_size != NULL)
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/libwebp/src/dec/webp_dec.c
    - condition: (data != NULL)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/libwebp/src/dec/webp_dec.c
    - condition: (data_size != NULL)
      pos:
        line_end: 249
        line_start: 249
        source_file: /src/libwebp/src/dec/webp_dec.c
    - condition: (is_lossless != NULL)
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/libwebp/src/dec/webp_dec.c
    constantsTouched: []
    func_position:
      end: 279
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 279
    functionName: ParseVP8Header
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - memcmp
    - VP8LCheckSignature
    - GetLE32
    linkageType: ''
    returnType: VP8StatusCode
    signature: "VP8StatusCode ParseVP8Header(const uint8_t* WEBP_COUNTED_BY(*data_size)
      *\n                                        WEBP_SINGLE const data_ptr,\n                                    size_t*
      WEBP_SINGLE const data_size,\n                                    int have_all_data,
      size_t riff_size,\n                                    size_t* WEBP_SINGLE const
      chunk_size,\n                                    int* WEBP_SINGLE const is_lossless)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/webp_dec.c:316,1
    - Dst: ParseRIFF
      Src: /src/libwebp/src/dec/webp_dec.c:321,1
    - Dst: ParseVP8X
      Src: /src/libwebp/src/dec/webp_dec.c:330,1
    - Dst: memcmp
      Src: /src/libwebp/src/dec/webp_dec.c:360,1
    - Dst: ParseOptionalChunks
      Src: /src/libwebp/src/dec/webp_dec.c:364,1
    - Dst: ParseVP8Header
      Src: /src/libwebp/src/dec/webp_dec.c:374,1
    - Dst: VP8GetInfo
      Src: /src/libwebp/src/dec/webp_dec.c:393,1
    - Dst: VP8LGetInfo
      Src: /src/libwebp/src/dec/webp_dec.c:403,1
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:416,1
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:417,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 104
    argCount: 8
    argNames:
    - WEBP_COUNTED_BY(data_size_param)
    - data_size_param
    - width
    - height
    - has_alpha
    - has_animation
    - format
    - headers
    argTypes:
    - uint8_t*
    - size_t
    - int*
    - int*
    - int*
    - int*
    - int*
    - WebPHeaderStructure*
    assertStmts:
    - condition: ((uint64_t)(data - headers->data) < MAX_CHUNK_PAYLOAD)
      pos:
        line_end: 415
        line_start: 415
        source_file: /src/libwebp/src/dec/webp_dec.c
    - condition: (headers->offset == headers->data_size - data_size)
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/libwebp/src/dec/webp_dec.c
    constantsTouched: []
    func_position:
      end: 433
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 433
    functionName: ParseHeadersInternal
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 0
    functionsReached:
    - ParseVP8Header
    - VP8GetInfo
    - assert
    - WEBP_UNSAFE_MEMSET
    - ParseRIFF
    - ParseVP8X
    - VP8LGetInfo
    - memcmp
    - ParseOptionalChunks
    linkageType: ''
    returnType: VP8StatusCode
    signature: "VP8StatusCode ParseHeadersInternal(\n    const uint8_t* WEBP_COUNTED_BY(data_size_param)
      data_param,\n    size_t data_size_param, int* const width, int* const height,\n
      \   int* const has_alpha, int* const has_animation, int* const format,\n    WebPHeaderStructure*
      const headers)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:439,1
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/dec/webp_dec.c:443,1
    - Dst: ParseHeadersInternal
      Src: /src/libwebp/src/dec/webp_dec.c:445,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - headers
    argTypes:
    - WebPHeaderStructure*
    assertStmts:
    - condition: (headers != NULL)
      pos:
        line_end: 438
        line_start: 438
        source_file: /src/libwebp/src/dec/webp_dec.c
    constantsTouched: []
    func_position:
      end: 457
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 457
    functionName: WebPParseHeaders
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    - ParseHeadersInternal
    linkageType: ''
    returnType: VP8StatusCode
    signature: VP8StatusCode WebPParseHeaders(WebPHeaderStructure* const headers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/webp_dec.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - params
    argTypes:
    - WebPDecParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 466
    functionName: WebPResetDecParams
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 0
    functionsReached:
    - WEBP_UNSAFE_MEMSET
    linkageType: ''
    returnType: void
    signature: void WebPResetDecParams(WebPDecParams* const params)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: WebPParseHeaders
      Src: /src/libwebp/src/dec/webp_dec.c:482,1
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:487,1
    - Dst: VP8InitIo
      Src: /src/libwebp/src/dec/webp_dec.c:488,1
    - Dst: WebPInitCustomIo
      Src: /src/libwebp/src/dec/webp_dec.c:493,1
    - Dst: VP8New
      Src: /src/libwebp/src/dec/webp_dec.c:496,1
    - Dst: VP8GetHeaders
      Src: /src/libwebp/src/dec/webp_dec.c:504,1
    - Dst: WebPAllocateDecBuffer
      Src: /src/libwebp/src/dec/webp_dec.c:508,1
    - Dst: VP8GetThreadMethod
      Src: /src/libwebp/src/dec/webp_dec.c:513,1
    - Dst: VP8InitDithering
      Src: /src/libwebp/src/dec/webp_dec.c:514,1
    - Dst: VP8Decode
      Src: /src/libwebp/src/dec/webp_dec.c:515,1
    - Dst: VP8Delete
      Src: /src/libwebp/src/dec/webp_dec.c:521,1
    - Dst: VP8LNew
      Src: /src/libwebp/src/dec/webp_dec.c:523,1
    - Dst: VP8LDecodeHeader
      Src: /src/libwebp/src/dec/webp_dec.c:527,1
    - Dst: WebPAllocateDecBuffer
      Src: /src/libwebp/src/dec/webp_dec.c:531,1
    - Dst: VP8LDecodeImage
      Src: /src/libwebp/src/dec/webp_dec.c:534,1
    - Dst: VP8LDelete
      Src: /src/libwebp/src/dec/webp_dec.c:539,1
    - Dst: WebPFreeDecBuffer
      Src: /src/libwebp/src/dec/webp_dec.c:543,1
    - Dst: WebPFlipBuffer
      Src: /src/libwebp/src/dec/webp_dec.c:548,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 3
    argNames:
    - WEBP_COUNTED_BY(data_size) const
    - data_size
    - params
    argTypes:
    - uint8_t*
    - size_t
    - WebPDecParams*
    assertStmts:
    - condition: (params != NULL)
      pos:
        line_end: 486
        line_start: 486
        source_file: /src/libwebp/src/dec/webp_dec.c
    constantsTouched: []
    func_position:
      end: 552
      start: 472
    functionDepth: 5
    functionLinenumber: 472
    functionLinenumberEnd: 552
    functionName: VP8StatusCode::DecodeInto
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 0
    functionsReached:
    - WebPAllocateDecBuffer
    - VP8New
    - VP8GetHeaders
    - VP8Delete
    - VP8Decode
    - VP8GetThreadMethod
    - assert
    - VP8InitIo
    - WebPFreeDecBuffer
    - VP8LDecodeImage
    - VP8InitDithering
    - VP8LDelete
    - WebPFlipBuffer
    - VP8LNew
    - WebPParseHeaders
    - WebPInitCustomIo
    - VP8LDecodeHeader
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD VP8StatusCode DecodeInto(\n    const uint8_t* WEBP_COUNTED_BY(data_size)
      const data, size_t data_size,\n    WebPDecParams* const params)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPInitDecBuffer
      Src: /src/libwebp/src/dec/webp_dec.c:561,1
    - Dst: WebPResetDecParams
      Src: /src/libwebp/src/dec/webp_dec.c:564,1
    - Dst: DecodeInto
      Src: /src/libwebp/src/dec/webp_dec.c:571,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - colorspace
    - WEBP_COUNTED_BY(data_size) const
    - data_size
    - WEBP_COUNTED_BY(size) const
    - stride
    - size
    argTypes:
    - WEBP_CSP_MODE
    - uint8_t*
    - size_t
    - uint8_t*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 575
    functionName: DecodeIntoRGBABuffer
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 0
    functionsReached:
    - DecodeInto
    - WebPResetDecParams
    - WebPInitDecBuffer
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD * DecodeIntoRGBABuffer(\n    WEBP_CSP_MODE colorspace,\n
      \   const uint8_t* WEBP_COUNTED_BY(data_size) const data, size_t data_size,\n
      \   uint8_t* WEBP_COUNTED_BY(size) const rgba, int stride, size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecodeIntoRGBABuffer
      Src: /src/libwebp/src/dec/webp_dec.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    - WEBP_COUNTED_BY(size)
    - size
    - stride
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 582
    functionName: WebPDecodeRGBInto
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 2
    functionsReached:
    - DecodeIntoRGBABuffer
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * WebPDecodeRGBInto(const uint8_t* WEBP_COUNTED_BY(data_size)
      data,\n                           size_t data_size,\n                           uint8_t*
      WEBP_COUNTED_BY(size) output, size_t size,\n                           int stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecodeIntoRGBABuffer
      Src: /src/libwebp/src/dec/webp_dec.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    - WEBP_COUNTED_BY(size)
    - size
    - stride
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 584
    functionDepth: 3
    functionLinenumber: 584
    functionLinenumberEnd: 589
    functionName: WebPDecodeRGBAInto
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 2
    functionsReached:
    - DecodeIntoRGBABuffer
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * WebPDecodeRGBAInto(const uint8_t* WEBP_COUNTED_BY(data_size)
      data,\n                            size_t data_size,\n                            uint8_t*
      WEBP_COUNTED_BY(size) output, size_t size,\n                            int
      stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecodeIntoRGBABuffer
      Src: /src/libwebp/src/dec/webp_dec.c:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    - WEBP_COUNTED_BY(size)
    - size
    - stride
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 591
    functionDepth: 3
    functionLinenumber: 591
    functionLinenumberEnd: 596
    functionName: WebPDecodeARGBInto
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 2
    functionsReached:
    - DecodeIntoRGBABuffer
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * WebPDecodeARGBInto(const uint8_t* WEBP_COUNTED_BY(data_size)
      data,\n                            size_t data_size,\n                            uint8_t*
      WEBP_COUNTED_BY(size) output, size_t size,\n                            int
      stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecodeIntoRGBABuffer
      Src: /src/libwebp/src/dec/webp_dec.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    - WEBP_COUNTED_BY(size)
    - size
    - stride
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 3
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: WebPDecodeBGRInto
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 2
    functionsReached:
    - DecodeIntoRGBABuffer
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * WebPDecodeBGRInto(const uint8_t* WEBP_COUNTED_BY(data_size)
      data,\n                           size_t data_size,\n                           uint8_t*
      WEBP_COUNTED_BY(size) output, size_t size,\n                           int stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecodeIntoRGBABuffer
      Src: /src/libwebp/src/dec/webp_dec.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    - WEBP_COUNTED_BY(size)
    - size
    - stride
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 605
    functionDepth: 3
    functionLinenumber: 605
    functionLinenumberEnd: 610
    functionName: WebPDecodeBGRAInto
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 2
    functionsReached:
    - DecodeIntoRGBABuffer
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * WebPDecodeBGRAInto(const uint8_t* WEBP_COUNTED_BY(data_size)
      data,\n                            size_t data_size,\n                            uint8_t*
      WEBP_COUNTED_BY(size) output, size_t size,\n                            int
      stride)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPInitDecBuffer
      Src: /src/libwebp/src/dec/webp_dec.c:621,1
    - Dst: WebPResetDecParams
      Src: /src/libwebp/src/dec/webp_dec.c:622,1
    - Dst: DecodeInto
      Src: /src/libwebp/src/dec/webp_dec.c:635,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 11
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    - WEBP_COUNTED_BY(luma_size)
    - luma_size
    - luma_stride
    - WEBP_COUNTED_BY(u_size)
    - u_size
    - u_stride
    - WEBP_COUNTED_BY(v_size)
    - v_size
    - v_stride
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - int
    - uint8_t*
    - size_t
    - int
    - uint8_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 612
    functionDepth: 2
    functionLinenumber: 612
    functionLinenumberEnd: 639
    functionName: WebPDecodeYUVInto
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 2
    functionsReached:
    - DecodeInto
    - WebPResetDecParams
    - WebPInitDecBuffer
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * WebPDecodeYUVInto(const uint8_t* WEBP_COUNTED_BY(data_size)
      data,\n                           size_t data_size,\n                           uint8_t*
      WEBP_COUNTED_BY(luma_size) luma,\n                           size_t luma_size,
      int luma_stride,\n                           uint8_t* WEBP_COUNTED_BY(u_size)
      u, size_t u_size,\n                           int u_stride, uint8_t* WEBP_COUNTED_BY(v_size)
      v,\n                           size_t v_size, int v_stride)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WebPInitDecBuffer
      Src: /src/libwebp/src/dec/webp_dec.c:652,1
    - Dst: WebPResetDecParams
      Src: /src/libwebp/src/dec/webp_dec.c:655,1
    - Dst: WebPGetInfo
      Src: /src/libwebp/src/dec/webp_dec.c:660,1
    - Dst: DecodeInto
      Src: /src/libwebp/src/dec/webp_dec.c:667,1
    - Dst: WebPCopyDecBuffer
      Src: /src/libwebp/src/dec/webp_dec.c:671,1
    - Dst: WebPIsRGBMode
      Src: /src/libwebp/src/dec/webp_dec.c:674,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 6
    argNames:
    - mode
    - "WEBP_COUNTED_BY(data_size)\n                                          const"
    - data_size
    - width
    - height
    - keep_info
    argTypes:
    - WEBP_CSP_MODE
    - uint8_t*
    - size_t
    - int*
    - int*
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 643
    functionDepth: 2
    functionLinenumber: 643
    functionLinenumberEnd: 675
    functionName: Decode
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 11
    functionsReached:
    - WebPIsRGBMode
    - DecodeInto
    - WebPGetInfo
    - WebPResetDecParams
    - WebPCopyDecBuffer
    - WebPInitDecBuffer
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD * Decode(WEBP_CSP_MODE mode,\n                                      const
      uint8_t* WEBP_COUNTED_BY(data_size)\n                                          const
      data,\n                                      size_t data_size, int* const width,\n
      \                                     int* const height,\n                                      WebPDecBuffer*
      const keep_info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Decode
      Src: /src/libwebp/src/dec/webp_dec.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    - width
    - height
    argTypes:
    - uint8_t*
    - size_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 680
    functionName: WebPDecodeRGB
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 2
    functionsReached:
    - Decode
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * WebPDecodeRGB(const uint8_t* WEBP_COUNTED_BY(data_size)
      data,\n                       size_t data_size, int* width, int* height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Decode
      Src: /src/libwebp/src/dec/webp_dec.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    - width
    - height
    argTypes:
    - uint8_t*
    - size_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 685
    functionName: WebPDecodeRGBA
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 2
    functionsReached:
    - Decode
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * WebPDecodeRGBA(const uint8_t* WEBP_COUNTED_BY(data_size)
      data,\n                        size_t data_size, int* width, int* height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Decode
      Src: /src/libwebp/src/dec/webp_dec.c:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    - width
    - height
    argTypes:
    - uint8_t*
    - size_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 690
    functionName: WebPDecodeARGB
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 2
    functionsReached:
    - Decode
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * WebPDecodeARGB(const uint8_t* WEBP_COUNTED_BY(data_size)
      data,\n                        size_t data_size, int* width, int* height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Decode
      Src: /src/libwebp/src/dec/webp_dec.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    - width
    - height
    argTypes:
    - uint8_t*
    - size_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 695
    functionName: WebPDecodeBGR
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 2
    functionsReached:
    - Decode
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * WebPDecodeBGR(const uint8_t* WEBP_COUNTED_BY(data_size)
      data,\n                       size_t data_size, int* width, int* height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Decode
      Src: /src/libwebp/src/dec/webp_dec.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    - width
    - height
    argTypes:
    - uint8_t*
    - size_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 700
    functionName: WebPDecodeBGRA
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 4
    functionsReached:
    - Decode
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * WebPDecodeBGRA(const uint8_t* WEBP_COUNTED_BY(data_size)
      data,\n                        size_t data_size, int* width, int* height)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Decode
      Src: /src/libwebp/src/dec/webp_dec.c:713,1
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:721,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 8
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    - width
    - height
    - u
    - v
    - stride
    - uv_stride
    argTypes:
    - uint8_t*
    - size_t
    - int*
    - int*
    - uint8_t**
    - uint8_t**
    - int*
    - int*
    assertStmts:
    - condition: (buf->u_stride == buf->v_stride)
      pos:
        line_end: 720
        line_start: 720
        source_file: /src/libwebp/src/dec/webp_dec.c
    constantsTouched: []
    func_position:
      end: 725
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 725
    functionName: WebPDecodeYUV
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 2
    functionsReached:
    - assert
    - Decode
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * WebPDecodeYUV(const uint8_t* WEBP_COUNTED_BY(data_size)
      data,\n                       size_t data_size, int* width, int* height, uint8_t**
      u,\n                       uint8_t** v, int* stride, int* uv_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/webp_dec.c:728,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/webp_dec.c:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - features
    argTypes:
    - WebPBitstreamFeatures*
    assertStmts:
    - condition: (features != NULL)
      pos:
        line_end: 727
        line_start: 727
        source_file: /src/libwebp/src/dec/webp_dec.c
    constantsTouched: []
    func_position:
      end: 730
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 730
    functionName: DefaultFeatures
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - WEBP_UNSAFE_MEMSET
    linkageType: ''
    returnType: void
    signature: void DefaultFeatures(WebPBitstreamFeatures* const features)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DefaultFeatures
      Src: /src/libwebp/src/dec/webp_dec.c:739,1
    - Dst: ParseHeadersInternal
      Src: /src/libwebp/src/dec/webp_dec.c:742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - "WEBP_COUNTED_BY(data_size)\n                                     const"
    - data_size
    - features
    argTypes:
    - uint8_t*
    - size_t
    - WebPBitstreamFeatures*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 732
    functionDepth: 3
    functionLinenumber: 732
    functionLinenumberEnd: 745
    functionName: GetFeatures
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 11
    functionsReached:
    - ParseHeadersInternal
    - DefaultFeatures
    linkageType: ''
    returnType: VP8StatusCode
    signature: "VP8StatusCode GetFeatures(const uint8_t* WEBP_COUNTED_BY(data_size)\n
      \                                    const data,\n                                 size_t
      data_size,\n                                 WebPBitstreamFeatures* const features)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetFeatures
      Src: /src/libwebp/src/dec/webp_dec.c:754,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    - width
    - height
    argTypes:
    - uint8_t*
    - size_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 750
    functionDepth: 4
    functionLinenumber: 750
    functionLinenumberEnd: 766
    functionName: WebPGetInfo
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 7
    functionsReached:
    - GetFeatures
    linkageType: ''
    returnType: int
    signature: "int WebPGetInfo(const uint8_t* WEBP_COUNTED_BY(data_size) data,\n
      \               size_t data_size, int* width, int* height)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_ABI_IS_INCOMPATIBLE
      Src: /src/libwebp/src/dec/webp_dec.c:772,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/webp_dec.c:778,1
    - Dst: DefaultFeatures
      Src: /src/libwebp/src/dec/webp_dec.c:779,1
    - Dst: WebPInitDecBuffer
      Src: /src/libwebp/src/dec/webp_dec.c:780,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - config
    - version
    argTypes:
    - WebPDecoderConfig*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 771
    functionDepth: 2
    functionLinenumber: 771
    functionLinenumberEnd: 784
    functionName: WebPInitDecoderConfigInternal
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 0
    functionsReached:
    - WEBP_ABI_IS_INCOMPATIBLE
    - WEBP_UNSAFE_MEMSET
    - WebPInitDecBuffer
    - DefaultFeatures
    linkageType: ''
    returnType: int
    signature: int WebPInitDecoderConfigInternal(WebPDecoderConfig* config, int version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 4
    argNames:
    - x
    - y
    - w
    - h
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 788
    functionName: WebPCheckCropDimensionsBasic
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int WebPCheckCropDimensionsBasic(int x, int y, int w, int h)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: IsValidColorspace
      Src: /src/libwebp/src/dec/webp_dec.c:793,1
    - Dst: WebPCheckCropDimensionsBasic
      Src: /src/libwebp/src/dec/webp_dec.c:802,1
    - Dst: WebPCheckCropDimensions
      Src: /src/libwebp/src/dec/webp_dec.c:819,1
    - Dst: WebPRescalerGetScaledDimensions
      Src: /src/libwebp/src/dec/webp_dec.c:824,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 25
    argCount: 1
    argNames:
    - config
    argTypes:
    - WebPDecoderConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 839
    functionName: WebPValidateDecoderConfig
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 2
    functionsReached:
    - WebPRescalerGetScaledDimensions
    - WebPCheckCropDimensionsBasic
    - IsValidColorspace
    - WebPCheckCropDimensions
    linkageType: ''
    returnType: int
    signature: int WebPValidateDecoderConfig(const WebPDecoderConfig* config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_ABI_IS_INCOMPATIBLE
      Src: /src/libwebp/src/dec/webp_dec.c:846,1
    - Dst: GetFeatures
      Src: /src/libwebp/src/dec/webp_dec.c:852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    - features
    - version
    argTypes:
    - uint8_t*
    - size_t
    - WebPBitstreamFeatures*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 841
    functionDepth: 4
    functionLinenumber: 841
    functionLinenumberEnd: 853
    functionName: WebPGetFeaturesInternal
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 0
    functionsReached:
    - WEBP_ABI_IS_INCOMPATIBLE
    - GetFeatures
    linkageType: ''
    returnType: VP8StatusCode
    signature: "VP8StatusCode WebPGetFeaturesInternal(const uint8_t* WEBP_COUNTED_BY(data_size)\n
      \                                         data,\n                                      size_t
      data_size,\n                                      WebPBitstreamFeatures* features,\n
      \                                     int version)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GetFeatures
      Src: /src/libwebp/src/dec/webp_dec.c:864,1
    - Dst: WebPResetDecParams
      Src: /src/libwebp/src/dec/webp_dec.c:872,1
    - Dst: WebPAvoidSlowMemory
      Src: /src/libwebp/src/dec/webp_dec.c:875,1
    - Dst: WebPInitDecBuffer
      Src: /src/libwebp/src/dec/webp_dec.c:878,1
    - Dst: DecodeInto
      Src: /src/libwebp/src/dec/webp_dec.c:885,1
    - Dst: WebPCopyDecBufferPixels
      Src: /src/libwebp/src/dec/webp_dec.c:887,1
    - Dst: WebPFreeDecBuffer
      Src: /src/libwebp/src/dec/webp_dec.c:889,1
    - Dst: DecodeInto
      Src: /src/libwebp/src/dec/webp_dec.c:891,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    - config
    argTypes:
    - uint8_t*
    - size_t
    - WebPDecoderConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 855
    functionDepth: 4
    functionLinenumber: 855
    functionLinenumberEnd: 895
    functionName: WebPDecode
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 10
    functionsReached:
    - DecodeInto
    - WebPAvoidSlowMemory
    - GetFeatures
    - WebPFreeDecBuffer
    - WebPResetDecParams
    - WebPCopyDecBufferPixels
    - WebPInitDecBuffer
    linkageType: ''
    returnType: VP8StatusCode
    signature: "VP8StatusCode WebPDecode(const uint8_t* WEBP_COUNTED_BY(data_size)
      data,\n                         size_t data_size, WebPDecoderConfig* config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPCheckCropDimensionsBasic
      Src: /src/libwebp/src/dec/webp_dec.c:902,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 6
    argNames:
    - image_width
    - image_height
    - x
    - y
    - w
    - h
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 905
    functionName: WebPCheckCropDimensions
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 3
    functionsReached:
    - WebPCheckCropDimensionsBasic
    linkageType: ''
    returnType: int
    signature: "int WebPCheckCropDimensions(int image_width, int image_height, int
      x, int y,\n                            int w, int h)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WebPIsRGBMode
      Src: /src/libwebp/src/dec/webp_dec.c:920,1
    - Dst: WebPCheckCropDimensions
      Src: /src/libwebp/src/dec/webp_dec.c:924,1
    - Dst: WebPRescalerGetScaledDimensions
      Src: /src/libwebp/src/dec/webp_dec.c:940,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - options
    - io
    - src_colorspace
    argTypes:
    - WebPDecoderOptions*
    - VP8Io*
    - WEBP_CSP_MODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 907
    functionDepth: 2
    functionLinenumber: 907
    functionLinenumberEnd: 962
    functionName: WebPIoInitFromOptions
    functionSourceFile: /src/libwebp/src/dec/webp_dec.c
    functionUses: 0
    functionsReached:
    - WebPIsRGBMode
    - WebPRescalerGetScaledDimensions
    - WebPCheckCropDimensions
    linkageType: ''
    returnType: int
    signature: "int WebPIoInitFromOptions(const WebPDecoderOptions* const options,\n
      \                         VP8Io* const io, WEBP_CSP_MODE src_colorspace)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8InitIoInternal
      Src: /src/libwebp/src/dec/vp8_dec.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - io
    argTypes:
    - VP8Io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: VP8InitIo
    functionSourceFile: /src/libwebp/src/dec/vp8_dec.h
    functionUses: 1
    functionsReached:
    - VP8InitIoInternal
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: WEBP_NODISCARD VP8InitIo(VP8Io* const io)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mem
    argTypes:
    - MemBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: MemDataSize
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE MemDataSize(const MemBuffer* mem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/idec_dec.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - idec
    argTypes:
    - WebPIDecoder*
    assertStmts:
    - condition: (dec != NULL)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/libwebp/src/dec/idec_dec.c
    constantsTouched: []
    func_position:
      end: 115
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 115
    functionName: NeedCompressedAlpha
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int NeedCompressedAlpha(const WebPIDecoder* const idec)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MemDataSize
      Src: /src/libwebp/src/dec/idec_dec.c:123,1
    - Dst: VP8RemapBitReader
      Src: /src/libwebp/src/dec/idec_dec.c:132,1
    - Dst: VP8RemapBitReader
      Src: /src/libwebp/src/dec/idec_dec.c:137,1
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/dec/idec_dec.c:149,1
    - Dst: VP8BitReaderSetBuffer
      Src: /src/libwebp/src/dec/idec_dec.c:151,1
    - Dst: NeedCompressedAlpha
      Src: /src/libwebp/src/dec/idec_dec.c:155,1
    - Dst: WEBP_SELF_ASSIGN
      Src: /src/libwebp/src/dec/idec_dec.c:158,1
    - Dst: assert
      Src: /src/libwebp/src/dec/idec_dec.c:165,1
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/dec/idec_dec.c:167,1
    - Dst: VP8LBitReaderSetBuffer
      Src: /src/libwebp/src/dec/idec_dec.c:169,1
    - Dst: MemDataSize
      Src: /src/libwebp/src/dec/idec_dec.c:178,1
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/dec/idec_dec.c:180,1
    - Dst: VP8LBitReaderSetBuffer
      Src: /src/libwebp/src/dec/idec_dec.c:181,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - idec
    - offset
    argTypes:
    - WebPIDecoder*
    - ptrdiff_t
    assertStmts:
    - condition: (dec->alpha_data_size >= ALPHA_HEADER_LEN)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/libwebp/src/dec/idec_dec.c
    constantsTouched: []
    func_position:
      end: 184
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 184
    functionName: DoRemap
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    - MemDataSize
    - VP8RemapBitReader
    - NeedCompressedAlpha
    - VP8LBitReaderSetBuffer
    - WEBP_SELF_ASSIGN
    - VP8BitReaderSetBuffer
    linkageType: ''
    returnType: void
    signature: void DoRemap(WebPIDecoder* const idec, ptrdiff_t offset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NeedCompressedAlpha
      Src: /src/libwebp/src/dec/idec_dec.c:193,1
    - Dst: assert
      Src: /src/libwebp/src/dec/idec_dec.c:198,1
    - Dst: assert
      Src: /src/libwebp/src/dec/idec_dec.c:199,1
    - Dst: MemDataSize
      Src: /src/libwebp/src/dec/idec_dec.c:208,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/dec/idec_dec.c:212,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/idec_dec.c:214,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/idec_dec.c:215,1
    - Dst: assert
      Src: /src/libwebp/src/dec/idec_dec.c:222,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/idec_dec.c:223,1
    - Dst: assert
      Src: /src/libwebp/src/dec/idec_dec.c:225,1
    - Dst: DoRemap
      Src: /src/libwebp/src/dec/idec_dec.c:227,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - idec
    - data
    - data_size
    argTypes:
    - WebPIDecoder*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (mem->mode == MEM_MODE_APPEND)
      pos:
        line_end: 198
        line_start: 198
        source_file: /src/libwebp/src/dec/idec_dec.c
    - condition: (mem->buf != NULL || mem->start == 0)
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/libwebp/src/dec/idec_dec.c
    - condition: (mem->buf != NULL)
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/libwebp/src/dec/idec_dec.c
    - condition: (mem->end <= mem->buf_size)
      pos:
        line_end: 224
        line_start: 224
        source_file: /src/libwebp/src/dec/idec_dec.c
    constantsTouched: []
    func_position:
      end: 229
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 229
    functionName: AppendToMemBuffer
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - DoRemap
    - assert
    - MemDataSize
    - NeedCompressedAlpha
    - WebPSafeMalloc
    - WEBP_UNSAFE_MEMCPY
    - WebPSafeFree
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD AppendToMemBuffer(WebPIDecoder* const idec,\n                                            const
      uint8_t* const data,\n                                            size_t data_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/idec_dec.c:238,1
    - Dst: assert
      Src: /src/libwebp/src/dec/idec_dec.c:239,1
    - Dst: DoRemap
      Src: /src/libwebp/src/dec/idec_dec.c:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - idec
    - data
    - data_size
    argTypes:
    - WebPIDecoder*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (old_buf != NULL || mem->start == 0)
      pos:
        line_end: 237
        line_start: 237
        source_file: /src/libwebp/src/dec/idec_dec.c
    - condition: (mem->mode == MEM_MODE_MAP)
      pos:
        line_end: 238
        line_start: 238
        source_file: /src/libwebp/src/dec/idec_dec.c
    constantsTouched: []
    func_position:
      end: 248
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 248
    functionName: RemapMemBuffer
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 1
    functionsReached:
    - assert
    - DoRemap
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD RemapMemBuffer(WebPIDecoder* const idec,\n                                         const
      uint8_t* const data,\n                                         size_t data_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - mem
    argTypes:
    - MemBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: InitMemBuffer
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitMemBuffer(MemBuffer* const mem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/idec_dec.c:259,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/idec_dec.c:261,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/idec_dec.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mem
    argTypes:
    - MemBuffer*
    assertStmts:
    - condition: (mem)
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/libwebp/src/dec/idec_dec.c
    constantsTouched: []
    func_position:
      end: 264
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 264
    functionName: ClearMemBuffer
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void ClearMemBuffer(MemBuffer* const mem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/idec_dec.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - mem
    - expected
    argTypes:
    - MemBuffer*
    - MemBufferMode
    assertStmts:
    - condition: (mem->mode == expected)
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/libwebp/src/dec/idec_dec.c
    constantsTouched: []
    func_position:
      end: 275
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 275
    functionName: CheckMemBufferMode
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD CheckMemBufferMode(MemBuffer* const mem,\n                                             MemBufferMode
      expected)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WebPFlipBuffer
      Src: /src/libwebp/src/dec/idec_dec.c:284,1
    - Dst: WebPCopyDecBufferPixels
      Src: /src/libwebp/src/dec/idec_dec.c:288,1
    - Dst: WebPFreeDecBuffer
      Src: /src/libwebp/src/dec/idec_dec.c:290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - idec
    argTypes:
    - WebPIDecoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 296
    functionName: VP8StatusCode::FinishDecoding
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - WebPFreeDecBuffer
    - WebPFlipBuffer
    - WebPCopyDecBufferPixels
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: WEBP_NODISCARD VP8StatusCode FinishDecoding(WebPIDecoder* const idec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - dec
    - token_br
    - context
    argTypes:
    - VP8Decoder*
    - VP8BitReader*
    - MBContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 306
    functionName: SaveContext
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SaveContext(const VP8Decoder* dec, const VP8BitReader* token_br,\n
      \                       MBContext* const context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - context
    - dec
    - token_br
    argTypes:
    - MBContext*
    - VP8Decoder*
    - VP8BitReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: RestoreContext
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void RestoreContext(const MBContext* context, VP8Decoder* const dec,\n
      \                          VP8BitReader* const token_br)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8ExitCritical
      Src: /src/libwebp/src/dec/idec_dec.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - idec
    - error
    argTypes:
    - WebPIDecoder*
    - VP8StatusCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 324
    functionName: IDecError
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - VP8ExitCritical
    linkageType: ''
    returnType: VP8StatusCode
    signature: VP8StatusCode IDecError(WebPIDecoder* const idec, VP8StatusCode error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/idec_dec.c:331,1
    - Dst: MemDataSize
      Src: /src/libwebp/src/dec/idec_dec.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - idec
    - new_state
    - consumed_bytes
    argTypes:
    - WebPIDecoder*
    - DecState
    - size_t
    assertStmts:
    - condition: (mem->start <= mem->end)
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/libwebp/src/dec/idec_dec.c
    constantsTouched: []
    func_position:
      end: 334
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 334
    functionName: ChangeState
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - MemDataSize
    linkageType: ''
    returnType: void
    signature: "void ChangeState(WebPIDecoder* const idec, DecState new_state,\n                        size_t
      consumed_bytes)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MemDataSize
      Src: /src/libwebp/src/dec/idec_dec.c:340,1
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/dec/idec_dec.c:345,1
    - Dst: WebPParseHeaders
      Src: /src/libwebp/src/dec/idec_dec.c:348,1
    - Dst: IDecError
      Src: /src/libwebp/src/dec/idec_dec.c:352,1
    - Dst: VP8New
      Src: /src/libwebp/src/dec/idec_dec.c:358,1
    - Dst: ChangeState
      Src: /src/libwebp/src/dec/idec_dec.c:366,1
    - Dst: VP8LNew
      Src: /src/libwebp/src/dec/idec_dec.c:368,1
    - Dst: ChangeState
      Src: /src/libwebp/src/dec/idec_dec.c:373,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 1
    argNames:
    - idec
    argTypes:
    - WebPIDecoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 337
    functionDepth: 4
    functionLinenumber: 337
    functionLinenumberEnd: 376
    functionName: DecodeWebPHeaders
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - VP8New
    - ChangeState
    - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    - MemDataSize
    - IDecError
    - VP8LNew
    - WebPParseHeaders
    linkageType: ''
    returnType: VP8StatusCode
    signature: VP8StatusCode DecodeWebPHeaders(WebPIDecoder* const idec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MemDataSize
      Src: /src/libwebp/src/dec/idec_dec.c:380,1
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/dec/idec_dec.c:390,1
    - Dst: VP8GetInfo
      Src: /src/libwebp/src/dec/idec_dec.c:391,1
    - Dst: IDecError
      Src: /src/libwebp/src/dec/idec_dec.c:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - idec
    argTypes:
    - WebPIDecoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 404
    functionName: DecodeVP8FrameHeader
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    - MemDataSize
    - VP8GetInfo
    - IDecError
    linkageType: ''
    returnType: VP8StatusCode
    signature: VP8StatusCode DecodeVP8FrameHeader(WebPIDecoder* const idec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/idec_dec.c:412,1
    - Dst: assert
      Src: /src/libwebp/src/dec/idec_dec.c:413,1
    - Dst: assert
      Src: /src/libwebp/src/dec/idec_dec.c:415,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/dec/idec_dec.c:422,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/idec_dec.c:426,1
    - Dst: VP8BitReaderSetBuffer
      Src: /src/libwebp/src/dec/idec_dec.c:428,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - idec
    argTypes:
    - WebPIDecoder*
    assertStmts:
    - condition: (!idec->is_lossless)
      pos:
        line_end: 411
        line_start: 411
        source_file: /src/libwebp/src/dec/idec_dec.c
    - condition: (mem->part0_buf == NULL)
      pos:
        line_end: 412
        line_start: 412
        source_file: /src/libwebp/src/dec/idec_dec.c
    - condition: (part_size <= mem->part0_size)
      pos:
        line_end: 414
        line_start: 414
        source_file: /src/libwebp/src/dec/idec_dec.c
    constantsTouched: []
    func_position:
      end: 434
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 434
    functionName: CopyParts0Data
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPSafeMalloc
    - VP8BitReaderSetBuffer
    - WEBP_UNSAFE_MEMCPY
    linkageType: ''
    returnType: VP8StatusCode
    signature: VP8StatusCode CopyParts0Data(WebPIDecoder* const idec)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MemDataSize
      Src: /src/libwebp/src/dec/idec_dec.c:443,1
    - Dst: VP8GetHeaders
      Src: /src/libwebp/src/dec/idec_dec.c:447,1
    - Dst: IDecError
      Src: /src/libwebp/src/dec/idec_dec.c:454,1
    - Dst: WebPAllocateDecBuffer
      Src: /src/libwebp/src/dec/idec_dec.c:459,1
    - Dst: IDecError
      Src: /src/libwebp/src/dec/idec_dec.c:461,1
    - Dst: VP8GetThreadMethod
      Src: /src/libwebp/src/dec/idec_dec.c:465,1
    - Dst: VP8InitDithering
      Src: /src/libwebp/src/dec/idec_dec.c:466,1
    - Dst: CopyParts0Data
      Src: /src/libwebp/src/dec/idec_dec.c:468,1
    - Dst: IDecError
      Src: /src/libwebp/src/dec/idec_dec.c:470,1
    - Dst: VP8EnterCritical
      Src: /src/libwebp/src/dec/idec_dec.c:474,1
    - Dst: IDecError
      Src: /src/libwebp/src/dec/idec_dec.c:475,1
    - Dst: VP8InitFrame
      Src: /src/libwebp/src/dec/idec_dec.c:483,1
    - Dst: IDecError
      Src: /src/libwebp/src/dec/idec_dec.c:484,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - idec
    argTypes:
    - WebPIDecoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 487
    functionName: DecodePartition0
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - WebPAllocateDecBuffer
    - VP8GetHeaders
    - VP8EnterCritical
    - VP8InitFrame
    - VP8GetThreadMethod
    - MemDataSize
    - CopyParts0Data
    - IDecError
    - VP8InitDithering
    linkageType: ''
    returnType: VP8StatusCode
    signature: VP8StatusCode DecodePartition0(WebPIDecoder* const idec)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: IDecError
      Src: /src/libwebp/src/dec/idec_dec.c:496,1
    - Dst: VP8ParseIntraModeRow
      Src: /src/libwebp/src/dec/idec_dec.c:500,1
    - Dst: IDecError
      Src: /src/libwebp/src/dec/idec_dec.c:504,1
    - Dst: SaveContext
      Src: /src/libwebp/src/dec/idec_dec.c:512,1
    - Dst: VP8DecodeMB
      Src: /src/libwebp/src/dec/idec_dec.c:513,1
    - Dst: MemDataSize
      Src: /src/libwebp/src/dec/idec_dec.c:516,1
    - Dst: IDecError
      Src: /src/libwebp/src/dec/idec_dec.c:517,1
    - Dst: WebPGetWorkerInterface
      Src: /src/libwebp/src/dec/idec_dec.c:521,1
    - Dst: IDecError
      Src: /src/libwebp/src/dec/idec_dec.c:522,1
    - Dst: RestoreContext
      Src: /src/libwebp/src/dec/idec_dec.c:525,1
    - Dst: assert
      Src: /src/libwebp/src/dec/idec_dec.c:531,1
    - Dst: VP8InitScanline
      Src: /src/libwebp/src/dec/idec_dec.c:534,1
    - Dst: VP8ProcessRow
      Src: /src/libwebp/src/dec/idec_dec.c:537,1
    - Dst: IDecError
      Src: /src/libwebp/src/dec/idec_dec.c:538,1
    - Dst: VP8ExitCritical
      Src: /src/libwebp/src/dec/idec_dec.c:542,1
    - Dst: IDecError
      Src: /src/libwebp/src/dec/idec_dec.c:544,1
    - Dst: FinishDecoding
      Src: /src/libwebp/src/dec/idec_dec.c:547,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - idec
    argTypes:
    - WebPIDecoder*
    assertStmts:
    - condition: (idec->mem.start <= idec->mem.end)
      pos:
        line_end: 530
        line_start: 530
        source_file: /src/libwebp/src/dec/idec_dec.c
    constantsTouched: []
    func_position:
      end: 548
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 548
    functionName: DecodeRemaining
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - SaveContext
    - assert
    - MemDataSize
    - VP8InitScanline
    - RestoreContext
    - VP8ProcessRow
    - IDecError
    - WebPGetWorkerInterface
    - FinishDecoding
    - VP8ExitCritical
    - VP8DecodeMB
    - VP8ParseIntraModeRow
    linkageType: ''
    returnType: VP8StatusCode
    signature: VP8StatusCode DecodeRemaining(WebPIDecoder* const idec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IDecError
      Src: /src/libwebp/src/dec/idec_dec.c:555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - idec
    - status
    argTypes:
    - WebPIDecoder*
    - VP8StatusCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 556
    functionName: ErrorStatusLossless
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - IDecError
    linkageType: ''
    returnType: VP8StatusCode
    signature: "VP8StatusCode ErrorStatusLossless(WebPIDecoder* const idec,\n                                         VP8StatusCode
      status)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MemDataSize
      Src: /src/libwebp/src/dec/idec_dec.c:563,1
    - Dst: assert
      Src: /src/libwebp/src/dec/idec_dec.c:564,1
    - Dst: ErrorStatusLossless
      Src: /src/libwebp/src/dec/idec_dec.c:569,1
    - Dst: VP8LDecodeHeader
      Src: /src/libwebp/src/dec/idec_dec.c:572,1
    - Dst: ErrorStatusLossless
      Src: /src/libwebp/src/dec/idec_dec.c:577,1
    - Dst: WebPAllocateDecBuffer
      Src: /src/libwebp/src/dec/idec_dec.c:581,1
    - Dst: IDecError
      Src: /src/libwebp/src/dec/idec_dec.c:583,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - idec
    argTypes:
    - WebPIDecoder*
    assertStmts:
    - condition: (idec->is_lossless)
      pos:
        line_end: 563
        line_start: 563
        source_file: /src/libwebp/src/dec/idec_dec.c
    constantsTouched: []
    func_position:
      end: 588
      start: 558
    functionDepth: 3
    functionLinenumber: 558
    functionLinenumberEnd: 588
    functionName: DecodeVP8LHeader
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - WebPAllocateDecBuffer
    - assert
    - MemDataSize
    - IDecError
    - ErrorStatusLossless
    - VP8LDecodeHeader
    linkageType: ''
    returnType: VP8StatusCode
    signature: VP8StatusCode DecodeVP8LHeader(WebPIDecoder* const idec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MemDataSize
      Src: /src/libwebp/src/dec/idec_dec.c:592,1
    - Dst: assert
      Src: /src/libwebp/src/dec/idec_dec.c:593,1
    - Dst: VP8LDecodeImage
      Src: /src/libwebp/src/dec/idec_dec.c:598,1
    - Dst: ErrorStatusLossless
      Src: /src/libwebp/src/dec/idec_dec.c:599,1
    - Dst: assert
      Src: /src/libwebp/src/dec/idec_dec.c:601,1
    - Dst: FinishDecoding
      Src: /src/libwebp/src/dec/idec_dec.c:603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - idec
    argTypes:
    - WebPIDecoder*
    assertStmts:
    - condition: (idec->is_lossless)
      pos:
        line_end: 592
        line_start: 592
        source_file: /src/libwebp/src/dec/idec_dec.c
    - condition: (dec->status == VP8_STATUS_OK || dec->status == VP8_STATUS_SUSPENDED)
      pos:
        line_end: 600
        line_start: 600
        source_file: /src/libwebp/src/dec/idec_dec.c
    constantsTouched: []
    func_position:
      end: 604
      start: 590
    functionDepth: 3
    functionLinenumber: 590
    functionLinenumberEnd: 604
    functionName: DecodeVP8LData
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - MemDataSize
    - VP8LDecodeImage
    - ErrorStatusLossless
    - FinishDecoding
    linkageType: ''
    returnType: VP8StatusCode
    signature: VP8StatusCode DecodeVP8LData(WebPIDecoder* const idec)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DecodeWebPHeaders
      Src: /src/libwebp/src/dec/idec_dec.c:611,1
    - Dst: DecodeVP8FrameHeader
      Src: /src/libwebp/src/dec/idec_dec.c:618,1
    - Dst: DecodePartition0
      Src: /src/libwebp/src/dec/idec_dec.c:621,1
    - Dst: DecodeRemaining
      Src: /src/libwebp/src/dec/idec_dec.c:628,1
    - Dst: DecodeVP8LHeader
      Src: /src/libwebp/src/dec/idec_dec.c:631,1
    - Dst: DecodeVP8LData
      Src: /src/libwebp/src/dec/idec_dec.c:634,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - idec
    argTypes:
    - WebPIDecoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 607
    functionDepth: 5
    functionLinenumber: 607
    functionLinenumberEnd: 637
    functionName: IDecode
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 2
    functionsReached:
    - DecodePartition0
    - DecodeVP8LData
    - DecodeVP8FrameHeader
    - DecodeWebPHeaders
    - DecodeVP8LHeader
    - DecodeRemaining
    linkageType: ''
    returnType: VP8StatusCode
    signature: VP8StatusCode IDecode(WebPIDecoder* idec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/dec/idec_dec.c:645,1
    - Dst: InitMemBuffer
      Src: /src/libwebp/src/dec/idec_dec.c:655,1
    - Dst: WebPInitDecBuffer
      Src: /src/libwebp/src/dec/idec_dec.c:656,1
    - Dst: VP8InitIo
      Src: /src/libwebp/src/dec/idec_dec.c:656,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/idec_dec.c:657,1
    - Dst: WebPResetDecParams
      Src: /src/libwebp/src/dec/idec_dec.c:661,1
    - Dst: WebPAvoidSlowMemory
      Src: /src/libwebp/src/dec/idec_dec.c:662,1
    - Dst: WebPInitCustomIo
      Src: /src/libwebp/src/dec/idec_dec.c:672,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 642
    functionDepth: 3
    functionLinenumber: 642
    functionLinenumberEnd: 675
    functionName: "WebPIDecoder* NewDecoder(\n    WebPDecBuffer* const output_buffer,\n
      \   const WebPBitstreamFeatures* const features)"
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - WebPAvoidSlowMemory
    - VP8InitIo
    - WebPSafeCalloc
    - WebPResetDecParams
    - InitMemBuffer
    - WebPSafeFree
    - WebPInitCustomIo
    - WebPInitDecBuffer
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD WebPIDecoder* NewDecoder(\n    WebPDecBuffer* const
      output_buffer,\n    const WebPBitstreamFeatures* const features)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NewDecoder
      Src: /src/libwebp/src/dec/idec_dec.c:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output_buffer
    argTypes:
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 682
    functionName: WebPINewDecoder
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - NewDecoder
    linkageType: ''
    returnType: WebPIDecoder
    signature: WebPIDecoder * WebPINewDecoder(WebPDecBuffer* output_buffer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/dec/idec_dec.c:690,1
    - Dst: WebPGetFeatures
      Src: /src/libwebp/src/dec/idec_dec.c:694,1
    - Dst: NewDecoder
      Src: /src/libwebp/src/dec/idec_dec.c:700,1
    - Dst: NewDecoder
      Src: /src/libwebp/src/dec/idec_dec.c:701,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    - config
    argTypes:
    - uint8_t*
    - size_t
    - WebPDecoderConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 710
    functionName: WebPIDecode
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 2
    functionsReached:
    - memset
    - NewDecoder
    - WebPGetFeatures
    linkageType: ''
    returnType: WebPIDecoder
    signature: "WebPIDecoder * WebPIDecode(const uint8_t* WEBP_COUNTED_BY(data_size)
      data,\n                          size_t data_size, WebPDecoderConfig* config)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VP8ExitCritical
      Src: /src/libwebp/src/dec/idec_dec.c:719,1
    - Dst: VP8Delete
      Src: /src/libwebp/src/dec/idec_dec.c:721,1
    - Dst: VP8LDelete
      Src: /src/libwebp/src/dec/idec_dec.c:723,1
    - Dst: ClearMemBuffer
      Src: /src/libwebp/src/dec/idec_dec.c:726,1
    - Dst: WebPFreeDecBuffer
      Src: /src/libwebp/src/dec/idec_dec.c:727,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/idec_dec.c:728,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - idec
    argTypes:
    - WebPIDecoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 712
    functionDepth: 2
    functionLinenumber: 712
    functionLinenumberEnd: 729
    functionName: WebPIDelete
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 2
    functionsReached:
    - VP8Delete
    - ClearMemBuffer
    - WebPFreeDecBuffer
    - VP8LDelete
    - VP8ExitCritical
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void WebPIDelete(WebPIDecoder* idec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WebPINewDecoder
      Src: /src/libwebp/src/dec/idec_dec.c:751,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - csp
    - WEBP_COUNTED_BY(output_buffer_size)
    - output_buffer_size
    - output_stride
    argTypes:
    - WEBP_CSP_MODE
    - uint8_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 759
    functionName: WebPINewRGB
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - WebPINewDecoder
    linkageType: ''
    returnType: WebPIDecoder
    signature: "WebPIDecoder * WebPINewRGB(WEBP_CSP_MODE csp,\n                          uint8_t*
      WEBP_COUNTED_BY(output_buffer_size)\n                              output_buffer,\n
      \                         size_t output_buffer_size, int output_stride)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: WebPINewDecoder
      Src: /src/libwebp/src/dec/idec_dec.c:793,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 12
    argNames:
    - WEBP_COUNTED_BY(luma_size)
    - luma_size
    - luma_stride
    - WEBP_COUNTED_BY(u_size)
    - u_size
    - u_stride
    - WEBP_COUNTED_BY(v_size)
    - v_size
    - v_stride
    - WEBP_COUNTED_BY(a_size)
    - a_size
    - a_stride
    argTypes:
    - uint8_t*
    - size_t
    - int
    - uint8_t*
    - size_t
    - int
    - uint8_t*
    - size_t
    - int
    - uint8_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 811
    functionName: WebPINewYUVA
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - WebPINewDecoder
    linkageType: ''
    returnType: WebPIDecoder
    signature: "WebPIDecoder * WebPINewYUVA(uint8_t* WEBP_COUNTED_BY(luma_size) luma,\n
      \                          size_t luma_size, int luma_stride,\n                           uint8_t*
      WEBP_COUNTED_BY(u_size) u, size_t u_size,\n                           int u_stride,
      uint8_t* WEBP_COUNTED_BY(v_size) v,\n                           size_t v_size,
      int v_stride,\n                           uint8_t* WEBP_COUNTED_BY(a_size) a,
      size_t a_size,\n                           int a_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPINewYUVA
      Src: /src/libwebp/src/dec/idec_dec.c:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - WEBP_COUNTED_BY(luma_size)
    - luma_size
    - luma_stride
    - WEBP_COUNTED_BY(u_size)
    - u_size
    - u_stride
    - WEBP_COUNTED_BY(v_size)
    - v_size
    - v_stride
    argTypes:
    - uint8_t*
    - size_t
    - int
    - uint8_t*
    - size_t
    - int
    - uint8_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 820
    functionName: WebPINewYUV
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - WebPINewYUVA
    linkageType: ''
    returnType: WebPIDecoder
    signature: "WebPIDecoder * WebPINewYUV(uint8_t* WEBP_COUNTED_BY(luma_size) luma,\n
      \                         size_t luma_size, int luma_stride,\n                          uint8_t*
      WEBP_COUNTED_BY(u_size) u, size_t u_size,\n                          int u_stride,
      uint8_t* WEBP_COUNTED_BY(v_size) v,\n                          size_t v_size,
      int v_stride)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/idec_dec.c:825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - idec
    argTypes:
    - WebPIDecoder*
    assertStmts:
    - condition: (idec)
      pos:
        line_end: 824
        line_start: 824
        source_file: /src/libwebp/src/dec/idec_dec.c
    constantsTouched: []
    func_position:
      end: 833
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 833
    functionName: IDecCheckStatus
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: VP8StatusCode
    signature: VP8StatusCode IDecCheckStatus(const WebPIDecoder* const idec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IDecCheckStatus
      Src: /src/libwebp/src/dec/idec_dec.c:842,1
    - Dst: CheckMemBufferMode
      Src: /src/libwebp/src/dec/idec_dec.c:847,1
    - Dst: AppendToMemBuffer
      Src: /src/libwebp/src/dec/idec_dec.c:851,1
    - Dst: IDecode
      Src: /src/libwebp/src/dec/idec_dec.c:854,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - idec
    - WEBP_COUNTED_BY(data_size)
    - data_size
    argTypes:
    - WebPIDecoder*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 835
    functionDepth: 6
    functionLinenumber: 835
    functionLinenumberEnd: 855
    functionName: WebPIAppend
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 2
    functionsReached:
    - CheckMemBufferMode
    - IDecCheckStatus
    - IDecode
    - AppendToMemBuffer
    linkageType: ''
    returnType: VP8StatusCode
    signature: "VP8StatusCode WebPIAppend(WebPIDecoder* idec,\n                          const
      uint8_t* WEBP_COUNTED_BY(data_size) data,\n                          size_t
      data_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IDecCheckStatus
      Src: /src/libwebp/src/dec/idec_dec.c:864,1
    - Dst: CheckMemBufferMode
      Src: /src/libwebp/src/dec/idec_dec.c:869,1
    - Dst: RemapMemBuffer
      Src: /src/libwebp/src/dec/idec_dec.c:873,1
    - Dst: IDecode
      Src: /src/libwebp/src/dec/idec_dec.c:876,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - idec
    - WEBP_COUNTED_BY(data_size)
    - data_size
    argTypes:
    - WebPIDecoder*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 857
    functionDepth: 6
    functionLinenumber: 857
    functionLinenumberEnd: 877
    functionName: WebPIUpdate
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 2
    functionsReached:
    - CheckMemBufferMode
    - IDecCheckStatus
    - RemapMemBuffer
    - IDecode
    linkageType: ''
    returnType: VP8StatusCode
    signature: "VP8StatusCode WebPIUpdate(WebPIDecoder* idec,\n                          const
      uint8_t* WEBP_COUNTED_BY(data_size) data,\n                          size_t
      data_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - idec
    argTypes:
    - WebPIDecoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 892
    functionName: GetOutputBuffer
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WebPDecBuffer
    signature: WebPDecBuffer * GetOutputBuffer(const WebPIDecoder* const idec)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GetOutputBuffer
      Src: /src/libwebp/src/dec/idec_dec.c:896,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 5
    argNames:
    - idec
    - left
    - top
    - width
    - height
    argTypes:
    - WebPIDecoder*
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 907
    functionName: WebPIDecodedArea
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - GetOutputBuffer
    linkageType: ''
    returnType: WebPDecBuffer
    signature: "WebPDecBuffer * WebPIDecodedArea(const WebPIDecoder* idec, int* left,\n
      \                                     int* top, int* width, int* height)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GetOutputBuffer
      Src: /src/libwebp/src/dec/idec_dec.c:911,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 5
    argNames:
    - idec
    - last_y
    - width
    - height
    - stride
    argTypes:
    - WebPIDecoder*
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 909
    functionDepth: 1
    functionLinenumber: 909
    functionLinenumberEnd: 923
    functionName: WebPIDecGetRGB
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - GetOutputBuffer
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD * WebPIDecGetRGB(const WebPIDecoder* idec, int* last_y,\n
      \                                      int* width, int* height, int* stride)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: GetOutputBuffer
      Src: /src/libwebp/src/dec/idec_dec.c:929,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 10
    argNames:
    - idec
    - last_y
    - u
    - v
    - a
    - width
    - height
    - stride
    - uv_stride
    - a_stride
    argTypes:
    - WebPIDecoder*
    - int*
    - uint8_t**
    - uint8_t**
    - uint8_t**
    - int*
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 946
    functionName: WebPIDecGetYUVA
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached:
    - GetOutputBuffer
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD * WebPIDecGetYUVA(const WebPIDecoder* idec, int* last_y,\n
      \                                       uint8_t** u, uint8_t** v, uint8_t**
      a,\n                                        int* width, int* height, int* stride,\n
      \                                       int* uv_stride, int* a_stride)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - idec
    - put
    - setup
    - teardown
    - user_data
    argTypes:
    - WebPIDecoder*
    - VP8IoPutHook
    - VP8IoSetupHook
    - VP8IoTeardownHook
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 961
    functionName: WebPISetIOHooks
    functionSourceFile: /src/libwebp/src/dec/idec_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int WebPISetIOHooks(WebPIDecoder* const idec, VP8IoPutHook put,\n
      \                   VP8IoSetupHook setup, VP8IoTeardownHook teardown,\n                    void*
      user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - webp_csp_mode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: IsValidColorspace
    functionSourceFile: /src/libwebp/src/dec/buffer_dec.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IsValidColorspace(int webp_csp_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - WIDTH
    - ','
    - HEIGHT
    - ','
    - STRIDE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: MIN_BUFFER_SIZE
    functionSourceFile: /src/libwebp/src/dec/buffer_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN_BUFFER_SIZE(WIDTH, HEIGHT, STRIDE)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsValidColorspace
      Src: /src/libwebp/src/dec/buffer_dec.c:51,1
    - Dst: WebPIsRGBMode
      Src: /src/libwebp/src/dec/buffer_dec.c:53,1
    - Dst: abs
      Src: /src/libwebp/src/dec/buffer_dec.c:57,1
    - Dst: abs
      Src: /src/libwebp/src/dec/buffer_dec.c:58,1
    - Dst: abs
      Src: /src/libwebp/src/dec/buffer_dec.c:59,1
    - Dst: abs
      Src: /src/libwebp/src/dec/buffer_dec.c:60,1
    - Dst: MIN_BUFFER_SIZE
      Src: /src/libwebp/src/dec/buffer_dec.c:61,1
    - Dst: MIN_BUFFER_SIZE
      Src: /src/libwebp/src/dec/buffer_dec.c:62,1
    - Dst: MIN_BUFFER_SIZE
      Src: /src/libwebp/src/dec/buffer_dec.c:63,1
    - Dst: MIN_BUFFER_SIZE
      Src: /src/libwebp/src/dec/buffer_dec.c:64,1
    - Dst: abs
      Src: /src/libwebp/src/dec/buffer_dec.c:81,1
    - Dst: MIN_BUFFER_SIZE
      Src: /src/libwebp/src/dec/buffer_dec.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 89
    functionName: CheckDecBuffer
    functionSourceFile: /src/libwebp/src/dec/buffer_dec.c
    functionUses: 0
    functionsReached:
    - WebPIsRGBMode
    - abs
    - IsValidColorspace
    - MIN_BUFFER_SIZE
    linkageType: ''
    returnType: VP8StatusCode
    signature: VP8StatusCode CheckDecBuffer(const WebPDecBuffer* const buffer)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: IsValidColorspace
      Src: /src/libwebp/src/dec/buffer_dec.c:97,1
    - Dst: WebPIsRGBMode
      Src: /src/libwebp/src/dec/buffer_dec.c:115,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/dec/buffer_dec.c:125,1
    - Dst: WebPIsRGBMode
      Src: /src/libwebp/src/dec/buffer_dec.c:131,1
    - Dst: CheckDecBuffer
      Src: /src/libwebp/src/dec/buffer_dec.c:154,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 155
    functionName: AllocateBuffer
    functionSourceFile: /src/libwebp/src/dec/buffer_dec.c
    functionUses: 0
    functionsReached:
    - WebPIsRGBMode
    - WebPSafeMalloc
    - IsValidColorspace
    - CheckDecBuffer
    linkageType: ''
    returnType: VP8StatusCode
    signature: VP8StatusCode AllocateBuffer(WebPDecBuffer* const buffer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WebPIsRGBMode
      Src: /src/libwebp/src/dec/buffer_dec.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 180
    functionName: WebPFlipBuffer
    functionSourceFile: /src/libwebp/src/dec/buffer_dec.c
    functionUses: 2
    functionsReached:
    - WebPIsRGBMode
    linkageType: ''
    returnType: VP8StatusCode
    signature: VP8StatusCode WebPFlipBuffer(WebPDecBuffer* const buffer)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: WebPCheckCropDimensions
      Src: /src/libwebp/src/dec/buffer_dec.c:195,1
    - Dst: WebPRescalerGetScaledDimensions
      Src: /src/libwebp/src/dec/buffer_dec.c:206,1
    - Dst: AllocateBuffer
      Src: /src/libwebp/src/dec/buffer_dec.c:221,1
    - Dst: WebPFlipBuffer
      Src: /src/libwebp/src/dec/buffer_dec.c:226,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - width
    - height
    - options
    - buffer
    argTypes:
    - int
    - int
    - WebPDecoderOptions*
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 229
    functionName: WebPAllocateDecBuffer
    functionSourceFile: /src/libwebp/src/dec/buffer_dec.c
    functionUses: 3
    functionsReached:
    - WebPRescalerGetScaledDimensions
    - WebPFlipBuffer
    - AllocateBuffer
    - WebPCheckCropDimensions
    linkageType: ''
    returnType: VP8StatusCode
    signature: "VP8StatusCode WebPAllocateDecBuffer(int width, int height,\n                                    const
      WebPDecoderOptions* const options,\n                                    WebPDecBuffer*
      const buffer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_ABI_IS_INCOMPATIBLE
      Src: /src/libwebp/src/dec/buffer_dec.c:235,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/buffer_dec.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - buffer
    - version
    argTypes:
    - WebPDecBuffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: WebPInitDecBufferInternal
    functionSourceFile: /src/libwebp/src/dec/buffer_dec.c
    functionUses: 0
    functionsReached:
    - WEBP_ABI_IS_INCOMPATIBLE
    - WEBP_UNSAFE_MEMSET
    linkageType: ''
    returnType: int
    signature: int WebPInitDecBufferInternal(WebPDecBuffer* buffer, int version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/buffer_dec.c:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 250
    functionName: WebPFreeDecBuffer
    functionSourceFile: /src/libwebp/src/dec/buffer_dec.c
    functionUses: 12
    functionsReached:
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void WebPFreeDecBuffer(WebPDecBuffer* buffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - WebPDecBuffer*
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 261
    functionName: WebPCopyDecBuffer
    functionSourceFile: /src/libwebp/src/dec/buffer_dec.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void WebPCopyDecBuffer(const WebPDecBuffer* const src,\n                       WebPDecBuffer*
      const dst)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - WebPDecBuffer*
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 272
    functionName: WebPGrabDecBuffer
    functionSourceFile: /src/libwebp/src/dec/buffer_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WebPGrabDecBuffer(WebPDecBuffer* const src, WebPDecBuffer* const
      dst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/buffer_dec.c:276,1
    - Dst: assert
      Src: /src/libwebp/src/dec/buffer_dec.c:277,1
    - Dst: CheckDecBuffer
      Src: /src/libwebp/src/dec/buffer_dec.c:281,1
    - Dst: WebPIsRGBMode
      Src: /src/libwebp/src/dec/buffer_dec.c:284,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/dec/buffer_dec.c:287,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/dec/buffer_dec.c:293,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/dec/buffer_dec.c:295,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/dec/buffer_dec.c:297,1
    - Dst: WebPIsAlphaMode
      Src: /src/libwebp/src/dec/buffer_dec.c:299,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/dec/buffer_dec.c:300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - src_buf
    - dst_buf
    argTypes:
    - WebPDecBuffer*
    - WebPDecBuffer*
    assertStmts:
    - condition: (src_buf != NULL && dst_buf != NULL)
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/libwebp/src/dec/buffer_dec.c
    - condition: (src_buf->colorspace == dst_buf->colorspace)
      pos:
        line_end: 276
        line_start: 276
        source_file: /src/libwebp/src/dec/buffer_dec.c
    constantsTouched: []
    func_position:
      end: 305
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 305
    functionName: WebPCopyDecBufferPixels
    functionSourceFile: /src/libwebp/src/dec/buffer_dec.c
    functionUses: 2
    functionsReached:
    - WebPIsRGBMode
    - WebPIsAlphaMode
    - CheckDecBuffer
    - assert
    - WebPCopyPlane
    linkageType: ''
    returnType: VP8StatusCode
    signature: "VP8StatusCode WebPCopyDecBufferPixels(const WebPDecBuffer* const src_buf,\n
      \                                     WebPDecBuffer* const dst_buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/buffer_dec.c:309,1
    - Dst: WebPIsPremultipliedMode
      Src: /src/libwebp/src/dec/buffer_dec.c:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - output
    - features
    argTypes:
    - WebPDecBuffer*
    - WebPBitstreamFeatures*
    assertStmts:
    - condition: (output != NULL)
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/libwebp/src/dec/buffer_dec.c
    constantsTouched: []
    func_position:
      end: 313
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: WebPAvoidSlowMemory
    functionSourceFile: /src/libwebp/src/dec/buffer_dec.c
    functionUses: 2
    functionsReached:
    - assert
    - WebPIsPremultipliedMode
    linkageType: ''
    returnType: int
    signature: "int WebPAvoidSlowMemory(const WebPDecBuffer* const output,\n                        const
      WebPBitstreamFeatures* const features)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/tree_dec.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proba
    argTypes:
    - VP8Proba*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: VP8ResetProba
    functionSourceFile: /src/libwebp/src/dec/tree_dec.c
    functionUses: 1
    functionsReached:
    - WEBP_UNSAFE_MEMSET
    linkageType: ''
    returnType: void
    signature: void VP8ResetProba(VP8Proba* const proba)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:267,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:268,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:269,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:273,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:275,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:279,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:280,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:281,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/tree_dec.c:283,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/tree_dec.c:284,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:295,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:297,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:303,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:304,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:305,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:306,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:307,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:309,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:311,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:313,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:315,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/tree_dec.c:321,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:327,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:328,1
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:329,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - br
    - dec
    - mb_x
    argTypes:
    - VP8BitReader*
    - VP8Decoder*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 331
    functionName: ParseIntraMode
    functionSourceFile: /src/libwebp/src/dec/tree_dec.c
    functionUses: 0
    functionsReached:
    - WEBP_UNSAFE_MEMSET
    - WEBP_UNSAFE_MEMCPY
    - VP8GetBit
    linkageType: ''
    returnType: void
    signature: "void ParseIntraMode(VP8BitReader* const br, VP8Decoder* const dec,\n
      \                          int mb_x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseIntraMode
      Src: /src/libwebp/src/dec/tree_dec.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - br
    - dec
    argTypes:
    - VP8BitReader*
    - VP8Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 339
    functionName: VP8ParseIntraModeRow
    functionSourceFile: /src/libwebp/src/dec/tree_dec.c
    functionUses: 2
    functionsReached:
    - ParseIntraMode
    linkageType: ''
    returnType: int
    signature: int VP8ParseIntraModeRow(VP8BitReader* const br, VP8Decoder* const
      dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8GetBit
      Src: /src/libwebp/src/dec/tree_dec.c:458,1
    - Dst: VP8GetValue
      Src: /src/libwebp/src/dec/tree_dec.c:459,1
    - Dst: VP8Get
      Src: /src/libwebp/src/dec/tree_dec.c:469,1
    - Dst: VP8GetValue
      Src: /src/libwebp/src/dec/tree_dec.c:471,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - br
    - dec
    argTypes:
    - VP8BitReader*
    - VP8Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 473
    functionName: VP8ParseProba
    functionSourceFile: /src/libwebp/src/dec/tree_dec.c
    functionUses: 1
    functionsReached:
    - VP8Get
    - VP8GetValue
    - VP8GetBit
    linkageType: ''
    returnType: void
    signature: void VP8ParseProba(VP8BitReader* const br, VP8Decoder* const dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - dec
    - error
    argTypes:
    - VP8LDecoder*
    - VP8StatusCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: VP8LSetError
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int VP8LSetError(VP8LDecoder* const dec, VP8StatusCode error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_COUNTED_BY(size)
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: VP8LCheckSignature
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int VP8LCheckSignature(const uint8_t* const WEBP_COUNTED_BY(size)
      data,\n                       size_t size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:116,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:117,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:118,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:119,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - br
    - width
    - height
    - has_alpha
    argTypes:
    - VP8LBitReader*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: ReadImageInfo
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - VP8LReadBits
    linkageType: ''
    returnType: int
    signature: "int ReadImageInfo(VP8LBitReader* const br, int* const width,\n                         int*
      const height, int* const has_alpha)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VP8LCheckSignature
      Src: /src/libwebp/src/dec/vp8l_dec.c:129,1
    - Dst: VP8LInitBitReader
      Src: /src/libwebp/src/dec/vp8l_dec.c:134,1
    - Dst: ReadImageInfo
      Src: /src/libwebp/src/dec/vp8l_dec.c:135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    - width
    - height
    - has_alpha
    argTypes:
    - uint8_t*
    - size_t
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 143
    functionName: VP8LGetInfo
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 2
    functionsReached:
    - VP8LInitBitReader
    - VP8LCheckSignature
    - ReadImageInfo
    linkageType: ''
    returnType: int
    signature: "int VP8LGetInfo(const uint8_t* WEBP_COUNTED_BY(data_size) data,\n
      \               size_t data_size, int* const width, int* const height,\n                int*
      const has_alpha)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - distance_symbol
    - br
    argTypes:
    - int
    - VP8LBitReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 156
    functionName: GetCopyDistance
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - VP8LReadBits
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE GetCopyDistance(int distance_symbol,\n                                       VP8LBitReader*
      const br)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCopyDistance
      Src: /src/libwebp/src/dec/vp8l_dec.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - length_symbol
    - br
    argTypes:
    - int
    - VP8LBitReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: GetCopyLength
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - GetCopyDistance
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE GetCopyLength(int length_symbol,\n                                     VP8LBitReader*
      const br)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - xsize
    - plane_code
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 174
    functionName: PlaneCodeToDistance
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE PlaneCodeToDistance(int xsize, int plane_code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LPrefetchBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:183,1
    - Dst: VP8LSetBitPos
      Src: /src/libwebp/src/dec/vp8l_dec.c:187,1
    - Dst: VP8LPrefetchBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:188,1
    - Dst: VP8LSetBitPos
      Src: /src/libwebp/src/dec/vp8l_dec.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - table
    - br
    argTypes:
    - HuffmanCode*
    - VP8LBitReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 194
    functionName: ReadSymbol
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - VP8LSetBitPos
    - VP8LPrefetchBits
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ReadSymbol(const HuffmanCode* table,\n                                  VP8LBitReader*
      const br)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LPrefetchBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:202,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:204,1
    - Dst: VP8LSetBitPos
      Src: /src/libwebp/src/dec/vp8l_dec.c:206,1
    - Dst: VP8LSetBitPos
      Src: /src/libwebp/src/dec/vp8l_dec.c:210,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - group
    - br
    - dst
    argTypes:
    - HTreeGroup*
    - VP8LBitReader*
    - uint32_t*
    assertStmts:
    - condition: (code.value >= NUM_LITERAL_CODES)
      pos:
        line_end: 210
        line_start: 210
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (group->use_packed_table)
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 214
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 214
    functionName: ReadPackedSymbols
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - VP8LSetBitPos
    - VP8LPrefetchBits
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ReadPackedSymbols(const HTreeGroup* group,\n                                         VP8LBitReader*
      const br,\n                                         uint32_t* const dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - hcode
    - shift
    - huff
    argTypes:
    - HuffmanCode
    - int
    - HuffmanCode32*
    assertStmts:
    - condition: (huff->bits <= HUFFMAN_TABLE_BITS)
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: AccumulateHCode
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int AccumulateHCode(HuffmanCode hcode, int shift,\n                           HuffmanCode32*
      const huff)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AccumulateHCode
      Src: /src/libwebp/src/dec/vp8l_dec.c:236,1
    - Dst: AccumulateHCode
      Src: /src/libwebp/src/dec/vp8l_dec.c:237,1
    - Dst: AccumulateHCode
      Src: /src/libwebp/src/dec/vp8l_dec.c:238,1
    - Dst: AccumulateHCode
      Src: /src/libwebp/src/dec/vp8l_dec.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - htree_group
    argTypes:
    - HTreeGroup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 243
    functionName: BuildPackedTable
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - AccumulateHCode
    linkageType: ''
    returnType: void
    signature: void BuildPackedTable(HTreeGroup* const htree_group)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/dec/vp8l_dec.c:257,1
    - Dst: VP8LHuffmanTablesAllocate
      Src: /src/libwebp/src/dec/vp8l_dec.c:261,1
    - Dst: VP8LBuildHuffmanTable
      Src: /src/libwebp/src/dec/vp8l_dec.c:265,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:270,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:271,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:272,1
    - Dst: VP8LFillBitWindow
      Src: /src/libwebp/src/dec/vp8l_dec.c:285,1
    - Dst: VP8LPrefetchBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:286,1
    - Dst: VP8LSetBitPos
      Src: /src/libwebp/src/dec/vp8l_dec.c:287,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:297,1
    - Dst: VP8LHuffmanTablesDeallocate
      Src: /src/libwebp/src/dec/vp8l_dec.c:309,1
    - Dst: VP8LSetError
      Src: /src/libwebp/src/dec/vp8l_dec.c:310,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 4
    argNames:
    - dec
    - code_length_code_lengths
    - num_symbols
    - code_lengths
    argTypes:
    - VP8LDecoder*
    - int*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 312
    functionName: ReadHuffmanCodeLengths
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - VP8LReadBits
    - VP8LFillBitWindow
    - VP8LBuildHuffmanTable
    - VP8LSetBitPos
    - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    - VP8LHuffmanTablesAllocate
    - VP8LPrefetchBits
    - VP8LHuffmanTablesDeallocate
    - VP8LSetError
    linkageType: ''
    returnType: int
    signature: "int ReadHuffmanCodeLengths(VP8LDecoder* const dec,\n                                  const
      int* const code_length_code_lengths,\n                                  int
      num_symbols, int* const code_lengths)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:322,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/vp8l_dec.c:324,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:327,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:328,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:330,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:334,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:341,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:342,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:345,1
    - Dst: ReadHuffmanCodeLengths
      Src: /src/libwebp/src/dec/vp8l_dec.c:347,1
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/dec/vp8l_dec.c:354,1
    - Dst: VP8LBuildHuffmanTable
      Src: /src/libwebp/src/dec/vp8l_dec.c:356,1
    - Dst: VP8LSetError
      Src: /src/libwebp/src/dec/vp8l_dec.c:360,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - alphabet_size
    - dec
    - code_lengths
    - table
    argTypes:
    - int
    - VP8LDecoder*
    - int*
    - HuffmanTables*
    assertStmts:
    - condition: (num_codes <= NUM_CODE_LENGTH_CODES)
      pos:
        line_end: 341
        line_start: 341
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 364
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 364
    functionName: ReadHuffmanCode
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - VP8LReadBits
    - ReadHuffmanCodeLengths
    - VP8LBuildHuffmanTable
    - assert
    - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    - WEBP_UNSAFE_MEMSET
    - VP8LSetError
    linkageType: ''
    returnType: int
    signature: "int ReadHuffmanCode(int alphabet_size, VP8LDecoder* const dec,\n                           int*
      const code_lengths,\n                           HuffmanTables* const table)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:380,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:381,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:383,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:386,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/dec/vp8l_dec.c:387,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/dec/vp8l_dec.c:388,1
    - Dst: DecodeImageStream
      Src: /src/libwebp/src/dec/vp8l_dec.c:390,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/dec/vp8l_dec.c:412,1
    - Dst: VP8LSetError
      Src: /src/libwebp/src/dec/vp8l_dec.c:414,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/vp8l_dec.c:419,1
    - Dst: ReadHuffmanCodesHelper
      Src: /src/libwebp/src/dec/vp8l_dec.c:434,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/vp8l_dec.c:447,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/vp8l_dec.c:449,1
    - Dst: VP8LHuffmanTablesDeallocate
      Src: /src/libwebp/src/dec/vp8l_dec.c:450,1
    - Dst: VP8LHtreeGroupsFree
      Src: /src/libwebp/src/dec/vp8l_dec.c:451,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 5
    argNames:
    - dec
    - xsize
    - ysize
    - color_cache_bits
    - allow_recursion
    argTypes:
    - VP8LDecoder*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (huffman_tables->root.start == NULL)
      pos:
        line_end: 379
        line_start: 379
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (huffman_tables->curr_segment == NULL)
      pos:
        line_end: 380
        line_start: 380
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 454
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 454
    functionName: ReadHuffmanCodes
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - VP8LReadBits
    - VP8LHtreeGroupsFree
    - assert
    - VP8LSubSampleSize
    - WEBP_UNSAFE_MEMSET
    - ReadHuffmanCodesHelper
    - DecodeImageStream
    - VP8LSetError
    - VP8LHuffmanTablesDeallocate
    - WebPSafeMalloc
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: "int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize,\n
      \                           int color_cache_bits, int allow_recursion)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/dec/vp8l_dec.c:474,1
    - Dst: VP8LHtreeGroupsNew
      Src: /src/libwebp/src/dec/vp8l_dec.c:475,1
    - Dst: VP8LHuffmanTablesAllocate
      Src: /src/libwebp/src/dec/vp8l_dec.c:484,1
    - Dst: VP8LSetError
      Src: /src/libwebp/src/dec/vp8l_dec.c:485,1
    - Dst: ReadHuffmanCode
      Src: /src/libwebp/src/dec/vp8l_dec.c:499,1
    - Dst: ReadHuffmanCode
      Src: /src/libwebp/src/dec/vp8l_dec.c:517,1
    - Dst: BuildPackedTable
      Src: /src/libwebp/src/dec/vp8l_dec.c:552,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/vp8l_dec.c:558,1
    - Dst: VP8LHuffmanTablesDeallocate
      Src: /src/libwebp/src/dec/vp8l_dec.c:560,1
    - Dst: VP8LHtreeGroupsFree
      Src: /src/libwebp/src/dec/vp8l_dec.c:561,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 73
    argCount: 7
    argNames:
    - color_cache_bits
    - num_htree_groups
    - num_htree_groups_max
    - mapping
    - dec
    - huffman_tables
    - htree_groups
    argTypes:
    - int
    - int
    - int
    - int*
    - VP8LDecoder*
    - HuffmanTables*
    - HTreeGroup**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 565
    functionName: ReadHuffmanCodesHelper
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 3
    functionsReached:
    - VP8LHtreeGroupsFree
    - VP8LHuffmanTablesAllocate
    - WebPSafeCalloc
    - VP8LSetError
    - VP8LHuffmanTablesDeallocate
    - VP8LHtreeGroupsNew
    - ReadHuffmanCode
    - WebPSafeFree
    - BuildPackedTable
    linkageType: ''
    returnType: int
    signature: "int ReadHuffmanCodesHelper(int color_cache_bits, int num_htree_groups,\n
      \                          int num_htree_groups_max, const int* const mapping,\n
      \                          VP8LDecoder* const dec,\n                           HuffmanTables*
      const huffman_tables,\n                           HTreeGroup** const htree_groups)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/dec/vp8l_dec.c:586,1
    - Dst: VP8LSetError
      Src: /src/libwebp/src/dec/vp8l_dec.c:588,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:590,1
    - Dst: WebPRescalerInit
      Src: /src/libwebp/src/dec/vp8l_dec.c:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - dec
    - io
    argTypes:
    - VP8LDecoder*
    - VP8Io*
    assertStmts:
    - condition: (dec->rescaler_memory == NULL)
      pos:
        line_end: 589
        line_start: 589
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 605
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 605
    functionName: AllocateAndInitRescaler
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - VP8LSetError
    - WebPSafeMalloc
    - assert
    - WebPRescalerInit
    linkageType: ''
    returnType: int
    signature: int AllocateAndInitRescaler(VP8LDecoder* const dec, VP8Io* const io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPRescalerHasPendingOutput
      Src: /src/libwebp/src/dec/vp8l_dec.c:620,1
    - Dst: WebPRescalerExportRow
      Src: /src/libwebp/src/dec/vp8l_dec.c:621,1
    - Dst: WebPMultARGBRow
      Src: /src/libwebp/src/dec/vp8l_dec.c:622,1
    - Dst: VP8LConvertFromBGRA
      Src: /src/libwebp/src/dec/vp8l_dec.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - rescaler
    - colorspace
    - rgba_stride
    - rgba
    argTypes:
    - WebPRescaler*
    - WEBP_CSP_MODE
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 628
    functionName: Export
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 3
    functionsReached:
    - WebPRescalerHasPendingOutput
    - VP8LConvertFromBGRA
    - WebPRescalerExportRow
    - WebPMultARGBRow
    linkageType: ''
    returnType: int
    signature: "int Export(WebPRescaler* const rescaler, WEBP_CSP_MODE colorspace,\n
      \                 int rgba_stride, uint8_t* const rgba)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPRescaleNeededLines
      Src: /src/libwebp/src/dec/vp8l_dec.c:641,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:643,1
    - Dst: WebPMultARGBRows
      Src: /src/libwebp/src/dec/vp8l_dec.c:644,1
    - Dst: WebPRescalerImport
      Src: /src/libwebp/src/dec/vp8l_dec.c:647,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:648,1
    - Dst: Export
      Src: /src/libwebp/src/dec/vp8l_dec.c:650,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - dec
    - in
    - in_stride
    - mb_h
    - out
    - out_stride
    argTypes:
    - VP8LDecoder*
    - uint8_t*
    - int
    - int
    - uint8_t*
    - int
    assertStmts:
    - condition: (needed_lines > 0 && needed_lines <= lines_left)
      pos:
        line_end: 642
        line_start: 642
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (lines_imported == needed_lines)
      pos:
        line_end: 647
        line_start: 647
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 653
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 653
    functionName: EmitRescaledRowsRGBA
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - WebPMultARGBRows
    - WebPRescalerImport
    - assert
    - Export
    - WebPRescaleNeededLines
    linkageType: ''
    returnType: int
    signature: "int EmitRescaledRowsRGBA(const VP8LDecoder* const dec, uint8_t* in,\n
      \                               int in_stride, int mb_h, uint8_t* const out,\n
      \                               int out_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LConvertFromBGRA
      Src: /src/libwebp/src/dec/vp8l_dec.c:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - colorspace
    - row_in
    - in_stride
    - mb_w
    - mb_h
    - out
    - out_stride
    argTypes:
    - WEBP_CSP_MODE
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 669
    functionName: EmitRows
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - VP8LConvertFromBGRA
    linkageType: ''
    returnType: int
    signature: "int EmitRows(WEBP_CSP_MODE colorspace, const uint8_t* row_in,\n                    int
      in_stride, int mb_w, int mb_h, uint8_t* const out,\n                    int
      out_stride)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPConvertARGBToY
      Src: /src/libwebp/src/dec/vp8l_dec.c:679,1
    - Dst: WebPConvertARGBToUV
      Src: /src/libwebp/src/dec/vp8l_dec.c:687,1
    - Dst: WebPExtractAlpha
      Src: /src/libwebp/src/dec/vp8l_dec.c:693,1
    - Dst: WebPExtractAlpha
      Src: /src/libwebp/src/dec/vp8l_dec.c:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - src
    - width
    - y_pos
    - output
    argTypes:
    - uint32_t*
    - int
    - int
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 698
    functionName: ConvertToYUVA
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - WebPExtractAlpha
    - WebPConvertARGBToUV
    - WebPConvertARGBToY
    linkageType: ''
    returnType: void
    signature: "void ConvertToYUVA(const uint32_t* const src, int width, int y_pos,\n
      \                         const WebPDecBuffer* const output)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPRescalerHasPendingOutput
      Src: /src/libwebp/src/dec/vp8l_dec.c:705,1
    - Dst: WebPRescalerExportRow
      Src: /src/libwebp/src/dec/vp8l_dec.c:706,1
    - Dst: WebPMultARGBRow
      Src: /src/libwebp/src/dec/vp8l_dec.c:707,1
    - Dst: ConvertToYUVA
      Src: /src/libwebp/src/dec/vp8l_dec.c:708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - dec
    - y_pos
    argTypes:
    - VP8LDecoder*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 713
    functionName: ExportYUVA
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - WebPRescalerHasPendingOutput
    - WebPRescalerExportRow
    - WebPMultARGBRow
    - ConvertToYUVA
    linkageType: ''
    returnType: int
    signature: int ExportYUVA(const VP8LDecoder* const dec, int y_pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPRescaleNeededLines
      Src: /src/libwebp/src/dec/vp8l_dec.c:721,1
    - Dst: WebPMultARGBRows
      Src: /src/libwebp/src/dec/vp8l_dec.c:723,1
    - Dst: WebPRescalerImport
      Src: /src/libwebp/src/dec/vp8l_dec.c:725,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:726,1
    - Dst: ExportYUVA
      Src: /src/libwebp/src/dec/vp8l_dec.c:729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - dec
    - in
    - in_stride
    - mb_h
    argTypes:
    - VP8LDecoder*
    - uint8_t*
    - int
    - int
    assertStmts:
    - condition: (lines_imported == needed_lines)
      pos:
        line_end: 725
        line_start: 725
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 732
      start: 715
    functionDepth: 2
    functionLinenumber: 715
    functionLinenumberEnd: 732
    functionName: EmitRescaledRowsYUVA
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - WebPMultARGBRows
    - WebPRescalerImport
    - assert
    - ExportYUVA
    - WebPRescaleNeededLines
    linkageType: ''
    returnType: int
    signature: "int EmitRescaledRowsYUVA(const VP8LDecoder* const dec, uint8_t* in,\n
      \                               int in_stride, int mb_h)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPInitAlphaProcessing
      Src: /src/libwebp/src/dec/vp8l_dec.c:737,1
    - Dst: WebPHasAlpha8b
      Src: /src/libwebp/src/dec/vp8l_dec.c:739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - alpha
    - width
    - height
    - y_step
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 742
    functionName: CheckNonOpaque
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 2
    functionsReached:
    - WebPHasAlpha8b
    - WebPInitAlphaProcessing
    linkageType: ''
    returnType: int
    signature: "int CheckNonOpaque(const uint8_t* alpha, int width, int height,\n
      \                         int y_step)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHANNEL_OFFSET
      Src: /src/libwebp/src/dec/vp8l_dec.c:758,1
    - Dst: CHANNEL_OFFSET
      Src: /src/libwebp/src/dec/vp8l_dec.c:759,1
    - Dst: CHANNEL_OFFSET
      Src: /src/libwebp/src/dec/vp8l_dec.c:760,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:765,1
    - Dst: CHANNEL_OFFSET
      Src: /src/libwebp/src/dec/vp8l_dec.c:772,1
    - Dst: CheckNonOpaque
      Src: /src/libwebp/src/dec/vp8l_dec.c:773,1
    - Dst: WebPImportYUVAFromRGBA
      Src: /src/libwebp/src/dec/vp8l_dec.c:776,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:782,1
    - Dst: CheckNonOpaque
      Src: /src/libwebp/src/dec/vp8l_dec.c:793,1
    - Dst: WebPImportYUVAFromRGBALastLine
      Src: /src/libwebp/src/dec/vp8l_dec.c:795,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 5
    argNames:
    - in
    - io
    - in_stride
    - tmp_rgb
    - dec
    argTypes:
    - uint8_t*
    - VP8Io*
    - int
    - uint16_t*
    - VP8LDecoder*
    assertStmts:
    - condition: (y_pos % 2 == 0)
      pos:
        line_end: 764
        line_start: 764
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (y_pos + 1 == y_pos_final)
      pos:
        line_end: 781
        line_start: 781
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 801
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 801
    functionName: EmitRowsYUVA
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - CheckNonOpaque
    - CHANNEL_OFFSET
    - assert
    - WebPImportYUVAFromRGBA
    - WebPImportYUVAFromRGBALastLine
    linkageType: ''
    returnType: int
    signature: "int EmitRowsYUVA(const uint8_t* const in, const VP8Io* const io,\n
      \                       int in_stride, uint16_t* tmp_rgb,\n                        VP8LDecoder*
      const dec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:813,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:814,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - io
    - y_start
    - y_end
    - in_data
    - pixel_stride
    argTypes:
    - VP8Io*
    - int
    - int
    - uint8_t**
    - int
    assertStmts:
    - condition: (y_start < y_end)
      pos:
        line_end: 812
        line_start: 812
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (io->crop_left < io->crop_right)
      pos:
        line_end: 813
        line_start: 813
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 831
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 831
    functionName: SetCropWindow
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int SetCropWindow(VP8Io* const io, int y_start, int y_end,\n                         uint8_t**
      const in_data, int pixel_stride)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - image
    - xsize
    - bits
    - x
    - y
    argTypes:
    - uint32_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 839
    functionName: GetMetaIndex
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE GetMetaIndex(const uint32_t* const image, int xsize,\n
      \                                   int bits, int x, int y)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetMetaIndex
      Src: /src/libwebp/src/dec/vp8l_dec.c:843,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hdr
    - x
    - y
    argTypes:
    - VP8LMetadata*
    - int
    - int
    assertStmts:
    - condition: (meta_index < hdr->num_htree_groups)
      pos:
        line_end: 844
        line_start: 844
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 847
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 847
    functionName: GetHtreeGroupForPos
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - GetMetaIndex
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE * GetHtreeGroupForPos(VP8LMetadata* const hdr,\n                                                   int
      x, int y)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LInverseTransform
      Src: /src/libwebp/src/dec/vp8l_dec.c:868,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/vp8l_dec.c:873,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - dec
    - start_row
    - num_rows
    - rows
    argTypes:
    - VP8LDecoder*
    - int
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 875
    functionName: ApplyInverseTransforms
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - VP8LInverseTransform
    - WEBP_UNSAFE_MEMCPY
    linkageType: ''
    returnType: void
    signature: "void ApplyInverseTransforms(VP8LDecoder* const dec, int start_row,\n
      \                                  int num_rows, const uint32_t* const rows)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: WebPIsRGBMode
      Src: /src/libwebp/src/dec/vp8l_dec.c:888,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:902,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:905,1
    - Dst: ApplyInverseTransforms
      Src: /src/libwebp/src/dec/vp8l_dec.c:910,1
    - Dst: SetCropWindow
      Src: /src/libwebp/src/dec/vp8l_dec.c:911,1
    - Dst: WebPIsRGBMode
      Src: /src/libwebp/src/dec/vp8l_dec.c:915,1
    - Dst: defined
      Src: /src/libwebp/src/dec/vp8l_dec.c:920,1
    - Dst: EmitRescaledRowsRGBA
      Src: /src/libwebp/src/dec/vp8l_dec.c:921,1
    - Dst: EmitRows
      Src: /src/libwebp/src/dec/vp8l_dec.c:925,1
    - Dst: EmitRescaledRowsYUVA
      Src: /src/libwebp/src/dec/vp8l_dec.c:932,1
    - Dst: EmitRowsYUVA
      Src: /src/libwebp/src/dec/vp8l_dec.c:933,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:936,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:942,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - dec
    - row
    - wait_for_biggest_batch
    argTypes:
    - VP8LDecoder*
    - int
    - int
    assertStmts:
    - condition: (num_rows <= NUM_ARGB_CACHE_ROWS)
      pos:
        line_end: 904
        line_start: 904
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (row <= dec->io->crop_bottom)
      pos:
        line_end: 901
        line_start: 901
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (dec->last_out_row <= output->height)
      pos:
        line_end: 935
        line_start: 935
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (dec->last_row <= dec->height)
      pos:
        line_end: 941
        line_start: 941
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 943
      start: 879
    functionDepth: 3
    functionLinenumber: 879
    functionLinenumberEnd: 943
    functionName: ProcessRows
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - WebPIsRGBMode
    - EmitRowsYUVA
    - assert
    - EmitRescaledRowsYUVA
    - EmitRescaledRowsRGBA
    - SetCropWindow
    - defined
    - EmitRows
    - ApplyInverseTransforms
    linkageType: ''
    returnType: void
    signature: "void ProcessRows(VP8LDecoder* const dec, int row,\n                        int
      wait_for_biggest_batch)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - VP8LMetadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 959
    functionName: Is8bOptimizable
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Is8bOptimizable(const VP8LMetadata* const hdr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:966,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - alph_dec
    - first_row
    - last_row
    - out
    - stride
    argTypes:
    - ALPHDecoder*
    - int
    - int
    - uint8_t*
    - int
    assertStmts:
    - condition: (WebPUnfilters[alph_dec->filter] != NULL)
      pos:
        line_end: 965
        line_start: 965
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 974
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 974
    functionName: AlphaApplyFilter
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void AlphaApplyFilter(ALPHDecoder* const alph_dec, int first_row,\n
      \                            int last_row, uint8_t* out, int stride)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:985,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:992,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:993,1
    - Dst: VP8LColorIndexInverseTransformAlpha
      Src: /src/libwebp/src/dec/vp8l_dec.c:994,1
    - Dst: AlphaApplyFilter
      Src: /src/libwebp/src/dec/vp8l_dec.c:996,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - dec
    - last_row
    argTypes:
    - VP8LDecoder*
    - int
    assertStmts:
    - condition: (last_row <= dec->io->crop_bottom)
      pos:
        line_end: 984
        line_start: 984
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (transform->type == COLOR_INDEXING_TRANSFORM)
      pos:
        line_end: 992
        line_start: 992
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (dec->next_transform == 1)
      pos:
        line_end: 991
        line_start: 991
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 999
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 999
    functionName: ExtractPalettedAlphaRows
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - AlphaApplyFilter
    - VP8LColorIndexInverseTransformAlpha
    linkageType: ''
    returnType: void
    signature: void ExtractPalettedAlphaRows(VP8LDecoder* const dec, int last_row)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - V
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1011
    functionName: Rotate8b
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Rotate8b(uint32_t V)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rotate8b
      Src: /src/libwebp/src/dec/vp8l_dec.c:1020,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - src
    - dst
    - length
    - pattern
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1032
    functionName: CopySmallPattern8b
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - Rotate8b
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE CopySmallPattern8b(const uint8_t* src, uint8_t* dst,\n
      \                                          int length, uint32_t pattern)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/vp8l_dec.c:1052,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/vp8l_dec.c:1065,1
    - Dst: CopySmallPattern8b
      Src: /src/libwebp/src/dec/vp8l_dec.c:1070,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/vp8l_dec.c:1075,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - dst
    - dist
    - length
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1034
    functionDepth: 2
    functionLinenumber: 1034
    functionLinenumberEnd: 1080
    functionName: CopyBlock8b
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - WEBP_UNSAFE_MEMCPY
    - CopySmallPattern8b
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE CopyBlock8b(uint8_t* const dst, int dist, int length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1091,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - src
    - dst
    - length
    - pattern
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint64_t
    assertStmts:
    - condition: (0 == ((uintptr_t)dst & 7))
      pos:
        line_end: 1090
        line_start: 1090
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 1098
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1098
    functionName: CopySmallPattern32b
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE CopySmallPattern32b(const uint32_t* src, uint32_t* dst,\n
      \                                           int length, uint64_t pattern)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/vp8l_dec.c:1109,1
    - Dst: CopySmallPattern32b
      Src: /src/libwebp/src/dec/vp8l_dec.c:1111,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/vp8l_dec.c:1113,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - dst
    - dist
    - length
    argTypes:
    - uint32_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1118
    functionName: CopyBlock32b
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - WEBP_UNSAFE_MEMCPY
    - CopySmallPattern32b
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE CopyBlock32b(uint32_t* const dst, int dist,\n                                     int
      length)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1136,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1137,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1138,1
    - Dst: Is8bOptimizable
      Src: /src/libwebp/src/dec/vp8l_dec.c:1138,1
    - Dst: GetHtreeGroupForPos
      Src: /src/libwebp/src/dec/vp8l_dec.c:1141,1
    - Dst: VP8LFillBitWindow
      Src: /src/libwebp/src/dec/vp8l_dec.c:1158,1
    - Dst: ReadSymbol
      Src: /src/libwebp/src/dec/vp8l_dec.c:1159,1
    - Dst: GetCopyLength
      Src: /src/libwebp/src/dec/vp8l_dec.c:1166,1
    - Dst: ReadSymbol
      Src: /src/libwebp/src/dec/vp8l_dec.c:1167,1
    - Dst: VP8LFillBitWindow
      Src: /src/libwebp/src/dec/vp8l_dec.c:1168,1
    - Dst: GetCopyDistance
      Src: /src/libwebp/src/dec/vp8l_dec.c:1169,1
    - Dst: PlaneCodeToDistance
      Src: /src/libwebp/src/dec/vp8l_dec.c:1170,1
    - Dst: CopyBlock8b
      Src: /src/libwebp/src/dec/vp8l_dec.c:1173,1
    - Dst: VP8LIsEndOfStream
      Src: /src/libwebp/src/dec/vp8l_dec.c:1183,1
    - Dst: ExtractPalettedAlphaRows
      Src: /src/libwebp/src/dec/vp8l_dec.c:1190,1
    - Dst: ExtractPalettedAlphaRows
      Src: /src/libwebp/src/dec/vp8l_dec.c:1195,1
    - Dst: VP8LIsEndOfStream
      Src: /src/libwebp/src/dec/vp8l_dec.c:1198,1
    - Dst: VP8LSetError
      Src: /src/libwebp/src/dec/vp8l_dec.c:1200,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 5
    argNames:
    - dec
    - data
    - width
    - height
    - last_row
    argTypes:
    - VP8LDecoder*
    - uint8_t*
    - int
    - int
    - int
    assertStmts:
    - condition: (src <= src_end)
      pos:
        line_end: 1135
        line_start: 1135
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (Is8bOptimizable(hdr))
      pos:
        line_end: 1137
        line_start: 1137
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (last_row <= height)
      pos:
        line_end: 1136
        line_start: 1136
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 1205
      start: 1122
    functionDepth: 3
    functionLinenumber: 1122
    functionLinenumberEnd: 1205
    functionName: DecodeAlphaData
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - ExtractPalettedAlphaRows
    - Is8bOptimizable
    - VP8LFillBitWindow
    - assert
    - ReadSymbol
    - GetCopyLength
    - GetCopyDistance
    - VP8LSetError
    - CopyBlock8b
    - GetHtreeGroupForPos
    - PlaneCodeToDistance
    - VP8LIsEndOfStream
    linkageType: ''
    returnType: int
    signature: "int DecodeAlphaData(VP8LDecoder* const dec, uint8_t* const data,\n
      \                          int width, int height, int last_row)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1208,1
    - Dst: VP8LColorCacheCopy
      Src: /src/libwebp/src/dec/vp8l_dec.c:1212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dec
    - last_pixel
    argTypes:
    - VP8LDecoder*
    - int
    assertStmts:
    - condition: (dec->incremental)
      pos:
        line_end: 1207
        line_start: 1207
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 1214
      start: 1207
    functionDepth: 1
    functionLinenumber: 1207
    functionLinenumberEnd: 1214
    functionName: SaveState
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - VP8LColorCacheCopy
    linkageType: ''
    returnType: void
    signature: void SaveState(VP8LDecoder* const dec, int last_pixel)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1217,1
    - Dst: VP8LColorCacheCopy
      Src: /src/libwebp/src/dec/vp8l_dec.c:1222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - dec
    argTypes:
    - VP8LDecoder*
    assertStmts:
    - condition: (dec->br.eos)
      pos:
        line_end: 1216
        line_start: 1216
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 1224
      start: 1216
    functionDepth: 1
    functionLinenumber: 1216
    functionLinenumberEnd: 1224
    functionName: RestoreState
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - VP8LColorCacheCopy
    linkageType: ''
    returnType: void
    signature: void RestoreState(VP8LDecoder* const dec)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: GetHtreeGroupForPos
      Src: /src/libwebp/src/dec/vp8l_dec.c:1245,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1246,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1247,1
    - Dst: SaveState
      Src: /src/libwebp/src/dec/vp8l_dec.c:1252,1
    - Dst: GetHtreeGroupForPos
      Src: /src/libwebp/src/dec/vp8l_dec.c:1259,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1261,1
    - Dst: VP8LFillBitWindow
      Src: /src/libwebp/src/dec/vp8l_dec.c:1266,1
    - Dst: ReadPackedSymbols
      Src: /src/libwebp/src/dec/vp8l_dec.c:1268,1
    - Dst: VP8LIsEndOfStream
      Src: /src/libwebp/src/dec/vp8l_dec.c:1269,1
    - Dst: ReadSymbol
      Src: /src/libwebp/src/dec/vp8l_dec.c:1272,1
    - Dst: VP8LIsEndOfStream
      Src: /src/libwebp/src/dec/vp8l_dec.c:1276,1
    - Dst: ReadSymbol
      Src: /src/libwebp/src/dec/vp8l_dec.c:1280,1
    - Dst: VP8LFillBitWindow
      Src: /src/libwebp/src/dec/vp8l_dec.c:1281,1
    - Dst: ReadSymbol
      Src: /src/libwebp/src/dec/vp8l_dec.c:1282,1
    - Dst: ReadSymbol
      Src: /src/libwebp/src/dec/vp8l_dec.c:1283,1
    - Dst: VP8LIsEndOfStream
      Src: /src/libwebp/src/dec/vp8l_dec.c:1284,1
    - Dst: process_func
      Src: /src/libwebp/src/dec/vp8l_dec.c:1295,1
    - Dst: VP8LColorCacheInsert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1300,1
    - Dst: GetCopyLength
      Src: /src/libwebp/src/dec/vp8l_dec.c:1307,1
    - Dst: ReadSymbol
      Src: /src/libwebp/src/dec/vp8l_dec.c:1308,1
    - Dst: VP8LFillBitWindow
      Src: /src/libwebp/src/dec/vp8l_dec.c:1309,1
    - Dst: GetCopyDistance
      Src: /src/libwebp/src/dec/vp8l_dec.c:1310,1
    - Dst: PlaneCodeToDistance
      Src: /src/libwebp/src/dec/vp8l_dec.c:1311,1
    - Dst: VP8LIsEndOfStream
      Src: /src/libwebp/src/dec/vp8l_dec.c:1313,1
    - Dst: CopyBlock32b
      Src: /src/libwebp/src/dec/vp8l_dec.c:1317,1
    - Dst: process_func
      Src: /src/libwebp/src/dec/vp8l_dec.c:1326,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1332,1
    - Dst: GetHtreeGroupForPos
      Src: /src/libwebp/src/dec/vp8l_dec.c:1333,1
    - Dst: VP8LColorCacheInsert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1336,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1341,1
    - Dst: VP8LIsEndOfStream
      Src: /src/libwebp/src/dec/vp8l_dec.c:1342,1
    - Dst: VP8LColorCacheInsert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1344,1
    - Dst: VP8LColorCacheLookup
      Src: /src/libwebp/src/dec/vp8l_dec.c:1346,1
    - Dst: VP8LIsEndOfStream
      Src: /src/libwebp/src/dec/vp8l_dec.c:1353,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1364,1
    - Dst: RestoreState
      Src: /src/libwebp/src/dec/vp8l_dec.c:1366,1
    - Dst: process_func
      Src: /src/libwebp/src/dec/vp8l_dec.c:1370,1
    - Dst: VP8LSetError
      Src: /src/libwebp/src/dec/vp8l_dec.c:1383,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 127
    argCount: 6
    argNames:
    - dec
    - data
    - width
    - height
    - last_row
    - process_func
    argTypes:
    - VP8LDecoder*
    - uint32_t*
    - int
    - int
    - int
    - ProcessRowsFunc
    assertStmts:
    - condition: (dec->last_row < last_row)
      pos:
        line_end: 1245
        line_start: 1245
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (src <= src_end)
      pos:
        line_end: 1331
        line_start: 1331
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (!dec->incremental || (br->eos && src < src_last) || src >= src_last)
      pos:
        line_end: 1363
        line_start: 1363
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (htree_group != NULL)
      pos:
        line_end: 1260
        line_start: 1260
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (color_cache != NULL)
      pos:
        line_end: 1340
        line_start: 1340
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (src_last <= src_end)
      pos:
        line_end: 1246
        line_start: 1246
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 1384
      start: 1227
    functionDepth: 3
    functionLinenumber: 1227
    functionLinenumberEnd: 1384
    functionName: DecodeImageData
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - RestoreState
    - VP8LFillBitWindow
    - assert
    - ReadSymbol
    - SaveState
    - GetCopyLength
    - GetCopyDistance
    - VP8LColorCacheInsert
    - VP8LSetError
    - PlaneCodeToDistance
    - ReadPackedSymbols
    - GetHtreeGroupForPos
    - CopyBlock32b
    - process_func
    - VP8LIsEndOfStream
    - VP8LColorCacheLookup
    linkageType: ''
    returnType: int
    signature: "int DecodeImageData(VP8LDecoder* const dec, uint32_t* const data,\n
      \                          int width, int height, int last_row,\n                           ProcessRowsFunc
      process_func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/vp8l_dec.c:1390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - transform
    argTypes:
    - VP8LTransform*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1389
    functionDepth: 1
    functionLinenumber: 1389
    functionLinenumberEnd: 1392
    functionName: ClearTransform
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void ClearTransform(VP8LTransform* const transform)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/dec/vp8l_dec.c:1399,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/vp8l_dec.c:1414,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - num_colors
    - transform
    argTypes:
    - int
    - VP8LTransform*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1396
    functionDepth: 1
    functionLinenumber: 1396
    functionLinenumberEnd: 1418
    functionName: ExpandColorMap
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - WebPSafeMalloc
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: int ExpandColorMap(int num_colors, VP8LTransform* const transform)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:1426,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1439,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:1445,1
    - Dst: DecodeImageStream
      Src: /src/libwebp/src/dec/vp8l_dec.c:1446,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/dec/vp8l_dec.c:1447,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/dec/vp8l_dec.c:1448,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:1452,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/dec/vp8l_dec.c:1457,1
    - Dst: DecodeImageStream
      Src: /src/libwebp/src/dec/vp8l_dec.c:1459,1
    - Dst: ExpandColorMap
      Src: /src/libwebp/src/dec/vp8l_dec.c:1461,1
    - Dst: VP8LSetError
      Src: /src/libwebp/src/dec/vp8l_dec.c:1462,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1469,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - xsize
    - ysize
    - dec
    argTypes:
    - int*
    - int*
    - VP8LDecoder*
    assertStmts:
    - condition: (dec->next_transform <= NUM_TRANSFORMS)
      pos:
        line_end: 1438
        line_start: 1438
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (0)
      pos:
        line_end: 1468
        line_start: 1468
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 1474
      start: 1420
    functionDepth: 2
    functionLinenumber: 1420
    functionLinenumberEnd: 1474
    functionName: ReadTransform
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - ExpandColorMap
    - VP8LReadBits
    - assert
    - VP8LSubSampleSize
    - DecodeImageStream
    - VP8LSetError
    linkageType: ''
    returnType: int
    signature: "int ReadTransform(int* const xsize, int const* ysize,\n                         VP8LDecoder*
      const dec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1480,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/vp8l_dec.c:1481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - VP8LMetadata*
    assertStmts:
    - condition: (hdr != NULL)
      pos:
        line_end: 1479
        line_start: 1479
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 1482
      start: 1479
    functionDepth: 1
    functionLinenumber: 1479
    functionLinenumberEnd: 1482
    functionName: InitMetadata
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - WEBP_UNSAFE_MEMSET
    linkageType: ''
    returnType: void
    signature: void InitMetadata(VP8LMetadata* const hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1485,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/vp8l_dec.c:1487,1
    - Dst: VP8LHuffmanTablesDeallocate
      Src: /src/libwebp/src/dec/vp8l_dec.c:1488,1
    - Dst: VP8LHtreeGroupsFree
      Src: /src/libwebp/src/dec/vp8l_dec.c:1489,1
    - Dst: VP8LColorCacheClear
      Src: /src/libwebp/src/dec/vp8l_dec.c:1490,1
    - Dst: VP8LColorCacheClear
      Src: /src/libwebp/src/dec/vp8l_dec.c:1491,1
    - Dst: InitMetadata
      Src: /src/libwebp/src/dec/vp8l_dec.c:1492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - VP8LMetadata*
    assertStmts:
    - condition: (hdr != NULL)
      pos:
        line_end: 1484
        line_start: 1484
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 1493
      start: 1484
    functionDepth: 2
    functionLinenumber: 1484
    functionLinenumberEnd: 1493
    functionName: ClearMetadata
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - VP8LHtreeGroupsFree
    - VP8LColorCacheClear
    - assert
    - VP8LHuffmanTablesDeallocate
    - InitMetadata
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void ClearMetadata(VP8LMetadata* const hdr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/dec/vp8l_dec.c:1499,1
    - Dst: VP8LDspInit
      Src: /src/libwebp/src/dec/vp8l_dec.c:1504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1498
    functionDepth: 1
    functionLinenumber: 1498
    functionLinenumberEnd: 1507
    functionName: VP8LNew
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 4
    functionsReached:
    - VP8LDspInit
    - WebPSafeCalloc
    linkageType: ''
    returnType: VP8LDecoder
    signature: VP8LDecoder * VP8LNew(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/vp8l_dec.c:1512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dec
    argTypes:
    - VP8LDecoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1511
    functionDepth: 1
    functionLinenumber: 1511
    functionLinenumberEnd: 1516
    functionName: ClearInternalBuffers
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void ClearInternalBuffers(VP8LDecoder* const dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ClearMetadata
      Src: /src/libwebp/src/dec/vp8l_dec.c:1523,1
    - Dst: ClearInternalBuffers
      Src: /src/libwebp/src/dec/vp8l_dec.c:1525,1
    - Dst: ClearTransform
      Src: /src/libwebp/src/dec/vp8l_dec.c:1527,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/vp8l_dec.c:1532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - dec
    argTypes:
    - VP8LDecoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1520
    functionDepth: 3
    functionLinenumber: 1520
    functionLinenumberEnd: 1536
    functionName: VP8LClear
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - ClearTransform
    - ClearMetadata
    - WebPSafeFree
    - ClearInternalBuffers
    linkageType: ''
    returnType: void
    signature: void VP8LClear(VP8LDecoder* const dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LClear
      Src: /src/libwebp/src/dec/vp8l_dec.c:1540,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/vp8l_dec.c:1541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dec
    argTypes:
    - VP8LDecoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1538
    functionDepth: 4
    functionLinenumber: 1538
    functionLinenumberEnd: 1543
    functionName: VP8LDelete
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 4
    functionsReached:
    - VP8LClear
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void VP8LDelete(VP8LDecoder* const dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/dec/vp8l_dec.c:1551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - dec
    - width
    - height
    argTypes:
    - VP8LDecoder*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1545
    functionDepth: 1
    functionLinenumber: 1545
    functionLinenumberEnd: 1553
    functionName: UpdateDecoder
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - VP8LSubSampleSize
    linkageType: ''
    returnType: void
    signature: void UpdateDecoder(VP8LDecoder* const dec, int width, int height)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:1568,1
    - Dst: ReadTransform
      Src: /src/libwebp/src/dec/vp8l_dec.c:1569,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:1574,1
    - Dst: VP8LReadBits
      Src: /src/libwebp/src/dec/vp8l_dec.c:1575,1
    - Dst: VP8LSetError
      Src: /src/libwebp/src/dec/vp8l_dec.c:1578,1
    - Dst: ReadHuffmanCodes
      Src: /src/libwebp/src/dec/vp8l_dec.c:1584,1
    - Dst: VP8LSetError
      Src: /src/libwebp/src/dec/vp8l_dec.c:1587,1
    - Dst: VP8LColorCacheInit
      Src: /src/libwebp/src/dec/vp8l_dec.c:1594,1
    - Dst: VP8LSetError
      Src: /src/libwebp/src/dec/vp8l_dec.c:1595,1
    - Dst: UpdateDecoder
      Src: /src/libwebp/src/dec/vp8l_dec.c:1601,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/dec/vp8l_dec.c:1610,1
    - Dst: VP8LSetError
      Src: /src/libwebp/src/dec/vp8l_dec.c:1612,1
    - Dst: DecodeImageData
      Src: /src/libwebp/src/dec/vp8l_dec.c:1618,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/vp8l_dec.c:1624,1
    - Dst: ClearMetadata
      Src: /src/libwebp/src/dec/vp8l_dec.c:1625,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1632,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1633,1
    - Dst: ClearMetadata
      Src: /src/libwebp/src/dec/vp8l_dec.c:1636,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 5
    argNames:
    - xsize
    - ysize
    - is_level0
    - dec
    - decoded_data
    argTypes:
    - int
    - int
    - int
    - VP8LDecoder*
    - uint32_t**
    assertStmts:
    - condition: (data == NULL)
      pos:
        line_end: 1631
        line_start: 1631
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (is_level0)
      pos:
        line_end: 1632
        line_start: 1632
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 1639
      start: 1555
    functionDepth: 4
    functionLinenumber: 1555
    functionLinenumberEnd: 1639
    functionName: DecodeImageStream
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 2
    functionsReached:
    - UpdateDecoder
    - VP8LReadBits
    - ClearMetadata
    - ReadTransform
    - assert
    - VP8LColorCacheInit
    - ReadHuffmanCodes
    - VP8LSetError
    - WebPSafeMalloc
    - WebPSafeFree
    - DecodeImageData
    linkageType: ''
    returnType: int
    signature: "int DecodeImageStream(int xsize, int ysize, int is_level0,\n                             VP8LDecoder*
      const dec,\n                             uint32_t** const decoded_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPIsRGBMode
      Src: /src/libwebp/src/dec/vp8l_dec.c:1653,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1660,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/dec/vp8l_dec.c:1661,1
    - Dst: ClearInternalBuffers
      Src: /src/libwebp/src/dec/vp8l_dec.c:1663,1
    - Dst: VP8LSetError
      Src: /src/libwebp/src/dec/vp8l_dec.c:1664,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - dec
    - final_width
    argTypes:
    - VP8LDecoder*
    - int
    assertStmts:
    - condition: (dec->width <= final_width)
      pos:
        line_end: 1659
        line_start: 1659
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 1674
      start: 1643
    functionDepth: 2
    functionLinenumber: 1643
    functionLinenumberEnd: 1674
    functionName: AllocateInternalBuffers32b
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - WebPIsRGBMode
    - assert
    - ClearInternalBuffers
    - VP8LSetError
    - WebPSafeMalloc
    linkageType: ''
    returnType: int
    signature: int AllocateInternalBuffers32b(VP8LDecoder* const dec, int final_width)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ClearInternalBuffers
      Src: /src/libwebp/src/dec/vp8l_dec.c:1678,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/dec/vp8l_dec.c:1679,1
    - Dst: VP8LSetError
      Src: /src/libwebp/src/dec/vp8l_dec.c:1681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - dec
    argTypes:
    - VP8LDecoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1676
    functionDepth: 2
    functionLinenumber: 1676
    functionLinenumberEnd: 1684
    functionName: AllocateInternalBuffers8b
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - VP8LSetError
    - WebPSafeMalloc
    - ClearInternalBuffers
    linkageType: ''
    returnType: int
    signature: int AllocateInternalBuffers8b(VP8LDecoder* const dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1698,1
    - Dst: ApplyInverseTransforms
      Src: /src/libwebp/src/dec/vp8l_dec.c:1709,1
    - Dst: WebPExtractGreen
      Src: /src/libwebp/src/dec/vp8l_dec.c:1710,1
    - Dst: AlphaApplyFilter
      Src: /src/libwebp/src/dec/vp8l_dec.c:1711,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1717,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - dec
    - last_row
    - wait_for_biggest_batch
    argTypes:
    - VP8LDecoder*
    - int
    - int
    assertStmts:
    - condition: (last_row <= dec->io->crop_bottom)
      pos:
        line_end: 1697
        line_start: 1697
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (cur_row == last_row)
      pos:
        line_end: 1716
        line_start: 1716
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 1719
      start: 1689
    functionDepth: 2
    functionLinenumber: 1689
    functionLinenumberEnd: 1719
    functionName: ExtractAlphaRows
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - AlphaApplyFilter
    - ApplyInverseTransforms
    - WebPExtractGreen
    linkageType: ''
    returnType: void
    signature: "void ExtractAlphaRows(VP8LDecoder* const dec, int last_row,\n                             int
      wait_for_biggest_batch)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VP8LNew
      Src: /src/libwebp/src/dec/vp8l_dec.c:1726,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1730,1
    - Dst: VP8LInitBitReader
      Src: /src/libwebp/src/dec/vp8l_dec.c:1740,1
    - Dst: DecodeImageStream
      Src: /src/libwebp/src/dec/vp8l_dec.c:1742,1
    - Dst: Is8bOptimizable
      Src: /src/libwebp/src/dec/vp8l_dec.c:1752,1
    - Dst: AllocateInternalBuffers8b
      Src: /src/libwebp/src/dec/vp8l_dec.c:1754,1
    - Dst: AllocateInternalBuffers32b
      Src: /src/libwebp/src/dec/vp8l_dec.c:1758,1
    - Dst: VP8LDelete
      Src: /src/libwebp/src/dec/vp8l_dec.c:1771,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - alph_dec
    - WEBP_COUNTED_BY(data_size)
    - data_size
    argTypes:
    - ALPHDecoder*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (alph_dec != NULL)
      pos:
        line_end: 1729
        line_start: 1729
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 1773
      start: 1721
    functionDepth: 5
    functionLinenumber: 1721
    functionLinenumberEnd: 1773
    functionName: VP8LDecodeAlphaHeader
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - Is8bOptimizable
    - assert
    - VP8LInitBitReader
    - AllocateInternalBuffers8b
    - VP8LDelete
    - DecodeImageStream
    - VP8LNew
    - AllocateInternalBuffers32b
    linkageType: ''
    returnType: VP8StatusCode
    signature: "VP8StatusCode VP8LDecodeAlphaHeader(\n    ALPHDecoder* const alph_dec,\n
      \   const uint8_t* const WEBP_COUNTED_BY(data_size) data, size_t data_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1777,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1778,1
    - Dst: WebPInitAlphaProcessing
      Src: /src/libwebp/src/dec/vp8l_dec.c:1784,1
    - Dst: DecodeAlphaData
      Src: /src/libwebp/src/dec/vp8l_dec.c:1788,1
    - Dst: DecodeImageData
      Src: /src/libwebp/src/dec/vp8l_dec.c:1790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - alph_dec
    - last_row
    argTypes:
    - ALPHDecoder*
    - int
    assertStmts:
    - condition: (dec != NULL)
      pos:
        line_end: 1776
        line_start: 1776
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (last_row <= dec->height)
      pos:
        line_end: 1777
        line_start: 1777
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 1792
      start: 1775
    functionDepth: 4
    functionLinenumber: 1775
    functionLinenumberEnd: 1792
    functionName: VP8LDecodeAlphaImageStream
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPInitAlphaProcessing
    - DecodeAlphaData
    - DecodeImageData
    linkageType: ''
    returnType: int
    signature: int VP8LDecodeAlphaImageStream(ALPHDecoder* const alph_dec, int last_row)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VP8LSetError
      Src: /src/libwebp/src/dec/vp8l_dec.c:1801,1
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/dec/vp8l_dec.c:1808,1
    - Dst: VP8LInitBitReader
      Src: /src/libwebp/src/dec/vp8l_dec.c:1810,1
    - Dst: ReadImageInfo
      Src: /src/libwebp/src/dec/vp8l_dec.c:1812,1
    - Dst: VP8LSetError
      Src: /src/libwebp/src/dec/vp8l_dec.c:1813,1
    - Dst: DecodeImageStream
      Src: /src/libwebp/src/dec/vp8l_dec.c:1820,1
    - Dst: VP8LClear
      Src: /src/libwebp/src/dec/vp8l_dec.c:1827,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1828,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - dec
    - io
    argTypes:
    - VP8LDecoder*
    - VP8Io*
    assertStmts:
    - condition: (dec->status != VP8_STATUS_OK)
      pos:
        line_end: 1827
        line_start: 1827
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 1830
      start: 1796
    functionDepth: 5
    functionLinenumber: 1796
    functionLinenumberEnd: 1830
    functionName: VP8LDecodeHeader
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 2
    functionsReached:
    - assert
    - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    - VP8LInitBitReader
    - DecodeImageStream
    - VP8LSetError
    - ReadImageInfo
    - VP8LClear
    linkageType: ''
    returnType: int
    signature: int VP8LDecodeHeader(VP8LDecoder* const dec, VP8Io* const io)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1838,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1839,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1840,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1843,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1845,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1850,1
    - Dst: WebPIoInitFromOptions
      Src: /src/libwebp/src/dec/vp8l_dec.c:1852,1
    - Dst: VP8LSetError
      Src: /src/libwebp/src/dec/vp8l_dec.c:1853,1
    - Dst: AllocateInternalBuffers32b
      Src: /src/libwebp/src/dec/vp8l_dec.c:1857,1
    - Dst: AllocateAndInitRescaler
      Src: /src/libwebp/src/dec/vp8l_dec.c:1860,1
    - Dst: VP8LSetError
      Src: /src/libwebp/src/dec/vp8l_dec.c:1863,1
    - Dst: WebPIsPremultipliedMode
      Src: /src/libwebp/src/dec/vp8l_dec.c:1867,1
    - Dst: WebPInitAlphaProcessing
      Src: /src/libwebp/src/dec/vp8l_dec.c:1869,1
    - Dst: WebPIsRGBMode
      Src: /src/libwebp/src/dec/vp8l_dec.c:1872,1
    - Dst: WebPInitConvertARGBToYUV
      Src: /src/libwebp/src/dec/vp8l_dec.c:1873,1
    - Dst: WebPInitAlphaProcessing
      Src: /src/libwebp/src/dec/vp8l_dec.c:1874,1
    - Dst: VP8LColorCacheInit
      Src: /src/libwebp/src/dec/vp8l_dec.c:1879,1
    - Dst: VP8LSetError
      Src: /src/libwebp/src/dec/vp8l_dec.c:1881,1
    - Dst: DecodeImageData
      Src: /src/libwebp/src/dec/vp8l_dec.c:1890,1
    - Dst: VP8LClear
      Src: /src/libwebp/src/dec/vp8l_dec.c:1899,1
    - Dst: assert
      Src: /src/libwebp/src/dec/vp8l_dec.c:1900,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 1
    argNames:
    - dec
    argTypes:
    - VP8LDecoder*
    assertStmts:
    - condition: (io != NULL)
      pos:
        line_end: 1842
        line_start: 1842
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (dec->hdr.num_htree_groups > 0)
      pos:
        line_end: 1839
        line_start: 1839
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (dec->status != VP8_STATUS_OK)
      pos:
        line_end: 1899
        line_start: 1899
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (params != NULL)
      pos:
        line_end: 1844
        line_start: 1844
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (dec->hdr.huffman_tables.root.start != NULL)
      pos:
        line_end: 1837
        line_start: 1837
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (dec->hdr.htree_groups != NULL)
      pos:
        line_end: 1838
        line_start: 1838
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    - condition: (dec->output != NULL)
      pos:
        line_end: 1849
        line_start: 1849
        source_file: /src/libwebp/src/dec/vp8l_dec.c
    constantsTouched: []
    func_position:
      end: 1902
      start: 1832
    functionDepth: 4
    functionLinenumber: 1832
    functionLinenumberEnd: 1902
    functionName: VP8LDecodeImage
    functionSourceFile: /src/libwebp/src/dec/vp8l_dec.c
    functionUses: 2
    functionsReached:
    - AllocateAndInitRescaler
    - WebPIsRGBMode
    - assert
    - VP8LColorCacheInit
    - WebPInitConvertARGBToYUV
    - VP8LSetError
    - WebPIsPremultipliedMode
    - WebPIoInitFromOptions
    - VP8LClear
    - AllocateInternalBuffers32b
    - WebPInitAlphaProcessing
    - DecodeImageData
    linkageType: ''
    returnType: int
    signature: int VP8LDecodeImage(VP8LDecoder* const dec)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - mb_x
    - mb_y
    - mode
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: CheckMode
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CheckMode(int mb_x, int mb_y, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/frame_dec.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Copy32b
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 0
    functionsReached:
    - WEBP_UNSAFE_MEMCPY
    linkageType: ''
    returnType: void
    signature: void Copy32b(uint8_t* const dst, const uint8_t* const src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VP8Transform
      Src: /src/libwebp/src/dec/frame_dec.c:59,1
    - Dst: VP8TransformAC3
      Src: /src/libwebp/src/dec/frame_dec.c:62,1
    - Dst: VP8TransformDC
      Src: /src/libwebp/src/dec/frame_dec.c:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - bits
    - src
    - dst
    argTypes:
    - uint32_t
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 70
    functionName: DoTransform
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 0
    functionsReached:
    - VP8Transform
    - VP8TransformAC3
    - VP8TransformDC
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoTransform(uint32_t bits, const int16_t* const src,\n
      \                                   uint8_t* const dst)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8TransformUV
      Src: /src/libwebp/src/dec/frame_dec.c:76,1
    - Dst: VP8TransformDCUV
      Src: /src/libwebp/src/dec/frame_dec.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - bits
    - src
    - dst
    argTypes:
    - uint32_t
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: DoUVTransform
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 0
    functionsReached:
    - VP8TransformUV
    - VP8TransformDCUV
    linkageType: ''
    returnType: void
    signature: "void DoUVTransform(uint32_t bits, const int16_t* const src,\n                          uint8_t*
      const dst)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/frame_dec.c:108,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/frame_dec.c:109,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/frame_dec.c:110,1
    - Dst: Copy32b
      Src: /src/libwebp/src/dec/frame_dec.c:121,1
    - Dst: Copy32b
      Src: /src/libwebp/src/dec/frame_dec.c:124,1
    - Dst: Copy32b
      Src: /src/libwebp/src/dec/frame_dec.c:125,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/frame_dec.c:136,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/frame_dec.c:137,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/frame_dec.c:138,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/frame_dec.c:147,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/frame_dec.c:149,1
    - Dst: DoTransform
      Src: /src/libwebp/src/dec/frame_dec.c:159,1
    - Dst: CheckMode
      Src: /src/libwebp/src/dec/frame_dec.c:162,1
    - Dst: DoTransform
      Src: /src/libwebp/src/dec/frame_dec.c:166,1
    - Dst: CheckMode
      Src: /src/libwebp/src/dec/frame_dec.c:173,1
    - Dst: DoUVTransform
      Src: /src/libwebp/src/dec/frame_dec.c:176,1
    - Dst: DoUVTransform
      Src: /src/libwebp/src/dec/frame_dec.c:177,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/frame_dec.c:182,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/frame_dec.c:183,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/frame_dec.c:184,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/frame_dec.c:195,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/frame_dec.c:199,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/frame_dec.c:201,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 71
    argCount: 2
    argNames:
    - dec
    - ctx
    argTypes:
    - VP8Decoder*
    - VP8ThreadContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 206
    functionName: ReconstructRow
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 0
    functionsReached:
    - CheckMode
    - Copy32b
    - DoUVTransform
    - WEBP_UNSAFE_MEMSET
    - WEBP_UNSAFE_MEMCPY
    - DoTransform
    linkageType: ''
    returnType: void
    signature: "void ReconstructRow(const VP8Decoder* const dec,\n                           const
      VP8ThreadContext* ctx)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/frame_dec.c:229,1
    - Dst: VP8SimpleHFilter16
      Src: /src/libwebp/src/dec/frame_dec.c:232,1
    - Dst: VP8SimpleHFilter16i
      Src: /src/libwebp/src/dec/frame_dec.c:235,1
    - Dst: VP8SimpleVFilter16
      Src: /src/libwebp/src/dec/frame_dec.c:238,1
    - Dst: VP8SimpleVFilter16i
      Src: /src/libwebp/src/dec/frame_dec.c:241,1
    - Dst: VP8HFilter16
      Src: /src/libwebp/src/dec/frame_dec.c:249,1
    - Dst: VP8HFilter8
      Src: /src/libwebp/src/dec/frame_dec.c:250,1
    - Dst: VP8HFilter16i
      Src: /src/libwebp/src/dec/frame_dec.c:253,1
    - Dst: VP8HFilter8i
      Src: /src/libwebp/src/dec/frame_dec.c:254,1
    - Dst: VP8VFilter16
      Src: /src/libwebp/src/dec/frame_dec.c:257,1
    - Dst: VP8VFilter8
      Src: /src/libwebp/src/dec/frame_dec.c:258,1
    - Dst: VP8VFilter16i
      Src: /src/libwebp/src/dec/frame_dec.c:261,1
    - Dst: VP8VFilter8i
      Src: /src/libwebp/src/dec/frame_dec.c:262,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - dec
    - mb_x
    - mb_y
    argTypes:
    - VP8Decoder*
    - int
    - int
    assertStmts:
    - condition: (limit >= 3)
      pos:
        line_end: 228
        line_start: 228
        source_file: /src/libwebp/src/dec/frame_dec.c
    constantsTouched: []
    func_position:
      end: 265
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 265
    functionName: DoFilter
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 1
    functionsReached:
    - VP8VFilter16i
    - assert
    - VP8VFilter8i
    - VP8HFilter8i
    - VP8SimpleVFilter16i
    - VP8VFilter8
    - VP8VFilter16
    - VP8HFilter16i
    - VP8SimpleVFilter16
    - VP8SimpleHFilter16i
    - VP8SimpleHFilter16
    - VP8HFilter16
    - VP8HFilter8
    linkageType: ''
    returnType: void
    signature: void DoFilter(const VP8Decoder* const dec, int mb_x, int mb_y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/frame_dec.c:271,1
    - Dst: DoFilter
      Src: /src/libwebp/src/dec/frame_dec.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dec
    argTypes:
    - VP8Decoder*
    assertStmts:
    - condition: (dec->thread_ctx.filter_row)
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/libwebp/src/dec/frame_dec.c
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: FilterRow
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - DoFilter
    linkageType: ''
    returnType: void
    signature: void FilterRow(const VP8Decoder* const dec)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 1
    argNames:
    - dec
    argTypes:
    - VP8Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 329
    functionName: PrecomputeFilterStrengths
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrecomputeFilterStrengths(VP8Decoder* const dec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/frame_dec.c:344,1
    - Dst: VP8InitRandom
      Src: /src/libwebp/src/dec/frame_dec.c:361,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - options
    - dec
    argTypes:
    - WebPDecoderOptions*
    - VP8Decoder*
    assertStmts:
    - condition: (dec != NULL)
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/libwebp/src/dec/frame_dec.c
    constantsTouched: []
    func_position:
      end: 373
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 373
    functionName: VP8InitDithering
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 2
    functionsReached:
    - assert
    - VP8InitRandom
    linkageType: ''
    returnType: void
    signature: "void VP8InitDithering(const WebPDecoderOptions* const options,\n                      VP8Decoder*
      const dec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8RandomBits2
      Src: /src/libwebp/src/dec/frame_dec.c:380,1
    - Dst: VP8DitherCombine8x8
      Src: /src/libwebp/src/dec/frame_dec.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - rg
    - dst
    - bps
    - amp
    argTypes:
    - VP8Random*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 383
    functionName: Dither8x8
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 0
    functionsReached:
    - VP8DitherCombine8x8
    - VP8RandomBits2
    linkageType: ''
    returnType: void
    signature: void Dither8x8(VP8Random* const rg, uint8_t* dst, int bps, int amp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/frame_dec.c:387,1
    - Dst: Dither8x8
      Src: /src/libwebp/src/dec/frame_dec.c:396,1
    - Dst: Dither8x8
      Src: /src/libwebp/src/dec/frame_dec.c:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - dec
    argTypes:
    - VP8Decoder*
    assertStmts:
    - condition: (dec->dither)
      pos:
        line_end: 386
        line_start: 386
        source_file: /src/libwebp/src/dec/frame_dec.c
    constantsTouched: []
    func_position:
      end: 400
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 400
    functionName: DitherRow
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - Dither8x8
    linkageType: ''
    returnType: void
    signature: void DitherRow(VP8Decoder* const dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mb_y
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 414
    functionName: MACROBLOCK_VPOS
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MACROBLOCK_VPOS(mb_y)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ReconstructRow
      Src: /src/libwebp/src/dec/frame_dec.c:435,1
    - Dst: FilterRow
      Src: /src/libwebp/src/dec/frame_dec.c:439,1
    - Dst: DitherRow
      Src: /src/libwebp/src/dec/frame_dec.c:443,1
    - Dst: MACROBLOCK_VPOS
      Src: /src/libwebp/src/dec/frame_dec.c:447,1
    - Dst: MACROBLOCK_VPOS
      Src: /src/libwebp/src/dec/frame_dec.c:448,1
    - Dst: VP8DecompressAlphaRows
      Src: /src/libwebp/src/dec/frame_dec.c:469,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/frame_dec.c:471,1
    - Dst: assert
      Src: /src/libwebp/src/dec/frame_dec.c:478,1
    - Dst: VP8Io*::put
      Src: /src/libwebp/src/dec/frame_dec.c:496,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/frame_dec.c:502,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/frame_dec.c:504,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/frame_dec.c:506,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 2
    argNames:
    - arg1
    - arg2
    argTypes:
    - void*
    - void*
    assertStmts:
    - condition: (!(delta_y & 1))
      pos:
        line_end: 477
        line_start: 477
        source_file: /src/libwebp/src/dec/frame_dec.c
    constantsTouched: []
    func_position:
      end: 512
      start: 416
    functionDepth: 3
    functionLinenumber: 416
    functionLinenumberEnd: 512
    functionName: FinishRow
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 0
    functionsReached:
    - ReconstructRow
    - VP8DecompressAlphaRows
    - assert
    - VP8Io*::put
    - DitherRow
    - FilterRow
    - WEBP_UNSAFE_MEMCPY
    - MACROBLOCK_VPOS
    - VP8SetError
    linkageType: ''
    returnType: int
    signature: int FinishRow(void* arg1, void* arg2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ReconstructRow
      Src: /src/libwebp/src/dec/frame_dec.c:528,1
    - Dst: FinishRow
      Src: /src/libwebp/src/dec/frame_dec.c:529,1
    - Dst: WebPGetWorkerInterface
      Src: /src/libwebp/src/dec/frame_dec.c:533,1
    - Dst: assert
      Src: /src/libwebp/src/dec/frame_dec.c:534,1
    - Dst: ReconstructRow
      Src: /src/libwebp/src/dec/frame_dec.c:546,1
    - Dst: WebPGetWorkerInterface
      Src: /src/libwebp/src/dec/frame_dec.c:554,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - dec
    - io
    argTypes:
    - VP8Decoder*
    - VP8Io*
    assertStmts:
    - condition: (worker->status == OK)
      pos:
        line_end: 533
        line_start: 533
        source_file: /src/libwebp/src/dec/frame_dec.c
    constantsTouched: []
    func_position:
      end: 561
      start: 518
    functionDepth: 4
    functionLinenumber: 518
    functionLinenumberEnd: 561
    functionName: VP8ProcessRow
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 2
    functionsReached:
    - assert
    - FinishRow
    - WebPGetWorkerInterface
    - ReconstructRow
    linkageType: ''
    returnType: int
    signature: int VP8ProcessRow(VP8Decoder* const dec, VP8Io* const io)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: VP8Io*::setup
      Src: /src/libwebp/src/dec/frame_dec.c:570,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/frame_dec.c:571,1
    - Dst: PrecomputeFilterStrengths
      Src: /src/libwebp/src/dec/frame_dec.c:615,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - dec
    - io
    argTypes:
    - VP8Decoder*
    - VP8Io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 617
    functionName: VP8EnterCritical
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 2
    functionsReached:
    - VP8SetError
    - PrecomputeFilterStrengths
    - VP8Io*::setup
    linkageType: ''
    returnType: VP8StatusCode
    signature: VP8StatusCode VP8EnterCritical(VP8Decoder* const dec, VP8Io* const
      io)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WebPGetWorkerInterface
      Src: /src/libwebp/src/dec/frame_dec.c:622,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/frame_dec.c:623,1
    - Dst: VP8Io*::teardown
      Src: /src/libwebp/src/dec/frame_dec.c:627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - dec
    - io
    argTypes:
    - VP8Decoder*
    - VP8Io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 630
    functionName: VP8ExitCritical
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 4
    functionsReached:
    - VP8Io*::teardown
    - WebPGetWorkerInterface
    - VP8SetError
    linkageType: ''
    returnType: int
    signature: int VP8ExitCritical(VP8Decoder* const dec, VP8Io* const io)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPGetWorkerInterface
      Src: /src/libwebp/src/dec/frame_dec.c:664,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/frame_dec.c:665,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - dec
    argTypes:
    - VP8Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 677
    functionName: InitThreadContext
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 0
    functionsReached:
    - WebPGetWorkerInterface
    - VP8SetError
    linkageType: ''
    returnType: int
    signature: int InitThreadContext(VP8Decoder* const dec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/frame_dec.c:688,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - options
    - headers
    - width
    - height
    argTypes:
    - WebPDecoderOptions*
    - WebPHeaderStructure*
    - int
    - int
    assertStmts:
    - condition: (headers == NULL || !headers->is_lossless)
      pos:
        line_end: 687
        line_start: 687
        source_file: /src/libwebp/src/dec/frame_dec.c
    constantsTouched: []
    func_position:
      end: 693
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 693
    functionName: VP8GetThreadMethod
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int VP8GetThreadMethod(const WebPDecoderOptions* const options,\n
      \                      const WebPHeaderStructure* const headers, int width,\n
      \                      int height)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CheckSizeOverflow
      Src: /src/libwebp/src/dec/frame_dec.c:729,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/frame_dec.c:730,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/frame_dec.c:734,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/dec/frame_dec.c:736,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/frame_dec.c:738,1
    - Dst: WEBP_ALIGN
      Src: /src/libwebp/src/dec/frame_dec.c:766,1
    - Dst: assert
      Src: /src/libwebp/src/dec/frame_dec.c:767,1
    - Dst: assert
      Src: /src/libwebp/src/dec/frame_dec.c:796,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/frame_dec.c:799,1
    - Dst: VP8InitScanline
      Src: /src/libwebp/src/dec/frame_dec.c:800,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/frame_dec.c:803,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 1
    argNames:
    - dec
    argTypes:
    - VP8Decoder*
    assertStmts:
    - condition: ((yuv_size & WEBP_ALIGN_CST) == 0)
      pos:
        line_end: 766
        line_start: 766
        source_file: /src/libwebp/src/dec/frame_dec.c
    - condition: (mem <= (uint8_t*)dec->mem + dec->mem_size)
      pos:
        line_end: 795
        line_start: 795
        source_file: /src/libwebp/src/dec/frame_dec.c
    constantsTouched: []
    func_position:
      end: 806
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 806
    functionName: AllocateMemory
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - WEBP_ALIGN
    - VP8InitScanline
    - WEBP_UNSAFE_MEMSET
    - CheckSizeOverflow
    - WebPSafeMalloc
    - VP8SetError
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: int AllocateMemory(VP8Decoder* const dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - dec
    - io
    argTypes:
    - VP8Decoder*
    - VP8Io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 817
    functionName: InitIo
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitIo(VP8Decoder* const dec, VP8Io* io)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: InitThreadContext
      Src: /src/libwebp/src/dec/frame_dec.c:820,1
    - Dst: AllocateMemory
      Src: /src/libwebp/src/dec/frame_dec.c:821,1
    - Dst: InitIo
      Src: /src/libwebp/src/dec/frame_dec.c:822,1
    - Dst: VP8DspInit
      Src: /src/libwebp/src/dec/frame_dec.c:823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dec
    - io
    argTypes:
    - VP8Decoder*
    - VP8Io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 819
    functionDepth: 3
    functionLinenumber: 819
    functionLinenumberEnd: 825
    functionName: VP8InitFrame
    functionSourceFile: /src/libwebp/src/dec/frame_dec.c
    functionUses: 2
    functionsReached:
    - AllocateMemory
    - VP8DspInit
    - InitIo
    - InitThreadContext
    linkageType: ''
    returnType: int
    signature: int VP8InitFrame(VP8Decoder* const dec, VP8Io* const io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/dec/io_dec.c:45,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/dec/io_dec.c:46,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/dec/io_dec.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - io
    - p
    argTypes:
    - VP8Io*
    - WebPDecParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 49
    functionName: EmitYUV
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached:
    - WebPCopyPlane
    linkageType: ''
    returnType: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI
    signature: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI EmitYUV(const VP8Io* const io, WebPDecParams*
      const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPSamplerProcessPlane
      Src: /src/libwebp/src/dec/io_dec.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - io
    - p
    argTypes:
    - VP8Io*
    - WebPDecParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: EmitSampledRGB
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached:
    - WebPSamplerProcessPlane
    linkageType: ''
    returnType: int
    signature: int EmitSampledRGB(const VP8Io* const io, WebPDecParams* const p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: upsample
      Src: /src/libwebp/src/dec/io_dec.c:83,1
    - Dst: upsample
      Src: /src/libwebp/src/dec/io_dec.c:86,1
    - Dst: upsample
      Src: /src/libwebp/src/dec/io_dec.c:98,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/io_dec.c:105,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/io_dec.c:106,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/io_dec.c:107,1
    - Dst: upsample
      Src: /src/libwebp/src/dec/io_dec.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - io
    - p
    argTypes:
    - VP8Io*
    - WebPDecParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 119
    functionName: EmitFancyRGB
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached:
    - upsample
    - WEBP_UNSAFE_MEMCPY
    linkageType: ''
    returnType: int
    signature: int EmitFancyRGB(const VP8Io* const io, WebPDecParams* const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/dec/io_dec.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - dst
    - w
    - h
    - stride
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: FillAlphaPlane
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached:
    - WEBP_UNSAFE_MEMSET
    linkageType: ''
    returnType: void
    signature: void FillAlphaPlane(uint8_t* dst, int w, int h, int stride)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/io_dec.c:142,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/dec/io_dec.c:145,1
    - Dst: FillAlphaPlane
      Src: /src/libwebp/src/dec/io_dec.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - io
    - p
    - expected_num_lines_out
    argTypes:
    - VP8Io*
    - WebPDecParams*
    - int
    assertStmts:
    - condition: (expected_num_lines_out == mb_h)
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/libwebp/src/dec/io_dec.c
    constantsTouched: []
    func_position:
      end: 154
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 154
    functionName: EmitAlphaYUV
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - FillAlphaPlane
    - WEBP_UNSAFE_MEMCPY
    linkageType: ''
    returnType: int
    signature: "int EmitAlphaYUV(const VP8Io* const io, WebPDecParams* const p,\n
      \                       int expected_num_lines_out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - io
    - alpha
    - num_rows
    argTypes:
    - VP8Io*
    - uint8_t**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 180
    functionName: GetAlphaSourceRow
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int GetAlphaSourceRow(const VP8Io* const io, const uint8_t** alpha,\n
      \                            int* const num_rows)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetAlphaSourceRow
      Src: /src/libwebp/src/dec/io_dec.c:192,1
    - Dst: WebPDispatchAlpha
      Src: /src/libwebp/src/dec/io_dec.c:196,1
    - Dst: assert
      Src: /src/libwebp/src/dec/io_dec.c:198,1
    - Dst: WebPIsPremultipliedMode
      Src: /src/libwebp/src/dec/io_dec.c:200,1
    - Dst: WebPApplyAlphaMultiply
      Src: /src/libwebp/src/dec/io_dec.c:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - io
    - p
    - expected_num_lines_out
    argTypes:
    - VP8Io*
    - WebPDecParams*
    - int
    assertStmts:
    - condition: (expected_num_lines_out == num_rows)
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/libwebp/src/dec/io_dec.c
    constantsTouched: []
    func_position:
      end: 206
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 206
    functionName: EmitAlphaRGB
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPApplyAlphaMultiply
    - GetAlphaSourceRow
    - WebPIsPremultipliedMode
    - WebPDispatchAlpha
    linkageType: ''
    returnType: int
    signature: "int EmitAlphaRGB(const VP8Io* const io, WebPDecParams* const p,\n
      \                       int expected_num_lines_out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetAlphaSourceRow
      Src: /src/libwebp/src/dec/io_dec.c:216,1
    - Dst: assert
      Src: /src/libwebp/src/dec/io_dec.c:236,1
    - Dst: WebPIsPremultipliedMode
      Src: /src/libwebp/src/dec/io_dec.c:237,1
    - Dst: WebPApplyAlphaMultiply4444
      Src: /src/libwebp/src/dec/io_dec.c:238,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - io
    - p
    - expected_num_lines_out
    argTypes:
    - VP8Io*
    - WebPDecParams*
    - int
    assertStmts:
    - condition: (expected_num_lines_out == num_rows)
      pos:
        line_end: 235
        line_start: 235
        source_file: /src/libwebp/src/dec/io_dec.c
    constantsTouched: []
    func_position:
      end: 242
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 242
    functionName: EmitAlphaRGBA4444
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPIsPremultipliedMode
    - GetAlphaSourceRow
    - WebPApplyAlphaMultiply4444
    linkageType: ''
    returnType: int
    signature: "int EmitAlphaRGBA4444(const VP8Io* const io, WebPDecParams* const
      p,\n                             int expected_num_lines_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPRescalerImport
      Src: /src/libwebp/src/dec/io_dec.c:252,1
    - Dst: WebPRescalerExport
      Src: /src/libwebp/src/dec/io_dec.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - src
    - src_stride
    - new_lines
    - wrk
    argTypes:
    - uint8_t*
    - int
    - int
    - WebPRescaler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 258
    functionName: Rescale
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 4
    functionsReached:
    - WebPRescalerExport
    - WebPRescalerImport
    linkageType: ''
    returnType: int
    signature: "int Rescale(const uint8_t* src, int src_stride, int new_lines,\n                   WebPRescaler*
      const wrk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPIsAlphaMode
      Src: /src/libwebp/src/dec/io_dec.c:265,1
    - Dst: WebPMultRows
      Src: /src/libwebp/src/dec/io_dec.c:270,1
    - Dst: Rescale
      Src: /src/libwebp/src/dec/io_dec.c:273,1
    - Dst: Rescale
      Src: /src/libwebp/src/dec/io_dec.c:274,1
    - Dst: Rescale
      Src: /src/libwebp/src/dec/io_dec.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - io
    - p
    argTypes:
    - VP8Io*
    - WebPDecParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 277
    functionName: EmitRescaledYUV
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached:
    - WebPIsAlphaMode
    - Rescale
    - WebPMultRows
    linkageType: ''
    returnType: int
    signature: int EmitRescaledYUV(const VP8Io* const io, WebPDecParams* const p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Rescale
      Src: /src/libwebp/src/dec/io_dec.c:285,1
    - Dst: assert
      Src: /src/libwebp/src/dec/io_dec.c:286,1
    - Dst: WebPMultRows
      Src: /src/libwebp/src/dec/io_dec.c:288,1
    - Dst: assert
      Src: /src/libwebp/src/dec/io_dec.c:293,1
    - Dst: FillAlphaPlane
      Src: /src/libwebp/src/dec/io_dec.c:294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - io
    - p
    - expected_num_lines_out
    argTypes:
    - VP8Io*
    - WebPDecParams*
    - int
    assertStmts:
    - condition: (expected_num_lines_out == num_lines_out)
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/libwebp/src/dec/io_dec.c
    - condition: (p->last_y + expected_num_lines_out <= io->scaled_height)
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/libwebp/src/dec/io_dec.c
    constantsTouched: []
    func_position:
      end: 298
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 298
    functionName: EmitRescaledAlphaYUV
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - FillAlphaPlane
    - Rescale
    - WebPMultRows
    linkageType: ''
    returnType: int
    signature: "int EmitRescaledAlphaYUV(const VP8Io* const io, WebPDecParams* const
      p,\n                                int expected_num_lines_out)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WebPIsAlphaMode
      Src: /src/libwebp/src/dec/io_dec.c:301,1
    - Dst: CheckSizeOverflow
      Src: /src/libwebp/src/dec/io_dec.c:324,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/dec/io_dec.c:328,1
    - Dst: WEBP_ALIGN
      Src: /src/libwebp/src/dec/io_dec.c:334,1
    - Dst: WebPRescalerInit
      Src: /src/libwebp/src/dec/io_dec.c:341,1
    - Dst: WebPRescalerInit
      Src: /src/libwebp/src/dec/io_dec.c:343,1
    - Dst: WebPRescalerInit
      Src: /src/libwebp/src/dec/io_dec.c:346,1
    - Dst: WebPRescalerInit
      Src: /src/libwebp/src/dec/io_dec.c:354,1
    - Dst: WebPInitAlphaProcessing
      Src: /src/libwebp/src/dec/io_dec.c:360,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - io
    - p
    argTypes:
    - VP8Io*
    - WebPDecParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 363
    functionName: InitYUVRescaler
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached:
    - WebPIsAlphaMode
    - WEBP_ALIGN
    - CheckSizeOverflow
    - WebPSafeMalloc
    - WebPRescalerInit
    - WebPInitAlphaProcessing
    linkageType: ''
    returnType: int
    signature: int InitYUVRescaler(const VP8Io* const io, WebPDecParams* const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPRescalerHasPendingOutput
      Src: /src/libwebp/src/dec/io_dec.c:376,1
    - Dst: WebPRescalerHasPendingOutput
      Src: /src/libwebp/src/dec/io_dec.c:377,1
    - Dst: assert
      Src: /src/libwebp/src/dec/io_dec.c:378,1
    - Dst: assert
      Src: /src/libwebp/src/dec/io_dec.c:379,1
    - Dst: WebPRescalerExportRow
      Src: /src/libwebp/src/dec/io_dec.c:380,1
    - Dst: WebPRescalerExportRow
      Src: /src/libwebp/src/dec/io_dec.c:381,1
    - Dst: WebPRescalerExportRow
      Src: /src/libwebp/src/dec/io_dec.c:382,1
    - Dst: convert
      Src: /src/libwebp/src/dec/io_dec.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - p
    - y_pos
    argTypes:
    - WebPDecParams*
    - int
    assertStmts:
    - condition: (p->scaler_u->y_accum == p->scaler_v->y_accum)
      pos:
        line_end: 378
        line_start: 378
        source_file: /src/libwebp/src/dec/io_dec.c
    - condition: (y_pos + num_lines_out < p->output->height)
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/libwebp/src/dec/io_dec.c
    constantsTouched: []
    func_position:
      end: 389
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 389
    functionName: ExportRGB
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPRescalerHasPendingOutput
    - convert
    - WebPRescalerExportRow
    linkageType: ''
    returnType: int
    signature: int ExportRGB(WebPDecParams* const p, int y_pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPRescalerImport
      Src: /src/libwebp/src/dec/io_dec.c:398,1
    - Dst: WebPRescaleNeededLines
      Src: /src/libwebp/src/dec/io_dec.c:401,1
    - Dst: WebPRescalerImport
      Src: /src/libwebp/src/dec/io_dec.c:402,1
    - Dst: WebPRescalerImport
      Src: /src/libwebp/src/dec/io_dec.c:405,1
    - Dst: assert
      Src: /src/libwebp/src/dec/io_dec.c:409,1
    - Dst: ExportRGB
      Src: /src/libwebp/src/dec/io_dec.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - io
    - p
    argTypes:
    - VP8Io*
    - WebPDecParams*
    assertStmts:
    - condition: (u_lines_in == v_lines_in)
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/libwebp/src/dec/io_dec.c
    constantsTouched: []
    func_position:
      end: 415
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 415
    functionName: EmitRescaledRGB
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - ExportRGB
    - WebPRescaleNeededLines
    - WebPRescalerImport
    linkageType: ''
    returnType: int
    signature: int EmitRescaledRGB(const VP8Io* const io, WebPDecParams* const p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPIsPremultipliedMode
      Src: /src/libwebp/src/dec/io_dec.c:424,1
    - Dst: WebPRescalerHasPendingOutput
      Src: /src/libwebp/src/dec/io_dec.c:428,1
    - Dst: assert
      Src: /src/libwebp/src/dec/io_dec.c:430,1
    - Dst: WebPRescalerExportRow
      Src: /src/libwebp/src/dec/io_dec.c:431,1
    - Dst: WebPDispatchAlpha
      Src: /src/libwebp/src/dec/io_dec.c:432,1
    - Dst: WebPApplyAlphaMultiply
      Src: /src/libwebp/src/dec/io_dec.c:437,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - p
    - y_pos
    - max_lines_out
    argTypes:
    - WebPDecParams*
    - int
    - int
    assertStmts:
    - condition: (y_pos + num_lines_out < p->output->height)
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/libwebp/src/dec/io_dec.c
    constantsTouched: []
    func_position:
      end: 441
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 441
    functionName: ExportAlpha
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached:
    - WebPRescalerExportRow
    - assert
    - WebPApplyAlphaMultiply
    - WebPIsPremultipliedMode
    - WebPRescalerHasPendingOutput
    - WebPDispatchAlpha
    linkageType: ''
    returnType: int
    signature: int ExportAlpha(WebPDecParams* const p, int y_pos, int max_lines_out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPIsPremultipliedMode
      Src: /src/libwebp/src/dec/io_dec.c:455,1
    - Dst: WebPRescalerHasPendingOutput
      Src: /src/libwebp/src/dec/io_dec.c:458,1
    - Dst: assert
      Src: /src/libwebp/src/dec/io_dec.c:461,1
    - Dst: WebPRescalerExportRow
      Src: /src/libwebp/src/dec/io_dec.c:462,1
    - Dst: WebPApplyAlphaMultiply4444
      Src: /src/libwebp/src/dec/io_dec.c:473,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - p
    - y_pos
    - max_lines_out
    argTypes:
    - WebPDecParams*
    - int
    - int
    assertStmts:
    - condition: (y_pos + num_lines_out < p->output->height)
      pos:
        line_end: 460
        line_start: 460
        source_file: /src/libwebp/src/dec/io_dec.c
    constantsTouched: []
    func_position:
      end: 476
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 476
    functionName: ExportAlphaRGBA4444
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached:
    - WebPRescalerExportRow
    - assert
    - WebPApplyAlphaMultiply4444
    - WebPIsPremultipliedMode
    - WebPRescalerHasPendingOutput
    linkageType: ''
    returnType: int
    signature: "int ExportAlphaRGBA4444(WebPDecParams* const p, int y_pos,\n                               int
      max_lines_out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPRescalerImport
      Src: /src/libwebp/src/dec/io_dec.c:486,1
    - Dst: WebPDecParams*::emit_alpha_row
      Src: /src/libwebp/src/dec/io_dec.c:488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - io
    - p
    - expected_num_out_lines
    argTypes:
    - VP8Io*
    - WebPDecParams*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 492
    functionName: EmitRescaledAlphaRGB
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached:
    - WebPDecParams*::emit_alpha_row
    - WebPRescalerImport
    linkageType: ''
    returnType: int
    signature: "int EmitRescaledAlphaRGB(const VP8Io* const io, WebPDecParams* const
      p,\n                                int expected_num_out_lines)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WebPIsAlphaMode
      Src: /src/libwebp/src/dec/io_dec.c:495,1
    - Dst: CheckSizeOverflow
      Src: /src/libwebp/src/dec/io_dec.c:515,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/dec/io_dec.c:519,1
    - Dst: WEBP_ALIGN
      Src: /src/libwebp/src/dec/io_dec.c:526,1
    - Dst: WebPRescalerInit
      Src: /src/libwebp/src/dec/io_dec.c:533,1
    - Dst: WebPRescalerInit
      Src: /src/libwebp/src/dec/io_dec.c:535,1
    - Dst: WebPRescalerInit
      Src: /src/libwebp/src/dec/io_dec.c:538,1
    - Dst: WebPInitYUV444Converters
      Src: /src/libwebp/src/dec/io_dec.c:544,1
    - Dst: WebPRescalerInit
      Src: /src/libwebp/src/dec/io_dec.c:547,1
    - Dst: WebPInitAlphaProcessing
      Src: /src/libwebp/src/dec/io_dec.c:558,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - io
    - p
    argTypes:
    - VP8Io*
    - WebPDecParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 561
    functionName: InitRGBRescaler
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached:
    - WebPIsAlphaMode
    - WEBP_ALIGN
    - CheckSizeOverflow
    - WebPSafeMalloc
    - WebPRescalerInit
    - WebPInitYUV444Converters
    - WebPInitAlphaProcessing
    linkageType: ''
    returnType: int
    signature: int InitRGBRescaler(const VP8Io* const io, WebPDecParams* const p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: WebPIsRGBMode
      Src: /src/libwebp/src/dec/io_dec.c:571,1
    - Dst: WebPIsAlphaMode
      Src: /src/libwebp/src/dec/io_dec.c:572,1
    - Dst: WebPIoInitFromOptions
      Src: /src/libwebp/src/dec/io_dec.c:581,1
    - Dst: WebPIsPremultipliedMode
      Src: /src/libwebp/src/dec/io_dec.c:584,1
    - Dst: WebPInitUpsamplers
      Src: /src/libwebp/src/dec/io_dec.c:585,1
    - Dst: InitRGBRescaler
      Src: /src/libwebp/src/dec/io_dec.c:589,1
    - Dst: InitYUVRescaler
      Src: /src/libwebp/src/dec/io_dec.c:589,1
    - Dst: WebPInitSamplers
      Src: /src/libwebp/src/dec/io_dec.c:599,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/dec/io_dec.c:604,1
    - Dst: WebPInitUpsamplers
      Src: /src/libwebp/src/dec/io_dec.c:613,1
    - Dst: WebPInitAlphaProcessing
      Src: /src/libwebp/src/dec/io_dec.c:626,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - io
    argTypes:
    - VP8Io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 568
    functionDepth: 3
    functionLinenumber: 568
    functionLinenumberEnd: 632
    functionName: CustomSetup
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached:
    - WebPIsRGBMode
    - WebPIsAlphaMode
    - InitYUVRescaler
    - InitRGBRescaler
    - WebPInitUpsamplers
    - WebPIsPremultipliedMode
    - WebPSafeMalloc
    - WebPIoInitFromOptions
    - WebPInitAlphaProcessing
    - WebPInitSamplers
    linkageType: ''
    returnType: int
    signature: int CustomSetup(VP8Io* io)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/io_dec.c:641,1
    - Dst: WebPDecParams*::emit
      Src: /src/libwebp/src/dec/io_dec.c:646,1
    - Dst: WebPDecParams*::emit_alpha
      Src: /src/libwebp/src/dec/io_dec.c:648,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - io
    argTypes:
    - VP8Io*
    assertStmts:
    - condition: (!(io->mb_y & 1))
      pos:
        line_end: 640
        line_start: 640
        source_file: /src/libwebp/src/dec/io_dec.c
    constantsTouched: []
    func_position:
      end: 652
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 652
    functionName: CustomPut
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPDecParams*::emit_alpha
    - WebPDecParams*::emit
    linkageType: ''
    returnType: int
    signature: int CustomPut(const VP8Io* io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/io_dec.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - io
    argTypes:
    - VP8Io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 660
    functionName: CustomTeardown
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 0
    functionsReached:
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void CustomTeardown(const VP8Io* io)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - params
    - io
    argTypes:
    - WebPDecParams*
    - VP8Io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 670
    functionName: WebPInitCustomIo
    functionSourceFile: /src/libwebp/src/dec/io_dec.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WebPInitCustomIo(WebPDecParams* const params, VP8Io* const io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/dec/alpha_dec.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: ALPHNew
    functionSourceFile: /src/libwebp/src/dec/alpha_dec.c
    functionUses: 0
    functionsReached:
    - WebPSafeCalloc
    linkageType: ''
    returnType: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI
    signature: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI * ALPHNew(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LDelete
      Src: /src/libwebp/src/dec/alpha_dec.c:43,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/alpha_dec.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dec
    argTypes:
    - ALPHDecoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 5
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: ALPHDelete
    functionSourceFile: /src/libwebp/src/dec/alpha_dec.c
    functionUses: 0
    functionsReached:
    - VP8LDelete
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void ALPHDelete(ALPHDecoder* const dec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/alpha_dec.c:67,1
    - Dst: VP8FiltersInit
      Src: /src/libwebp/src/dec/alpha_dec.c:69,1
    - Dst: assert
      Src: /src/libwebp/src/dec/alpha_dec.c:73,1
    - Dst: VP8InitIo
      Src: /src/libwebp/src/dec/alpha_dec.c:91,1
    - Dst: WebPInitCustomIo
      Src: /src/libwebp/src/dec/alpha_dec.c:94,1
    - Dst: assert
      Src: /src/libwebp/src/dec/alpha_dec.c:114,1
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/dec/alpha_dec.c:117,1
    - Dst: VP8LDecodeAlphaHeader
      Src: /src/libwebp/src/dec/alpha_dec.c:120,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 5
    argNames:
    - dec
    - data
    - data_size
    - src_io
    - output
    argTypes:
    - ALPHDecoder*
    - uint8_t*
    - size_t
    - VP8Io*
    - uint8_t*
    assertStmts:
    - condition: (data != NULL && output != NULL && src_io != NULL)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/libwebp/src/dec/alpha_dec.c
    - condition: (dec->width > 0 && dec->height > 0)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/libwebp/src/dec/alpha_dec.c
    - condition: (dec->method == ALPHA_LOSSLESS_COMPRESSION)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/libwebp/src/dec/alpha_dec.c
    constantsTouched: []
    func_position:
      end: 126
      start: 57
    functionDepth: 6
    functionLinenumber: 57
    functionLinenumberEnd: 126
    functionName: VP8StatusCode::ALPHInit
    functionSourceFile: /src/libwebp/src/dec/alpha_dec.c
    functionUses: 0
    functionsReached:
    - VP8LDecodeAlphaHeader
    - VP8FiltersInit
    - assert
    - VP8InitIo
    - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    - WebPInitCustomIo
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD VP8StatusCode ALPHInit(ALPHDecoder* const dec,\n                                             const
      uint8_t* data,\n                                             size_t data_size,\n
      \                                            const VP8Io* const src_io,\n                                             uint8_t*
      output)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/alpha_dec.c:142,1
    - Dst: assert
      Src: /src/libwebp/src/dec/alpha_dec.c:143,1
    - Dst: assert
      Src: /src/libwebp/src/dec/alpha_dec.c:152,1
    - Dst: VP8LDecodeAlphaImageStream
      Src: /src/libwebp/src/dec/alpha_dec.c:153,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/alpha_dec.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - dec
    - row
    - num_rows
    argTypes:
    - VP8Decoder*
    - int
    - int
    assertStmts:
    - condition: (deltas <= &dec->alpha_data[dec->alpha_data_size])
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/libwebp/src/dec/alpha_dec.c
    - condition: (alph_dec->vp8l_dec != NULL)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/libwebp/src/dec/alpha_dec.c
    - condition: (WebPUnfilters[alph_dec->filter] != NULL)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/libwebp/src/dec/alpha_dec.c
    constantsTouched: []
    func_position:
      end: 168
      start: 132
    functionDepth: 5
    functionLinenumber: 132
    functionLinenumberEnd: 168
    functionName: ALPHDecode
    functionSourceFile: /src/libwebp/src/dec/alpha_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - VP8SetError
    - VP8LDecodeAlphaImageStream
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD ALPHDecode(VP8Decoder* const dec, int row,\n                                     int
      num_rows)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/alpha_dec.c:175,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/dec/alpha_dec.c:177,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/alpha_dec.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - dec
    - io
    argTypes:
    - VP8Decoder*
    - VP8Io*
    assertStmts:
    - condition: (dec->alpha_plane_mem == NULL)
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/libwebp/src/dec/alpha_dec.c
    constantsTouched: []
    func_position:
      end: 185
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 185
    functionName: AllocateAlphaPlane
    functionSourceFile: /src/libwebp/src/dec/alpha_dec.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPSafeMalloc
    - VP8SetError
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD AllocateAlphaPlane(VP8Decoder* const dec,\n                                             const
      VP8Io* const io)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/alpha_dec.c:188,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/dec/alpha_dec.c:189,1
    - Dst: ALPHDelete
      Src: /src/libwebp/src/dec/alpha_dec.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - dec
    argTypes:
    - VP8Decoder*
    assertStmts:
    - condition: (dec != NULL)
      pos:
        line_end: 187
        line_start: 187
        source_file: /src/libwebp/src/dec/alpha_dec.c
    constantsTouched: []
    func_position:
      end: 194
      start: 187
    functionDepth: 6
    functionLinenumber: 187
    functionLinenumberEnd: 194
    functionName: WebPDeallocateAlphaMemory
    functionSourceFile: /src/libwebp/src/dec/alpha_dec.c
    functionUses: 1
    functionsReached:
    - assert
    - ALPHDelete
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void WebPDeallocateAlphaMemory(VP8Decoder* const dec)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dec/alpha_dec.c:205,1
    - Dst: ALPHNew
      Src: /src/libwebp/src/dec/alpha_dec.c:213,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/alpha_dec.c:215,1
    - Dst: AllocateAlphaPlane
      Src: /src/libwebp/src/dec/alpha_dec.c:219,1
    - Dst: ALPHInit
      Src: /src/libwebp/src/dec/alpha_dec.c:222,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/alpha_dec.c:225,1
    - Dst: assert
      Src: /src/libwebp/src/dec/alpha_dec.c:237,1
    - Dst: assert
      Src: /src/libwebp/src/dec/alpha_dec.c:238,1
    - Dst: ALPHDecode
      Src: /src/libwebp/src/dec/alpha_dec.c:239,1
    - Dst: ALPHDelete
      Src: /src/libwebp/src/dec/alpha_dec.c:242,1
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/dec/alpha_dec.c:248,1
    - Dst: WebPDequantizeLevels
      Src: /src/libwebp/src/dec/alpha_dec.c:251,1
    - Dst: VP8SetError
      Src: /src/libwebp/src/dec/alpha_dec.c:256,1
    - Dst: WebPDeallocateAlphaMemory
      Src: /src/libwebp/src/dec/alpha_dec.c:268,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 4
    argNames:
    - dec
    - io
    - row
    - num_rows
    argTypes:
    - VP8Decoder*
    - VP8Io*
    - int
    - int
    assertStmts:
    - condition: (dec != NULL && io != NULL)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/libwebp/src/dec/alpha_dec.c
    - condition: (dec->alph_dec != NULL)
      pos:
        line_end: 236
        line_start: 236
        source_file: /src/libwebp/src/dec/alpha_dec.c
    - condition: (row + num_rows <= height)
      pos:
        line_end: 237
        line_start: 237
        source_file: /src/libwebp/src/dec/alpha_dec.c
    constantsTouched: []
    func_position:
      end: 270
      start: 199
    functionDepth: 7
    functionLinenumber: 199
    functionLinenumberEnd: 270
    functionName: VP8DecompressAlphaRows
    functionSourceFile: /src/libwebp/src/dec/alpha_dec.c
    functionUses: 1
    functionsReached:
    - AllocateAlphaPlane
    - ALPHNew
    - ALPHDecode
    - assert
    - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    - WebPDequantizeLevels
    - ALPHInit
    - ALPHDelete
    - WebPDeallocateAlphaMemory
    - VP8SetError
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD * VP8DecompressAlphaRows(VP8Decoder* const dec,\n                                                     const
      VP8Io* const io,\n                                                     int row,
      int num_rows)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ij
    - ','
    - in
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: GET_M
    functionSourceFile: /src/libwebp/src/dsp/upsampling_sse41.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_M(ij, in, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - da
    - ','
    - db
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: PACK_AND_STORE
    functionSourceFile: /src/libwebp/src/dsp/upsampling_sse41.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACK_AND_STORE(a, b, da, db, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r1
    - ','
    - r2
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: UPSAMPLE_32PIXELS
    functionSourceFile: /src/libwebp/src/dsp/upsampling_sse41.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPSAMPLE_32PIXELS(r1, r2, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - tb
    - ','
    - bb
    - ','
    - num_pixels
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: UPSAMPLE_LAST_BLOCK
    functionSourceFile: /src/libwebp/src/dsp/upsampling_sse41.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPSAMPLE_LAST_BLOCK(tb, bb, num_pixels, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - FUNC
    - ','
    - XSTEP
    - ','
    - top_y
    - ','
    - bottom_y
    - ','
    - top_dst
    - ','
    - bottom_dst
    - ','
    - cur_x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 130
    functionName: CONVERT2RGB_32
    functionSourceFile: /src/libwebp/src/dsp/upsampling_sse41.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "CONVERT2RGB_32(FUNC, XSTEP, top_y, bottom_y, top_dst, bottom_dst,
      \\\n                       cur_x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FUNC_NAME
    - ','
    - FUNC
    - ','
    - XSTEP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: SSE4_UPSAMPLE_FUNC
    functionSourceFile: /src/libwebp/src/dsp/upsampling_sse41.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSE4_UPSAMPLE_FUNC(FUNC_NAME, FUNC, XSTEP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 213
    functionName: WebPInitUpsamplersSSE41
    functionSourceFile: /src/libwebp/src/dsp/upsampling_sse41.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPInitUpsamplersSSE41(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - FUNC_NAME
    - ','
    - CALL
    - ','
    - CALL_C
    - ','
    - XSTEP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 234
    functionName: YUV444_FUNC
    functionSourceFile: /src/libwebp/src/dsp/upsampling_sse41.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YUV444_FUNC(FUNC_NAME, CALL, CALL_C, XSTEP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 249
    functionName: WebPInitYUV444ConvertersSSE41
    functionSourceFile: /src/libwebp/src/dsp/upsampling_sse41.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPInitYUV444ConvertersSSE41(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_set_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:35,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:39,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:40,1
    - Dst: _mm256_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:41,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:42,1
    - Dst: VP8LSubtractGreenFromBlueAndRed_SSE
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - argb_data
    - num_pixels
    argTypes:
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 48
    functionName: SubtractGreenFromBlueAndRed_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached:
    - _mm256_storeu_si256
    - _mm256_set_epi8
    - _mm256_sub_epi8
    - _mm256_shuffle_epi8
    - VP8LSubtractGreenFromBlueAndRed_SSE
    - _mm256_loadu_si256
    linkageType: ''
    returnType: void
    signature: "void SubtractGreenFromBlueAndRed_AVX2(uint32_t* argb_data,\n                                             int
      num_pixels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: CST_5b
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CST_5b(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HI
    - ','
    - LO
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: MK_CST_16
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MK_CST_16(HI, LO)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:63,1
    - Dst: CST_5b
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:63,1
    - Dst: CST_5b
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:63,1
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:64,1
    - Dst: CST_5b
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:64,1
    - Dst: _mm256_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:65,1
    - Dst: _mm256_set_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:66,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:71,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:72,1
    - Dst: _mm256_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:73,1
    - Dst: _mm256_slli_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:74,1
    - Dst: _mm256_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:75,1
    - Dst: _mm256_srli_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:76,1
    - Dst: _mm256_add_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:77,1
    - Dst: _mm256_and_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:78,1
    - Dst: _mm256_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:79,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:80,1
    - Dst: VP8LTransformColor_SSE
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - m
    - WEBP_RESTRICT
    - num_pixels
    argTypes:
    - VP8LMultipliers*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 86
    functionName: TransformColor_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached:
    - CST_5b
    - _mm256_storeu_si256
    - VP8LTransformColor_SSE
    - _mm256_mulhi_epi16
    - _mm256_and_si256
    - _mm256_set_epi8
    - _mm256_slli_epi16
    - _mm256_add_epi8
    - _mm256_set1_epi32
    - _mm256_shuffle_epi8
    - _mm256_sub_epi8
    - _mm256_srli_epi32
    - _mm256_loadu_si256
    - MK_CST_16
    linkageType: ''
    returnType: void
    signature: "void TransformColor_AVX2(const VP8LMultipliers* WEBP_RESTRICT const
      m,\n                                uint32_t* WEBP_RESTRICT argb_data,\n                                int
      num_pixels)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:95,1
    - Dst: CST_5b
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:95,1
    - Dst: CST_5b
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:95,1
    - Dst: _mm256_setr_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:96,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:104,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:105,1
    - Dst: _mm256_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:106,1
    - Dst: _mm256_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:107,1
    - Dst: _mm256_add_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:108,1
    - Dst: _mm256_srli_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:108,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:111,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:113,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:115,1
    - Dst: _mm256_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:116,1
    - Dst: _mm256_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:117,1
    - Dst: _mm256_add_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:118,1
    - Dst: _mm256_srli_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:118,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:120,1
    - Dst: VP8LCollectColorBlueTransforms_SSE
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 7
    argNames:
    - WEBP_RESTRICT
    - stride
    - tile_width
    - tile_height
    - green_to_blue
    - red_to_blue
    - histo
    argTypes:
    - uint32_t*
    - int
    - int
    - int
    - int
    - int
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 132
    functionName: CollectColorBlueTransforms_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached:
    - _mm256_add_epi16
    - _mm256_sub_epi16
    - CST_5b
    - _mm256_storeu_si256
    - VP8LCollectColorBlueTransforms_SSE
    - _mm256_mulhi_epi16
    - _mm256_setr_epi8
    - _mm256_shuffle_epi8
    - _mm256_srli_epi32
    - _mm256_loadu_si256
    - MK_CST_16
    linkageType: ''
    returnType: void
    signature: "void CollectColorBlueTransforms_AVX2(const uint32_t* WEBP_RESTRICT
      argb,\n                                            int stride, int tile_width,\n
      \                                           int tile_height, int green_to_blue,\n
      \                                           int red_to_blue, uint32_t histo[])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:138,1
    - Dst: CST_5b
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:138,1
    - Dst: _mm256_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:139,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:145,1
    - Dst: _mm256_and_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:146,1
    - Dst: _mm256_madd_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:147,1
    - Dst: _mm256_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:148,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:151,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:153,1
    - Dst: _mm256_and_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:155,1
    - Dst: _mm256_madd_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:156,1
    - Dst: _mm256_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:157,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:159,1
    - Dst: VP8LCollectColorRedTransforms_SSE
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - stride
    - tile_width
    - tile_height
    - green_to_red
    - histo
    argTypes:
    - uint32_t*
    - int
    - int
    - int
    - int
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 171
    functionName: CollectColorRedTransforms_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached:
    - _mm256_sub_epi16
    - CST_5b
    - _mm256_storeu_si256
    - VP8LCollectColorRedTransforms_SSE
    - _mm256_and_si256
    - _mm256_set1_epi32
    - _mm256_madd_epi16
    - _mm256_loadu_si256
    - MK_CST_16
    linkageType: ''
    returnType: void
    signature: "void CollectColorRedTransforms_AVX2(const uint32_t* WEBP_RESTRICT
      argb,\n                                           int stride, int tile_width,\n
      \                                          int tile_height, int green_to_red,\n
      \                                          uint32_t histo[])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:188,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:189,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:192,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:193,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:194,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:195,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:196,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:197,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:198,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:199,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:200,1
    - Dst: _mm256_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:200,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:201,1
    - Dst: _mm256_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:201,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:202,1
    - Dst: _mm256_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:202,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:203,1
    - Dst: _mm256_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:203,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:208,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:209,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:210,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:211,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:212,1
    - Dst: _mm256_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:212,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:213,1
    - Dst: _mm256_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:213,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:219,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:220,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:221,1
    - Dst: _mm256_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - size
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - int
    assertStmts:
    - condition: (size % 2 == 0)
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/libwebp/src/dsp/lossless_enc_avx2.c
    - condition: (size >= 32)
      pos:
        line_end: 187
        line_start: 187
        source_file: /src/libwebp/src/dsp/lossless_enc_avx2.c
    constantsTouched: []
    func_position:
      end: 227
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 227
    functionName: AddVector_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached:
    - assert
    - _mm256_loadu_si256
    - _mm256_storeu_si256
    - _mm256_add_epi32
    linkageType: ''
    returnType: void
    signature: "void AddVector_AVX2(const uint32_t* WEBP_RESTRICT a,\n                           const
      uint32_t* WEBP_RESTRICT b,\n                           uint32_t* WEBP_RESTRICT
      out, int size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:236,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:237,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:240,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:241,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:242,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:243,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:244,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:245,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:246,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:247,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:248,1
    - Dst: _mm256_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:248,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:249,1
    - Dst: _mm256_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:249,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:250,1
    - Dst: _mm256_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:250,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:251,1
    - Dst: _mm256_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:251,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:256,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:257,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:258,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:259,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:260,1
    - Dst: _mm256_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:260,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:261,1
    - Dst: _mm256_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:261,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:267,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:268,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:269,1
    - Dst: _mm256_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - size
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    assertStmts:
    - condition: (size % 2 == 0)
      pos:
        line_end: 236
        line_start: 236
        source_file: /src/libwebp/src/dsp/lossless_enc_avx2.c
    - condition: (size >= 32)
      pos:
        line_end: 235
        line_start: 235
        source_file: /src/libwebp/src/dsp/lossless_enc_avx2.c
    constantsTouched: []
    func_position:
      end: 275
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 275
    functionName: AddVectorEq_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached:
    - assert
    - _mm256_loadu_si256
    - _mm256_storeu_si256
    - _mm256_add_epi32
    linkageType: ''
    returnType: void
    signature: "void AddVectorEq_AVX2(const uint32_t* WEBP_RESTRICT a,\n                             uint32_t*
      WEBP_RESTRICT out, int size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_setzero_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:287,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:290,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:291,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:292,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:293,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:294,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:295,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:296,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:297,1
    - Dst: _mm256_packs_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:298,1
    - Dst: _mm256_packs_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:298,1
    - Dst: _mm256_packs_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:299,1
    - Dst: _mm256_packs_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:300,1
    - Dst: _mm256_packs_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:300,1
    - Dst: _mm256_packs_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:301,1
    - Dst: _mm256_permutevar8x32_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:303,1
    - Dst: _mm256_set_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:304,1
    - Dst: _mm256_permutevar8x32_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:305,1
    - Dst: _mm256_set_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:306,1
    - Dst: _mm256_movemask_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:308,1
    - Dst: _mm256_cmpgt_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:308,1
    - Dst: _mm256_movemask_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:310,1
    - Dst: _mm256_cmpgt_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:310,1
    - Dst: BitsCtz
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:312,1
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:317,1
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:321,1
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:325,1
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - X
    - Y
    argTypes:
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 327
    functionName: CombinedShannonEntropy_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached:
    - _mm256_setzero_si256
    - VP8LFastSLog2
    - _mm256_packs_epi16
    - _mm256_movemask_epi8
    - BitsCtz
    - _mm256_cmpgt_epi8
    - _mm256_packs_epi32
    - _mm256_permutevar8x32_epi32
    - _mm256_loadu_si256
    - _mm256_set_epi32
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t CombinedShannonEntropy_AVX2(const uint32_t X[256],\n                                            const
      uint32_t Y[256])"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:342,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:343,1
    - Dst: _mm256_cmpeq_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:348,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:350,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:352,1
    - Dst: _mm256_movemask_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:353,1
    - Dst: _mm256_cmpeq_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:357,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:358,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:359,1
    - Dst: _mm256_movemask_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:360,1
    - Dst: _mm256_movemask_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:368,1
    - Dst: _mm256_cmpeq_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:368,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:369,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:370,1
    - Dst: _mm256_movemask_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:373,1
    - Dst: _mm256_cmpeq_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:373,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:374,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:375,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - array1
    - array2
    - length
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 385
    functionName: VectorMismatch_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached:
    - _mm256_cmpeq_epi32
    - _mm256_loadu_si256
    - _mm256_movemask_epi8
    linkageType: ''
    returnType: int
    signature: "int VectorMismatch_AVX2(const uint32_t* const array1,\n                               const
      uint32_t* const array2, int length)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:392,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:393,1
    - Dst: _mm256_set1_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:396,1
    - Dst: _mm256_setzero_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:397,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:400,1
    - Dst: _mm256_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:401,1
    - Dst: _mm256_unpacklo_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:402,1
    - Dst: _mm256_unpackhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:403,1
    - Dst: _mm256_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:404,1
    - Dst: _mm256_unpacklo_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:405,1
    - Dst: _mm256_unpackhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:406,1
    - Dst: _mm256_storeu2_m128i
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:407,1
    - Dst: _mm256_storeu2_m128i
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:408,1
    - Dst: _mm256_storeu2_m128i
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:409,1
    - Dst: _mm256_storeu2_m128i
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:410,1
    - Dst: _mm256_set1_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:415,1
    - Dst: _mm256_set1_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:416,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:419,1
    - Dst: _mm256_mullo_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:420,1
    - Dst: _mm256_and_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:421,1
    - Dst: _mm256_unpacklo_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:422,1
    - Dst: _mm256_unpackhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:423,1
    - Dst: _mm256_storeu2_m128i
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:424,1
    - Dst: _mm256_storeu2_m128i
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:425,1
    - Dst: _mm256_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:430,1
    - Dst: _mm256_set1_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:431,1
    - Dst: _mm256_set1_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:432,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:435,1
    - Dst: _mm256_mullo_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:437,1
    - Dst: _mm256_and_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:439,1
    - Dst: _mm256_srli_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:440,1
    - Dst: _mm256_or_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:441,1
    - Dst: _mm256_or_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:443,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:444,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:449,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:452,1
    - Dst: _mm256_slli_epi64
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:453,1
    - Dst: _mm256_movemask_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:454,1
    - Dst: VP8LBundleColorMap_SSE
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:464,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 4
    argNames:
    - row
    - width
    - xbits
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int
    - int
    - uint32_t*
    assertStmts:
    - condition: (xbits >= 0)
      pos:
        line_end: 391
        line_start: 391
        source_file: /src/libwebp/src/dsp/lossless_enc_avx2.c
    - condition: (xbits <= 3)
      pos:
        line_end: 392
        line_start: 392
        source_file: /src/libwebp/src/dsp/lossless_enc_avx2.c
    - condition: (xbits == 3)
      pos:
        line_end: 448
        line_start: 448
        source_file: /src/libwebp/src/dsp/lossless_enc_avx2.c
    constantsTouched: []
    func_position:
      end: 466
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 466
    functionName: BundleColorMap_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached:
    - _mm256_setzero_si256
    - _mm256_set1_epi16
    - _mm256_unpacklo_epi16
    - VP8LBundleColorMap_SSE
    - _mm256_storeu_si256
    - assert
    - _mm256_movemask_epi8
    - _mm256_and_si256
    - _mm256_or_si256
    - _mm256_unpackhi_epi16
    - _mm256_set1_epi32
    - _mm256_slli_epi64
    - _mm256_srli_epi32
    - _mm256_mullo_epi16
    - _mm256_unpacklo_epi8
    - _mm256_loadu_si256
    - _mm256_unpackhi_epi8
    - _mm256_storeu2_m128i
    linkageType: ''
    returnType: void
    signature: "void BundleColorMap_AVX2(const uint8_t* WEBP_RESTRICT const row,\n
      \                               int width, int xbits,\n                                uint32_t*
      WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_set1_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:475,1
    - Dst: _mm256_avg_epu8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:476,1
    - Dst: _mm256_and_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:477,1
    - Dst: _mm256_xor_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:477,1
    - Dst: _mm256_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a0
    - a1
    - avg
    argTypes:
    - __m256i*
    - __m256i*
    - __m256i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 479
    functionName: Average2_m256i
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached:
    - _mm256_set1_epi8
    - _mm256_xor_si256
    - _mm256_avg_epu8
    - _mm256_and_si256
    - _mm256_sub_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Average2_m256i(const __m256i* const a0,\n                                       const
      __m256i* const a1,\n                                       __m256i* const avg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:485,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:487,1
    - Dst: _mm256_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:488,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 495
    functionName: PredictorSub0_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached:
    - _mm256_sub_epi8
    - _mm256_set1_epi32
    - _mm256_loadu_si256
    - _mm256_storeu_si256
    linkageType: ''
    returnType: void
    signature: "void PredictorSub0_AVX2(const uint32_t* in, const uint32_t* upper,\n
      \                              int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - IN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 513
    functionName: GENERATE_PREDICTOR_1
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_PREDICTOR_1(X, IN)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:525,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:526,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:527,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:528,1
    - Dst: Average2_m256i
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:530,1
    - Dst: Average2_m256i
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:531,1
    - Dst: _mm256_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:532,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:533,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 538
    functionName: PredictorSub5_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached:
    - _mm256_sub_epi8
    - _mm256_loadu_si256
    - _mm256_storeu_si256
    - Average2_m256i
    linkageType: ''
    returnType: void
    signature: "void PredictorSub5_AVX2(const uint32_t* in, const uint32_t* upper,\n
      \                              int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 558
    functionName: GENERATE_PREDICTOR_2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_PREDICTOR_2(X, A, B)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:570,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:571,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:572,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:573,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:574,1
    - Dst: Average2_m256i
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:576,1
    - Dst: Average2_m256i
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:577,1
    - Dst: Average2_m256i
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:578,1
    - Dst: _mm256_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:579,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:580,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 585
    functionName: PredictorSub10_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached:
    - _mm256_sub_epi8
    - _mm256_loadu_si256
    - _mm256_storeu_si256
    - Average2_m256i
    linkageType: ''
    returnType: void
    signature: "void PredictorSub10_AVX2(const uint32_t* in, const uint32_t* upper,\n
      \                               int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_unpacklo_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:592,1
    - Dst: _mm256_unpacklo_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:593,1
    - Dst: _mm256_unpackhi_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:594,1
    - Dst: _mm256_unpackhi_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:595,1
    - Dst: _mm256_sad_epu8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:596,1
    - Dst: _mm256_sad_epu8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:597,1
    - Dst: _mm256_packs_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - A
    - B
    - out
    argTypes:
    - __m256i*
    - __m256i*
    - __m256i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 599
    functionName: GetSumAbsDiff32_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached:
    - _mm256_packs_epi32
    - _mm256_sad_epu8
    - _mm256_unpackhi_epi32
    - _mm256_unpacklo_epi32
    linkageType: ''
    returnType: void
    signature: "void GetSumAbsDiff32_AVX2(const __m256i* const A, const __m256i* const
      B,\n                                 __m256i* const out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:605,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:606,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:607,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:608,1
    - Dst: GetSumAbsDiff32_AVX2
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:610,1
    - Dst: GetSumAbsDiff32_AVX2
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:611,1
    - Dst: _mm256_cmpgt_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:613,1
    - Dst: _mm256_and_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:614,1
    - Dst: _mm256_andnot_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:615,1
    - Dst: _mm256_or_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:616,1
    - Dst: _mm256_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:617,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 624
    functionName: PredictorSub11_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached:
    - _mm256_andnot_si256
    - _mm256_storeu_si256
    - _mm256_and_si256
    - _mm256_or_si256
    - _mm256_sub_epi8
    - _mm256_cmpgt_epi32
    - GetSumAbsDiff32_AVX2
    - _mm256_loadu_si256
    linkageType: ''
    returnType: void
    signature: "void PredictorSub11_AVX2(const uint32_t* in, const uint32_t* upper,\n
      \                               int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_setzero_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:630,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:632,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:633,1
    - Dst: _mm256_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:634,1
    - Dst: _mm256_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:635,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:636,1
    - Dst: _mm256_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:637,1
    - Dst: _mm256_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:638,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:639,1
    - Dst: _mm256_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:640,1
    - Dst: _mm256_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:641,1
    - Dst: _mm256_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:642,1
    - Dst: _mm256_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:643,1
    - Dst: _mm256_add_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:644,1
    - Dst: _mm256_add_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:645,1
    - Dst: _mm256_packus_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:646,1
    - Dst: _mm256_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:647,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 653
    functionName: PredictorSub12_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached:
    - _mm256_setzero_si256
    - _mm256_add_epi16
    - _mm256_sub_epi16
    - _mm256_storeu_si256
    - _mm256_packus_epi16
    - _mm256_sub_epi8
    - _mm256_unpacklo_epi8
    - _mm256_loadu_si256
    - _mm256_unpackhi_epi8
    linkageType: ''
    returnType: void
    signature: "void PredictorSub12_AVX2(const uint32_t* in, const uint32_t* upper,\n
      \                               int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_setzero_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:659,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:661,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:662,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:663,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:664,1
    - Dst: _mm256_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:666,1
    - Dst: _mm256_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:667,1
    - Dst: _mm256_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:668,1
    - Dst: _mm256_add_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:669,1
    - Dst: _mm256_srli_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:670,1
    - Dst: _mm256_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:671,1
    - Dst: _mm256_cmpgt_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:672,1
    - Dst: _mm256_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:673,1
    - Dst: _mm256_srai_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:674,1
    - Dst: _mm256_add_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:675,1
    - Dst: _mm256_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:677,1
    - Dst: _mm256_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:678,1
    - Dst: _mm256_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:679,1
    - Dst: _mm256_add_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:680,1
    - Dst: _mm256_srli_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:681,1
    - Dst: _mm256_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:682,1
    - Dst: _mm256_cmpgt_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:683,1
    - Dst: _mm256_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:684,1
    - Dst: _mm256_srai_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:685,1
    - Dst: _mm256_add_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:686,1
    - Dst: _mm256_packus_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:688,1
    - Dst: _mm256_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:689,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_enc_avx2.c:690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 695
    functionName: PredictorSub13_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached:
    - _mm256_setzero_si256
    - _mm256_add_epi16
    - _mm256_sub_epi16
    - _mm256_storeu_si256
    - _mm256_cmpgt_epi16
    - _mm256_packus_epi16
    - _mm256_sub_epi8
    - _mm256_srai_epi16
    - _mm256_srli_epi16
    - _mm256_unpacklo_epi8
    - _mm256_loadu_si256
    - _mm256_unpackhi_epi8
    linkageType: ''
    returnType: void
    signature: "void PredictorSub13_AVX2(const uint32_t* in, const uint32_t* upper,\n
      \                               int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 729
    functionName: VP8LEncDspInitAVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_avx2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8LEncDspInitAVX2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vaddvq_u32
      Src: /src/libwebp/src/dsp/quant.h:26,1
    - Dst: vpaddlq_u32
      Src: /src/libwebp/src/dsp/quant.h:28,1
    - Dst: vadd_u32
      Src: /src/libwebp/src/dsp/quant.h:29,1
    - Dst: vreinterpret_u32_u64
      Src: /src/libwebp/src/dsp/quant.h:29,1
    - Dst: vget_low_u64
      Src: /src/libwebp/src/dsp/quant.h:29,1
    - Dst: vreinterpret_u32_u64
      Src: /src/libwebp/src/dsp/quant.h:30,1
    - Dst: vget_high_u64
      Src: /src/libwebp/src/dsp/quant.h:30,1
    - Dst: vget_lane_u32
      Src: /src/libwebp/src/dsp/quant.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint32x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: horizontal_add_uint32x4
    functionSourceFile: /src/libwebp/src/dsp/quant.h
    functionUses: 0
    functionsReached:
    - vpaddlq_u32
    - vget_low_u64
    - vadd_u32
    - vget_high_u64
    - vget_lane_u32
    - vreinterpret_u32_u64
    - vaddvq_u32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t horizontal_add_uint32x4(const uint32x4_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_s16
      Src: /src/libwebp/src/dsp/quant.h:37,1
    - Dst: vdupq_n_u32
      Src: /src/libwebp/src/dsp/quant.h:38,1
    - Dst: vsetq_lane_s16
      Src: /src/libwebp/src/dsp/quant.h:43,1
    - Dst: vld1q_s16
      Src: /src/libwebp/src/dsp/quant.h:43,1
    - Dst: vld1q_s16
      Src: /src/libwebp/src/dsp/quant.h:44,1
    - Dst: vshrq_n_u16
      Src: /src/libwebp/src/dsp/quant.h:46,1
    - Dst: vtstq_s16
      Src: /src/libwebp/src/dsp/quant.h:46,1
    - Dst: vshrq_n_u16
      Src: /src/libwebp/src/dsp/quant.h:47,1
    - Dst: vtstq_s16
      Src: /src/libwebp/src/dsp/quant.h:47,1
    - Dst: vpadalq_u16
      Src: /src/libwebp/src/dsp/quant.h:49,1
    - Dst: vpadalq_u16
      Src: /src/libwebp/src/dsp/quant.h:50,1
    - Dst: horizontal_add_uint32x4
      Src: /src/libwebp/src/dsp/quant.h:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - levels
    - num_blocks
    - thresh
    argTypes:
    - int16_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: IsFlat
    functionSourceFile: /src/libwebp/src/dsp/quant.h
    functionUses: 0
    functionsReached:
    - vtstq_s16
    - vdupq_n_u32
    - vshrq_n_u16
    - vsetq_lane_s16
    - vdupq_n_s16
    - vld1q_s16
    - vpadalq_u16
    - horizontal_add_uint32x4
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE IsFlat(const int16_t* levels, int num_blocks,\n                              int
      thresh)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - levels
    - num_blocks
    - thresh
    argTypes:
    - int16_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: IsFlat
    functionSourceFile: /src/libwebp/src/dsp/quant.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE IsFlat(const int16_t* levels, int num_blocks,\n                              int
      thresh)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/libwebp/src/dsp/quant.h:82,1
    - Dst: memcmp
      Src: /src/libwebp/src/dsp/quant.h:82,1
    - Dst: memcmp
      Src: /src/libwebp/src/dsp/quant.h:83,1
    - Dst: memcmp
      Src: /src/libwebp/src/dsp/quant.h:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 89
    functionName: IsFlatSource16
    functionSourceFile: /src/libwebp/src/dsp/quant.h
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE IsFlatSource16(const uint8_t* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - Y
    - ','
    - U
    - ','
    - V
    - ','
    - R
    - ','
    - G
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 50
    functionName: YUV_TO_RGB
    functionSourceFile: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YUV_TO_RGB(Y, U, V, R, G, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YUV_TO_RGB
      Src: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - y
    - u
    - v
    - rgb
    argTypes:
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: YuvToRgb
    functionSourceFile: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - YUV_TO_RGB
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE YuvToRgb(int y, int u, int v, uint8_t* const rgb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YUV_TO_RGB
      Src: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - y
    - u
    - v
    - bgr
    argTypes:
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: YuvToBgr
    functionSourceFile: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - YUV_TO_RGB
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE YuvToBgr(int y, int u, int v, uint8_t* const bgr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YUV_TO_RGB
      Src: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - y
    - u
    - v
    - rgb
    argTypes:
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: YuvToRgb565
    functionSourceFile: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - YUV_TO_RGB
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE YuvToRgb565(int y, int u, int v, uint8_t* const rgb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YUV_TO_RGB
      Src: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - y
    - u
    - v
    - argb
    argTypes:
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 97
    functionName: YuvToRgba4444
    functionSourceFile: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - YUV_TO_RGB
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE YuvToRgba4444(int y, int u, int v,\n                                      uint8_t*
      const argb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YUV_TO_RGB
      Src: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - y
    - u
    - v
    - argb
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: YuvToArgb
    functionSourceFile: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - YUV_TO_RGB
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE YuvToArgb(uint8_t y, uint8_t u, uint8_t v,\n                                  uint8_t*
      const argb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YUV_TO_RGB
      Src: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - y
    - u
    - v
    - bgra
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: YuvToBgra
    functionSourceFile: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - YUV_TO_RGB
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE YuvToBgra(uint8_t y, uint8_t u, uint8_t v,\n                                  uint8_t*
      const bgra)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YUV_TO_RGB
      Src: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - y
    - u
    - v
    - rgba
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: YuvToRgba
    functionSourceFile: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - YUV_TO_RGB
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE YuvToRgba(uint8_t y, uint8_t u, uint8_t v,\n                                  uint8_t*
      const rgba)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - u
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: LOAD_UV
    functionSourceFile: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_UV(u, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FUNC_NAME
    - ','
    - FUNC
    - ','
    - XSTEP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 158
    functionName: UPSAMPLE_FUNC
    functionSourceFile: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPSAMPLE_FUNC(FUNC_NAME, FUNC, XSTEP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 243
    functionName: WebPInitUpsamplersMIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPInitUpsamplersMIPSdspR2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FUNC_NAME
    - ','
    - FUNC
    - ','
    - XSTEP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 257
    functionName: YUV444_FUNC
    functionSourceFile: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YUV444_FUNC(FUNC_NAME, FUNC, XSTEP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 289
    functionName: WebPInitYUV444ConvertersMIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPInitYUV444ConvertersMIPSdspR2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: STR
    functionSourceFile: /src/libwebp/src/dsp/mips_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: XSTR
    functionSourceFile: /src/libwebp/src/dsp/mips_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSTR(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - O0
    - ','
    - O1
    - ','
    - I0
    - ','
    - I1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: ADD_SUB_HALVES
    functionSourceFile: /src/libwebp/src/dsp/mips_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "ADD_SUB_HALVES(O0, O1,                                                 \\\n
      \                      I0, I1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - O0
    - ','
    - O1
    - ','
    - I0
    - ','
    - I1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: LOAD_IN_X2
    functionSourceFile: /src/libwebp/src/dsp/mips_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "LOAD_IN_X2(O0, O1,                                                     \\\n
      \                  I0, I1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 29
    argNames:
    - (
    - O0
    - ','
    - O1
    - ','
    - O2
    - ','
    - O3
    - ','
    - I0
    - ','
    - I1
    - ','
    - I2
    - ','
    - I3
    - ','
    - I4
    - ','
    - I5
    - ','
    - I6
    - ','
    - I7
    - ','
    - I8
    - ','
    - I9
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: LOAD_WITH_OFFSET_X4
    functionSourceFile: /src/libwebp/src/dsp/mips_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "LOAD_WITH_OFFSET_X4(O0, O1, O2, O3,                                    \\\n
      \                           I0, I1, I2, I3, I4, I5, I6, I7, I8, I9)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - O
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: MUL_SHIFT_C1
    functionSourceFile: /src/libwebp/src/dsp/mips_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL_SHIFT_C1(O, I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - O
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: MUL_SHIFT_C2
    functionSourceFile: /src/libwebp/src/dsp/mips_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL_SHIFT_C2(O, I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - IO
    - ','
    - TMP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: MUL_SHIFT_C1_IO
    functionSourceFile: /src/libwebp/src/dsp/mips_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL_SHIFT_C1_IO(IO, TMP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 41
    argNames:
    - (
    - O0
    - ','
    - O1
    - ','
    - O2
    - ','
    - O3
    - ','
    - O4
    - ','
    - O5
    - ','
    - O6
    - ','
    - O7
    - ','
    - IO0
    - ','
    - IO1
    - ','
    - IO2
    - ','
    - IO3
    - ','
    - I0
    - ','
    - I1
    - ','
    - I2
    - ','
    - I3
    - ','
    - I4
    - ','
    - I5
    - ','
    - I6
    - ','
    - I7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 85
    functionName: MUL_SHIFT_SUM
    functionSourceFile: /src/libwebp/src/dsp/mips_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "MUL_SHIFT_SUM(O0, O1, O2, O3, O4, O5, O6, O7,                          \\\n
      \                     IO0, IO1, IO2, IO3,                                      \\\n
      \                     I0, I1, I2, I3, I4, I5, I6, I7)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - O0
    - ','
    - O1
    - ','
    - I0
    - ','
    - I1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: INSERT_HALF_X2
    functionSourceFile: /src/libwebp/src/dsp/mips_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "INSERT_HALF_X2(O0, O1,                                                 \\\n
      \                      I0, I1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - O0
    - ','
    - O1
    - ','
    - O2
    - ','
    - O3
    - ','
    - I0
    - ','
    - I1
    - ','
    - I2
    - ','
    - I3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: SRA_16
    functionSourceFile: /src/libwebp/src/dsp/mips_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SRA_16(O0, O1, O2, O3,                                                 \\\n
      \              I0, I1, I2, I3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 33
    argNames:
    - (
    - O0
    - ','
    - O1
    - ','
    - O2
    - ','
    - O3
    - ','
    - O4
    - ','
    - O5
    - ','
    - O6
    - ','
    - O7
    - ','
    - I0
    - ','
    - I1
    - ','
    - I2
    - ','
    - I3
    - ','
    - I4
    - ','
    - I5
    - ','
    - I6
    - ','
    - I7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 126
    functionName: SHIFT_R_SUM_X2
    functionSourceFile: /src/libwebp/src/dsp/mips_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SHIFT_R_SUM_X2(O0, O1, O2, O3, O4, O5, O6, O7,                         \\\n
      \                      I0, I1, I2, I3, I4, I5, I6, I7)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - O0
    - ','
    - O1
    - ','
    - O2
    - ','
    - O3
    - ','
    - IO0
    - ','
    - IO1
    - ','
    - IO2
    - ','
    - IO3
    - ','
    - I0
    - ','
    - I1
    - ','
    - I2
    - ','
    - I3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 145
    functionName: PACK_2_HALVES_TO_WORD
    functionSourceFile: /src/libwebp/src/dsp/mips_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "PACK_2_HALVES_TO_WORD(O0, O1, O2, O3,                                  \\\n
      \                             IO0, IO1, IO2, IO3,                              \\\n
      \                             I0, I1, I2, I3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - O0
    - ','
    - O1
    - ','
    - O2
    - ','
    - O3
    - ','
    - O4
    - ','
    - O5
    - ','
    - O6
    - ','
    - O7
    - ','
    - I0
    - ','
    - I1
    - ','
    - I2
    - ','
    - I3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 162
    functionName: CONVERT_2_BYTES_TO_HALF
    functionSourceFile: /src/libwebp/src/dsp/mips_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "CONVERT_2_BYTES_TO_HALF(O0, O1, O2, O3, O4, O5, O6, O7,                \\\n
      \                               I0, I1, I2, I3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 45
    argNames:
    - (
    - IO0
    - ','
    - IO1
    - ','
    - IO2
    - ','
    - IO3
    - ','
    - IO4
    - ','
    - IO5
    - ','
    - IO6
    - ','
    - IO7
    - ','
    - I0
    - ','
    - I1
    - ','
    - I2
    - ','
    - I3
    - ','
    - I4
    - ','
    - I5
    - ','
    - I6
    - ','
    - I7
    - ','
    - I8
    - ','
    - I9
    - ','
    - I10
    - ','
    - I11
    - ','
    - I12
    - ','
    - I13
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 198
    functionName: STORE_SAT_SUM_X2
    functionSourceFile: /src/libwebp/src/dsp/mips_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "STORE_SAT_SUM_X2(IO0, IO1, IO2, IO3, IO4, IO5, IO6, IO7,               \\\n
      \                        I0, I1, I2, I3, I4, I5, I6, I7,                       \\\n
      \                        I8, I9, I10, I11, I12, I13)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: OUTPUT_EARLY_CLOBBER_REGS_10
    functionSourceFile: /src/libwebp/src/dsp/mips_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OUTPUT_EARLY_CLOBBER_REGS_10()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: OUTPUT_EARLY_CLOBBER_REGS_18
    functionSourceFile: /src/libwebp/src/dsp/mips_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OUTPUT_EARLY_CLOBBER_REGS_18()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: clip_8b
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE clip_8b(int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: STORE
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE(x, y, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - y
    - ','
    - dc
    - ','
    - d
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: STORE2
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE2(y, dc, d, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_TRANSFORM_AC3_MUL2
      Src: /src/libwebp/src/dsp/dec.c:55,1
    - Dst: WEBP_TRANSFORM_AC3_MUL1
      Src: /src/libwebp/src/dsp/dec.c:56,1
    - Dst: WEBP_TRANSFORM_AC3_MUL1
      Src: /src/libwebp/src/dsp/dec.c:57,1
    - Dst: WEBP_TRANSFORM_AC3_MUL2
      Src: /src/libwebp/src/dsp/dec.c:58,1
    - Dst: WEBP_TRANSFORM_AC3_MUL2
      Src: /src/libwebp/src/dsp/dec.c:79,1
    - Dst: WEBP_TRANSFORM_AC3_MUL1
      Src: /src/libwebp/src/dsp/dec.c:79,1
    - Dst: WEBP_TRANSFORM_AC3_MUL1
      Src: /src/libwebp/src/dsp/dec.c:81,1
    - Dst: WEBP_TRANSFORM_AC3_MUL2
      Src: /src/libwebp/src/dsp/dec.c:81,1
    - Dst: STORE
      Src: /src/libwebp/src/dsp/dec.c:82,1
    - Dst: STORE
      Src: /src/libwebp/src/dsp/dec.c:83,1
    - Dst: STORE
      Src: /src/libwebp/src/dsp/dec.c:84,1
    - Dst: STORE
      Src: /src/libwebp/src/dsp/dec.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 89
    functionName: TransformOne_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - STORE
    - WEBP_TRANSFORM_AC3_MUL2
    - WEBP_TRANSFORM_AC3_MUL1
    linkageType: ''
    returnType: void
    signature: "void TransformOne_C(const int16_t* WEBP_RESTRICT in,\n                           uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_TRANSFORM_AC3_MUL2
      Src: /src/libwebp/src/dsp/dec.c:95,1
    - Dst: WEBP_TRANSFORM_AC3_MUL1
      Src: /src/libwebp/src/dsp/dec.c:96,1
    - Dst: WEBP_TRANSFORM_AC3_MUL2
      Src: /src/libwebp/src/dsp/dec.c:97,1
    - Dst: WEBP_TRANSFORM_AC3_MUL1
      Src: /src/libwebp/src/dsp/dec.c:98,1
    - Dst: STORE2
      Src: /src/libwebp/src/dsp/dec.c:99,1
    - Dst: STORE2
      Src: /src/libwebp/src/dsp/dec.c:100,1
    - Dst: STORE2
      Src: /src/libwebp/src/dsp/dec.c:101,1
    - Dst: STORE2
      Src: /src/libwebp/src/dsp/dec.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 103
    functionName: TransformAC3_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - STORE2
    - WEBP_TRANSFORM_AC3_MUL2
    - WEBP_TRANSFORM_AC3_MUL1
    linkageType: ''
    returnType: void
    signature: "void TransformAC3_C(const int16_t* WEBP_RESTRICT in,\n                           uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TransformOne_C
      Src: /src/libwebp/src/dsp/dec.c:108,1
    - Dst: TransformOne_C
      Src: /src/libwebp/src/dsp/dec.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - do_two
    argTypes:
    - int16_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: TransformTwo_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - TransformOne_C
    linkageType: ''
    returnType: void
    signature: "void TransformTwo_C(const int16_t* WEBP_RESTRICT in,\n                           uint8_t*
      WEBP_RESTRICT dst, int do_two)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8Transform
      Src: /src/libwebp/src/dsp/dec.c:117,1
    - Dst: VP8Transform
      Src: /src/libwebp/src/dsp/dec.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: TransformUV_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - VP8Transform
    linkageType: ''
    returnType: void
    signature: "void TransformUV_C(const int16_t* WEBP_RESTRICT in,\n                          uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STORE
      Src: /src/libwebp/src/dsp/dec.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 131
    functionName: TransformDC_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - STORE
    linkageType: ''
    returnType: void
    signature: "void TransformDC_C(const int16_t* WEBP_RESTRICT in,\n                          uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VP8TransformDC
      Src: /src/libwebp/src/dsp/dec.c:136,1
    - Dst: VP8TransformDC
      Src: /src/libwebp/src/dsp/dec.c:137,1
    - Dst: VP8TransformDC
      Src: /src/libwebp/src/dsp/dec.c:138,1
    - Dst: VP8TransformDC
      Src: /src/libwebp/src/dsp/dec.c:139,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: TransformDCUV_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - VP8TransformDC
    linkageType: ''
    returnType: void
    signature: "void TransformDCUV_C(const int16_t* WEBP_RESTRICT in,\n                            uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 174
    functionName: TransformWHT_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TransformWHT_C(const int16_t* WEBP_RESTRICT in,\n                           int16_t*
      WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: DST
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DST(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - size
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 197
    functionName: TrueMotion
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE TrueMotion(uint8_t* dst, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrueMotion
      Src: /src/libwebp/src/dsp/dec.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: TM4_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - TrueMotion
    linkageType: ''
    returnType: void
    signature: void TM4_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrueMotion
      Src: /src/libwebp/src/dsp/dec.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: TM8uv_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - TrueMotion
    linkageType: ''
    returnType: void
    signature: void TM8uv_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrueMotion
      Src: /src/libwebp/src/dsp/dec.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: TM16_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - TrueMotion
    linkageType: ''
    returnType: void
    signature: void TM16_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/dec.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: VE16_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void VE16_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/dsp/dec.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: HE16_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void HE16_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/dsp/dec.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - dst
    argTypes:
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: Put16
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Put16(int v, uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Put16
      Src: /src/libwebp/src/dsp/dec.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: DC16_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - Put16
    linkageType: ''
    returnType: void
    signature: void DC16_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Put16
      Src: /src/libwebp/src/dsp/dec.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: DC16NoTop_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - Put16
    linkageType: ''
    returnType: void
    signature: void DC16NoTop_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Put16
      Src: /src/libwebp/src/dsp/dec.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 252
    functionName: DC16NoLeft_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - Put16
    linkageType: ''
    returnType: void
    signature: void DC16NoLeft_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Put16
      Src: /src/libwebp/src/dsp/dec.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: DC16NoTopLeft_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - Put16
    linkageType: ''
    returnType: void
    signature: void DC16NoTopLeft_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: AVG3
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AVG3(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: AVG2
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AVG2(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:271,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:272,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:273,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:274,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/dec.c:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 280
    functionName: VE4_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - AVG3
    - memcpy
    linkageType: ''
    returnType: void
    signature: void VE4_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPUint32ToMem
      Src: /src/libwebp/src/dsp/dec.c:289,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:289,1
    - Dst: WebPUint32ToMem
      Src: /src/libwebp/src/dsp/dec.c:290,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:290,1
    - Dst: WebPUint32ToMem
      Src: /src/libwebp/src/dsp/dec.c:291,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:291,1
    - Dst: WebPUint32ToMem
      Src: /src/libwebp/src/dsp/dec.c:292,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 293
    functionName: HE4_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - WebPUint32ToMem
    - AVG3
    linkageType: ''
    returnType: void
    signature: void HE4_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/dsp/dec.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 302
    functionName: DC4_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void DC4_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:314,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:314,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:315,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:315,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:315,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:316,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:316,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:316,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:316,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:317,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:317,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:317,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:317,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:317,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:318,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:318,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:318,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:318,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:319,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:319,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:319,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:320,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 321
    functionName: RD4_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - AVG3
    - DST
    linkageType: ''
    returnType: void
    signature: void RD4_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:332,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:332,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:333,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:333,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:333,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:334,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:334,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:334,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:334,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:335,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:335,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:335,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:335,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:335,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:336,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:336,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:336,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:336,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:337,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:337,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:337,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:338,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 339
    functionName: LD4_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - AVG3
    - DST
    linkageType: ''
    returnType: void
    signature: void LD4_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:351,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:351,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/dec.c:351,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:352,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:352,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/dec.c:352,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:353,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:353,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/dec.c:353,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:354,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/dec.c:354,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:356,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:356,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:357,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:357,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:358,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:358,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:358,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:359,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:359,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:359,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:360,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:360,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:360,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:361,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 362
    functionName: VR4_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - AVG2
    - AVG3
    - DST
    linkageType: ''
    returnType: void
    signature: void VR4_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:373,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/dec.c:373,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:374,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:374,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/dec.c:374,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:375,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:375,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/dec.c:375,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:376,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:376,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/dec.c:376,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:378,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:378,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:379,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:379,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:379,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:380,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:380,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:380,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:381,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:381,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:381,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:382,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:382,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:383,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 384
    functionName: VL4_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - AVG2
    - AVG3
    - DST
    linkageType: ''
    returnType: void
    signature: void VL4_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:391,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/dec.c:391,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:392,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:392,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/dec.c:392,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:393,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:393,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/dec.c:393,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:394,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:394,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:395,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:395,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:395,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:396,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:396,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:396,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:397,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:397,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:397,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:397,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:397,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 398
    functionName: HU4_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - AVG2
    - AVG3
    - DST
    linkageType: ''
    returnType: void
    signature: void HU4_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:410,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:410,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/dec.c:410,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:411,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:411,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/dec.c:411,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:412,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:412,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/dec.c:412,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:413,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/dec.c:413,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:415,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:415,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:416,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:416,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:417,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:417,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:417,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:418,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:418,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:418,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:419,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:419,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:419,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec.c:420,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 421
    functionName: HD4_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - AVG2
    - AVG3
    - DST
    linkageType: ''
    returnType: void
    signature: void HD4_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/dec.c:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 438
    functionName: VE8uv_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void VE8uv_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/dsp/dec.c:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 446
    functionName: HE8uv_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void HE8uv_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/dsp/dec.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - value
    - dst
    argTypes:
    - uint8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 454
    functionName: Put8x8uv
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Put8x8uv(uint8_t value, uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Put8x8uv
      Src: /src/libwebp/src/dsp/dec.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 463
    functionName: DC8uv_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - Put8x8uv
    linkageType: ''
    returnType: void
    signature: void DC8uv_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Put8x8uv
      Src: /src/libwebp/src/dsp/dec.c:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 472
    functionName: DC8uvNoLeft_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - Put8x8uv
    linkageType: ''
    returnType: void
    signature: void DC8uvNoLeft_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Put8x8uv
      Src: /src/libwebp/src/dsp/dec.c:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 481
    functionName: DC8uvNoTop_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - Put8x8uv
    linkageType: ''
    returnType: void
    signature: void DC8uvNoTop_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Put8x8uv
      Src: /src/libwebp/src/dsp/dec.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 485
    functionName: DC8uvNoTopLeft_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - Put8x8uv
    linkageType: ''
    returnType: void
    signature: void DC8uvNoTopLeft_C(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - step
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 502
    functionName: DoFilter2_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE DoFilter2_C(uint8_t* p, int step)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - step
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 515
    functionName: DoFilter4_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE DoFilter4_C(uint8_t* p, int step)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - p
    - step
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 532
    functionName: DoFilter6_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE DoFilter6_C(uint8_t* p, int step)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - p
    - step
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 537
    functionName: Hev
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Hev(const uint8_t* p, int step, int thresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - step
    - t
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 544
    functionName: NeedsFilter_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE NeedsFilter_C(const uint8_t* p, int step, int t)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 4
    argNames:
    - p
    - step
    - t
    - it
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 557
    functionName: NeedsFilter2_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE NeedsFilter2_C(const uint8_t* p, int step, int t,\n                                      int
      it)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NeedsFilter_C
      Src: /src/libwebp/src/dsp/dec.c:568,1
    - Dst: DoFilter2_C
      Src: /src/libwebp/src/dsp/dec.c:569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - p
    - stride
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 572
    functionName: SimpleVFilter16_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - DoFilter2_C
    - NeedsFilter_C
    linkageType: ''
    returnType: void
    signature: void SimpleVFilter16_C(uint8_t* p, int stride, int thresh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NeedsFilter_C
      Src: /src/libwebp/src/dsp/dec.c:578,1
    - Dst: DoFilter2_C
      Src: /src/libwebp/src/dsp/dec.c:579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - p
    - stride
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 582
    functionName: SimpleHFilter16_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - DoFilter2_C
    - NeedsFilter_C
    linkageType: ''
    returnType: void
    signature: void SimpleHFilter16_C(uint8_t* p, int stride, int thresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleVFilter16_C
      Src: /src/libwebp/src/dsp/dec.c:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - stride
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 590
    functionName: SimpleVFilter16i_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - SimpleVFilter16_C
    linkageType: ''
    returnType: void
    signature: void SimpleVFilter16i_C(uint8_t* p, int stride, int thresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleHFilter16_C
      Src: /src/libwebp/src/dsp/dec.c:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - stride
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 598
    functionName: SimpleHFilter16i_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - SimpleHFilter16_C
    linkageType: ''
    returnType: void
    signature: void SimpleHFilter16i_C(uint8_t* p, int stride, int thresh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NeedsFilter2_C
      Src: /src/libwebp/src/dsp/dec.c:610,1
    - Dst: Hev
      Src: /src/libwebp/src/dsp/dec.c:611,1
    - Dst: DoFilter2_C
      Src: /src/libwebp/src/dsp/dec.c:612,1
    - Dst: DoFilter6_C
      Src: /src/libwebp/src/dsp/dec.c:614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - p
    - hstride
    - vstride
    - size
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 619
    functionName: FilterLoop26_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - DoFilter6_C
    - NeedsFilter2_C
    - DoFilter2_C
    - Hev
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE FilterLoop26_C(uint8_t* p, int hstride, int vstride,\n
      \                                      int size, int thresh, int ithresh,\n
      \                                      int hev_thresh)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NeedsFilter2_C
      Src: /src/libwebp/src/dsp/dec.c:626,1
    - Dst: Hev
      Src: /src/libwebp/src/dsp/dec.c:627,1
    - Dst: DoFilter2_C
      Src: /src/libwebp/src/dsp/dec.c:628,1
    - Dst: DoFilter4_C
      Src: /src/libwebp/src/dsp/dec.c:630,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - p
    - hstride
    - vstride
    - size
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 635
    functionName: FilterLoop24_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - NeedsFilter2_C
    - DoFilter4_C
    - DoFilter2_C
    - Hev
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE FilterLoop24_C(uint8_t* p, int hstride, int vstride,\n
      \                                      int size, int thresh, int ithresh,\n
      \                                      int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop26_C
      Src: /src/libwebp/src/dsp/dec.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 643
    functionName: VFilter16_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 1
    functionsReached:
    - FilterLoop26_C
    linkageType: ''
    returnType: void
    signature: "void VFilter16_C(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                       int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop26_C
      Src: /src/libwebp/src/dsp/dec.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 648
    functionName: HFilter16_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 1
    functionsReached:
    - FilterLoop26_C
    linkageType: ''
    returnType: void
    signature: "void HFilter16_C(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                       int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop24_C
      Src: /src/libwebp/src/dsp/dec.c:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 651
    functionDepth: 2
    functionLinenumber: 651
    functionLinenumberEnd: 658
    functionName: VFilter16i_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - FilterLoop24_C
    linkageType: ''
    returnType: void
    signature: "void VFilter16i_C(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                        int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop24_C
      Src: /src/libwebp/src/dsp/dec.c:667,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 669
    functionName: HFilter16i_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - FilterLoop24_C
    linkageType: ''
    returnType: void
    signature: "void HFilter16i_C(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                        int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop26_C
      Src: /src/libwebp/src/dsp/dec.c:676,1
    - Dst: FilterLoop26_C
      Src: /src/libwebp/src/dsp/dec.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 678
    functionName: VFilter8_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - FilterLoop26_C
    linkageType: ''
    returnType: void
    signature: "void VFilter8_C(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT v,\n
      \                      int stride, int thresh, int ithresh, int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop26_C
      Src: /src/libwebp/src/dsp/dec.c:684,1
    - Dst: FilterLoop26_C
      Src: /src/libwebp/src/dsp/dec.c:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 686
    functionName: HFilter8_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - FilterLoop26_C
    linkageType: ''
    returnType: void
    signature: "void HFilter8_C(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT v,\n
      \                      int stride, int thresh, int ithresh, int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop24_C
      Src: /src/libwebp/src/dsp/dec.c:692,1
    - Dst: FilterLoop24_C
      Src: /src/libwebp/src/dsp/dec.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 694
    functionName: VFilter8i_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - FilterLoop24_C
    linkageType: ''
    returnType: void
    signature: "void VFilter8i_C(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT
      v,\n                        int stride, int thresh, int ithresh, int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop24_C
      Src: /src/libwebp/src/dsp/dec.c:700,1
    - Dst: FilterLoop24_C
      Src: /src/libwebp/src/dsp/dec.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 702
    functionName: HFilter8i_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - FilterLoop24_C
    linkageType: ''
    returnType: void
    signature: "void HFilter8i_C(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT
      v,\n                        int stride, int thresh, int ithresh, int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clip_8b
      Src: /src/libwebp/src/dsp/dec.c:715,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - dst_stride
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 720
    functionName: DitherCombine8x8_C
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - clip_8b
    linkageType: ''
    returnType: void
    signature: "void DitherCombine8x8_C(const uint8_t* WEBP_RESTRICT dither,\n                               uint8_t*
      WEBP_RESTRICT dst, int dst_stride)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: VP8InitClipTables
      Src: /src/libwebp/src/dsp/dec.c:755,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/dec.c:821,1
    - Dst: VP8DspInitSSE2
      Src: /src/libwebp/src/dsp/dec.c:822,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/dec.c:824,1
    - Dst: VP8DspInitSSE41
      Src: /src/libwebp/src/dsp/dec.c:825,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/dec.c:831,1
    - Dst: VP8DspInitMIPS32
      Src: /src/libwebp/src/dsp/dec.c:832,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/dec.c:836,1
    - Dst: VP8DspInitMIPSdspR2
      Src: /src/libwebp/src/dsp/dec.c:837,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/dec.c:841,1
    - Dst: VP8DspInitMSA
      Src: /src/libwebp/src/dsp/dec.c:842,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/dec.c:849,1
    - Dst: VP8DspInitNEON
      Src: /src/libwebp/src/dsp/dec.c:850,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:854,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:855,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:856,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:857,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:858,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:859,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:860,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:861,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:862,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:863,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:864,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:865,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:866,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:867,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:868,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:869,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:870,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:871,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:872,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:873,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:874,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:875,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:876,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:877,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:878,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:879,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:880,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:881,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:882,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:883,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:884,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:885,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:886,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:887,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:888,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:889,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:890,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:891,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:892,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:893,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:894,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:895,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/dec.c:896,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 108
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (VP8TransformUV != NULL)
      pos:
        line_end: 857
        line_start: 857
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8TransformWHT != NULL)
      pos:
        line_end: 853
        line_start: 853
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8VFilter16 != NULL)
      pos:
        line_end: 859
        line_start: 859
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8VFilter16i != NULL)
      pos:
        line_end: 863
        line_start: 863
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8SimpleVFilter16 != NULL)
      pos:
        line_end: 867
        line_start: 867
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredLuma4[7] != NULL)
      pos:
        line_end: 878
        line_start: 878
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredChroma8[5] != NULL)
      pos:
        line_end: 893
        line_start: 893
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredLuma16[3] != NULL)
      pos:
        line_end: 884
        line_start: 884
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredLuma16[6] != NULL)
      pos:
        line_end: 887
        line_start: 887
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredLuma16[2] != NULL)
      pos:
        line_end: 883
        line_start: 883
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredLuma4[6] != NULL)
      pos:
        line_end: 877
        line_start: 877
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredChroma8[4] != NULL)
      pos:
        line_end: 892
        line_start: 892
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8TransformAC3 != NULL)
      pos:
        line_end: 856
        line_start: 856
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8HFilter8 != NULL)
      pos:
        line_end: 862
        line_start: 862
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8HFilter8i != NULL)
      pos:
        line_end: 866
        line_start: 866
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8SimpleHFilter16i != NULL)
      pos:
        line_end: 870
        line_start: 870
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredLuma16[4] != NULL)
      pos:
        line_end: 885
        line_start: 885
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredChroma8[0] != NULL)
      pos:
        line_end: 888
        line_start: 888
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredChroma8[6] != NULL)
      pos:
        line_end: 894
        line_start: 894
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredLuma4[3] != NULL)
      pos:
        line_end: 874
        line_start: 874
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredLuma16[5] != NULL)
      pos:
        line_end: 886
        line_start: 886
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredLuma4[8] != NULL)
      pos:
        line_end: 879
        line_start: 879
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8TransformDC != NULL)
      pos:
        line_end: 855
        line_start: 855
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8VFilter8 != NULL)
      pos:
        line_end: 861
        line_start: 861
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8VFilter8i != NULL)
      pos:
        line_end: 865
        line_start: 865
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8SimpleVFilter16i != NULL)
      pos:
        line_end: 869
        line_start: 869
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredLuma4[0] != NULL)
      pos:
        line_end: 871
        line_start: 871
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredLuma4[1] != NULL)
      pos:
        line_end: 872
        line_start: 872
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredLuma4[4] != NULL)
      pos:
        line_end: 875
        line_start: 875
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredChroma8[2] != NULL)
      pos:
        line_end: 890
        line_start: 890
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredLuma4[5] != NULL)
      pos:
        line_end: 876
        line_start: 876
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredLuma16[0] != NULL)
      pos:
        line_end: 881
        line_start: 881
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredChroma8[1] != NULL)
      pos:
        line_end: 889
        line_start: 889
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredLuma4[9] != NULL)
      pos:
        line_end: 880
        line_start: 880
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8Transform != NULL)
      pos:
        line_end: 854
        line_start: 854
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8TransformDCUV != NULL)
      pos:
        line_end: 858
        line_start: 858
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8HFilter16 != NULL)
      pos:
        line_end: 860
        line_start: 860
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8HFilter16i != NULL)
      pos:
        line_end: 864
        line_start: 864
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8SimpleHFilter16 != NULL)
      pos:
        line_end: 868
        line_start: 868
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredChroma8[3] != NULL)
      pos:
        line_end: 891
        line_start: 891
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8DitherCombine8x8 != NULL)
      pos:
        line_end: 895
        line_start: 895
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredLuma16[1] != NULL)
      pos:
        line_end: 882
        line_start: 882
        source_file: /src/libwebp/src/dsp/dec.c
    - condition: (VP8PredLuma4[2] != NULL)
      pos:
        line_end: 873
        line_start: 873
        source_file: /src/libwebp/src/dsp/dec.c
    constantsTouched: []
    func_position:
      end: 897
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 897
    functionName: WEBP_DSP_INIT_FUNC
    functionSourceFile: /src/libwebp/src/dsp/dec.c
    functionUses: 0
    functionsReached:
    - VP8InitClipTables
    - VP8GetCPUInfo
    - VP8DspInitMSA
    - VP8DspInitSSE41
    - assert
    - VP8DspInitNEON
    - VP8DspInitMIPSdspR2
    - VP8DspInitMIPS32
    - VP8DspInitSSE2
    linkageType: ''
    returnType: void
    signature: void WEBP_DSP_INIT_FUNC(VP8DspInit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmovl_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:28,1
    - Dst: vmovl_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:29,1
    - Dst: vmovl_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:30,1
    - Dst: vget_low_u16
      Src: /src/libwebp/src/dsp/yuv_neon.c:31,1
    - Dst: vget_high_u16
      Src: /src/libwebp/src/dsp/yuv_neon.c:32,1
    - Dst: vget_low_u16
      Src: /src/libwebp/src/dsp/yuv_neon.c:33,1
    - Dst: vget_high_u16
      Src: /src/libwebp/src/dsp/yuv_neon.c:34,1
    - Dst: vget_low_u16
      Src: /src/libwebp/src/dsp/yuv_neon.c:35,1
    - Dst: vget_high_u16
      Src: /src/libwebp/src/dsp/yuv_neon.c:36,1
    - Dst: vmull_n_u16
      Src: /src/libwebp/src/dsp/yuv_neon.c:37,1
    - Dst: vmull_n_u16
      Src: /src/libwebp/src/dsp/yuv_neon.c:38,1
    - Dst: vmlal_n_u16
      Src: /src/libwebp/src/dsp/yuv_neon.c:39,1
    - Dst: vmlal_n_u16
      Src: /src/libwebp/src/dsp/yuv_neon.c:40,1
    - Dst: vmlal_n_u16
      Src: /src/libwebp/src/dsp/yuv_neon.c:41,1
    - Dst: vmlal_n_u16
      Src: /src/libwebp/src/dsp/yuv_neon.c:42,1
    - Dst: vcombine_u16
      Src: /src/libwebp/src/dsp/yuv_neon.c:44,1
    - Dst: vrshrn_n_u32
      Src: /src/libwebp/src/dsp/yuv_neon.c:44,1
    - Dst: vrshrn_n_u32
      Src: /src/libwebp/src/dsp/yuv_neon.c:44,1
    - Dst: vaddq_u16
      Src: /src/libwebp/src/dsp/yuv_neon.c:45,1
    - Dst: vdupq_n_u16
      Src: /src/libwebp/src/dsp/yuv_neon.c:45,1
    - Dst: vqmovn_u16
      Src: /src/libwebp/src/dsp/yuv_neon.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - R
    - G
    - B
    argTypes:
    - uint8x8_t
    - uint8x8_t
    - uint8x8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 47
    functionName: ConvertRGBToYImpl_NEON
    functionSourceFile: /src/libwebp/src/dsp/yuv_neon.c
    functionUses: 0
    functionsReached:
    - vcombine_u16
    - vdupq_n_u16
    - vqmovn_u16
    - vmull_n_u16
    - vget_low_u16
    - vaddq_u16
    - vmovl_u8
    - vget_high_u16
    - vrshrn_n_u32
    - vmlal_n_u16
    linkageType: ''
    returnType: uint8x8_t
    signature: "uint8x8_t ConvertRGBToYImpl_NEON(const uint8x8_t R, const uint8x8_t
      G,\n                                        const uint8x8_t B)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vld3_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:54,1
    - Dst: ConvertRGBToYImpl_NEON
      Src: /src/libwebp/src/dsp/yuv_neon.c:56,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:57,1
    - Dst: vld4_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:61,1
    - Dst: ConvertRGBToYImpl_NEON
      Src: /src/libwebp/src/dsp/yuv_neon.c:63,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:64,1
    - Dst: VP8RGBToY
      Src: /src/libwebp/src/dsp/yuv_neon.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - width
    - step
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 70
    functionName: ConvertRGBToY_NEON
    functionSourceFile: /src/libwebp/src/dsp/yuv_neon.c
    functionUses: 0
    functionsReached:
    - vld4_u8
    - ConvertRGBToYImpl_NEON
    - vst1_u8
    - VP8RGBToY
    - vld3_u8
    linkageType: ''
    returnType: void
    signature: "void ConvertRGBToY_NEON(const uint8_t* WEBP_RESTRICT rgb,\n                               uint8_t*
      WEBP_RESTRICT y, int width, int step)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vld3_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:77,1
    - Dst: ConvertRGBToYImpl_NEON
      Src: /src/libwebp/src/dsp/yuv_neon.c:79,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:80,1
    - Dst: vld4_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:84,1
    - Dst: ConvertRGBToYImpl_NEON
      Src: /src/libwebp/src/dsp/yuv_neon.c:86,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:87,1
    - Dst: VP8RGBToY
      Src: /src/libwebp/src/dsp/yuv_neon.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - width
    - step
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 93
    functionName: ConvertBGRToY_NEON
    functionSourceFile: /src/libwebp/src/dsp/yuv_neon.c
    functionUses: 0
    functionsReached:
    - vld4_u8
    - ConvertRGBToYImpl_NEON
    - vst1_u8
    - VP8RGBToY
    - vld3_u8
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRToY_NEON(const uint8_t* WEBP_RESTRICT bgr,\n                               uint8_t*
      WEBP_RESTRICT y, int width, int step)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld4_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:99,1
    - Dst: ConvertRGBToYImpl_NEON
      Src: /src/libwebp/src/dsp/yuv_neon.c:101,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:102,1
    - Dst: VP8RGBToY
      Src: /src/libwebp/src/dsp/yuv_neon.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - width
    argTypes:
    - uint32_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 109
    functionName: ConvertARGBToY_NEON
    functionSourceFile: /src/libwebp/src/dsp/yuv_neon.c
    functionUses: 0
    functionsReached:
    - ConvertRGBToYImpl_NEON
    - vld4_u8
    - VP8RGBToY
    - vst1_u8
    linkageType: ''
    returnType: void
    signature: "void ConvertARGBToY_NEON(const uint32_t* WEBP_RESTRICT argb,\n                                uint8_t*
      WEBP_RESTRICT y, int width)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - g
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: MULTIPLY_16b_PREAMBLE
    functionSourceFile: /src/libwebp/src/dsp/yuv_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULTIPLY_16b_PREAMBLE(r, g, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - C0
    - ','
    - C1
    - ','
    - C2
    - ','
    - CST
    - ','
    - DST_s16
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: MULTIPLY_16b
    functionSourceFile: /src/libwebp/src/dsp/yuv_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULTIPLY_16b(C0, C1, C2, CST, DST_s16)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - r
    - ','
    - g
    - ','
    - b
    - ','
    - SHIFT
    - ','
    - U_DST
    - ','
    - V_DST
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: CONVERT_RGB_TO_UV
    functionSourceFile: /src/libwebp/src/dsp/yuv_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT_RGB_TO_UV(r, g, b, SHIFT, U_DST, V_DST)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld4q_u16
      Src: /src/libwebp/src/dsp/yuv_neon.c:148,1
    - Dst: CONVERT_RGB_TO_UV
      Src: /src/libwebp/src/dsp/yuv_neon.c:150,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:151,1
    - Dst: vqrshrun_n_s16
      Src: /src/libwebp/src/dsp/yuv_neon.c:151,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:152,1
    - Dst: vqrshrun_n_s16
      Src: /src/libwebp/src/dsp/yuv_neon.c:152,1
    - Dst: VP8RGBToU
      Src: /src/libwebp/src/dsp/yuv_neon.c:156,1
    - Dst: VP8RGBToV
      Src: /src/libwebp/src/dsp/yuv_neon.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - width
    argTypes:
    - uint16_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 159
    functionName: ConvertRGBA32ToUV_NEON
    functionSourceFile: /src/libwebp/src/dsp/yuv_neon.c
    functionUses: 0
    functionsReached:
    - CONVERT_RGB_TO_UV
    - vst1_u8
    - VP8RGBToU
    - VP8RGBToV
    - vqrshrun_n_s16
    - vld4q_u16
    linkageType: ''
    returnType: void
    signature: "void ConvertRGBA32ToUV_NEON(const uint16_t* WEBP_RESTRICT rgb,\n                                   uint8_t*
      WEBP_RESTRICT u,\n                                   uint8_t* WEBP_RESTRICT
      v, int width)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vld4q_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:167,1
    - Dst: vpaddlq_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:168,1
    - Dst: vpaddlq_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:169,1
    - Dst: vpaddlq_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:170,1
    - Dst: CONVERT_RGB_TO_UV
      Src: /src/libwebp/src/dsp/yuv_neon.c:172,1
    - Dst: vqrshrun_n_s16
      Src: /src/libwebp/src/dsp/yuv_neon.c:174,1
    - Dst: vqrshrun_n_s16
      Src: /src/libwebp/src/dsp/yuv_neon.c:175,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:177,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:178,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:180,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:181,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:182,1
    - Dst: vrhadd_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:182,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:183,1
    - Dst: vrhadd_u8
      Src: /src/libwebp/src/dsp/yuv_neon.c:183,1
    - Dst: WebPConvertARGBToUV_C
      Src: /src/libwebp/src/dsp/yuv_neon.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - src_width
    - do_store
    argTypes:
    - uint32_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 190
    functionName: ConvertARGBToUV_NEON
    functionSourceFile: /src/libwebp/src/dsp/yuv_neon.c
    functionUses: 0
    functionsReached:
    - CONVERT_RGB_TO_UV
    - vpaddlq_u8
    - vld4q_u8
    - vst1_u8
    - WebPConvertARGBToUV_C
    - vld1_u8
    - vqrshrun_n_s16
    - vrhadd_u8
    linkageType: ''
    returnType: void
    signature: "void ConvertARGBToUV_NEON(const uint32_t* WEBP_RESTRICT argb,\n                                 uint8_t*
      WEBP_RESTRICT u,\n                                 uint8_t* WEBP_RESTRICT v,
      int src_width,\n                                 int do_store)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: WebPInitConvertARGBToYUVNEON
    functionSourceFile: /src/libwebp/src/dsp/yuv_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPInitConvertARGBToYUVNEON(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdup_n_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:32,1
    - Dst: INIT_VECTOR4
      Src: /src/libwebp/src/dsp/dec_neon.c:34,1
    - Dst: vld4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:35,1
    - Dst: vld4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:36,1
    - Dst: vld4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:37,1
    - Dst: vld4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:38,1
    - Dst: vld4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:39,1
    - Dst: vld4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:40,1
    - Dst: vld4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:41,1
    - Dst: vld4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - src
    - stride
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: uint8x8x4_t::Load4x8_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vld4_lane_u8
    - INIT_VECTOR4
    - vdup_n_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE uint8x8x4_t Load4x8_NEON(const uint8_t* const src,\n                                            int
      stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load4x8_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:53,1
    - Dst: Load4x8_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:54,1
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:55,1
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:56,1
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:57,1
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - src
    - stride
    - p1
    - p0
    - q0
    - q1
    argTypes:
    - uint8_t*
    - int
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: Load4x16_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vcombine_u8
    - Load4x8_NEON
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Load4x16_NEON(const uint8_t* const src, int stride,\n
      \                                     uint8x16_t* const p1,\n                                      uint8x16_t*
      const p0,\n                                      uint8x16_t* const q0,\n                                      uint8x16_t*
      const q1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - VALUE
    - ','
    - LANE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: LOADQ_LANE_32b
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOADQ_LANE_32b(VALUE, LANE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:74,1
    - Dst: INIT_VECTOR4
      Src: /src/libwebp/src/dsp/dec_neon.c:76,1
    - Dst: LOADQ_LANE_32b
      Src: /src/libwebp/src/dsp/dec_neon.c:78,1
    - Dst: LOADQ_LANE_32b
      Src: /src/libwebp/src/dsp/dec_neon.c:79,1
    - Dst: LOADQ_LANE_32b
      Src: /src/libwebp/src/dsp/dec_neon.c:80,1
    - Dst: LOADQ_LANE_32b
      Src: /src/libwebp/src/dsp/dec_neon.c:81,1
    - Dst: LOADQ_LANE_32b
      Src: /src/libwebp/src/dsp/dec_neon.c:82,1
    - Dst: LOADQ_LANE_32b
      Src: /src/libwebp/src/dsp/dec_neon.c:83,1
    - Dst: LOADQ_LANE_32b
      Src: /src/libwebp/src/dsp/dec_neon.c:84,1
    - Dst: LOADQ_LANE_32b
      Src: /src/libwebp/src/dsp/dec_neon.c:85,1
    - Dst: LOADQ_LANE_32b
      Src: /src/libwebp/src/dsp/dec_neon.c:86,1
    - Dst: LOADQ_LANE_32b
      Src: /src/libwebp/src/dsp/dec_neon.c:87,1
    - Dst: LOADQ_LANE_32b
      Src: /src/libwebp/src/dsp/dec_neon.c:88,1
    - Dst: LOADQ_LANE_32b
      Src: /src/libwebp/src/dsp/dec_neon.c:89,1
    - Dst: LOADQ_LANE_32b
      Src: /src/libwebp/src/dsp/dec_neon.c:90,1
    - Dst: LOADQ_LANE_32b
      Src: /src/libwebp/src/dsp/dec_neon.c:91,1
    - Dst: LOADQ_LANE_32b
      Src: /src/libwebp/src/dsp/dec_neon.c:92,1
    - Dst: LOADQ_LANE_32b
      Src: /src/libwebp/src/dsp/dec_neon.c:93,1
    - Dst: vtrnq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:96,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:96,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:97,1
    - Dst: vtrnq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:98,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:98,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:99,1
    - Dst: vtrnq_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:100,1
    - Dst: vreinterpretq_u16_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:100,1
    - Dst: vreinterpretq_u16_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:101,1
    - Dst: vtrnq_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:102,1
    - Dst: vreinterpretq_u16_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:102,1
    - Dst: vreinterpretq_u16_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:103,1
    - Dst: vreinterpretq_u8_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:104,1
    - Dst: vreinterpretq_u8_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:105,1
    - Dst: vreinterpretq_u8_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:106,1
    - Dst: vreinterpretq_u8_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 6
    argNames:
    - src
    - stride
    - p1
    - p0
    - q0
    - q1
    argTypes:
    - uint8_t*
    - int
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 109
    functionName: Load4x16_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vreinterpretq_u8_u32
    - vdupq_n_u32
    - vtrnq_u16
    - vtrnq_u8
    - vreinterpretq_u8_u16
    - INIT_VECTOR4
    - vreinterpretq_u16_u8
    - LOADQ_LANE_32b
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Load4x16_NEON(const uint8_t* src, int stride,\n                                      uint8x16_t*
      const p1,\n                                      uint8x16_t* const p0,\n                                      uint8x16_t*
      const q0,\n                                      uint8x16_t* const q1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load4x16_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:119,1
    - Dst: Load4x16_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 10
    argNames:
    - src
    - stride
    - p3
    - p2
    - p1
    - p0
    - q0
    - q1
    - q2
    - q3
    argTypes:
    - uint8_t*
    - int
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: Load8x16_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - Load4x16_NEON
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Load8x16_NEON(\n    const uint8_t* const src, int stride,
      uint8x16_t* const p3,\n    uint8x16_t* const p2, uint8x16_t* const p1, uint8x16_t*
      const p0,\n    uint8x16_t* const q0, uint8x16_t* const q1, uint8x16_t* const
      q2,\n    uint8x16_t* const q3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:128,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:129,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:130,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - src
    - stride
    - p1
    - p0
    - q0
    - q1
    argTypes:
    - uint8_t*
    - int
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 132
    functionName: Load16x4_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vld1q_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Load16x4_NEON(const uint8_t* const src, int stride,\n
      \                                     uint8x16_t* const p1,\n                                      uint8x16_t*
      const p0,\n                                      uint8x16_t* const q0,\n                                      uint8x16_t*
      const q1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load16x4_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:139,1
    - Dst: Load16x4_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 10
    argNames:
    - src
    - stride
    - p3
    - p2
    - p1
    - p0
    - q0
    - q1
    - q2
    - q3
    argTypes:
    - uint8_t*
    - int
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: Load16x8_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - Load16x4_NEON
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Load16x8_NEON(\n    const uint8_t* const src, int stride,
      uint8x16_t* const p3,\n    uint8x16_t* const p2, uint8x16_t* const p1, uint8x16_t*
      const p0,\n    uint8x16_t* const q0, uint8x16_t* const q1, uint8x16_t* const
      q2,\n    uint8x16_t* const q3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:150,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:150,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:150,1
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:151,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:151,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:151,1
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:152,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:152,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:152,1
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:153,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:153,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:153,1
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:154,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:154,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:154,1
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:155,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:155,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:155,1
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:156,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:156,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:156,1
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:157,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:157,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 11
    argNames:
    - u
    - v
    - stride
    - p3
    - p2
    - p1
    - p0
    - q0
    - q1
    - q2
    - q3
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 158
    functionName: Load8x8x2_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vcombine_u8
    - vld1_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Load8x8x2_NEON(\n    const uint8_t* const u, const uint8_t*
      const v, int stride,\n    uint8x16_t* const p3, uint8x16_t* const p2, uint8x16_t*
      const p1,\n    uint8x16_t* const p0, uint8x16_t* const q0, uint8x16_t* const
      q1,\n    uint8x16_t* const q2, uint8x16_t* const q3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ROW
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: LOAD_UV_8
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_UV_8(ROW)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD_UV_8
      Src: /src/libwebp/src/dsp/dec_neon.c:172,1
    - Dst: LOAD_UV_8
      Src: /src/libwebp/src/dsp/dec_neon.c:173,1
    - Dst: LOAD_UV_8
      Src: /src/libwebp/src/dsp/dec_neon.c:174,1
    - Dst: LOAD_UV_8
      Src: /src/libwebp/src/dsp/dec_neon.c:175,1
    - Dst: LOAD_UV_8
      Src: /src/libwebp/src/dsp/dec_neon.c:176,1
    - Dst: LOAD_UV_8
      Src: /src/libwebp/src/dsp/dec_neon.c:177,1
    - Dst: LOAD_UV_8
      Src: /src/libwebp/src/dsp/dec_neon.c:178,1
    - Dst: LOAD_UV_8
      Src: /src/libwebp/src/dsp/dec_neon.c:179,1
    - Dst: vtrnq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:189,1
    - Dst: vtrnq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:191,1
    - Dst: vtrnq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:193,1
    - Dst: vtrnq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:194,1
    - Dst: vtrnq_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:195,1
    - Dst: vreinterpretq_u16_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:195,1
    - Dst: vreinterpretq_u16_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:196,1
    - Dst: vtrnq_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:197,1
    - Dst: vreinterpretq_u16_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:197,1
    - Dst: vreinterpretq_u16_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:198,1
    - Dst: vtrnq_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:199,1
    - Dst: vreinterpretq_u16_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:199,1
    - Dst: vreinterpretq_u16_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:200,1
    - Dst: vtrnq_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:201,1
    - Dst: vreinterpretq_u16_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:201,1
    - Dst: vreinterpretq_u16_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:202,1
    - Dst: vtrnq_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:203,1
    - Dst: vreinterpretq_u32_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:203,1
    - Dst: vreinterpretq_u32_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:204,1
    - Dst: vtrnq_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:205,1
    - Dst: vreinterpretq_u32_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:205,1
    - Dst: vreinterpretq_u32_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:206,1
    - Dst: vtrnq_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:207,1
    - Dst: vreinterpretq_u32_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:207,1
    - Dst: vreinterpretq_u32_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:208,1
    - Dst: vtrnq_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:209,1
    - Dst: vreinterpretq_u32_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:209,1
    - Dst: vreinterpretq_u32_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:210,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:211,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:212,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:213,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:214,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:215,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:216,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:217,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 11
    argNames:
    - u
    - v
    - stride
    - p3
    - p2
    - p1
    - p0
    - q0
    - q1
    - q2
    - q3
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 219
    functionName: Load8x8x2T_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vreinterpretq_u8_u32
    - vreinterpretq_u32_u16
    - vtrnq_u16
    - LOAD_UV_8
    - vtrnq_u8
    - vreinterpretq_u16_u8
    - vtrnq_u32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Load8x8x2T_NEON(\n    const uint8_t* const u, const uint8_t*
      const v, int stride,\n    uint8x16_t* const p3, uint8x16_t* const p2, uint8x16_t*
      const p1,\n    uint8x16_t* const p0, uint8x16_t* const q0, uint8x16_t* const
      q1,\n    uint8x16_t* const q2, uint8x16_t* const q3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vst2_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:226,1
    - Dst: vst2_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:227,1
    - Dst: vst2_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:228,1
    - Dst: vst2_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:229,1
    - Dst: vst2_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:230,1
    - Dst: vst2_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:231,1
    - Dst: vst2_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:232,1
    - Dst: vst2_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - v
    - dst
    - stride
    argTypes:
    - uint8x8x2_t
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 234
    functionName: Store2x8_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vst2_lane_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Store2x8_NEON(const uint8x8x2_t v, uint8_t* const dst,\n
      \                                     int stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:239,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:240,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:241,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:242,1
    - Dst: Store2x8_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:243,1
    - Dst: Store2x8_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - p0
    - q0
    - dst
    - stride
    argTypes:
    - uint8x16_t
    - uint8x16_t
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 245
    functionName: Store2x16_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vget_high_u8
    - Store2x8_NEON
    - vget_low_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Store2x16_NEON(const uint8x16_t p0, const uint8x16_t q0,\n
      \                                      uint8_t* const dst, int stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:250,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:251,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:252,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:253,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:254,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:255,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:256,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - v
    - dst
    - stride
    argTypes:
    - uint8x8x4_t
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 258
    functionName: Store4x8_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vst4_lane_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Store4x8_NEON(const uint8x8x4_t v, uint8_t* const dst,\n
      \                                     int stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_VECTOR4
      Src: /src/libwebp/src/dsp/dec_neon.c:264,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:264,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:264,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:264,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:265,1
    - Dst: INIT_VECTOR4
      Src: /src/libwebp/src/dsp/dec_neon.c:266,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:266,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:266,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:266,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:267,1
    - Dst: Store4x8_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:268,1
    - Dst: Store4x8_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - p1
    - p0
    - q0
    - q1
    - dst
    - stride
    argTypes:
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: Store4x16_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - Store4x8_NEON
    - vget_high_u8
    - INIT_VECTOR4
    - vget_low_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Store4x16_NEON(const uint8x16_t p1, const uint8x16_t p0,\n
      \                                      const uint8x16_t q0, const uint8x16_t
      q1,\n                                       uint8_t* const dst, int stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:275,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - p0
    - q0
    - dst
    - stride
    argTypes:
    - uint8x16_t
    - uint8x16_t
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: Store16x2_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vst1q_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Store16x2_NEON(const uint8x16_t p0, const uint8x16_t q0,\n
      \                                      uint8_t* const dst, int stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Store16x2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:282,1
    - Dst: Store16x2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - p1
    - p0
    - q0
    - q1
    - dst
    - stride
    argTypes:
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 284
    functionName: Store16x4_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - Store16x2_NEON
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Store16x4_NEON(const uint8x16_t p1, const uint8x16_t p0,\n
      \                                      const uint8x16_t q0, const uint8x16_t
      q1,\n                                       uint8_t* const dst, int stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:290,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:290,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:291,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:291,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:292,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:292,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:293,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - p0
    - q0
    - u
    - v
    - stride
    argTypes:
    - uint8x16_t
    - uint8x16_t
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 294
    functionName: Store8x2x2_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vst1_u8
    - vget_high_u8
    - vget_low_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Store8x2x2_NEON(const uint8x16_t p0,\n                                        const
      uint8x16_t q0, uint8_t* const u,\n                                        uint8_t*
      const v, int stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Store8x2x2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:302,1
    - Dst: Store8x2x2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - p1
    - p0
    - q0
    - q1
    - u
    - v
    - stride
    argTypes:
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 304
    functionName: Store8x4x2_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - Store8x2x2_NEON
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Store8x4x2_NEON(const uint8x16_t p1,\n                                        const
      uint8x16_t p0,\n                                        const uint8x16_t q0,\n
      \                                       const uint8x16_t q1, uint8_t* const
      u,\n                                        uint8_t* const v, int stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - DST
    - ','
    - VAL0
    - ','
    - VAL1
    - ','
    - LANE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: STORE6_LANE
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE6_LANE(DST, VAL0, VAL1, LANE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_VECTOR3
      Src: /src/libwebp/src/dsp/dec_neon.c:320,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:320,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:320,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:320,1
    - Dst: INIT_VECTOR3
      Src: /src/libwebp/src/dsp/dec_neon.c:321,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:321,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:321,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:321,1
    - Dst: INIT_VECTOR3
      Src: /src/libwebp/src/dsp/dec_neon.c:322,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:322,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:322,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:322,1
    - Dst: INIT_VECTOR3
      Src: /src/libwebp/src/dsp/dec_neon.c:323,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:323,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:323,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:323,1
    - Dst: STORE6_LANE
      Src: /src/libwebp/src/dsp/dec_neon.c:324,1
    - Dst: STORE6_LANE
      Src: /src/libwebp/src/dsp/dec_neon.c:325,1
    - Dst: STORE6_LANE
      Src: /src/libwebp/src/dsp/dec_neon.c:326,1
    - Dst: STORE6_LANE
      Src: /src/libwebp/src/dsp/dec_neon.c:327,1
    - Dst: STORE6_LANE
      Src: /src/libwebp/src/dsp/dec_neon.c:328,1
    - Dst: STORE6_LANE
      Src: /src/libwebp/src/dsp/dec_neon.c:329,1
    - Dst: STORE6_LANE
      Src: /src/libwebp/src/dsp/dec_neon.c:330,1
    - Dst: STORE6_LANE
      Src: /src/libwebp/src/dsp/dec_neon.c:331,1
    - Dst: STORE6_LANE
      Src: /src/libwebp/src/dsp/dec_neon.c:332,1
    - Dst: STORE6_LANE
      Src: /src/libwebp/src/dsp/dec_neon.c:333,1
    - Dst: STORE6_LANE
      Src: /src/libwebp/src/dsp/dec_neon.c:334,1
    - Dst: STORE6_LANE
      Src: /src/libwebp/src/dsp/dec_neon.c:335,1
    - Dst: STORE6_LANE
      Src: /src/libwebp/src/dsp/dec_neon.c:336,1
    - Dst: STORE6_LANE
      Src: /src/libwebp/src/dsp/dec_neon.c:337,1
    - Dst: STORE6_LANE
      Src: /src/libwebp/src/dsp/dec_neon.c:338,1
    - Dst: STORE6_LANE
      Src: /src/libwebp/src/dsp/dec_neon.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 9
    argNames:
    - p2
    - p1
    - p0
    - q0
    - q1
    - q2
    - u
    - v
    - stride
    argTypes:
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 340
    functionName: Store6x8x2_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vget_high_u8
    - STORE6_LANE
    - INIT_VECTOR3
    - vget_low_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Store6x8x2_NEON(\n    const uint8x16_t p2, const uint8x16_t
      p1, const uint8x16_t p0,\n    const uint8x16_t q0, const uint8x16_t q1, const
      uint8x16_t q2, uint8_t* u,\n    uint8_t* v, int stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_VECTOR4
      Src: /src/libwebp/src/dsp/dec_neon.c:349,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:349,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:349,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:349,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:350,1
    - Dst: INIT_VECTOR4
      Src: /src/libwebp/src/dsp/dec_neon.c:351,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:351,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:351,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:351,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:352,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:353,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:354,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:355,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:356,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:357,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:358,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:359,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:360,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:361,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:362,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:363,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:364,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:365,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:366,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:367,1
    - Dst: vst4_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 7
    argNames:
    - p1
    - p0
    - q0
    - q1
    - u
    - v
    - stride
    argTypes:
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 369
    functionName: Store4x8x2_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vst4_lane_u8
    - vget_high_u8
    - INIT_VECTOR4
    - vget_low_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Store4x8x2_NEON(const uint8x16_t p1,\n                                        const
      uint8x16_t p0,\n                                        const uint8x16_t q0,\n
      \                                       const uint8x16_t q1, uint8_t* const
      u,\n                                        uint8_t* const v, int stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:375,1
    - Dst: vmovl_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint8x8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 376
    functionName: ConvertU8ToS16_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vmovl_u8
    - vreinterpretq_s16_u16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE ConvertU8ToS16_NEON(uint8x8_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:384,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:385,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:388,1
    - Dst: vreinterpret_u32_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:388,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:389,1
    - Dst: vreinterpret_u32_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:389,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:390,1
    - Dst: vreinterpret_u32_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:390,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:391,1
    - Dst: vreinterpret_u32_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - dst01
    - dst23
    argTypes:
    - uint8_t*
    - int16x8_t
    - int16x8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 392
    functionName: SaturateAndStore4x4_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vreinterpret_u32_u8
    - vqmovun_s16
    - vst1_lane_u32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE SaturateAndStore4x4_NEON(uint8_t* const dst,\n                                                 const
      int16x8_t dst01,\n                                                 const int16x8_t
      dst23)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdup_n_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:396,1
    - Dst: vdup_n_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:397,1
    - Dst: vld1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:400,1
    - Dst: vld1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:401,1
    - Dst: vld1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:402,1
    - Dst: vld1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:403,1
    - Dst: ConvertU8ToS16_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:407,1
    - Dst: vreinterpret_u8_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:407,1
    - Dst: ConvertU8ToS16_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:408,1
    - Dst: vreinterpret_u8_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:408,1
    - Dst: vrsraq_n_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:411,1
    - Dst: vrsraq_n_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:412,1
    - Dst: SaturateAndStore4x4_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - row01
    - row23
    - dst
    argTypes:
    - int16x8_t
    - int16x8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 416
    functionName: Add4x4_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vld1_lane_u32
    - vdup_n_u32
    - vreinterpret_u8_u32
    - vrsraq_n_s16
    - SaturateAndStore4x4_NEON
    - ConvertU8ToS16_NEON
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Add4x4_NEON(const int16x8_t row01,\n                                    const
      int16x8_t row23, uint8_t* const dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:424,1
    - Dst: vabdq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:425,1
    - Dst: vabdq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:426,1
    - Dst: vqaddq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:427,1
    - Dst: vshrq_n_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:428,1
    - Dst: vqaddq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:429,1
    - Dst: vcgeq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p1
    - p0
    - q0
    - q1
    - thresh
    argTypes:
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 432
    functionName: NeedsFilter_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vabdq_u8
    - vqaddq_u8
    - vshrq_n_u8
    - vdupq_n_u8
    - vcgeq_u8
    linkageType: ''
    returnType: uint8x16_t
    signature: "uint8x16_t NeedsFilter_NEON(const uint8x16_t p1, const uint8x16_t
      p0,\n                                   const uint8x16_t q0, const uint8x16_t
      q1,\n                                   int thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:435,1
    - Dst: vreinterpretq_s8_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:436,1
    - Dst: veorq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint8x16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 437
    functionName: FlipSign_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vdupq_n_u8
    - veorq_u8
    - vreinterpretq_s8_u8
    linkageType: ''
    returnType: int8x16_t
    signature: int8x16_t FlipSign_NEON(const uint8x16_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:440,1
    - Dst: vreinterpretq_u8_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:441,1
    - Dst: veorq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int8x16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: FlipSignBack_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - veorq_s8
    - vreinterpretq_u8_s8
    - vdupq_n_s8
    linkageType: ''
    returnType: uint8x16_t
    signature: uint8x16_t FlipSignBack_NEON(const int8x16_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vqsubq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:446,1
    - Dst: vqsubq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:447,1
    - Dst: vqaddq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:448,1
    - Dst: vqaddq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:449,1
    - Dst: vqaddq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p1
    - p0
    - q0
    - q1
    argTypes:
    - int8x16_t
    - int8x16_t
    - int8x16_t
    - int8x16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 452
    functionName: GetBaseDelta_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vqsubq_s8
    - vqaddq_s8
    linkageType: ''
    returnType: int8x16_t
    signature: "int8x16_t GetBaseDelta_NEON(const int8x16_t p1, const int8x16_t p0,\n
      \                                  const int8x16_t q0, const int8x16_t q1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vqsubq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:455,1
    - Dst: vqaddq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:456,1
    - Dst: vqaddq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p0
    - q0
    argTypes:
    - int8x16_t
    - int8x16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 459
    functionName: GetBaseDelta0_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vqsubq_s8
    - vqaddq_s8
    linkageType: ''
    returnType: int8x16_t
    signature: int8x16_t GetBaseDelta0_NEON(const int8x16_t p0, const int8x16_t q0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:466,1
    - Dst: vdupq_n_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:467,1
    - Dst: vqaddq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:468,1
    - Dst: vqaddq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:469,1
    - Dst: vshrq_n_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:470,1
    - Dst: vshrq_n_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:471,1
    - Dst: vqaddq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:472,1
    - Dst: vqsubq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - p0s
    - q0s
    - delta
    - op0
    - oq0
    argTypes:
    - int8x16_t
    - int8x16_t
    - int8x16_t
    - int8x16_t*
    - int8x16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 474
    functionName: ApplyFilter2NoFlip_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vshrq_n_s8
    - vqsubq_s8
    - vqaddq_s8
    - vdupq_n_s8
    linkageType: ''
    returnType: void
    signature: "void ApplyFilter2NoFlip_NEON(const int8x16_t p0s, const int8x16_t
      q0s,\n                                    const int8x16_t delta, int8x16_t*
      const op0,\n                                    int8x16_t* const oq0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:481,1
    - Dst: vdupq_n_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:482,1
    - Dst: vqaddq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:483,1
    - Dst: vqaddq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:484,1
    - Dst: vshrq_n_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:485,1
    - Dst: vshrq_n_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:486,1
    - Dst: vqaddq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:487,1
    - Dst: vqsubq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:488,1
    - Dst: FlipSignBack_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:489,1
    - Dst: FlipSignBack_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - p0s
    - q0s
    - delta
    - op0
    - oq0
    argTypes:
    - int8x16_t
    - int8x16_t
    - int8x16_t
    - uint8x16_t*
    - uint8x16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 491
    functionName: ApplyFilter2_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vqaddq_s8
    - FlipSignBack_NEON
    - vshrq_n_s8
    - vdupq_n_s8
    - vqsubq_s8
    linkageType: ''
    returnType: void
    signature: "void ApplyFilter2_NEON(const int8x16_t p0s, const int8x16_t q0s,\n
      \                             const int8x16_t delta, uint8x16_t* const op0,\n
      \                             uint8x16_t* const oq0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FlipSign_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:497,1
    - Dst: FlipSign_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:498,1
    - Dst: FlipSign_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:499,1
    - Dst: FlipSign_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:500,1
    - Dst: GetBaseDelta_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:501,1
    - Dst: vandq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:502,1
    - Dst: vreinterpretq_s8_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:502,1
    - Dst: ApplyFilter2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - p1
    - p0
    - q0
    - q1
    - mask
    - op0
    - oq0
    argTypes:
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t*
    - uint8x16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 504
    functionName: DoFilter2_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - ApplyFilter2_NEON
    - vreinterpretq_s8_u8
    - vandq_s8
    - GetBaseDelta_NEON
    - FlipSign_NEON
    linkageType: ''
    returnType: void
    signature: "void DoFilter2_NEON(const uint8x16_t p1, const uint8x16_t p0,\n                           const
      uint8x16_t q0, const uint8x16_t q1,\n                           const uint8x16_t
      mask, uint8x16_t* const op0,\n                           uint8x16_t* const oq0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load16x4_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:508,1
    - Dst: NeedsFilter_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:510,1
    - Dst: DoFilter2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:511,1
    - Dst: Store16x2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - p
    - stride
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 506
    functionDepth: 3
    functionLinenumber: 506
    functionLinenumberEnd: 514
    functionName: SimpleVFilter16_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - DoFilter2_NEON
    - Store16x2_NEON
    - NeedsFilter_NEON
    - Load16x4_NEON
    linkageType: ''
    returnType: void
    signature: void SimpleVFilter16_NEON(uint8_t* p, int stride, int thresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load4x16_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:518,1
    - Dst: NeedsFilter_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:520,1
    - Dst: DoFilter2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:521,1
    - Dst: Store2x16_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - p
    - stride
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 516
    functionDepth: 3
    functionLinenumber: 516
    functionLinenumberEnd: 524
    functionName: SimpleHFilter16_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - DoFilter2_NEON
    - NeedsFilter_NEON
    - Load4x16_NEON
    - Store2x16_NEON
    linkageType: ''
    returnType: void
    signature: void SimpleHFilter16_NEON(uint8_t* p, int stride, int thresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - b1
    - ','
    - b2
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 539
    functionName: LOAD8x4
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD8x4(c1, c2, c3, c4, b1, b2, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c1
    - ','
    - c2
    - ','
    - p
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 549
    functionName: STORE8x2
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE8x2(c1, c2, p, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 557
    functionName: FLIP_SIGN_BIT2
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLIP_SIGN_BIT2(a, b, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 561
    functionName: FLIP_SIGN_BIT4
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLIP_SIGN_BIT4(a, b, c, d, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - p1
    - ','
    - p0
    - ','
    - q0
    - ','
    - q1
    - ','
    - thresh
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 562
    functionName: NEEDS_FILTER
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEEDS_FILTER(p1, p0, q0, q1, thresh, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - p1
    - ','
    - p0
    - ','
    - q0
    - ','
    - q1
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 571
    functionName: GET_BASE_DELTA
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_BASE_DELTA(p1, p0, q0, q1, o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p0
    - ','
    - q0
    - ','
    - fl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 579
    functionName: DO_SIMPLE_FILTER
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_SIMPLE_FILTER(p0, q0, fl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - p1
    - ','
    - p0
    - ','
    - q0
    - ','
    - q1
    - ','
    - thresh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 590
    functionName: DO_FILTER2
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_FILTER2(p1, p0, q0, q1, thresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleHFilter16_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:619,1
    - Dst: LOAD8x4
      Src: /src/libwebp/src/dsp/dec_neon.c:626,1
    - Dst: STORE8x2
      Src: /src/libwebp/src/dsp/dec_neon.c:637,1
    - Dst: SimpleVFilter16i_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:650,1
    - Dst: SimpleVFilter16_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p
    - stride
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 599
    functionDepth: 4
    functionLinenumber: 599
    functionLinenumberEnd: 663
    functionName: SimpleVFilter16_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 1
    functionsReached:
    - SimpleVFilter16i_NEON
    - SimpleVFilter16_NEON
    - STORE8x2
    - SimpleHFilter16_NEON
    - LOAD8x4
    linkageType: ''
    returnType: void
    signature: void SimpleVFilter16_NEON(uint8_t* p, int stride, int thresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:672,1
    - Dst: vabdq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:673,1
    - Dst: vabdq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:674,1
    - Dst: vmaxq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:675,1
    - Dst: vcgtq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p1
    - p0
    - q0
    - q1
    - hev_thresh
    argTypes:
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 678
    functionName: NeedsHev_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vdupq_n_u8
    - vmaxq_u8
    - vabdq_u8
    - vcgtq_u8
    linkageType: ''
    returnType: uint8x16_t
    signature: "uint8x16_t NeedsHev_NEON(const uint8x16_t p1, const uint8x16_t p0,\n
      \                               const uint8x16_t q0, const uint8x16_t q1,\n
      \                               int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:685,1
    - Dst: vabdq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:686,1
    - Dst: vabdq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:687,1
    - Dst: vabdq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:688,1
    - Dst: vabdq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:689,1
    - Dst: vabdq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:690,1
    - Dst: vabdq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:691,1
    - Dst: vmaxq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:692,1
    - Dst: vmaxq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:693,1
    - Dst: vmaxq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:694,1
    - Dst: vmaxq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:695,1
    - Dst: vmaxq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:696,1
    - Dst: vcgeq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:697,1
    - Dst: NeedsFilter_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:698,1
    - Dst: vandq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - p3
    - p2
    - p1
    - p0
    - q0
    - q1
    - q2
    - q3
    - ithresh
    - thresh
    argTypes:
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 701
    functionName: NeedsFilter2_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vandq_u8
    - vabdq_u8
    - NeedsFilter_NEON
    - vdupq_n_u8
    - vmaxq_u8
    - vcgeq_u8
    linkageType: ''
    returnType: uint8x16_t
    signature: "uint8x16_t NeedsFilter2_NEON(const uint8x16_t p3, const uint8x16_t
      p2,\n                                    const uint8x16_t p1, const uint8x16_t
      p0,\n                                    const uint8x16_t q0, const uint8x16_t
      q1,\n                                    const uint8x16_t q2, const uint8x16_t
      q3,\n                                    int ithresh, int thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:710,1
    - Dst: vdupq_n_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:711,1
    - Dst: vqaddq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:712,1
    - Dst: vqaddq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:713,1
    - Dst: vshrq_n_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:714,1
    - Dst: vshrq_n_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:715,1
    - Dst: vrshrq_n_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:716,1
    - Dst: FlipSignBack_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:717,1
    - Dst: vqaddq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:717,1
    - Dst: FlipSignBack_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:718,1
    - Dst: vqsubq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:718,1
    - Dst: FlipSignBack_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:719,1
    - Dst: vqaddq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:719,1
    - Dst: FlipSignBack_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:720,1
    - Dst: vqsubq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 9
    argNames:
    - p1
    - p0
    - q0
    - q1
    - delta0
    - op1
    - op0
    - oq0
    - oq1
    argTypes:
    - int8x16_t
    - int8x16_t
    - int8x16_t
    - int8x16_t
    - int8x16_t
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 721
    functionName: ApplyFilter4_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vqaddq_s8
    - FlipSignBack_NEON
    - vshrq_n_s8
    - vrshrq_n_s8
    - vdupq_n_s8
    - vqsubq_s8
    linkageType: ''
    returnType: void
    signature: "void ApplyFilter4_NEON(const int8x16_t p1, const int8x16_t p0,\n                              const
      int8x16_t q0, const int8x16_t q1,\n                              const int8x16_t
      delta0, uint8x16_t* const op1,\n                              uint8x16_t* const
      op0, uint8x16_t* const oq0,\n                              uint8x16_t* const
      oq1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FlipSign_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:729,1
    - Dst: FlipSign_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:730,1
    - Dst: FlipSign_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:731,1
    - Dst: FlipSign_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:732,1
    - Dst: vandq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:733,1
    - Dst: GetBaseDelta_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:737,1
    - Dst: vandq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:739,1
    - Dst: vreinterpretq_s8_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:739,1
    - Dst: ApplyFilter2NoFlip_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:740,1
    - Dst: GetBaseDelta0_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:745,1
    - Dst: veorq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:747,1
    - Dst: vandq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:749,1
    - Dst: vreinterpretq_s8_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:749,1
    - Dst: ApplyFilter4_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 10
    argNames:
    - p1
    - p0
    - q0
    - q1
    - mask
    - hev_mask
    - op1
    - op0
    - oq0
    - oq1
    argTypes:
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 752
    functionName: DoFilter4_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - ApplyFilter4_NEON
    - vandq_u8
    - GetBaseDelta0_NEON
    - vreinterpretq_s8_u8
    - veorq_u8
    - ApplyFilter2NoFlip_NEON
    - vandq_s8
    - GetBaseDelta_NEON
    - FlipSign_NEON
    linkageType: ''
    returnType: void
    signature: "void DoFilter4_NEON(const uint8x16_t p1, const uint8x16_t p0,\n                           const
      uint8x16_t q0, const uint8x16_t q1,\n                           const uint8x16_t
      mask, const uint8x16_t hev_mask,\n                           uint8x16_t* const
      op1, uint8x16_t* const op0,\n                           uint8x16_t* const oq0,
      uint8x16_t* const oq1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vget_low_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:767,1
    - Dst: vget_high_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:768,1
    - Dst: vdup_n_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:769,1
    - Dst: vdupq_n_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:770,1
    - Dst: vdup_n_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:771,1
    - Dst: vmlal_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:772,1
    - Dst: vmlal_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:773,1
    - Dst: vmlal_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:774,1
    - Dst: vmlal_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:775,1
    - Dst: vqrshrn_n_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:776,1
    - Dst: vqrshrn_n_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:777,1
    - Dst: vqrshrn_n_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:778,1
    - Dst: vqrshrn_n_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:779,1
    - Dst: vqrshrn_n_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:780,1
    - Dst: vqrshrn_n_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:781,1
    - Dst: vcombine_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:782,1
    - Dst: vcombine_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:783,1
    - Dst: vcombine_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:784,1
    - Dst: FlipSignBack_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:786,1
    - Dst: vqaddq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:786,1
    - Dst: FlipSignBack_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:787,1
    - Dst: vqsubq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:787,1
    - Dst: FlipSignBack_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:788,1
    - Dst: vqsubq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:788,1
    - Dst: FlipSignBack_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:789,1
    - Dst: vqaddq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:789,1
    - Dst: FlipSignBack_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:790,1
    - Dst: vqsubq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:790,1
    - Dst: FlipSignBack_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:791,1
    - Dst: vqaddq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 13
    argNames:
    - p2
    - p1
    - p0
    - q0
    - q1
    - q2
    - delta
    - op2
    - op1
    - op0
    - oq0
    - oq1
    - oq2
    argTypes:
    - int8x16_t
    - int8x16_t
    - int8x16_t
    - int8x16_t
    - int8x16_t
    - int8x16_t
    - int8x16_t
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 792
    functionName: ApplyFilter6_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vqaddq_s8
    - vqrshrn_n_s16
    - vdupq_n_s16
    - FlipSignBack_NEON
    - vget_high_s8
    - vmlal_s8
    - vcombine_s8
    - vqsubq_s8
    - vdup_n_s8
    - vget_low_s8
    linkageType: ''
    returnType: void
    signature: "void ApplyFilter6_NEON(const int8x16_t p2, const int8x16_t p1,\n                              const
      int8x16_t p0, const int8x16_t q0,\n                              const int8x16_t
      q1, const int8x16_t q2,\n                              const int8x16_t delta,
      uint8x16_t* const op2,\n                              uint8x16_t* const op1,
      uint8x16_t* const op0,\n                              uint8x16_t* const oq0,
      uint8x16_t* const oq1,\n                              uint8x16_t* const oq2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FlipSign_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:802,1
    - Dst: FlipSign_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:803,1
    - Dst: FlipSign_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:804,1
    - Dst: FlipSign_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:805,1
    - Dst: FlipSign_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:806,1
    - Dst: FlipSign_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:807,1
    - Dst: vandq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:808,1
    - Dst: GetBaseDelta_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:809,1
    - Dst: vandq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:814,1
    - Dst: vreinterpretq_s8_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:814,1
    - Dst: ApplyFilter2NoFlip_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:815,1
    - Dst: veorq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:821,1
    - Dst: vandq_s8
      Src: /src/libwebp/src/dsp/dec_neon.c:823,1
    - Dst: vreinterpretq_s8_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:823,1
    - Dst: ApplyFilter6_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 14
    argNames:
    - p2
    - p1
    - p0
    - q0
    - q1
    - q2
    - mask
    - hev_mask
    - op2
    - op1
    - op0
    - oq0
    - oq1
    - oq2
    argTypes:
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    - uint8x16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 794
    functionDepth: 2
    functionLinenumber: 794
    functionLinenumberEnd: 827
    functionName: DoFilter6_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vandq_u8
    - vreinterpretq_s8_u8
    - veorq_u8
    - ApplyFilter2NoFlip_NEON
    - vandq_s8
    - GetBaseDelta_NEON
    - ApplyFilter6_NEON
    - FlipSign_NEON
    linkageType: ''
    returnType: void
    signature: "void DoFilter6_NEON(const uint8x16_t p2, const uint8x16_t p1,\n                           const
      uint8x16_t p0, const uint8x16_t q0,\n                           const uint8x16_t
      q1, const uint8x16_t q2,\n                           const uint8x16_t mask,
      const uint8x16_t hev_mask,\n                           uint8x16_t* const op2,
      uint8x16_t* const op1,\n                           uint8x16_t* const op0, uint8x16_t*
      const oq0,\n                           uint8x16_t* const oq1, uint8x16_t* const
      oq2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load16x8_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:834,1
    - Dst: NeedsFilter2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:837,1
    - Dst: NeedsHev_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:838,1
    - Dst: DoFilter6_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:840,1
    - Dst: Store16x2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:842,1
    - Dst: Store16x2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:843,1
    - Dst: Store16x2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 831
    functionDepth: 3
    functionLinenumber: 831
    functionLinenumberEnd: 846
    functionName: VFilter16_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 1
    functionsReached:
    - Load16x8_NEON
    - NeedsFilter2_NEON
    - Store16x2_NEON
    - DoFilter6_NEON
    - NeedsHev_NEON
    linkageType: ''
    returnType: void
    signature: "void VFilter16_NEON(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                          int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load8x16_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:851,1
    - Dst: NeedsFilter2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:854,1
    - Dst: NeedsHev_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:855,1
    - Dst: DoFilter6_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:857,1
    - Dst: Store2x16_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:859,1
    - Dst: Store2x16_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:860,1
    - Dst: Store2x16_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 848
    functionDepth: 3
    functionLinenumber: 848
    functionLinenumberEnd: 863
    functionName: HFilter16_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 1
    functionsReached:
    - NeedsFilter2_NEON
    - DoFilter6_NEON
    - NeedsHev_NEON
    - Load8x16_NEON
    - Store2x16_NEON
    linkageType: ''
    returnType: void
    signature: "void HFilter16_NEON(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                          int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load16x4_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:870,1
    - Dst: Load16x4_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:874,1
    - Dst: NeedsFilter2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:877,1
    - Dst: NeedsHev_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:878,1
    - Dst: DoFilter4_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:881,1
    - Dst: Store16x4_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 866
    functionDepth: 3
    functionLinenumber: 866
    functionLinenumberEnd: 887
    functionName: VFilter16i_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 1
    functionsReached:
    - DoFilter4_NEON
    - Store16x4_NEON
    - NeedsFilter2_NEON
    - NeedsHev_NEON
    - Load16x4_NEON
    linkageType: ''
    returnType: void
    signature: "void VFilter16i_NEON(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                           int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load4x16_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:894,1
    - Dst: Load4x16_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:898,1
    - Dst: NeedsFilter2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:901,1
    - Dst: NeedsHev_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:902,1
    - Dst: DoFilter4_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:903,1
    - Dst: Store4x16_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 890
    functionDepth: 3
    functionLinenumber: 890
    functionLinenumberEnd: 909
    functionName: HFilter16i_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - DoFilter4_NEON
    - NeedsFilter2_NEON
    - Store4x16_NEON
    - Load4x16_NEON
    - NeedsHev_NEON
    linkageType: ''
    returnType: void
    signature: "void HFilter16i_NEON(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                           int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load8x8x2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:916,1
    - Dst: NeedsFilter2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:919,1
    - Dst: NeedsHev_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:920,1
    - Dst: DoFilter6_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:922,1
    - Dst: Store8x2x2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:924,1
    - Dst: Store8x2x2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:925,1
    - Dst: Store8x2x2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 913
    functionDepth: 3
    functionLinenumber: 913
    functionLinenumberEnd: 928
    functionName: VFilter8_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - NeedsFilter2_NEON
    - Load8x8x2_NEON
    - Store8x2x2_NEON
    - DoFilter6_NEON
    - NeedsHev_NEON
    linkageType: ''
    returnType: void
    signature: "void VFilter8_NEON(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT
      v,\n                          int stride, int thresh, int ithresh, int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load8x8x2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:935,1
    - Dst: NeedsFilter2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:938,1
    - Dst: NeedsHev_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:939,1
    - Dst: DoFilter4_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:941,1
    - Dst: Store8x4x2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 929
    functionDepth: 3
    functionLinenumber: 929
    functionLinenumberEnd: 944
    functionName: VFilter8i_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - DoFilter4_NEON
    - Store8x4x2_NEON
    - NeedsFilter2_NEON
    - Load8x8x2_NEON
    - NeedsHev_NEON
    linkageType: ''
    returnType: void
    signature: "void VFilter8i_NEON(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT
      v,\n                           int stride, int thresh, int ithresh,\n                           int
      hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load8x8x2T_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:950,1
    - Dst: NeedsFilter2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:953,1
    - Dst: NeedsHev_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:954,1
    - Dst: DoFilter6_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:956,1
    - Dst: Store6x8x2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 947
    functionDepth: 3
    functionLinenumber: 947
    functionLinenumberEnd: 960
    functionName: HFilter8_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - NeedsFilter2_NEON
    - Store6x8x2_NEON
    - DoFilter6_NEON
    - NeedsHev_NEON
    - Load8x8x2T_NEON
    linkageType: ''
    returnType: void
    signature: "void HFilter8_NEON(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT
      v,\n                          int stride, int thresh, int ithresh, int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load8x8x2T_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:968,1
    - Dst: NeedsFilter2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:971,1
    - Dst: NeedsHev_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:972,1
    - Dst: DoFilter4_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:974,1
    - Dst: Store4x8x2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 962
    functionDepth: 3
    functionLinenumber: 962
    functionLinenumberEnd: 977
    functionName: HFilter8i_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - DoFilter4_NEON
    - NeedsFilter2_NEON
    - NeedsHev_NEON
    - Store4x8x2_NEON
    - Load8x8x2T_NEON
    linkageType: ''
    returnType: void
    signature: "void HFilter8i_NEON(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT
      v,\n                           int stride, int thresh, int ithresh,\n                           int
      hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vzipq_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1009,1
    - Dst: vzipq_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in0
    - in1
    - out
    argTypes:
    - int16x8_t
    - int16x8_t
    - int16x8x2_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1012
    functionName: Transpose8x2_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vzipq_s16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Transpose8x2_NEON(const int16x8_t in0,\n                                          const
      int16x8_t in1,\n                                          int16x8x2_t* const
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcombine_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1019,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1019,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1019,1
    - Dst: vsraq_n_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1022,1
    - Dst: vqdmulhq_n_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1022,1
    - Dst: vqdmulhq_n_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1023,1
    - Dst: vqadd_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1024,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1024,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1025,1
    - Dst: vqsub_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1026,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1026,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1027,1
    - Dst: vqsub_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1030,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1030,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1030,1
    - Dst: vqadd_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1031,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1031,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1031,1
    - Dst: vcombine_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1032,1
    - Dst: vcombine_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1033,1
    - Dst: vqaddq_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1034,1
    - Dst: vqsubq_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1035,1
    - Dst: vcombine_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1036,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1036,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1036,1
    - Dst: Transpose8x2_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:1037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rows
    argTypes:
    - int16x8x2_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1038
    functionName: TransformPass_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vqsubq_s16
    - vqadd_s16
    - vcombine_s16
    - vqsub_s16
    - vqdmulhq_n_s16
    - vget_low_s16
    - vsraq_n_s16
    - Transpose8x2_NEON
    - vget_high_s16
    - vqaddq_s16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE TransformPass_NEON(int16x8x2_t* const rows)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_VECTOR2
      Src: /src/libwebp/src/dsp/dec_neon.c:1043,1
    - Dst: vld1q_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1043,1
    - Dst: vld1q_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1043,1
    - Dst: TransformPass_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:1044,1
    - Dst: TransformPass_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:1045,1
    - Dst: Add4x4_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1047
    functionName: TransformOne_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - Add4x4_NEON
    - TransformPass_NEON
    - vld1q_s16
    - INIT_VECTOR2
    linkageType: ''
    returnType: void
    signature: "void TransformOne_NEON(const int16_t* WEBP_RESTRICT in,\n                              uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1181
    functionName: TransformOne_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TransformOne_NEON(const int16_t* WEBP_RESTRICT in,\n                              uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TransformOne_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:1187,1
    - Dst: TransformOne_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:1189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - do_two
    argTypes:
    - int16_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1185
    functionDepth: 2
    functionLinenumber: 1185
    functionLinenumberEnd: 1191
    functionName: TransformTwo_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - TransformOne_NEON
    linkageType: ''
    returnType: void
    signature: "void TransformTwo_NEON(const int16_t* WEBP_RESTRICT in,\n                              uint8_t*
      WEBP_RESTRICT dst, int do_two)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1195,1
    - Dst: Add4x4_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:1196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1197
    functionName: TransformDC_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vdupq_n_s16
    - Add4x4_NEON
    linkageType: ''
    returnType: void
    signature: "void TransformDC_NEON(const int16_t* WEBP_RESTRICT in,\n                             uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - col
    - ','
    - rows
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1201
    functionDepth: 0
    functionLinenumber: 1201
    functionLinenumberEnd: 1212
    functionName: STORE_WHT
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_WHT(dst, col, rows)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1219,1
    - Dst: vld1_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1220,1
    - Dst: vld1_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1221,1
    - Dst: vld1_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1222,1
    - Dst: vaddl_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1223,1
    - Dst: vaddl_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1224,1
    - Dst: vsubl_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1225,1
    - Dst: vsubl_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1226,1
    - Dst: vaddq_s32
      Src: /src/libwebp/src/dsp/dec_neon.c:1227,1
    - Dst: vaddq_s32
      Src: /src/libwebp/src/dsp/dec_neon.c:1228,1
    - Dst: vsubq_s32
      Src: /src/libwebp/src/dsp/dec_neon.c:1229,1
    - Dst: vsubq_s32
      Src: /src/libwebp/src/dsp/dec_neon.c:1230,1
    - Dst: Transpose4x4_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:1232,1
    - Dst: vdupq_n_s32
      Src: /src/libwebp/src/dsp/dec_neon.c:1236,1
    - Dst: vaddq_s32
      Src: /src/libwebp/src/dsp/dec_neon.c:1237,1
    - Dst: vaddq_s32
      Src: /src/libwebp/src/dsp/dec_neon.c:1238,1
    - Dst: vaddq_s32
      Src: /src/libwebp/src/dsp/dec_neon.c:1239,1
    - Dst: vsubq_s32
      Src: /src/libwebp/src/dsp/dec_neon.c:1240,1
    - Dst: vsubq_s32
      Src: /src/libwebp/src/dsp/dec_neon.c:1241,1
    - Dst: vaddq_s32
      Src: /src/libwebp/src/dsp/dec_neon.c:1243,1
    - Dst: vaddq_s32
      Src: /src/libwebp/src/dsp/dec_neon.c:1244,1
    - Dst: vsubq_s32
      Src: /src/libwebp/src/dsp/dec_neon.c:1245,1
    - Dst: vsubq_s32
      Src: /src/libwebp/src/dsp/dec_neon.c:1246,1
    - Dst: vshrq_n_s32
      Src: /src/libwebp/src/dsp/dec_neon.c:1249,1
    - Dst: vshrq_n_s32
      Src: /src/libwebp/src/dsp/dec_neon.c:1250,1
    - Dst: vshrq_n_s32
      Src: /src/libwebp/src/dsp/dec_neon.c:1251,1
    - Dst: vshrq_n_s32
      Src: /src/libwebp/src/dsp/dec_neon.c:1252,1
    - Dst: STORE_WHT
      Src: /src/libwebp/src/dsp/dec_neon.c:1254,1
    - Dst: STORE_WHT
      Src: /src/libwebp/src/dsp/dec_neon.c:1255,1
    - Dst: STORE_WHT
      Src: /src/libwebp/src/dsp/dec_neon.c:1256,1
    - Dst: STORE_WHT
      Src: /src/libwebp/src/dsp/dec_neon.c:1257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1259
    functionName: TransformWHT_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vdupq_n_s32
    - Transpose4x4_NEON
    - vshrq_n_s32
    - vsubq_s32
    - STORE_WHT
    - vsubl_s16
    - vaddq_s32
    - vaddl_s16
    - vld1_s16
    linkageType: ''
    returnType: void
    signature: "void TransformWHT_NEON(const int16_t* WEBP_RESTRICT in,\n                              int16_t*
      WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1_dup_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1267,1
    - Dst: vdup_n_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1268,1
    - Dst: WEBP_TRANSFORM_AC3_MUL2
      Src: /src/libwebp/src/dsp/dec_neon.c:1268,1
    - Dst: vdup_n_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1269,1
    - Dst: WEBP_TRANSFORM_AC3_MUL1
      Src: /src/libwebp/src/dsp/dec_neon.c:1269,1
    - Dst: WEBP_TRANSFORM_AC3_MUL2
      Src: /src/libwebp/src/dsp/dec_neon.c:1270,1
    - Dst: WEBP_TRANSFORM_AC3_MUL1
      Src: /src/libwebp/src/dsp/dec_neon.c:1271,1
    - Dst: vcreate_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1275,1
    - Dst: vqadd_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1276,1
    - Dst: vcombine_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1277,1
    - Dst: vqadd_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1277,1
    - Dst: vqadd_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1277,1
    - Dst: vcombine_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1278,1
    - Dst: vqsub_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1278,1
    - Dst: vqsub_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1278,1
    - Dst: Add4x4_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:1279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1265
    functionDepth: 1
    functionLinenumber: 1265
    functionLinenumberEnd: 1280
    functionName: TransformAC3_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vcreate_s16
    - vqadd_s16
    - vld1_dup_s16
    - vcombine_s16
    - vqsub_s16
    - Add4x4_NEON
    - vdup_n_s16
    - WEBP_TRANSFORM_AC3_MUL2
    - WEBP_TRANSFORM_AC3_MUL1
    linkageType: ''
    returnType: void
    signature: "void TransformAC3_NEON(const int16_t* WEBP_RESTRICT in,\n                              uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1286,1
    - Dst: vpaddl_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1287,1
    - Dst: vpadd_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1288,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1289,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1290,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1291,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1292,1
    - Dst: vaddl_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1293,1
    - Dst: vaddl_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1294,1
    - Dst: vaddq_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1295,1
    - Dst: vaddq_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1296,1
    - Dst: vcombine_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1296,1
    - Dst: vrshrn_n_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1297,1
    - Dst: vdup_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1298,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:1301,1
    - Dst: vreinterpret_u32_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1285
    functionDepth: 0
    functionLinenumber: 1285
    functionLinenumberEnd: 1303
    functionName: DC4_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vaddl_u8
    - vcombine_u16
    - vrshrn_n_u16
    - vreinterpret_u32_u8
    - vdup_lane_u8
    - vaddq_u16
    - vpadd_u16
    - vld1_u8
    - vst1_lane_u32
    - vpaddl_u8
    linkageType: ''
    returnType: void
    signature: void DC4_NEON(uint8_t* dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vld1_dup_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1307,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1308,1
    - Dst: vsubl_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1309,1
    - Dst: vld1_dup_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1313,1
    - Dst: vld1_dup_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1314,1
    - Dst: vld1_dup_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1315,1
    - Dst: vld1_dup_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1316,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1318,1
    - Dst: vaddw_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1318,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1319,1
    - Dst: vaddw_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1319,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1320,1
    - Dst: vaddw_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1320,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1321,1
    - Dst: vaddw_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1321,1
    - Dst: vreinterpret_u32_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1323,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1323,1
    - Dst: vreinterpret_u32_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1324,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1324,1
    - Dst: vreinterpret_u32_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1325,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1325,1
    - Dst: vreinterpret_u32_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1326,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1326,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:1328,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:1329,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:1330,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:1331,1
    - Dst: vst1_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:1333,1
    - Dst: vst1_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:1334,1
    - Dst: vst1_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:1335,1
    - Dst: vst1_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:1336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - dst
    - size
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1306
    functionDepth: 0
    functionLinenumber: 1306
    functionLinenumberEnd: 1340
    functionName: TrueMotion_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vaddw_u8
    - vsubl_u8
    - vreinterpret_u32_u8
    - vreinterpretq_s16_u16
    - vld1_u8
    - vld1_dup_u8
    - vst1_lane_u32
    - vst1_u32
    - vqmovun_s16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE TrueMotion_NEON(uint8_t* dst, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrueMotion_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:1342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1342
    functionDepth: 0
    functionLinenumber: 1342
    functionLinenumberEnd: 1342
    functionName: TM4_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - TrueMotion_NEON
    linkageType: ''
    returnType: void
    signature: void TM4_NEON(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vreinterpret_u64_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1346,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1346,1
    - Dst: vshr_n_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1347,1
    - Dst: vshr_n_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1348,1
    - Dst: vreinterpret_u8_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1349,1
    - Dst: vreinterpret_u8_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1350,1
    - Dst: vreinterpret_u8_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1351,1
    - Dst: vhadd_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1352,1
    - Dst: vrhadd_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1353,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:1356,1
    - Dst: vreinterpret_u32_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1358
    functionName: VE4_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vreinterpret_u8_u64
    - vreinterpret_u32_u8
    - vld1_u8
    - vst1_lane_u32
    - vhadd_u8
    - vrhadd_u8
    - vreinterpret_u64_u8
    - vshr_n_u64
    linkageType: ''
    returnType: void
    signature: void VE4_NEON(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1361,1
    - Dst: vreinterpret_u64_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1362,1
    - Dst: vshl_n_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1363,1
    - Dst: vcreate_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1369,1
    - Dst: vorr_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1370,1
    - Dst: vreinterpret_u8_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1371,1
    - Dst: vshr_n_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1371,1
    - Dst: vreinterpret_u8_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1372,1
    - Dst: vshr_n_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1372,1
    - Dst: vget_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1373,1
    - Dst: vset_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1374,1
    - Dst: vreinterpret_u8_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1375,1
    - Dst: vhadd_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1376,1
    - Dst: vrhadd_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1377,1
    - Dst: vreinterpret_u64_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1378,1
    - Dst: vreinterpret_u32_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1379,1
    - Dst: vreinterpret_u32_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1380,1
    - Dst: vshr_n_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1380,1
    - Dst: vreinterpret_u32_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1381,1
    - Dst: vshr_n_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1381,1
    - Dst: vreinterpret_u32_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1382,1
    - Dst: vshr_n_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1382,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:1383,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:1384,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:1385,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:1386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1360
    functionDepth: 0
    functionLinenumber: 1360
    functionLinenumberEnd: 1387
    functionName: RD4_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vreinterpret_u8_u64
    - vshl_n_u64
    - vcreate_u64
    - vreinterpret_u32_u8
    - vget_lane_u8
    - vorr_u64
    - vld1_u8
    - vset_lane_u8
    - vreinterpret_u32_u64
    - vst1_lane_u32
    - vhadd_u8
    - vrhadd_u8
    - vreinterpret_u64_u8
    - vshr_n_u64
    linkageType: ''
    returnType: void
    signature: void RD4_NEON(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1391,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1392,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1393,1
    - Dst: vset_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1394,1
    - Dst: vhadd_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1395,1
    - Dst: vrhadd_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1396,1
    - Dst: vreinterpret_u64_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1397,1
    - Dst: vreinterpret_u32_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1398,1
    - Dst: vreinterpret_u32_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1399,1
    - Dst: vshr_n_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1399,1
    - Dst: vreinterpret_u32_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1400,1
    - Dst: vshr_n_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1400,1
    - Dst: vreinterpret_u32_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1401,1
    - Dst: vshr_n_u64
      Src: /src/libwebp/src/dsp/dec_neon.c:1401,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:1402,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:1403,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:1404,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:1405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1389
    functionDepth: 0
    functionLinenumber: 1389
    functionLinenumberEnd: 1406
    functionName: LD4_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vreinterpret_u32_u8
    - vld1_u8
    - vset_lane_u8
    - vreinterpret_u32_u64
    - vst1_lane_u32
    - vhadd_u8
    - vrhadd_u8
    - vreinterpret_u64_u8
    - vshr_n_u64
    linkageType: ''
    returnType: void
    signature: void LD4_NEON(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1412,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1411
    functionDepth: 0
    functionLinenumber: 1411
    functionLinenumberEnd: 1417
    functionName: VE8uv_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vst1_u8
    - vld1_u8
    linkageType: ''
    returnType: void
    signature: void VE8uv_NEON(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1_dup_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1422,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1419
    functionDepth: 0
    functionLinenumber: 1419
    functionLinenumberEnd: 1426
    functionName: HE8uv_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vst1_u8
    - vld1_dup_u8
    linkageType: ''
    returnType: void
    signature: void HE8uv_NEON(uint8_t* dst)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1434,1
    - Dst: vaddlv_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1436,1
    - Dst: vdupq_n_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1437,1
    - Dst: vpaddl_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1439,1
    - Dst: vpadd_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1440,1
    - Dst: vpadd_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1441,1
    - Dst: vcombine_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1442,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1447,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1448,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1449,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1450,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1451,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1452,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1453,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1454,1
    - Dst: vaddl_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1455,1
    - Dst: vaddl_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1456,1
    - Dst: vaddl_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1457,1
    - Dst: vaddl_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1458,1
    - Dst: vaddq_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1459,1
    - Dst: vaddq_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1460,1
    - Dst: vaddq_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1461,1
    - Dst: vaddq_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1465,1
    - Dst: vrshrn_n_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1466,1
    - Dst: vrshrn_n_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1468,1
    - Dst: vrshrn_n_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1470,1
    - Dst: vdup_n_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1472,1
    - Dst: vdup_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1476,1
    - Dst: vst1_u32
      Src: /src/libwebp/src/dsp/dec_neon.c:1479,1
    - Dst: vreinterpret_u32_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1479,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - dst
    - do_top
    - do_left
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1428
    functionDepth: 0
    functionLinenumber: 1428
    functionLinenumberEnd: 1482
    functionName: DC8_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vcombine_u16
    - vaddl_u8
    - vdupq_n_u16
    - vrshrn_n_u16
    - vreinterpret_u32_u8
    - vdup_lane_u8
    - vaddq_u16
    - vaddlv_u8
    - vpadd_u16
    - vld1_u8
    - vdup_n_u8
    - vst1_u32
    - vpaddl_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE DC8_NEON(uint8_t* dst, int do_top, int do_left)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DC8_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:1484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1484
    functionDepth: 1
    functionLinenumber: 1484
    functionLinenumberEnd: 1484
    functionName: DC8uv_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - DC8_NEON
    linkageType: ''
    returnType: void
    signature: void DC8uv_NEON(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DC8_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:1485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1485
    functionDepth: 1
    functionLinenumber: 1485
    functionLinenumberEnd: 1485
    functionName: DC8uvNoTop_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - DC8_NEON
    linkageType: ''
    returnType: void
    signature: void DC8uvNoTop_NEON(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DC8_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:1486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1486
    functionDepth: 1
    functionLinenumber: 1486
    functionLinenumberEnd: 1486
    functionName: DC8uvNoLeft_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - DC8_NEON
    linkageType: ''
    returnType: void
    signature: void DC8uvNoLeft_NEON(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DC8_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:1487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1487
    functionDepth: 1
    functionLinenumber: 1487
    functionLinenumberEnd: 1487
    functionName: DC8uvNoTopLeft_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - DC8_NEON
    linkageType: ''
    returnType: void
    signature: void DC8uvNoTopLeft_NEON(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrueMotion_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:1489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1489
    functionDepth: 0
    functionLinenumber: 1489
    functionLinenumberEnd: 1489
    functionName: TM8uv_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - TrueMotion_NEON
    linkageType: ''
    returnType: void
    signature: void TM8uv_NEON(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1495,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1494
    functionDepth: 0
    functionLinenumber: 1494
    functionLinenumberEnd: 1500
    functionName: VE16_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vld1q_u8
    - vst1q_u8
    linkageType: ''
    returnType: void
    signature: void VE16_NEON(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_dup_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1505,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1502
    functionDepth: 0
    functionLinenumber: 1502
    functionLinenumberEnd: 1509
    functionName: HE16_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vld1q_dup_u8
    - vst1q_u8
    linkageType: ''
    returnType: void
    signature: void HE16_NEON(uint8_t* dst)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1517,1
    - Dst: vaddlvq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1519,1
    - Dst: vdupq_n_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1520,1
    - Dst: vpaddlq_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1522,1
    - Dst: vadd_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1523,1
    - Dst: vget_low_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1523,1
    - Dst: vget_high_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1523,1
    - Dst: vpadd_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1524,1
    - Dst: vpadd_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1525,1
    - Dst: vcombine_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1526,1
    - Dst: vdupq_n_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1532,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1534,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1535,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1536,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1537,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1538,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1539,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1540,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1541,1
    - Dst: vaddl_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1542,1
    - Dst: vaddl_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1543,1
    - Dst: vaddl_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1544,1
    - Dst: vaddl_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1545,1
    - Dst: vaddq_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1546,1
    - Dst: vaddq_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1547,1
    - Dst: vaddq_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1548,1
    - Dst: vaddq_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1549,1
    - Dst: vaddq_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1554,1
    - Dst: vrshrn_n_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1555,1
    - Dst: vrshrn_n_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1557,1
    - Dst: vrshrn_n_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1559,1
    - Dst: vdup_n_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1561,1
    - Dst: vdupq_lane_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1565,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1568,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - dst
    - do_top
    - do_left
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1511
    functionDepth: 0
    functionLinenumber: 1511
    functionLinenumberEnd: 1571
    functionName: DC16_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vcombine_u16
    - vaddl_u8
    - vpaddlq_u8
    - vdupq_n_u16
    - vaddlvq_u8
    - vrshrn_n_u16
    - vst1q_u8
    - vget_low_u16
    - vaddq_u16
    - vpadd_u16
    - vget_high_u16
    - vld1_u8
    - vdup_n_u8
    - vadd_u16
    - vdupq_lane_u8
    - vld1q_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE DC16_NEON(uint8_t* dst, int do_top, int do_left)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DC16_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:1573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1573
    functionDepth: 1
    functionLinenumber: 1573
    functionLinenumberEnd: 1573
    functionName: DC16TopLeft_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - DC16_NEON
    linkageType: ''
    returnType: void
    signature: void DC16TopLeft_NEON(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DC16_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:1574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1574
    functionDepth: 1
    functionLinenumber: 1574
    functionLinenumberEnd: 1574
    functionName: DC16NoTop_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - DC16_NEON
    linkageType: ''
    returnType: void
    signature: void DC16NoTop_NEON(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DC16_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:1575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1575
    functionDepth: 1
    functionLinenumber: 1575
    functionLinenumberEnd: 1575
    functionName: DC16NoLeft_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - DC16_NEON
    linkageType: ''
    returnType: void
    signature: void DC16NoLeft_NEON(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DC16_NEON
      Src: /src/libwebp/src/dsp/dec_neon.c:1576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1576
    functionDepth: 1
    functionLinenumber: 1576
    functionLinenumberEnd: 1576
    functionName: DC16NoTopLeft_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - DC16_NEON
    linkageType: ''
    returnType: void
    signature: void DC16NoTopLeft_NEON(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1_dup_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1579,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1580,1
    - Dst: vsubl_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1582,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1582,1
    - Dst: vsubl_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1583,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1583,1
    - Dst: vld1_dup_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1587,1
    - Dst: vld1_dup_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1588,1
    - Dst: vld1_dup_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1589,1
    - Dst: vld1_dup_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1590,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1592,1
    - Dst: vaddw_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1592,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1593,1
    - Dst: vaddw_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1593,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1594,1
    - Dst: vaddw_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1594,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1595,1
    - Dst: vaddw_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1595,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1596,1
    - Dst: vaddw_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1596,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1597,1
    - Dst: vaddw_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1597,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1598,1
    - Dst: vaddw_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1598,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/dec_neon.c:1599,1
    - Dst: vaddw_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1599,1
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1601,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1601,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1601,1
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1602,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1602,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1602,1
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1603,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1603,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1603,1
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1604,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1604,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/dec_neon.c:1604,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1605,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1606,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1607,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/dec_neon.c:1608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1578
    functionDepth: 0
    functionLinenumber: 1578
    functionLinenumberEnd: 1611
    functionName: TM16_NEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 0
    functionsReached:
    - vaddw_u8
    - vsubl_u8
    - vst1q_u8
    - vreinterpretq_s16_u16
    - vget_low_u8
    - vcombine_u8
    - vget_high_u8
    - vld1_dup_u8
    - vqmovun_s16
    - vld1q_u8
    linkageType: ''
    returnType: void
    signature: void TM16_NEON(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1618
    functionDepth: 0
    functionLinenumber: 1618
    functionLinenumberEnd: 1662
    functionName: VP8DspInitNEON
    functionSourceFile: /src/libwebp/src/dsp/dec_neon.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8DspInitNEON(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:31,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:39,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:41,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:43,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:45,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:50,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:51,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:52,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:53,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:54,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:55,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:56,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:57,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:58,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:59,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:60,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:62,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:64,1
    - Dst: _mm_movemask_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:77,1
    - Dst: _mm_cmpeq_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse41.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - argb_stride
    - width
    - height
    - WEBP_RESTRICT
    - alpha_stride
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 79
    functionName: ExtractAlpha_SSE41
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_storeu_si128
    - _mm_shuffle_epi8
    - _mm_and_si128
    - _mm_loadu_si128
    - _mm_set_epi8
    - _mm_movemask_epi8
    - _mm_cmpeq_epi8
    - _mm_or_si128
    linkageType: ''
    returnType: int
    signature: "int ExtractAlpha_SSE41(const uint8_t* WEBP_RESTRICT argb,\n                              int
      argb_stride, int width, int height,\n                              uint8_t*
      WEBP_RESTRICT alpha, int alpha_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: WebPInitAlphaProcessingSSE41
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_sse41.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPInitAlphaProcessingSSE41(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: VP8GetARGBIndex
    functionSourceFile: /src/libwebp/src/dsp/lossless_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8GetARGBIndex(uint32_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: VP8GetAlphaIndex
    functionSourceFile: /src/libwebp/src/dsp/lossless_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8GetAlphaIndex(uint8_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: VP8GetARGBValue
    functionSourceFile: /src/libwebp/src/dsp/lossless_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8GetARGBValue(uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: VP8GetAlphaValue
    functionSourceFile: /src/libwebp/src/dsp/lossless_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8GetAlphaValue(uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - sampling_bits
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: VP8LSubSampleSize
    functionSourceFile: /src/libwebp/src/dsp/lossless_common.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8LSubSampleSize(uint32_t size,\n                                              uint32_t
      sampling_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - near_lossless_quality
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: VP8LNearLosslessBits
    functionSourceFile: /src/libwebp/src/dsp/lossless_common.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8LNearLosslessBits(int near_lossless_quality)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LFastLog2Slow
      Src: /src/libwebp/src/dsp/lossless_common.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: VP8LFastLog2
    functionSourceFile: /src/libwebp/src/dsp/lossless_common.h
    functionUses: 2
    functionsReached:
    - VP8LFastLog2Slow
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8LFastLog2(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LFastSLog2Slow
      Src: /src/libwebp/src/dsp/lossless_common.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: VP8LFastSLog2
    functionSourceFile: /src/libwebp/src/dsp/lossless_common.h
    functionUses: 1
    functionsReached:
    - VP8LFastSLog2Slow
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8LFastSLog2(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - shift
    argTypes:
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: RightShiftRound
    functionSourceFile: /src/libwebp/src/dsp/lossless_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE RightShiftRound(uint64_t v, uint32_t shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: DivRound
    functionSourceFile: /src/libwebp/src/dsp/lossless_common.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE DivRound(int64_t a, int64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BitsLog2Floor
      Src: /src/libwebp/src/dsp/lossless_common.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - distance
    - code
    - extra_bits
    argTypes:
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: VP8LPrefixEncodeBitsNoLUT
    functionSourceFile: /src/libwebp/src/dsp/lossless_common.h
    functionUses: 0
    functionsReached:
    - BitsLog2Floor
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8LPrefixEncodeBitsNoLUT(int distance, int* const code,\n
      \                                                 int* const extra_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BitsLog2Floor
      Src: /src/libwebp/src/dsp/lossless_common.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - distance
    - code
    - extra_bits
    - extra_bits_value
    argTypes:
    - int
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: VP8LPrefixEncodeNoLUT
    functionSourceFile: /src/libwebp/src/dsp/lossless_common.h
    functionUses: 0
    functionsReached:
    - BitsLog2Floor
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8LPrefixEncodeNoLUT(int distance, int* const code,\n
      \                                             int* const extra_bits,\n                                              int*
      const extra_bits_value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LPrefixEncodeBitsNoLUT
      Src: /src/libwebp/src/dsp/lossless_common.h:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - distance
    - code
    - extra_bits
    argTypes:
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 155
    functionName: VP8LPrefixEncodeBits
    functionSourceFile: /src/libwebp/src/dsp/lossless_common.h
    functionUses: 3
    functionsReached:
    - VP8LPrefixEncodeBitsNoLUT
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8LPrefixEncodeBits(int distance, int* const code,\n
      \                                            int* const extra_bits)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LPrefixEncodeNoLUT
      Src: /src/libwebp/src/dsp/lossless_common.h:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - distance
    - code
    - extra_bits
    - extra_bits_value
    argTypes:
    - int
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: VP8LPrefixEncode
    functionSourceFile: /src/libwebp/src/dsp/lossless_common.h
    functionUses: 2
    functionsReached:
    - VP8LPrefixEncodeNoLUT
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8LPrefixEncode(int distance, int* const code,\n                                         int*
      const extra_bits,\n                                         int* const extra_bits_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 176
    functionName: VP8LAddPixels
    functionSourceFile: /src/libwebp/src/dsp/lossless_common.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_UBSAN_IGNORE_UNSIGNED_OVERFLOW
    signature: WEBP_UBSAN_IGNORE_UNSIGNED_OVERFLOW VP8LAddPixels(uint32_t a, uint32_t
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: VP8LSubPixels
    functionSourceFile: /src/libwebp/src/dsp/lossless_common.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: WEBP_UBSAN_IGNORE_UNSIGNED_OVERFLOW
    signature: WEBP_UBSAN_IGNORE_UNSIGNED_OVERFLOW VP8LSubPixels(uint32_t a, uint32_t
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - PREDICTOR
    - ','
    - PREDICTOR_ADD
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 206
    functionName: GENERATE_PREDICTOR_ADD
    functionSourceFile: /src/libwebp/src/dsp/lossless_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_PREDICTOR_ADD(PREDICTOR, PREDICTOR_ADD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - u
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: LOAD_UV
    functionSourceFile: /src/libwebp/src/dsp/upsampling.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_UV(u, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FUNC_NAME
    - ','
    - FUNC
    - ','
    - XSTEP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 51
    functionName: UPSAMPLE_FUNC
    functionSourceFile: /src/libwebp/src/dsp/upsampling.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPSAMPLE_FUNC(FUNC_NAME, FUNC, XSTEP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/upsampling.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 9
    argNames:
    - top_y
    - bottom_y
    - top_u
    - top_v
    - cur_u
    - cur_v
    - top_dst
    - bottom_dst
    - len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts:
    - condition: (0)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/libwebp/src/dsp/upsampling.c
    constantsTouched: []
    func_position:
      end: 128
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 128
    functionName: EmptyUpsampleFunc
    functionSourceFile: /src/libwebp/src/dsp/upsampling.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void EmptyUpsampleFunc(const uint8_t* top_y, const uint8_t* bottom_y,\n
      \                             const uint8_t* top_u, const uint8_t* top_v,\n
      \                             const uint8_t* cur_u, const uint8_t* cur_v,\n
      \                             uint8_t* top_dst, uint8_t* bottom_dst, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FUNC_NAME
    - ','
    - FUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 173
    functionName: DUAL_SAMPLE_FUNC
    functionSourceFile: /src/libwebp/src/dsp/upsampling.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DUAL_SAMPLE_FUNC(FUNC_NAME, FUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPInitUpsamplers
      Src: /src/libwebp/src/dsp/upsampling.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - alpha_is_last
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: WebPGetLinePairConverter
    functionSourceFile: /src/libwebp/src/dsp/upsampling.c
    functionUses: 1
    functionsReached:
    - WebPInitUpsamplers
    linkageType: ''
    returnType: WebPUpsampleLinePairFunc
    signature: WebPUpsampleLinePairFunc WebPGetLinePairConverter(int alpha_is_last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FUNC_NAME
    - ','
    - FUNC
    - ','
    - XSTEP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 202
    functionName: YUV444_FUNC
    functionSourceFile: /src/libwebp/src/dsp/upsampling.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YUV444_FUNC(FUNC_NAME, FUNC, XSTEP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - y
    - u
    - v
    - dst
    - len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 219
    functionName: EmptyYuv444Func
    functionSourceFile: /src/libwebp/src/dsp/upsampling.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EmptyYuv444Func(const uint8_t* y, const uint8_t* u,\n                            const
      uint8_t* v, uint8_t* dst, int len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/upsampling.c:251,1
    - Dst: WebPInitYUV444ConvertersSSE2
      Src: /src/libwebp/src/dsp/upsampling.c:252,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/upsampling.c:256,1
    - Dst: WebPInitYUV444ConvertersSSE41
      Src: /src/libwebp/src/dsp/upsampling.c:257,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/upsampling.c:261,1
    - Dst: WebPInitYUV444ConvertersMIPSdspR2
      Src: /src/libwebp/src/dsp/upsampling.c:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 266
    functionName: WEBP_DSP_INIT_FUNC
    functionSourceFile: /src/libwebp/src/dsp/upsampling.c
    functionUses: 0
    functionsReached:
    - WebPInitYUV444ConvertersSSE41
    - VP8GetCPUInfo
    - WebPInitYUV444ConvertersMIPSdspR2
    - WebPInitYUV444ConvertersSSE2
    linkageType: ''
    returnType: void
    signature: void WEBP_DSP_INIT_FUNC(WebPInitYUV444Converters)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/upsampling.c:296,1
    - Dst: WebPInitUpsamplersSSE2
      Src: /src/libwebp/src/dsp/upsampling.c:297,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/upsampling.c:301,1
    - Dst: WebPInitUpsamplersSSE41
      Src: /src/libwebp/src/dsp/upsampling.c:302,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/upsampling.c:306,1
    - Dst: WebPInitUpsamplersMIPSdspR2
      Src: /src/libwebp/src/dsp/upsampling.c:307,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/upsampling.c:311,1
    - Dst: WebPInitUpsamplersMSA
      Src: /src/libwebp/src/dsp/upsampling.c:312,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/upsampling.c:319,1
    - Dst: WebPInitUpsamplersNEON
      Src: /src/libwebp/src/dsp/upsampling.c:320,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/upsampling.c:324,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/upsampling.c:325,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/upsampling.c:326,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/upsampling.c:327,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/upsampling.c:329,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/upsampling.c:330,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/upsampling.c:331,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/upsampling.c:332,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/upsampling.c:333,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/upsampling.c:334,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/upsampling.c:335,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WebPUpsamplers[MODE_RGBA_4444] != NULL)
      pos:
        line_end: 331
        line_start: 331
        source_file: /src/libwebp/src/dsp/upsampling.c
    - condition: (WebPUpsamplers[MODE_bgrA] != NULL)
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/libwebp/src/dsp/upsampling.c
    - condition: (WebPUpsamplers[MODE_RGBA] != NULL)
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/libwebp/src/dsp/upsampling.c
    - condition: (WebPUpsamplers[MODE_RGB_565] != NULL)
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/libwebp/src/dsp/upsampling.c
    - condition: (WebPUpsamplers[MODE_BGRA] != NULL)
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/libwebp/src/dsp/upsampling.c
    - condition: (WebPUpsamplers[MODE_BGR] != NULL)
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/libwebp/src/dsp/upsampling.c
    - condition: (WebPUpsamplers[MODE_Argb] != NULL)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/libwebp/src/dsp/upsampling.c
    - condition: (WebPUpsamplers[MODE_rgbA] != NULL)
      pos:
        line_end: 325
        line_start: 325
        source_file: /src/libwebp/src/dsp/upsampling.c
    - condition: (WebPUpsamplers[MODE_ARGB] != NULL)
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/libwebp/src/dsp/upsampling.c
    - condition: (WebPUpsamplers[MODE_RGB] != NULL)
      pos:
        line_end: 328
        line_start: 328
        source_file: /src/libwebp/src/dsp/upsampling.c
    - condition: (WebPUpsamplers[MODE_rgbA_4444] != NULL)
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/libwebp/src/dsp/upsampling.c
    constantsTouched: []
    func_position:
      end: 339
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 339
    functionName: WEBP_DSP_INIT_FUNC
    functionSourceFile: /src/libwebp/src/dsp/upsampling.c
    functionUses: 0
    functionsReached:
    - WebPInitUpsamplersNEON
    - VP8GetCPUInfo
    - WebPInitUpsamplersMIPSdspR2
    - assert
    - WebPInitUpsamplersMSA
    - WebPInitUpsamplersSSE41
    - WebPInitUpsamplersSSE2
    linkageType: ''
    returnType: void
    signature: void WEBP_DSP_INIT_FUNC(WebPInitUpsamplers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: MULT_FIX
    functionSourceFile: /src/libwebp/src/dsp/rescaler_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULT_FIX(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: MULT_FIX_FLOOR
    functionSourceFile: /src/libwebp/src/dsp/rescaler_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULT_FIX_FLOOR(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - scale
    - ','
    - shift
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 47
    functionName: CALC_MULT_FIX_16
    functionSourceFile: /src/libwebp/src/dsp/rescaler_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALC_MULT_FIX_16(in0, in1, in2, in3, scale, shift, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - in0
    - ','
    - scale
    - ','
    - shift
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: CALC_MULT_FIX_4
    functionSourceFile: /src/libwebp/src/dsp/rescaler_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALC_MULT_FIX_4(in0, scale, shift, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - fyscale
    - ','
    - shift
    - ','
    - dst0
    - ','
    - dst1
    - ','
    - dst2
    - ','
    - dst3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 80
    functionName: CALC_MULT_FIX1_16
    functionSourceFile: /src/libwebp/src/dsp/rescaler_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "CALC_MULT_FIX1_16(in0, in1, in2, in3, fyscale, shift, dst0, dst1,
      \\\n                          dst2, dst3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - in0
    - ','
    - scale
    - ','
    - shift
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: CALC_MULT_FIX1_4
    functionSourceFile: /src/libwebp/src/dsp/rescaler_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALC_MULT_FIX1_4(in0, scale, shift, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - mult
    - ','
    - scale
    - ','
    - shift
    - ','
    - dst0
    - ','
    - dst1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 105
    functionName: CALC_MULT_FIX2_16
    functionSourceFile: /src/libwebp/src/dsp/rescaler_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALC_MULT_FIX2_16(in0, in1, in2, in3, mult, scale, shift, dst0, dst1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - mult
    - ','
    - scale
    - ','
    - shift
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 121
    functionName: CALC_MULT_FIX2_4
    functionSourceFile: /src/libwebp/src/dsp/rescaler_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALC_MULT_FIX2_4(in0, in1, mult, scale, shift, dst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/rescaler_msa.c:125,1
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/rescaler_msa.c:126,1
    - Dst: LD_UW4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:132,1
    - Dst: CALC_MULT_FIX_16
      Src: /src/libwebp/src/dsp/rescaler_msa.c:133,1
    - Dst: ST_UB
      Src: /src/libwebp/src/dsp/rescaler_msa.c:134,1
    - Dst: LD_UW3
      Src: /src/libwebp/src/dsp/rescaler_msa.c:144,1
    - Dst: CALC_MULT_FIX_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:145,1
    - Dst: CALC_MULT_FIX_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:146,1
    - Dst: CALC_MULT_FIX_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:147,1
    - Dst: SW3
      Src: /src/libwebp/src/dsp/rescaler_msa.c:148,1
    - Dst: LD_UW2
      Src: /src/libwebp/src/dsp/rescaler_msa.c:155,1
    - Dst: CALC_MULT_FIX_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:156,1
    - Dst: CALC_MULT_FIX_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:157,1
    - Dst: SW2
      Src: /src/libwebp/src/dsp/rescaler_msa.c:158,1
    - Dst: LD_UW
      Src: /src/libwebp/src/dsp/rescaler_msa.c:164,1
    - Dst: CALC_MULT_FIX_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:165,1
    - Dst: SW
      Src: /src/libwebp/src/dsp/rescaler_msa.c:166,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler_msa.c:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - length
    - wrk
    argTypes:
    - uint32_t*
    - uint8_t*
    - int
    - WebPRescaler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 177
    functionName: ExportRowExpand_0
    functionSourceFile: /src/libwebp/src/dsp/rescaler_msa.c
    functionUses: 0
    functionsReached:
    - LD_UW2
    - ST_UB
    - LD_UW3
    - SW
    - SW2
    - CALC_MULT_FIX_16
    - __msa_fill_w
    - SW3
    - LD_UW
    - LD_UW4
    - CALC_MULT_FIX_4
    - MULT_FIX
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ExportRowExpand_0(\n    const uint32_t* WEBP_RESTRICT
      frow, uint8_t* WEBP_RESTRICT dst, int length,\n    WebPRescaler* WEBP_RESTRICT
      const wrk)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_RESCALER_FRAC
      Src: /src/libwebp/src/dsp/rescaler_msa.c:183,1
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/rescaler_msa.c:185,1
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/rescaler_msa.c:186,1
    - Dst: __msa_ilvr_w
      Src: /src/libwebp/src/dsp/rescaler_msa.c:187,1
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/rescaler_msa.c:188,1
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/rescaler_msa.c:189,1
    - Dst: LD_UW4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:194,1
    - Dst: LD_UW4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:195,1
    - Dst: CALC_MULT_FIX2_16
      Src: /src/libwebp/src/dsp/rescaler_msa.c:196,1
    - Dst: CALC_MULT_FIX2_16
      Src: /src/libwebp/src/dsp/rescaler_msa.c:197,1
    - Dst: PCKEV_B2_UB
      Src: /src/libwebp/src/dsp/rescaler_msa.c:198,1
    - Dst: __msa_pckev_b
      Src: /src/libwebp/src/dsp/rescaler_msa.c:199,1
    - Dst: ST_UB
      Src: /src/libwebp/src/dsp/rescaler_msa.c:200,1
    - Dst: LD_UW3
      Src: /src/libwebp/src/dsp/rescaler_msa.c:211,1
    - Dst: LD_UW3
      Src: /src/libwebp/src/dsp/rescaler_msa.c:212,1
    - Dst: CALC_MULT_FIX2_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:213,1
    - Dst: CALC_MULT_FIX2_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:214,1
    - Dst: CALC_MULT_FIX2_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:215,1
    - Dst: SW3
      Src: /src/libwebp/src/dsp/rescaler_msa.c:216,1
    - Dst: LD_UW2
      Src: /src/libwebp/src/dsp/rescaler_msa.c:224,1
    - Dst: LD_UW2
      Src: /src/libwebp/src/dsp/rescaler_msa.c:225,1
    - Dst: CALC_MULT_FIX2_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:226,1
    - Dst: CALC_MULT_FIX2_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:227,1
    - Dst: SW2
      Src: /src/libwebp/src/dsp/rescaler_msa.c:228,1
    - Dst: LD_UW
      Src: /src/libwebp/src/dsp/rescaler_msa.c:235,1
    - Dst: LD_UW
      Src: /src/libwebp/src/dsp/rescaler_msa.c:236,1
    - Dst: CALC_MULT_FIX2_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:237,1
    - Dst: SW
      Src: /src/libwebp/src/dsp/rescaler_msa.c:238,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler_msa.c:247,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 50
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - length
    - wrk
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint8_t*
    - int
    - WebPRescaler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 251
    functionName: ExportRowExpand_1
    functionSourceFile: /src/libwebp/src/dsp/rescaler_msa.c
    functionUses: 0
    functionsReached:
    - __msa_ilvr_w
    - LD_UW2
    - PCKEV_B2_UB
    - ST_UB
    - CALC_MULT_FIX2_4
    - LD_UW3
    - SW
    - WEBP_RESCALER_FRAC
    - SW2
    - MULT_FIX
    - __msa_fill_w
    - SW3
    - LD_UW
    - LD_UW4
    - CALC_MULT_FIX2_16
    - __msa_pckev_b
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ExportRowExpand_1(\n    const uint32_t* WEBP_RESTRICT
      frow, uint32_t* WEBP_RESTRICT irow,\n    uint8_t* WEBP_RESTRICT dst, int length,\n
      \   WebPRescaler* WEBP_RESTRICT const wrk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_msa.c:258,1
    - Dst: WebPRescalerOutputDone
      Src: /src/libwebp/src/dsp/rescaler_msa.c:258,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_msa.c:259,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_msa.c:260,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_msa.c:261,1
    - Dst: ExportRowExpand_0
      Src: /src/libwebp/src/dsp/rescaler_msa.c:263,1
    - Dst: ExportRowExpand_1
      Src: /src/libwebp/src/dsp/rescaler_msa.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - wrk
    argTypes:
    - WebPRescaler*
    assertStmts:
    - condition: (!WebPRescalerOutputDone(wrk))
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/libwebp/src/dsp/rescaler_msa.c
    - condition: (wrk->y_accum <= 0)
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/libwebp/src/dsp/rescaler_msa.c
    - condition: (wrk->y_expand)
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/libwebp/src/dsp/rescaler_msa.c
    - condition: (wrk->y_sub != 0)
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/libwebp/src/dsp/rescaler_msa.c
    constantsTouched: []
    func_position:
      end: 267
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 267
    functionName: RescalerExportRowExpand_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/rescaler_msa.c
    functionUses: 0
    functionsReached:
    - assert
    - ExportRowExpand_1
    - WebPRescalerOutputDone
    - ExportRowExpand_0
    linkageType: ''
    returnType: void
    signature: void RescalerExportRowExpand_MIPSdspR2(WebPRescaler* const wrk)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/rescaler_msa.c:274,1
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/rescaler_msa.c:275,1
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/rescaler_msa.c:276,1
    - Dst: LD_UW4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:282,1
    - Dst: CALC_MULT_FIX1_16
      Src: /src/libwebp/src/dsp/rescaler_msa.c:283,1
    - Dst: LD_UW4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:285,1
    - Dst: SUB4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:286,1
    - Dst: CALC_MULT_FIX_16
      Src: /src/libwebp/src/dsp/rescaler_msa.c:288,1
    - Dst: ST_UB
      Src: /src/libwebp/src/dsp/rescaler_msa.c:289,1
    - Dst: ST_UW4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:290,1
    - Dst: LD_UW3
      Src: /src/libwebp/src/dsp/rescaler_msa.c:301,1
    - Dst: CALC_MULT_FIX1_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:302,1
    - Dst: CALC_MULT_FIX1_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:303,1
    - Dst: CALC_MULT_FIX1_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:304,1
    - Dst: LD_UW3
      Src: /src/libwebp/src/dsp/rescaler_msa.c:305,1
    - Dst: SUB3
      Src: /src/libwebp/src/dsp/rescaler_msa.c:306,1
    - Dst: CALC_MULT_FIX_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:307,1
    - Dst: CALC_MULT_FIX_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:308,1
    - Dst: CALC_MULT_FIX_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:309,1
    - Dst: SW3
      Src: /src/libwebp/src/dsp/rescaler_msa.c:310,1
    - Dst: ST_UW3
      Src: /src/libwebp/src/dsp/rescaler_msa.c:311,1
    - Dst: LD_UW2
      Src: /src/libwebp/src/dsp/rescaler_msa.c:319,1
    - Dst: CALC_MULT_FIX1_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:320,1
    - Dst: CALC_MULT_FIX1_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:321,1
    - Dst: LD_UW2
      Src: /src/libwebp/src/dsp/rescaler_msa.c:322,1
    - Dst: SUB2
      Src: /src/libwebp/src/dsp/rescaler_msa.c:323,1
    - Dst: CALC_MULT_FIX_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:324,1
    - Dst: CALC_MULT_FIX_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:325,1
    - Dst: SW2
      Src: /src/libwebp/src/dsp/rescaler_msa.c:326,1
    - Dst: ST_UW2
      Src: /src/libwebp/src/dsp/rescaler_msa.c:327,1
    - Dst: LD_UW
      Src: /src/libwebp/src/dsp/rescaler_msa.c:335,1
    - Dst: CALC_MULT_FIX1_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:336,1
    - Dst: LD_UW
      Src: /src/libwebp/src/dsp/rescaler_msa.c:337,1
    - Dst: CALC_MULT_FIX_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:339,1
    - Dst: SW
      Src: /src/libwebp/src/dsp/rescaler_msa.c:340,1
    - Dst: ST_UW
      Src: /src/libwebp/src/dsp/rescaler_msa.c:341,1
    - Dst: MULT_FIX_FLOOR
      Src: /src/libwebp/src/dsp/rescaler_msa.c:348,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler_msa.c:349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 64
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - length
    - yscale
    - wrk
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint8_t*
    - int
    - uint32_t
    - WebPRescaler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 354
    functionName: ExportRowShrink_0
    functionSourceFile: /src/libwebp/src/dsp/rescaler_msa.c
    functionUses: 0
    functionsReached:
    - ST_UW
    - ST_UB
    - SUB2
    - SW3
    - ST_UW2
    - LD_UW2
    - CALC_MULT_FIX_4
    - MULT_FIX
    - CALC_MULT_FIX1_4
    - MULT_FIX_FLOOR
    - __msa_fill_w
    - LD_UW
    - SUB3
    - ST_UW4
    - CALC_MULT_FIX1_16
    - LD_UW3
    - SW
    - SW2
    - CALC_MULT_FIX_16
    - ST_UW3
    - LD_UW4
    - SUB4
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ExportRowShrink_0(\n    const uint32_t* WEBP_RESTRICT
      frow, uint32_t* WEBP_RESTRICT irow,\n    uint8_t* WEBP_RESTRICT dst, int length,
      const uint32_t yscale,\n    WebPRescaler* WEBP_RESTRICT const wrk)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/rescaler_msa.c:359,1
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/rescaler_msa.c:360,1
    - Dst: LD_UW4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:366,1
    - Dst: CALC_MULT_FIX_16
      Src: /src/libwebp/src/dsp/rescaler_msa.c:367,1
    - Dst: ST_UB
      Src: /src/libwebp/src/dsp/rescaler_msa.c:368,1
    - Dst: ST_SW4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:369,1
    - Dst: LD_UW3
      Src: /src/libwebp/src/dsp/rescaler_msa.c:379,1
    - Dst: CALC_MULT_FIX_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:380,1
    - Dst: CALC_MULT_FIX_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:381,1
    - Dst: CALC_MULT_FIX_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:382,1
    - Dst: SW3
      Src: /src/libwebp/src/dsp/rescaler_msa.c:383,1
    - Dst: ST_SW3
      Src: /src/libwebp/src/dsp/rescaler_msa.c:384,1
    - Dst: LD_UW2
      Src: /src/libwebp/src/dsp/rescaler_msa.c:391,1
    - Dst: CALC_MULT_FIX_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:392,1
    - Dst: CALC_MULT_FIX_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:393,1
    - Dst: SW2
      Src: /src/libwebp/src/dsp/rescaler_msa.c:394,1
    - Dst: ST_SW2
      Src: /src/libwebp/src/dsp/rescaler_msa.c:395,1
    - Dst: LD_UW
      Src: /src/libwebp/src/dsp/rescaler_msa.c:401,1
    - Dst: CALC_MULT_FIX_4
      Src: /src/libwebp/src/dsp/rescaler_msa.c:402,1
    - Dst: SW
      Src: /src/libwebp/src/dsp/rescaler_msa.c:403,1
    - Dst: ST_SW
      Src: /src/libwebp/src/dsp/rescaler_msa.c:404,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler_msa.c:410,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - length
    - wrk
    argTypes:
    - uint32_t*
    - uint8_t*
    - int
    - WebPRescaler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 415
    functionName: ExportRowShrink_1
    functionSourceFile: /src/libwebp/src/dsp/rescaler_msa.c
    functionUses: 0
    functionsReached:
    - ST_SW2
    - LD_UW2
    - ST_UB
    - LD_UW3
    - ST_SW
    - SW
    - SW2
    - CALC_MULT_FIX_16
    - __msa_fill_w
    - ST_SW3
    - ST_SW4
    - SW3
    - LD_UW
    - LD_UW4
    - CALC_MULT_FIX_4
    - MULT_FIX
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ExportRowShrink_1(\n    uint32_t* WEBP_RESTRICT irow,
      uint8_t* WEBP_RESTRICT dst, int length,\n    WebPRescaler* WEBP_RESTRICT const
      wrk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_msa.c:423,1
    - Dst: WebPRescalerOutputDone
      Src: /src/libwebp/src/dsp/rescaler_msa.c:423,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_msa.c:424,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_msa.c:425,1
    - Dst: ExportRowShrink_0
      Src: /src/libwebp/src/dsp/rescaler_msa.c:427,1
    - Dst: ExportRowShrink_1
      Src: /src/libwebp/src/dsp/rescaler_msa.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - wrk
    argTypes:
    - WebPRescaler*
    assertStmts:
    - condition: (!WebPRescalerOutputDone(wrk))
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/libwebp/src/dsp/rescaler_msa.c
    - condition: (!wrk->y_expand)
      pos:
        line_end: 424
        line_start: 424
        source_file: /src/libwebp/src/dsp/rescaler_msa.c
    - condition: (wrk->y_accum <= 0)
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/libwebp/src/dsp/rescaler_msa.c
    constantsTouched: []
    func_position:
      end: 431
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 431
    functionName: RescalerExportRowShrink_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/rescaler_msa.c
    functionUses: 0
    functionsReached:
    - assert
    - ExportRowShrink_0
    - WebPRescalerOutputDone
    - ExportRowShrink_1
    linkageType: ''
    returnType: void
    signature: void RescalerExportRowShrink_MIPSdspR2(WebPRescaler* const wrk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: WebPRescalerDspInitMSA
    functionSourceFile: /src/libwebp/src/dsp/rescaler_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPRescalerDspInitMSA(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: CHANNEL_OFFSET
    functionSourceFile: /src/libwebp/src/dsp/yuv.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHANNEL_OFFSET(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: CHANNEL_OFFSET
    functionSourceFile: /src/libwebp/src/dsp/yuv.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHANNEL_OFFSET(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - coeff
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: MultHi
    functionSourceFile: /src/libwebp/src/dsp/yuv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE MultHi(int v, int coeff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: VP8Clip8
    functionSourceFile: /src/libwebp/src/dsp/yuv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8Clip8(int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8Clip8
      Src: /src/libwebp/src/dsp/yuv.h:81,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/yuv.h:81,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/yuv.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - y
    - v
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: VP8YUVToR
    functionSourceFile: /src/libwebp/src/dsp/yuv.h
    functionUses: 0
    functionsReached:
    - VP8Clip8
    - MultHi
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8YUVToR(int y, int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8Clip8
      Src: /src/libwebp/src/dsp/yuv.h:85,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/yuv.h:85,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/yuv.h:85,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/yuv.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - y
    - u
    - v
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: VP8YUVToG
    functionSourceFile: /src/libwebp/src/dsp/yuv.h
    functionUses: 0
    functionsReached:
    - VP8Clip8
    - MultHi
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8YUVToG(int y, int u, int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8Clip8
      Src: /src/libwebp/src/dsp/yuv.h:89,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/yuv.h:89,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/yuv.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - y
    - u
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: VP8YUVToB
    functionSourceFile: /src/libwebp/src/dsp/yuv.h
    functionUses: 0
    functionsReached:
    - VP8Clip8
    - MultHi
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8YUVToB(int y, int u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8YUVToR
      Src: /src/libwebp/src/dsp/yuv.h:93,1
    - Dst: VP8YUVToG
      Src: /src/libwebp/src/dsp/yuv.h:94,1
    - Dst: VP8YUVToB
      Src: /src/libwebp/src/dsp/yuv.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - y
    - u
    - v
    - rgb
    argTypes:
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: VP8YuvToRgb
    functionSourceFile: /src/libwebp/src/dsp/yuv.h
    functionUses: 0
    functionsReached:
    - VP8YUVToB
    - VP8YUVToR
    - VP8YUVToG
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8YuvToRgb(int y, int u, int v, uint8_t* const rgb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8YUVToB
      Src: /src/libwebp/src/dsp/yuv.h:99,1
    - Dst: VP8YUVToG
      Src: /src/libwebp/src/dsp/yuv.h:100,1
    - Dst: VP8YUVToR
      Src: /src/libwebp/src/dsp/yuv.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - y
    - u
    - v
    - bgr
    argTypes:
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: VP8YuvToBgr
    functionSourceFile: /src/libwebp/src/dsp/yuv.h
    functionUses: 0
    functionsReached:
    - VP8YUVToB
    - VP8YUVToR
    - VP8YUVToG
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8YuvToBgr(int y, int u, int v, uint8_t* const bgr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8YUVToR
      Src: /src/libwebp/src/dsp/yuv.h:106,1
    - Dst: VP8YUVToG
      Src: /src/libwebp/src/dsp/yuv.h:107,1
    - Dst: VP8YUVToB
      Src: /src/libwebp/src/dsp/yuv.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - y
    - u
    - v
    - rgb
    argTypes:
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 118
    functionName: VP8YuvToRgb565
    functionSourceFile: /src/libwebp/src/dsp/yuv.h
    functionUses: 0
    functionsReached:
    - VP8YUVToB
    - VP8YUVToR
    - VP8YUVToG
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8YuvToRgb565(int y, int u, int v,\n                                       uint8_t*
      const rgb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8YUVToR
      Src: /src/libwebp/src/dsp/yuv.h:122,1
    - Dst: VP8YUVToG
      Src: /src/libwebp/src/dsp/yuv.h:123,1
    - Dst: VP8YUVToB
      Src: /src/libwebp/src/dsp/yuv.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - y
    - u
    - v
    - argb
    argTypes:
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 134
    functionName: VP8YuvToRgba4444
    functionSourceFile: /src/libwebp/src/dsp/yuv.h
    functionUses: 0
    functionsReached:
    - VP8YUVToB
    - VP8YUVToR
    - VP8YUVToG
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8YuvToRgba4444(int y, int u, int v,\n                                         uint8_t*
      const argb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8YuvToRgb
      Src: /src/libwebp/src/dsp/yuv.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - y
    - u
    - v
    - argb
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: VP8YuvToArgb
    functionSourceFile: /src/libwebp/src/dsp/yuv.h
    functionUses: 0
    functionsReached:
    - VP8YuvToRgb
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8YuvToArgb(uint8_t y, uint8_t u, uint8_t v,\n                                     uint8_t*
      const argb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8YuvToBgr
      Src: /src/libwebp/src/dsp/yuv.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - y
    - u
    - v
    - bgra
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: VP8YuvToBgra
    functionSourceFile: /src/libwebp/src/dsp/yuv.h
    functionUses: 0
    functionsReached:
    - VP8YuvToBgr
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8YuvToBgra(uint8_t y, uint8_t u, uint8_t v,\n                                     uint8_t*
      const bgra)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8YuvToRgb
      Src: /src/libwebp/src/dsp/yuv.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - y
    - u
    - v
    - rgba
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: VP8YuvToRgba
    functionSourceFile: /src/libwebp/src/dsp/yuv.h
    functionUses: 0
    functionsReached:
    - VP8YuvToRgb
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8YuvToRgba(uint8_t y, uint8_t u, uint8_t v,\n                                     uint8_t*
      const rgba)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - uv
    - rounding
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: VP8ClipUV
    functionSourceFile: /src/libwebp/src/dsp/yuv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8ClipUV(int uv, int rounding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - g
    - b
    - rounding
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: VP8RGBToY
    functionSourceFile: /src/libwebp/src/dsp/yuv.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8RGBToY(int r, int g, int b, int rounding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8ClipUV
      Src: /src/libwebp/src/dsp/yuv.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - g
    - b
    - rounding
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: VP8RGBToU
    functionSourceFile: /src/libwebp/src/dsp/yuv.h
    functionUses: 3
    functionsReached:
    - VP8ClipUV
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8RGBToU(int r, int g, int b, int rounding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8ClipUV
      Src: /src/libwebp/src/dsp/yuv.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - g
    - b
    - rounding
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: VP8RGBToV
    functionSourceFile: /src/libwebp/src/dsp/yuv.h
    functionUses: 3
    functionsReached:
    - VP8ClipUV
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8RGBToV(int r, int g, int b, int rounding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: ADDVI_H
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDVI_H(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: ADDVI_W
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDVI_W(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: SRAI_B
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAI_B(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: SRAI_H
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAI_H(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: SRAI_W
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAI_W(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: SRLI_H
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRLI_H(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: SLLI_B
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLLI_B(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: ANDI_B
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ANDI_B(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: ORI_B
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ORI_B(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: ADDVI_H
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDVI_H(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: ADDVI_W
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDVI_W(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: SRAI_B
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAI_B(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: SRAI_H
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAI_H(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: SRAI_W
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAI_W(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: SRLI_H
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRLI_H(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: SLLI_B
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLLI_B(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: ANDI_B
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ANDI_B(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: ORI_B
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ORI_B(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - RTYPE
    - ','
    - psrc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: LD_B
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_B(RTYPE, psrc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: LD_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: LD_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - RTYPE
    - ','
    - psrc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: LD_H
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_H(RTYPE, psrc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: LD_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: LD_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - RTYPE
    - ','
    - psrc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: LD_W
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_W(RTYPE, psrc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: LD_UW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_UW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: LD_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - RTYPE
    - ','
    - in
    - ','
    - pdst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: ST_B
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_B(RTYPE, in, pdst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: ST_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: ST_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - RTYPE
    - ','
    - in
    - ','
    - pdst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: ST_H
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_H(RTYPE, in, pdst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: ST_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: ST_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - RTYPE
    - ','
    - in
    - ','
    - pdst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: ST_W
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_W(RTYPE, in, pdst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: ST_UW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_UW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: ST_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TYPE
    - ','
    - INSTR
    - ','
    - FUNC_NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: MSA_LOAD_FUNC
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSA_LOAD_FUNC(TYPE, INSTR, FUNC_NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - psrc
    - ','
    - FUNC_NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: MSA_LOAD
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSA_LOAD(psrc, FUNC_NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TYPE
    - ','
    - INSTR
    - ','
    - FUNC_NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: MSA_STORE_FUNC
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSA_STORE_FUNC(TYPE, INSTR, FUNC_NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - val
    - ','
    - pdst
    - ','
    - FUNC_NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: MSA_STORE
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSA_STORE(val, pdst, FUNC_NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - psrc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: LH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LH(psrc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - psrc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: LW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LW(psrc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - psrc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: LD
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD(psrc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - psrc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: LD
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD(psrc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - pdst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SH(val, pdst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - pdst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SW(val, pdst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - pdst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: SD
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SD(val, pdst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - psrc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: LH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LH(psrc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - psrc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: LW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LW(psrc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - psrc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: LD
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD(psrc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - psrc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: LD
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD(psrc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - pdst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SH(val, pdst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - pdst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SW(val, pdst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - pdst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: SD
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SD(val, pdst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - psrc
    - ','
    - stride
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 164
    functionName: LW4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LW4(psrc, stride, out0, out1, out2, out3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - pdst
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 183
    functionName: SW4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SW4(in0, in1, in2, in3, pdst, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - pdst
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 193
    functionName: SW3
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SW3(in0, in1, in2, pdst, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - pdst
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 201
    functionName: SW2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SW2(in0, in1, pdst, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - pdst
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 220
    functionName: SD4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SD4(in0, in1, in2, in3, pdst, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - RTYPE
    - ','
    - psrc
    - ','
    - stride
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: LD_B2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_B2(RTYPE, psrc, stride, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: LD_UB2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_UB2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: LD_SB2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_SB2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - RTYPE
    - ','
    - psrc
    - ','
    - stride
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 241
    functionName: LD_B3
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_B3(RTYPE, psrc, stride, out0, out1, out2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    functionName: LD_UB3
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_UB3(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    functionName: LD_SB3
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_SB3(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - psrc
    - ','
    - stride
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 249
    functionName: LD_B4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_B4(RTYPE, psrc, stride, out0, out1, out2, out3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 250
    functionName: LD_UB4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_UB4(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 251
    functionName: LD_SB4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_SB4(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - RTYPE
    - ','
    - psrc
    - ','
    - stride
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - ','
    - out4
    - ','
    - out5
    - ','
    - out6
    - ','
    - out7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: LD_B8
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "LD_B8(RTYPE, psrc, stride, out0, out1, out2, out3, out4, out5, out6,
      \\\n              out7)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: LD_UB8
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_UB8(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: LD_SB8
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_SB8(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - RTYPE
    - ','
    - psrc
    - ','
    - stride
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 272
    functionName: LD_H2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_H2(RTYPE, psrc, stride, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    functionName: LD_UH2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_UH2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 274
    functionName: LD_SH2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_SH2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - RTYPE
    - ','
    - psrc
    - ','
    - stride
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: LD_W2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_W2(RTYPE, psrc, stride, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    functionName: LD_UW2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_UW2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: LD_SW2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_SW2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - RTYPE
    - ','
    - psrc
    - ','
    - stride
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: LD_W3
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_W3(RTYPE, psrc, stride, out0, out1, out2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 297
    functionName: LD_UW3
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_UW3(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 298
    functionName: LD_SW3
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_SW3(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - psrc
    - ','
    - stride
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: LD_W4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_W4(RTYPE, psrc, stride, out0, out1, out2, out3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 305
    functionName: LD_UW4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_UW4(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 306
    functionName: LD_SW4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LD_SW4(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - pdst
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 317
    functionName: ST_B2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_B2(RTYPE, in0, in1, pdst, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: ST_UB2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_UB2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: ST_SB2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_SB2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - pdst
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: ST_B4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_B4(RTYPE, in0, in1, in2, in3, pdst, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: ST_UB4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_UB4(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 327
    functionName: ST_SB4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_SB4(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - in4
    - ','
    - in5
    - ','
    - in6
    - ','
    - in7
    - ','
    - pdst
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: ST_B8
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_B8(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, pdst, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 334
    functionName: ST_UB8
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_UB8(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - pdst
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 347
    functionName: ST_W2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_W2(RTYPE, in0, in1, pdst, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: ST_UW2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_UW2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: ST_SW2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_SW2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - pdst
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 355
    functionName: ST_W3
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_W3(RTYPE, in0, in1, in2, pdst, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: ST_UW3
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_UW3(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 357
    functionName: ST_SW3
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_SW3(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - pdst
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 363
    functionName: ST_W4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_W4(RTYPE, in0, in1, in2, in3, pdst, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    functionName: ST_UW4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_UW4(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    functionName: ST_SW4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_SW4(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - pdst
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 376
    functionName: ST_H2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_H2(RTYPE, in0, in1, pdst, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 377
    functionName: ST_UH2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_UH2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: ST_SH2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_SH2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - in
    - ','
    - stidx
    - ','
    - pdst
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 405
    functionName: ST2x4_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST2x4_UB(in, stidx, pdst, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - idx0
    - ','
    - idx1
    - ','
    - idx2
    - ','
    - idx3
    - ','
    - pdst
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 426
    functionName: ST4x4_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST4x4_UB(in0, in1, idx0, idx1, idx2, idx3, pdst, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - pdst
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 433
    functionName: ST4x8_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST4x8_UB(in0, in1, pdst, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - slide_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 443
    functionName: SLDI_B
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLDI_B(RTYPE, in0, in1, slide_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 445
    functionName: SLDI_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLDI_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 446
    functionName: SLDI_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLDI_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 447
    functionName: SLDI_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLDI_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 457
    functionName: VSHF_B
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSHF_B(RTYPE, in0, in1, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 459
    functionName: VSHF_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSHF_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 460
    functionName: VSHF_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSHF_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 461
    functionName: VSHF_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSHF_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 462
    functionName: VSHF_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSHF_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - mask0
    - ','
    - mask1
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 468
    functionName: VSHF_B2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSHF_B2(RTYPE, in0, in1, in2, in3, mask0, mask1, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 469
    functionName: VSHF_B2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSHF_B2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 470
    functionName: VSHF_B2_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSHF_B2_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 471
    functionName: VSHF_B2_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSHF_B2_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 472
    functionName: VSHF_B2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSHF_B2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - mask0
    - ','
    - mask1
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 485
    functionName: VSHF_H2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSHF_H2(RTYPE, in0, in1, in2, in3, mask0, mask1, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 486
    functionName: VSHF_H2_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSHF_H2_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 487
    functionName: VSHF_H2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSHF_H2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - mult0
    - ','
    - mult1
    - ','
    - cnst0
    - ','
    - cnst1
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 503
    functionName: DOTP_SB2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOTP_SB2(RTYPE, mult0, mult1, cnst0, cnst1, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 504
    functionName: DOTP_SB2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOTP_SB2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - mult0
    - ','
    - mult1
    - ','
    - cnst0
    - ','
    - cnst1
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 520
    functionName: DOTP_SH2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOTP_SH2(RTYPE, mult0, mult1, cnst0, cnst1, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 521
    functionName: DOTP_SH2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOTP_SH2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - mult0
    - ','
    - mult1
    - ','
    - cnst0
    - ','
    - cnst1
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 537
    functionName: DOTP_UW2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOTP_UW2(RTYPE, mult0, mult1, cnst0, cnst1, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 538
    functionName: DOTP_UW2_UD
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOTP_UW2_UD(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - mult0
    - ','
    - mult1
    - ','
    - cnst0
    - ','
    - cnst1
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 554
    functionName: DPADD_SH2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DPADD_SH2(RTYPE, mult0, mult1, cnst0, cnst1, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 555
    functionName: DPADD_SH2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DPADD_SH2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 567
    functionName: CLIP_SH_0_255
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLIP_SH_0_255(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - in0
    - ','
    - in1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 573
    functionName: CLIP_SH2_0_255
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLIP_SH2_0_255(in0, in1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 579
    functionName: CLIP_SH4_0_255
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLIP_SH4_0_255(in0, in1, in2, in3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - in
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 592
    functionName: CLIP_UH_0_255
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLIP_UH_0_255(in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - in0
    - ','
    - in1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 598
    functionName: CLIP_UH2_0_255
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLIP_UH2_0_255(in0, in1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 610
    functionName: CLIP_SW_0_255
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLIP_SW_0_255(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 618
    functionName: CLIP_SW4_0_255
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLIP_SW4_0_255(in0, in1, in2, in3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_hadd_s_d
      Src: /src/libwebp/src/dsp/msa_macro.h:627,1
    - Dst: __msa_splati_d
      Src: /src/libwebp/src/dsp/msa_macro.h:628,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/msa_macro.h:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - v4i32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 632
    functionName: func_hadd_sw_s32
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached:
    - __msa_hadd_s_d
    - __msa_copy_s_w
    - __msa_splati_d
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE func_hadd_sw_s32(v4i32 in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - in
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 634
    functionName: HADD_SW_S32
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HADD_SW_S32(in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_hadd_s_w
      Src: /src/libwebp/src/dsp/msa_macro.h:643,1
    - Dst: __msa_hadd_s_d
      Src: /src/libwebp/src/dsp/msa_macro.h:644,1
    - Dst: __msa_splati_d
      Src: /src/libwebp/src/dsp/msa_macro.h:645,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/msa_macro.h:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - v8i16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 649
    functionName: func_hadd_sh_s32
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached:
    - __msa_hadd_s_d
    - __msa_hadd_s_w
    - __msa_copy_s_w
    - __msa_splati_d
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE func_hadd_sh_s32(v8i16 in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - in
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 651
    functionName: HADD_SH_S32
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HADD_SH_S32(in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_hadd_u_w
      Src: /src/libwebp/src/dsp/msa_macro.h:661,1
    - Dst: __msa_hadd_u_d
      Src: /src/libwebp/src/dsp/msa_macro.h:662,1
    - Dst: __msa_splati_d
      Src: /src/libwebp/src/dsp/msa_macro.h:663,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/msa_macro.h:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - in
    argTypes:
    - v8u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 667
    functionName: func_hadd_uh_u32
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached:
    - __msa_splati_d
    - __msa_hadd_u_w
    - __msa_copy_s_w
    - __msa_hadd_u_d
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE func_hadd_uh_u32(v8u16 in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - in
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 669
    functionName: HADD_UH_U32
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HADD_UH_U32(in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 683
    functionName: HADD_SH2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HADD_SH2(RTYPE, in0, in1, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 684
    functionName: HADD_SH2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HADD_SH2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 690
    functionName: HADD_SH4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HADD_SH4(RTYPE, in0, in1, in2, in3, out0, out1, out2, out3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 691
    functionName: HADD_SH4_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HADD_SH4_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 705
    functionName: HSUB_UB2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HSUB_UB2(RTYPE, in0, in1, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 706
    functionName: HSUB_UB2_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HSUB_UB2_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 707
    functionName: HSUB_UB2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HSUB_UB2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 708
    functionName: HSUB_UB2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HSUB_UB2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 720
    functionName: INSERT_W2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSERT_W2(RTYPE, in0, in1, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 721
    functionName: INSERT_W2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSERT_W2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 722
    functionName: INSERT_W2_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSERT_W2_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 730
    functionName: INSERT_W4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSERT_W4(RTYPE, in0, in1, in2, in3, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 731
    functionName: INSERT_W4_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSERT_W4_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 732
    functionName: INSERT_W4_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSERT_W4_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 733
    functionName: INSERT_W4_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSERT_W4_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 746
    functionName: INSERT_D2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSERT_D2(RTYPE, in0, in1, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 747
    functionName: INSERT_D2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSERT_D2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 748
    functionName: INSERT_D2_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSERT_D2_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 761
    functionName: ILVEV_B2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_B2(RTYPE, in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 762
    functionName: ILVEV_B2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_B2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 763
    functionName: ILVEV_B2_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_B2_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 764
    functionName: ILVEV_B2_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_B2_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 765
    functionName: ILVEV_B2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_B2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 766
    functionName: ILVEV_B2_SD
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_B2_SD(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 779
    functionName: ILVOD_B2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVOD_B2(RTYPE, in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 780
    functionName: ILVOD_B2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVOD_B2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 781
    functionName: ILVOD_B2_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVOD_B2_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 782
    functionName: ILVOD_B2_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVOD_B2_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 783
    functionName: ILVOD_B2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVOD_B2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 784
    functionName: ILVOD_B2_SD
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVOD_B2_SD(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 797
    functionName: ILVEV_H2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_H2(RTYPE, in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 798
    functionName: ILVEV_H2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_H2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 799
    functionName: ILVEV_H2_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_H2_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 800
    functionName: ILVEV_H2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_H2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 801
    functionName: ILVEV_H2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_H2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 814
    functionName: ILVOD_H2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVOD_H2(RTYPE, in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 815
    functionName: ILVOD_H2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVOD_H2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 816
    functionName: ILVOD_H2_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVOD_H2_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 817
    functionName: ILVOD_H2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVOD_H2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 818
    functionName: ILVOD_H2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVOD_H2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 831
    functionName: ILVEV_W2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_W2(RTYPE, in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 832
    functionName: ILVEV_W2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_W2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 833
    functionName: ILVEV_W2_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_W2_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 834
    functionName: ILVEV_W2_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_W2_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 835
    functionName: ILVEV_W2_SD
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_W2_SD(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 850
    functionName: ILVEVOD_W2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEVOD_W2(RTYPE, in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 851
    functionName: ILVEVOD_W2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEVOD_W2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 852
    functionName: ILVEVOD_W2_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEVOD_W2_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 853
    functionName: ILVEVOD_W2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEVOD_W2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 854
    functionName: ILVEVOD_W2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEVOD_W2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 869
    functionName: ILVEVOD_H2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEVOD_H2(RTYPE, in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 870
    functionName: ILVEVOD_H2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEVOD_H2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 871
    functionName: ILVEVOD_H2_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEVOD_H2_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 872
    functionName: ILVEVOD_H2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEVOD_H2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 873
    functionName: ILVEVOD_H2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEVOD_H2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 886
    functionName: ILVEV_D2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_D2(RTYPE, in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 887
    functionName: ILVEV_D2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_D2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 888
    functionName: ILVEV_D2_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_D2_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 889
    functionName: ILVEV_D2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_D2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 890
    functionName: ILVEV_D2_SD
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVEV_D2_SD(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 903
    functionName: ILVL_B2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVL_B2(RTYPE, in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 904
    functionName: ILVL_B2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVL_B2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 905
    functionName: ILVL_B2_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVL_B2_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 906
    functionName: ILVL_B2_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVL_B2_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 907
    functionName: ILVL_B2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVL_B2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 908
    functionName: ILVL_B2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVL_B2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 921
    functionName: ILVR_B2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_B2(RTYPE, in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 922
    functionName: ILVR_B2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_B2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 923
    functionName: ILVR_B2_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_B2_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 924
    functionName: ILVR_B2_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_B2_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 925
    functionName: ILVR_B2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_B2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 926
    functionName: ILVR_B2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_B2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 27
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - in4
    - ','
    - in5
    - ','
    - in6
    - ','
    - in7
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 933
    functionName: ILVR_B4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "ILVR_B4(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, out0, out1,
      \\\n                out2, out3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 934
    functionName: ILVR_B4_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_B4_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 935
    functionName: ILVR_B4_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_B4_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 936
    functionName: ILVR_B4_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_B4_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 937
    functionName: ILVR_B4_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_B4_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 938
    functionName: ILVR_B4_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_B4_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 951
    functionName: ILVR_H2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_H2(RTYPE, in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 952
    functionName: ILVR_H2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_H2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 953
    functionName: ILVR_H2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_H2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 954
    functionName: ILVR_H2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_H2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 27
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - in4
    - ','
    - in5
    - ','
    - in6
    - ','
    - in7
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 961
    functionName: ILVR_H4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "ILVR_H4(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, out0, out1,
      \\\n                out2, out3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 962
    functionName: ILVR_H4_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_H4_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 963
    functionName: ILVR_H4_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_H4_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 964
    functionName: ILVR_H4_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_H4_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 977
    functionName: ILVR_D2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_D2(RTYPE, in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 978
    functionName: ILVR_D2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_D2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 979
    functionName: ILVR_D2_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_D2_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 980
    functionName: ILVR_D2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_D2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 27
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - in4
    - ','
    - in5
    - ','
    - in6
    - ','
    - in7
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 987
    functionName: ILVR_D4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "ILVR_D4(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, out0, out1,
      \\\n                out2, out3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 988
    functionName: ILVR_D4_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_D4_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 988
    functionDepth: 0
    functionLinenumber: 988
    functionLinenumberEnd: 989
    functionName: ILVR_D4_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_D4_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 997
    functionDepth: 0
    functionLinenumber: 997
    functionLinenumberEnd: 1002
    functionName: ILVRL_B2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVRL_B2(RTYPE, in0, in1, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1003
    functionName: ILVRL_B2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVRL_B2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1004
    functionName: ILVRL_B2_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVRL_B2_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1005
    functionName: ILVRL_B2_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVRL_B2_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1006
    functionName: ILVRL_B2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVRL_B2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1007
    functionName: ILVRL_B2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVRL_B2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1013
    functionName: ILVRL_H2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVRL_H2(RTYPE, in0, in1, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1013
    functionDepth: 0
    functionLinenumber: 1013
    functionLinenumberEnd: 1014
    functionName: ILVRL_H2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVRL_H2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1015
    functionName: ILVRL_H2_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVRL_H2_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1016
    functionName: ILVRL_H2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVRL_H2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1017
    functionName: ILVRL_H2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVRL_H2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1018
    functionName: ILVRL_H2_UW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVRL_H2_UW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1024
    functionName: ILVRL_W2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVRL_W2(RTYPE, in0, in1, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1025
    functionName: ILVRL_W2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVRL_W2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1025
    functionDepth: 0
    functionLinenumber: 1025
    functionLinenumberEnd: 1026
    functionName: ILVRL_W2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVRL_W2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1027
    functionName: ILVRL_W2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVRL_W2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1028
    functionName: ILVRL_W2_UW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVRL_W2_UW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1042
    functionName: PCKEV_B2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_B2(RTYPE, in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1043
    functionName: PCKEV_B2_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_B2_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1044
    functionName: PCKEV_B2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_B2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1044
    functionDepth: 0
    functionLinenumber: 1044
    functionLinenumberEnd: 1045
    functionName: PCKEV_B2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_B2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1045
    functionDepth: 0
    functionLinenumber: 1045
    functionLinenumberEnd: 1046
    functionName: PCKEV_B2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_B2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 27
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - in4
    - ','
    - in5
    - ','
    - in6
    - ','
    - in7
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1053
    functionName: PCKEV_B4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "PCKEV_B4(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, out0, out1,
      \\\n                 out2, out3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1053
    functionDepth: 0
    functionLinenumber: 1053
    functionLinenumberEnd: 1054
    functionName: PCKEV_B4_SB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_B4_SB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1054
    functionDepth: 0
    functionLinenumber: 1054
    functionLinenumberEnd: 1055
    functionName: PCKEV_B4_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_B4_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1056
    functionName: PCKEV_B4_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_B4_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1057
    functionName: PCKEV_B4_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_B4_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1066
    functionDepth: 0
    functionLinenumber: 1066
    functionLinenumberEnd: 1071
    functionName: PCKEV_H2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_H2(RTYPE, in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1071
    functionDepth: 0
    functionLinenumber: 1071
    functionLinenumberEnd: 1072
    functionName: PCKEV_H2_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_H2_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1073
    functionName: PCKEV_H2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_H2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1073
    functionDepth: 0
    functionLinenumber: 1073
    functionLinenumberEnd: 1074
    functionName: PCKEV_H2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_H2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1075
    functionName: PCKEV_H2_UW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_H2_UW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1084
    functionDepth: 0
    functionLinenumber: 1084
    functionLinenumberEnd: 1089
    functionName: PCKEV_W2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_W2(RTYPE, in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1090
    functionName: PCKEV_W2_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_W2_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1091
    functionName: PCKEV_W2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_W2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1091
    functionDepth: 0
    functionLinenumber: 1091
    functionLinenumberEnd: 1092
    functionName: PCKEV_W2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_W2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1093
    functionName: PCKEV_W2_UW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_W2_UW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1102
    functionDepth: 0
    functionLinenumber: 1102
    functionLinenumberEnd: 1107
    functionName: PCKOD_H2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKOD_H2(RTYPE, in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1108
    functionName: PCKOD_H2_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKOD_H2_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1109
    functionName: PCKOD_H2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKOD_H2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1110
    functionName: PCKOD_H2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKOD_H2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1111
    functionName: PCKOD_H2_UW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKOD_H2_UW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - shift_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1124
    functionName: SRAI_W2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAI_W2(RTYPE, in0, in1, shift_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1124
    functionDepth: 0
    functionLinenumber: 1124
    functionLinenumberEnd: 1125
    functionName: SRAI_W2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAI_W2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1125
    functionDepth: 0
    functionLinenumber: 1125
    functionLinenumberEnd: 1126
    functionName: SRAI_W2_UW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAI_W2_UW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - shift_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1127
    functionDepth: 0
    functionLinenumber: 1127
    functionLinenumberEnd: 1132
    functionName: SRAI_W4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAI_W4(RTYPE, in0, in1, in2, in3, shift_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1133
    functionName: SRAI_W4_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAI_W4_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1133
    functionDepth: 0
    functionLinenumber: 1133
    functionLinenumberEnd: 1134
    functionName: SRAI_W4_UW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAI_W4_UW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - shift_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1142
    functionDepth: 0
    functionLinenumber: 1142
    functionLinenumberEnd: 1147
    functionName: SRAI_H2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAI_H2(RTYPE, in0, in1, shift_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1147
    functionDepth: 0
    functionLinenumber: 1147
    functionLinenumberEnd: 1148
    functionName: SRAI_H2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAI_H2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1148
    functionDepth: 0
    functionLinenumber: 1148
    functionLinenumberEnd: 1149
    functionName: SRAI_H2_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAI_H2_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - shift
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1157
    functionDepth: 0
    functionLinenumber: 1157
    functionLinenumberEnd: 1162
    functionName: SRARI_W2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRARI_W2(RTYPE, in0, in1, shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1162
    functionDepth: 0
    functionLinenumber: 1162
    functionLinenumberEnd: 1163
    functionName: SRARI_W2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRARI_W2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - shift
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1169
    functionName: SRARI_W4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRARI_W4(RTYPE, in0, in1, in2, in3, shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1170
    functionName: SRARI_W4_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRARI_W4_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1170
    functionDepth: 0
    functionLinenumber: 1170
    functionLinenumberEnd: 1171
    functionName: SRARI_W4_UW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRARI_W4_UW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1172
    functionName: SRARI_W4_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRARI_W4_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - shift
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1188
    functionName: SRAR_D2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAR_D2(RTYPE, in0, in1, shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1188
    functionDepth: 0
    functionLinenumber: 1188
    functionLinenumberEnd: 1189
    functionName: SRAR_D2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAR_D2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1190
    functionName: SRAR_D2_SD
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAR_D2_SD(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1190
    functionDepth: 0
    functionLinenumber: 1190
    functionLinenumberEnd: 1191
    functionName: SRAR_D2_UD
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAR_D2_UD(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - shift
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1192
    functionDepth: 0
    functionLinenumber: 1192
    functionLinenumberEnd: 1197
    functionName: SRAR_D4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAR_D4(RTYPE, in0, in1, in2, in3, shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1197
    functionDepth: 0
    functionLinenumber: 1197
    functionLinenumberEnd: 1198
    functionName: SRAR_D4_SD
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAR_D4_SD(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1198
    functionDepth: 0
    functionLinenumber: 1198
    functionLinenumberEnd: 1199
    functionName: SRAR_D4_UD
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRAR_D4_UD(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1206
    functionDepth: 0
    functionLinenumber: 1206
    functionLinenumberEnd: 1211
    functionName: ADDVI_H2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDVI_H2(RTYPE, in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1211
    functionDepth: 0
    functionLinenumber: 1211
    functionLinenumberEnd: 1212
    functionName: ADDVI_H2_SH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDVI_H2_SH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1212
    functionDepth: 0
    functionLinenumber: 1212
    functionLinenumberEnd: 1213
    functionName: ADDVI_H2_UH
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDVI_H2_UH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1220
    functionDepth: 0
    functionLinenumber: 1220
    functionLinenumberEnd: 1225
    functionName: ADDVI_W2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDVI_W2(RTYPE, in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1225
    functionDepth: 0
    functionLinenumber: 1225
    functionLinenumberEnd: 1226
    functionName: ADDVI_W2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDVI_W2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1233
    functionDepth: 0
    functionLinenumber: 1233
    functionLinenumberEnd: 1238
    functionName: FILL_W2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILL_W2(RTYPE, in0, in1, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1238
    functionDepth: 0
    functionLinenumber: 1238
    functionLinenumberEnd: 1239
    functionName: FILL_W2_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILL_W2_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1251
    functionName: ADD2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD2(in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - in4
    - ','
    - in5
    - ','
    - in6
    - ','
    - in7
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1252
    functionDepth: 0
    functionLinenumber: 1252
    functionLinenumberEnd: 1257
    functionName: ADD4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD4(in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1264
    functionDepth: 0
    functionLinenumber: 1264
    functionLinenumberEnd: 1269
    functionName: SUB2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUB2(in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - in4
    - ','
    - in5
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1270
    functionDepth: 0
    functionLinenumber: 1270
    functionLinenumberEnd: 1276
    functionName: SUB3
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUB3(in0, in1, in2, in3, in4, in5, out0, out1, out2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - in4
    - ','
    - in5
    - ','
    - in6
    - ','
    - in7
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1277
    functionDepth: 0
    functionLinenumber: 1277
    functionLinenumberEnd: 1284
    functionName: SUB4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUB4(in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1298
    functionName: ADDSUB2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDSUB2(in0, in1, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1310
    functionName: MUL2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL2(in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - in4
    - ','
    - in5
    - ','
    - in6
    - ','
    - in7
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1311
    functionDepth: 0
    functionLinenumber: 1311
    functionLinenumberEnd: 1316
    functionName: MUL4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL4(in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - in
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1325
    functionDepth: 0
    functionLinenumber: 1325
    functionLinenumberEnd: 1330
    functionName: UNPCK_R_SH_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNPCK_R_SH_SW(in, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - in
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1342
    functionDepth: 0
    functionLinenumber: 1342
    functionLinenumberEnd: 1347
    functionName: UNPCK_SH_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNPCK_SH_SW(in, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1353
    functionDepth: 0
    functionLinenumber: 1353
    functionLinenumberEnd: 1360
    functionName: BUTTERFLY_4
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUTTERFLY_4(in0, in1, in2, in3, out0, out1, out2, out3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 41
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - in4
    - ','
    - in5
    - ','
    - in6
    - ','
    - in7
    - ','
    - in8
    - ','
    - in9
    - ','
    - in10
    - ','
    - in11
    - ','
    - in12
    - ','
    - in13
    - ','
    - in14
    - ','
    - in15
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1367
    functionDepth: 0
    functionLinenumber: 1367
    functionLinenumberEnd: 1383
    functionName: TRANSPOSE16x4_UB_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TRANSPOSE16x4_UB_UB(in0, in1, in2, in3, in4, in5, in6, in7, in8, in9,
      \\\n                            in10, in11, in12, in13, in14, in15, out0, out1,
      \  \\\n                            out2, out3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - in4
    - ','
    - in5
    - ','
    - in6
    - ','
    - in7
    - ','
    - in8
    - ','
    - in9
    - ','
    - in10
    - ','
    - in11
    - ','
    - in12
    - ','
    - in13
    - ','
    - in14
    - ','
    - in15
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - ','
    - out4
    - ','
    - out5
    - ','
    - out6
    - ','
    - out7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1413
    functionName: TRANSPOSE16x8_UB_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TRANSPOSE16x8_UB_UB(in0, in1, in2, in3, in4, in5, in6, in7, in8, in9,
      \\\n                            in10, in11, in12, in13, in14, in15, out0, out1,
      \  \\\n                            out2, out3, out4, out5, out6, out7)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1419
    functionDepth: 0
    functionLinenumber: 1419
    functionLinenumberEnd: 1429
    functionName: TRANSPOSE4x4_W
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRANSPOSE4x4_W(RTYPE, in0, in1, in2, in3, out0, out1, out2, out3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1429
    functionDepth: 0
    functionLinenumber: 1429
    functionLinenumberEnd: 1430
    functionName: TRANSPOSE4x4_SW_SW
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRANSPOSE4x4_SW_SW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - pdst
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1436
    functionDepth: 0
    functionLinenumber: 1436
    functionLinenumberEnd: 1453
    functionName: ADDBLK_ST4x4_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDBLK_ST4x4_UB(in0, in1, in2, in3, pdst, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - pdst
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1459
    functionDepth: 0
    functionLinenumber: 1459
    functionLinenumberEnd: 1465
    functionName: PCKEV_ST4x4_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCKEV_ST4x4_UB(in0, in1, in2, in3, pdst, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - RTYPE
    - ','
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1474
    functionDepth: 0
    functionLinenumber: 1474
    functionLinenumberEnd: 1479
    functionName: AVER_UB2
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AVER_UB2(RTYPE, in0, in1, in2, in3, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1479
    functionDepth: 0
    functionLinenumber: 1479
    functionLinenumberEnd: 1480
    functionName: AVER_UB2_UB
    functionSourceFile: /src/libwebp/src/dsp/msa_macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AVER_UB2_UB(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - in
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: DCHECK
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DCHECK(in, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: U8_TO_S16
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U8_TO_S16(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: LOAD_U8_TO_S16
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_U8_TO_S16(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: SHIFT_RIGHT_N_Q
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHIFT_RIGHT_N_Q(A, N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: SHIFT_LEFT_N_Q
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHIFT_LEFT_N_Q(A, N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: ROTATE_LEFT_N
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_LEFT_N(A, N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: ROTATE_RIGHT_N
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_RIGHT_N(A, N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/filters_neon.c:51,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:53,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:54,1
    - Dst: vsubq_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:55,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - src
    - pred
    - WEBP_RESTRICT
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts:
    - condition: (length >= 0)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/libwebp/src/dsp/filters_neon.c
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: PredictLine_NEON
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 0
    functionsReached:
    - assert
    - vsubq_u8
    - vld1q_u8
    - vst1q_u8
    linkageType: ''
    returnType: void
    signature: "void PredictLine_NEON(const uint8_t* src, const uint8_t* pred,\n                             uint8_t*
      WEBP_RESTRICT dst, int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PredictLine_NEON
      Src: /src/libwebp/src/dsp/filters_neon.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: PredictLineLeft_NEON
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 0
    functionsReached:
    - PredictLine_NEON
    linkageType: ''
    returnType: void
    signature: "void PredictLineLeft_NEON(const uint8_t* WEBP_RESTRICT src,\n                                 uint8_t*
      WEBP_RESTRICT dst, int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK
      Src: /src/libwebp/src/dsp/filters_neon.c:75,1
    - Dst: PredictLineLeft_NEON
      Src: /src/libwebp/src/dsp/filters_neon.c:79,1
    - Dst: PredictLineLeft_NEON
      Src: /src/libwebp/src/dsp/filters_neon.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 91
    functionName: DoHorizontalFilter_NEON
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 0
    functionsReached:
    - PredictLineLeft_NEON
    - DCHECK
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoHorizontalFilter_NEON(const uint8_t* WEBP_RESTRICT in,\n
      \                                               int width, int height,\n                                                int
      stride,\n                                                uint8_t* WEBP_RESTRICT
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoHorizontalFilter_NEON
      Src: /src/libwebp/src/dsp/filters_neon.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT filtered_data
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: HorizontalFilter_NEON
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 1
    functionsReached:
    - DoHorizontalFilter_NEON
    linkageType: ''
    returnType: void
    signature: "void HorizontalFilter_NEON(const uint8_t* WEBP_RESTRICT data, int
      width,\n                                  int height, int stride,\n                                  uint8_t*
      WEBP_RESTRICT filtered_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK
      Src: /src/libwebp/src/dsp/filters_neon.c:106,1
    - Dst: PredictLineLeft_NEON
      Src: /src/libwebp/src/dsp/filters_neon.c:111,1
    - Dst: PredictLine_NEON
      Src: /src/libwebp/src/dsp/filters_neon.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 121
    functionName: DoVerticalFilter_NEON
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 0
    functionsReached:
    - PredictLineLeft_NEON
    - PredictLine_NEON
    - DCHECK
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoVerticalFilter_NEON(const uint8_t* WEBP_RESTRICT in,\n
      \                                             int width, int height, int stride,\n
      \                                             uint8_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoVerticalFilter_NEON
      Src: /src/libwebp/src/dsp/filters_neon.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT filtered_data
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: VerticalFilter_NEON
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 1
    functionsReached:
    - DoVerticalFilter_NEON
    linkageType: ''
    returnType: void
    signature: "void VerticalFilter_NEON(const uint8_t* WEBP_RESTRICT data, int width,\n
      \                               int height, int stride,\n                                uint8_t*
      WEBP_RESTRICT filtered_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: GradientPredictor_C
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GradientPredictor_C(uint8_t a, uint8_t b, uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:143,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:144,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/filters_neon.c:145,1
    - Dst: vaddl_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:145,1
    - Dst: LOAD_U8_TO_S16
      Src: /src/libwebp/src/dsp/filters_neon.c:146,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/filters_neon.c:147,1
    - Dst: vsubq_s16
      Src: /src/libwebp/src/dsp/filters_neon.c:147,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:148,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:149,1
    - Dst: vsub_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:149,1
    - Dst: GradientPredictor_C
      Src: /src/libwebp/src/dsp/filters_neon.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - row
    - top
    - out
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 154
    functionName: GradientPredictDirect_NEON
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 0
    functionsReached:
    - LOAD_U8_TO_S16
    - vaddl_u8
    - vst1_u8
    - vreinterpretq_s16_u16
    - vsub_u8
    - vld1_u8
    - vsubq_s16
    - GradientPredictor_C
    - vqmovun_s16
    linkageType: ''
    returnType: void
    signature: "void GradientPredictDirect_NEON(const uint8_t* const row,\n                                       const
      uint8_t* const top,\n                                       uint8_t* WEBP_RESTRICT
      const out,\n                                       int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK
      Src: /src/libwebp/src/dsp/filters_neon.c:160,1
    - Dst: PredictLineLeft_NEON
      Src: /src/libwebp/src/dsp/filters_neon.c:164,1
    - Dst: GradientPredictDirect_NEON
      Src: /src/libwebp/src/dsp/filters_neon.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 175
    functionName: DoGradientFilter_NEON
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 0
    functionsReached:
    - PredictLineLeft_NEON
    - GradientPredictDirect_NEON
    - DCHECK
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoGradientFilter_NEON(const uint8_t* WEBP_RESTRICT in,\n
      \                                             int width, int height, int stride,\n
      \                                             uint8_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoGradientFilter_NEON
      Src: /src/libwebp/src/dsp/filters_neon.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT filtered_data
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: GradientFilter_NEON
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 1
    functionsReached:
    - DoGradientFilter_NEON
    linkageType: ''
    returnType: void
    signature: "void GradientFilter_NEON(const uint8_t* WEBP_RESTRICT data, int width,\n
      \                               int height, int stride,\n                                uint8_t*
      WEBP_RESTRICT filtered_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:191,1
    - Dst: vsetq_lane_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:195,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:197,1
    - Dst: vaddq_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:198,1
    - Dst: SHIFT_LEFT_N_Q
      Src: /src/libwebp/src/dsp/filters_neon.c:199,1
    - Dst: vaddq_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:200,1
    - Dst: SHIFT_LEFT_N_Q
      Src: /src/libwebp/src/dsp/filters_neon.c:201,1
    - Dst: vaddq_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:202,1
    - Dst: SHIFT_LEFT_N_Q
      Src: /src/libwebp/src/dsp/filters_neon.c:203,1
    - Dst: vaddq_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:204,1
    - Dst: SHIFT_LEFT_N_Q
      Src: /src/libwebp/src/dsp/filters_neon.c:205,1
    - Dst: vaddq_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:206,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:207,1
    - Dst: SHIFT_RIGHT_N_Q
      Src: /src/libwebp/src/dsp/filters_neon.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - prev
    - in
    - out
    - width
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 211
    functionName: HorizontalUnfilter_NEON
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 0
    functionsReached:
    - vaddq_u8
    - vst1q_u8
    - vsetq_lane_u8
    - SHIFT_RIGHT_N_Q
    - vdupq_n_u8
    - vld1q_u8
    - SHIFT_LEFT_N_Q
    linkageType: ''
    returnType: void
    signature: "void HorizontalUnfilter_NEON(const uint8_t* prev, const uint8_t* in,\n
      \                                   uint8_t* out, int width)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HorizontalUnfilter_NEON
      Src: /src/libwebp/src/dsp/filters_neon.c:216,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/filters_neon.c:219,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:221,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:222,1
    - Dst: vaddq_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:223,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/filters_neon.c:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - prev
    - in
    - out
    - width
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts:
    - condition: (width >= 0)
      pos:
        line_end: 218
        line_start: 218
        source_file: /src/libwebp/src/dsp/filters_neon.c
    constantsTouched: []
    func_position:
      end: 228
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 228
    functionName: VerticalUnfilter_NEON
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 0
    functionsReached:
    - vaddq_u8
    - vst1q_u8
    - assert
    - HorizontalUnfilter_NEON
    - vld1q_u8
    linkageType: ''
    returnType: void
    signature: "void VerticalUnfilter_NEON(const uint8_t* prev, const uint8_t* in,\n
      \                                 uint8_t* out, int width)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: GRAD_PROCESS_LANE
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GRAD_PROCESS_LANE(L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HorizontalUnfilter_NEON
      Src: /src/libwebp/src/dsp/filters_neon.c:279,1
    - Dst: GradientPredictInverse_NEON
      Src: /src/libwebp/src/dsp/filters_neon.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - prev
    - in
    - out
    - width
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 284
    functionName: GradientUnfilter_NEON
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 0
    functionsReached:
    - HorizontalUnfilter_NEON
    - GradientPredictInverse_NEON
    linkageType: ''
    returnType: void
    signature: "void GradientUnfilter_NEON(const uint8_t* prev, const uint8_t* in,\n
      \                                 uint8_t* out, int width)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 303
    functionName: VP8FiltersInitNEON
    functionSourceFile: /src/libwebp/src/dsp/filters_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8FiltersInitNEON(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argb_data
    - num_pixels
    argTypes:
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 73
    functionName: SubtractGreenFromBlueAndRed_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SubtractGreenFromBlueAndRed_MIPSdspR2(uint32_t* argb_data,\n
      \                                                 int num_pixels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - color_pred
    - color
    argTypes:
    - int8_t
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: ColorTransformDelta
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ColorTransformDelta(int8_t color_pred,\n                                                int8_t
      color)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ColorTransformDelta
      Src: /src/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c:153,1
    - Dst: ColorTransformDelta
      Src: /src/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c:155,1
    - Dst: ColorTransformDelta
      Src: /src/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - m
    - WEBP_RESTRICT
    - num_pixels
    argTypes:
    - VP8LMultipliers*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 160
    functionName: TransformColor_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - ColorTransformDelta
    linkageType: ''
    returnType: void
    signature: "void TransformColor_MIPSdspR2(\n    const VP8LMultipliers* WEBP_RESTRICT
      const m, uint32_t* WEBP_RESTRICT data,\n    int num_pixels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ColorTransformDelta
      Src: /src/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c:168,1
    - Dst: ColorTransformDelta
      Src: /src/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - green_to_blue
    - red_to_blue
    - argb
    argTypes:
    - uint8_t
    - uint8_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: TransformColorBlue
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - ColorTransformDelta
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE TransformColorBlue(uint8_t green_to_blue,\n                                              uint8_t
      red_to_blue,\n                                              uint32_t argb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TransformColorBlue
      Src: /src/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 7
    argNames:
    - WEBP_RESTRICT
    - stride
    - tile_width
    - tile_height
    - green_to_blue
    - red_to_blue
    - histo
    argTypes:
    - uint32_t*
    - int
    - int
    - int
    - int
    - int
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 212
    functionName: CollectColorBlueTransforms_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - TransformColorBlue
    linkageType: ''
    returnType: void
    signature: "void CollectColorBlueTransforms_MIPSdspR2(\n    const uint32_t* WEBP_RESTRICT
      argb, int stride, int tile_width,\n    int tile_height, int green_to_blue, int
      red_to_blue, uint32_t histo[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ColorTransformDelta
      Src: /src/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - green_to_red
    - argb
    argTypes:
    - uint8_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: TransformColorRed
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - ColorTransformDelta
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE TransformColorRed(uint8_t green_to_red,\n                                             uint32_t
      argb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TransformColorRed
      Src: /src/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c:250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - stride
    - tile_width
    - tile_height
    - green_to_red
    - histo
    argTypes:
    - uint32_t*
    - int
    - int
    - int
    - int
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 253
    functionName: CollectColorRedTransforms_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - TransformColorRed
    linkageType: ''
    returnType: void
    signature: "void CollectColorRedTransforms_MIPSdspR2(\n    const uint32_t* WEBP_RESTRICT
      argb, int stride, int tile_width,\n    int tile_height, int green_to_red, uint32_t
      histo[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: VP8LEncDspInitMIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8LEncDspInitMIPSdspR2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - in
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: DCHECK
    functionSourceFile: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DCHECK(in, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - SRC
    - ','
    - DST
    - ','
    - LENGTH
    - ','
    - INVERSE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 107
    functionName: DO_PREDICT_LINE
    functionSourceFile: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_PREDICT_LINE(SRC, DST, LENGTH, INVERSE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_PREDICT_LINE
      Src: /src/libwebp/src/dsp/filters_mips_dsp_r2.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: PredictLine_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - DO_PREDICT_LINE
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PredictLine_MIPSdspR2(const uint8_t* WEBP_RESTRICT src,\n
      \                                             uint8_t* WEBP_RESTRICT dst,\n
      \                                             int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - SRC
    - ','
    - PRED
    - ','
    - DST
    - ','
    - LENGTH
    - ','
    - INVERSE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 175
    functionName: DO_PREDICT_LINE_VERTICAL
    functionSourceFile: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_PREDICT_LINE_VERTICAL(SRC, PRED, DST, LENGTH, INVERSE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - SRC
    - ','
    - PRED
    - ','
    - DST
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 189
    functionName: PREDICT_LINE_ONE_PASS
    functionSourceFile: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREDICT_LINE_ONE_PASS(SRC, PRED, DST)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK
      Src: /src/libwebp/src/dsp/filters_mips_dsp_r2.c:210,1
    - Dst: PredictLine_MIPSdspR2
      Src: /src/libwebp/src/dsp/filters_mips_dsp_r2.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 221
    functionName: DoHorizontalFilter_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - PredictLine_MIPSdspR2
    - DCHECK
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoHorizontalFilter_MIPSdspR2(\n    const uint8_t* WEBP_RESTRICT
      in, int width, int height, int stride,\n    uint8_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoHorizontalFilter_MIPSdspR2
      Src: /src/libwebp/src/dsp/filters_mips_dsp_r2.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT filtered_data
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: HorizontalFilter_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
    functionUses: 1
    functionsReached:
    - DoHorizontalFilter_MIPSdspR2
    linkageType: ''
    returnType: void
    signature: "void HorizontalFilter_MIPSdspR2(const uint8_t* WEBP_RESTRICT data,\n
      \                                      int width, int height, int stride,\n
      \                                      uint8_t* WEBP_RESTRICT filtered_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK
      Src: /src/libwebp/src/dsp/filters_mips_dsp_r2.c:248,1
    - Dst: PredictLine_MIPSdspR2
      Src: /src/libwebp/src/dsp/filters_mips_dsp_r2.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 259
    functionName: DoVerticalFilter_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - PredictLine_MIPSdspR2
    - DCHECK
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoVerticalFilter_MIPSdspR2(\n    const uint8_t* WEBP_RESTRICT
      in, int width, int height, int stride,\n    uint8_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoVerticalFilter_MIPSdspR2
      Src: /src/libwebp/src/dsp/filters_mips_dsp_r2.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT filtered_data
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: VerticalFilter_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
    functionUses: 1
    functionsReached:
    - DoVerticalFilter_MIPSdspR2
    linkageType: ''
    returnType: void
    signature: "void VerticalFilter_MIPSdspR2(const uint8_t* WEBP_RESTRICT data,\n
      \                                    int width, int height, int stride,\n                                     uint8_t*
      WEBP_RESTRICT filtered_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 282
    functionName: GradientPredictor_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GradientPredictor_MIPSdspR2(uint8_t a, uint8_t b, uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - PREDS
    - ','
    - OPERATION
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 298
    functionName: FILTER_LINE_BY_LINE
    functionSourceFile: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILTER_LINE_BY_LINE(PREDS, OPERATION)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK
      Src: /src/libwebp/src/dsp/filters_mips_dsp_r2.c:304,1
    - Dst: PredictLine_MIPSdspR2
      Src: /src/libwebp/src/dsp/filters_mips_dsp_r2.c:308,1
    - Dst: FILTER_LINE_BY_LINE
      Src: /src/libwebp/src/dsp/filters_mips_dsp_r2.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 315
    functionName: DoGradientFilter_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - PredictLine_MIPSdspR2
    - FILTER_LINE_BY_LINE
    - DCHECK
    linkageType: ''
    returnType: void
    signature: "void DoGradientFilter_MIPSdspR2(const uint8_t* WEBP_RESTRICT in,\n
      \                                      int width, int height, int stride,\n
      \                                      uint8_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoGradientFilter_MIPSdspR2
      Src: /src/libwebp/src/dsp/filters_mips_dsp_r2.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT filtered_data
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: GradientFilter_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
    functionUses: 1
    functionsReached:
    - DoGradientFilter_MIPSdspR2
    linkageType: ''
    returnType: void
    signature: "void GradientFilter_MIPSdspR2(const uint8_t* WEBP_RESTRICT data,\n
      \                                    int width, int height, int stride,\n                                     uint8_t*
      WEBP_RESTRICT filtered_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_PREDICT_LINE
      Src: /src/libwebp/src/dsp/filters_mips_dsp_r2.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - prev
    - in
    - out
    - width
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: HorizontalUnfilter_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - DO_PREDICT_LINE
    linkageType: ''
    returnType: void
    signature: "void HorizontalUnfilter_MIPSdspR2(const uint8_t* prev, const uint8_t*
      in,\n                                         uint8_t* out, int width)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HorizontalUnfilter_MIPSdspR2
      Src: /src/libwebp/src/dsp/filters_mips_dsp_r2.c:335,1
    - Dst: DO_PREDICT_LINE_VERTICAL
      Src: /src/libwebp/src/dsp/filters_mips_dsp_r2.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - prev
    - in
    - out
    - width
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 339
    functionName: VerticalUnfilter_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - HorizontalUnfilter_MIPSdspR2
    - DO_PREDICT_LINE_VERTICAL
    linkageType: ''
    returnType: void
    signature: "void VerticalUnfilter_MIPSdspR2(const uint8_t* prev, const uint8_t*
      in,\n                                       uint8_t* out, int width)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HorizontalUnfilter_MIPSdspR2
      Src: /src/libwebp/src/dsp/filters_mips_dsp_r2.c:344,1
    - Dst: GradientPredictor_MIPSdspR2
      Src: /src/libwebp/src/dsp/filters_mips_dsp_r2.c:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - prev
    - in
    - out
    - width
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 355
    functionName: GradientUnfilter_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - HorizontalUnfilter_MIPSdspR2
    - GradientPredictor_MIPSdspR2
    linkageType: ''
    returnType: void
    signature: "void GradientUnfilter_MIPSdspR2(const uint8_t* prev, const uint8_t*
      in,\n                                       uint8_t* out, int width)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 375
    functionName: VP8FiltersInitMIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8FiltersInitMIPSdspR2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: MULT_FIX
    functionSourceFile: /src/libwebp/src/dsp/rescaler_sse2.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULT_FIX(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: MULT_FIX_FLOOR
    functionSourceFile: /src/libwebp/src/dsp/rescaler_sse2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULT_FIX_FLOOR(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:35,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:36,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:37,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:38,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - out
    argTypes:
    - uint8_t*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: LoadTwoPixels_SSE2
    functionSourceFile: /src/libwebp/src/dsp/rescaler_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_setzero_si128
    - _mm_srli_si128
    - _mm_loadl_epi64
    - _mm_unpacklo_epi16
    linkageType: ''
    returnType: void
    signature: void LoadTwoPixels_SSE2(const uint8_t* const src, __m128i* out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:44,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:45,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - out
    argTypes:
    - uint8_t*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: LoadEightPixels_SSE2
    functionSourceFile: /src/libwebp/src/dsp/rescaler_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_loadl_epi64
    - _mm_setzero_si128
    linkageType: ''
    returnType: void
    signature: void LoadEightPixels_SSE2(const uint8_t* const src, __m128i* out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:178,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:179,1
    - Dst: _mm_srli_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:180,1
    - Dst: _mm_srli_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:181,1
    - Dst: _mm_mul_epu32
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:183,1
    - Dst: _mm_mul_epu32
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:184,1
    - Dst: _mm_mul_epu32
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:185,1
    - Dst: _mm_mul_epu32
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - src
    - mult
    - out0
    - out1
    - out2
    - out3
    argTypes:
    - rescaler_t*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 193
    functionName: LoadDispatchAndMult_SSE2
    functionSourceFile: /src/libwebp/src/dsp/rescaler_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_mul_epu32
    - _mm_loadu_si128
    - _mm_srli_epi64
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE LoadDispatchAndMult_SSE2(\n    const rescaler_t* WEBP_RESTRICT
      const src, const __m128i* const mult,\n    __m128i* const out0, __m128i* const
      out1, __m128i* const out2,\n    __m128i* const out3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set_epi32
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:198,1
    - Dst: _mm_set_epi32
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:199,1
    - Dst: _mm_mul_epu32
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:200,1
    - Dst: _mm_mul_epu32
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:201,1
    - Dst: _mm_mul_epu32
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:202,1
    - Dst: _mm_mul_epu32
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:203,1
    - Dst: _mm_add_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:204,1
    - Dst: _mm_add_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:205,1
    - Dst: _mm_add_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:206,1
    - Dst: _mm_add_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:207,1
    - Dst: _mm_srli_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:208,1
    - Dst: _mm_srli_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:209,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:212,1
    - Dst: _mm_slli_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:212,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:214,1
    - Dst: _mm_slli_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:214,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:216,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:217,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:219,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:220,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:221,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:222,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - A0
    - A1
    - A2
    - A3
    - mult
    - dst
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 224
    functionName: ProcessRow_SSE2
    functionSourceFile: /src/libwebp/src/dsp/rescaler_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_slli_epi64
    - _mm_srli_epi64
    - _mm_storel_epi64
    - _mm_packs_epi32
    - _mm_set_epi32
    - _mm_mul_epu32
    - _mm_and_si128
    - _mm_packus_epi16
    - _mm_add_epi64
    - _mm_or_si128
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ProcessRow_SSE2(\n    const __m128i* const A0, const __m128i*
      const A1, const __m128i* const A2,\n    const __m128i* const A3, const __m128i*
      const mult, uint8_t* const dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set_epi32
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:233,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:235,1
    - Dst: WebPRescalerOutputDone
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:235,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:236,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:237,1
    - Dst: LoadDispatchAndMult_SSE2
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:241,1
    - Dst: ProcessRow_SSE2
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:242,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:246,1
    - Dst: WEBP_RESCALER_FRAC
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:250,1
    - Dst: _mm_set_epi32
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:252,1
    - Dst: _mm_set_epi32
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:253,1
    - Dst: _mm_set_epi32
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:254,1
    - Dst: LoadDispatchAndMult_SSE2
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:257,1
    - Dst: LoadDispatchAndMult_SSE2
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:258,1
    - Dst: _mm_add_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:260,1
    - Dst: _mm_add_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:261,1
    - Dst: _mm_add_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:262,1
    - Dst: _mm_add_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:263,1
    - Dst: _mm_add_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:264,1
    - Dst: _mm_add_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:265,1
    - Dst: _mm_add_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:266,1
    - Dst: _mm_add_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:267,1
    - Dst: _mm_srli_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:268,1
    - Dst: _mm_srli_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:269,1
    - Dst: _mm_srli_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:270,1
    - Dst: _mm_srli_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:271,1
    - Dst: ProcessRow_SSE2
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:272,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:278,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - wrk
    argTypes:
    - WebPRescaler*
    assertStmts:
    - condition: (!WebPRescalerOutputDone(wrk))
      pos:
        line_end: 234
        line_start: 234
        source_file: /src/libwebp/src/dsp/rescaler_sse2.c
    - condition: (wrk->y_accum <= 0 && wrk->y_sub + wrk->y_accum >= 0)
      pos:
        line_end: 235
        line_start: 235
        source_file: /src/libwebp/src/dsp/rescaler_sse2.c
    - condition: (wrk->y_expand)
      pos:
        line_end: 236
        line_start: 236
        source_file: /src/libwebp/src/dsp/rescaler_sse2.c
    constantsTouched: []
    func_position:
      end: 282
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 282
    functionName: RescalerExportRowExpand_SSE2
    functionSourceFile: /src/libwebp/src/dsp/rescaler_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_srli_epi64
    - ProcessRow_SSE2
    - assert
    - _mm_set_epi32
    - WEBP_RESCALER_FRAC
    - WebPRescalerOutputDone
    - LoadDispatchAndMult_SSE2
    - MULT_FIX
    - _mm_add_epi64
    linkageType: ''
    returnType: void
    signature: void RescalerExportRowExpand_SSE2(WebPRescaler* const wrk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:291,1
    - Dst: WebPRescalerOutputDone
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:291,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:292,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:293,1
    - Dst: _mm_set_epi32
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:296,1
    - Dst: _mm_set_epi32
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:297,1
    - Dst: LoadDispatchAndMult_SSE2
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:300,1
    - Dst: LoadDispatchAndMult_SSE2
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:301,1
    - Dst: _mm_srli_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:303,1
    - Dst: _mm_srli_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:304,1
    - Dst: _mm_srli_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:305,1
    - Dst: _mm_srli_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:306,1
    - Dst: _mm_sub_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:307,1
    - Dst: _mm_sub_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:308,1
    - Dst: _mm_sub_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:309,1
    - Dst: _mm_sub_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:310,1
    - Dst: _mm_slli_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:311,1
    - Dst: _mm_slli_epi64
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:312,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:313,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:314,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:315,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:316,1
    - Dst: ProcessRow_SSE2
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:317,1
    - Dst: MULT_FIX_FLOOR
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:321,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:322,1
    - Dst: _mm_set_epi32
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:328,1
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:329,1
    - Dst: LoadDispatchAndMult_SSE2
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:332,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:333,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:334,1
    - Dst: ProcessRow_SSE2
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:335,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler_sse2.c:338,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - wrk
    argTypes:
    - WebPRescaler*
    assertStmts:
    - condition: (wrk->y_accum <= 0)
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/libwebp/src/dsp/rescaler_sse2.c
    - condition: (!WebPRescalerOutputDone(wrk))
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/libwebp/src/dsp/rescaler_sse2.c
    - condition: (!wrk->y_expand)
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/libwebp/src/dsp/rescaler_sse2.c
    constantsTouched: []
    func_position:
      end: 343
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 343
    functionName: RescalerExportRowShrink_SSE2
    functionSourceFile: /src/libwebp/src/dsp/rescaler_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_slli_epi64
    - _mm_srli_epi64
    - MULT_FIX_FLOOR
    - ProcessRow_SSE2
    - assert
    - _mm_storeu_si128
    - _mm_setzero_si128
    - _mm_set_epi32
    - WebPRescalerOutputDone
    - _mm_sub_epi64
    - LoadDispatchAndMult_SSE2
    - MULT_FIX
    - _mm_or_si128
    linkageType: ''
    returnType: void
    signature: void RescalerExportRowShrink_SSE2(WebPRescaler* const wrk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 358
    functionName: WebPRescalerDspInitSSE2
    functionSourceFile: /src/libwebp/src/dsp/rescaler_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPRescalerDspInitSSE2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: MULT_FIX
    functionSourceFile: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULT_FIX(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: MULT_FIX_FLOOR
    functionSourceFile: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULT_FIX_FLOOR(x, y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c:40,1
    - Dst: WebPRescalerOutputDone
      Src: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c:40,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c:41,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c:42,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c:43,1
    - Dst: MULT_FIX_FLOOR
      Src: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c:111,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c:112,1
    - Dst: MULT_FIX_FLOOR
      Src: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c:159,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - wrk
    argTypes:
    - WebPRescaler*
    assertStmts:
    - condition: (!WebPRescalerOutputDone(wrk))
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c
    - condition: (!wrk->y_expand)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c
    - condition: (wrk->fxy_scale != 0)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c
    - condition: (wrk->y_accum <= 0)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c
    constantsTouched: []
    func_position:
      end: 164
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 164
    functionName: ExportRowShrink_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPRescalerOutputDone
    - MULT_FIX_FLOOR
    - MULT_FIX
    linkageType: ''
    returnType: void
    signature: void ExportRowShrink_MIPSdspR2(WebPRescaler* const wrk)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c:176,1
    - Dst: WebPRescalerOutputDone
      Src: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c:176,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c:177,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c:178,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c:179,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c:219,1
    - Dst: WEBP_RESCALER_FRAC
      Src: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c:223,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c:288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - wrk
    argTypes:
    - WebPRescaler*
    assertStmts:
    - condition: (!WebPRescalerOutputDone(wrk))
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c
    - condition: (wrk->y_expand)
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c
    - condition: (wrk->y_accum <= 0)
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c
    - condition: (wrk->y_sub != 0)
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c
    constantsTouched: []
    func_position:
      end: 292
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 292
    functionName: ExportRowExpand_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPRescalerOutputDone
    - MULT_FIX
    - WEBP_RESCALER_FRAC
    linkageType: ''
    returnType: void
    signature: void ExportRowExpand_MIPSdspR2(WebPRescaler* const wrk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: WebPRescalerDspInitMIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPRescalerDspInitMIPSdspR2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu_info
    - info_type
    argTypes:
    - int[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: GetCPUInfo
    functionSourceFile: /src/libwebp/src/dsp/cpu.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GetCPUInfo(int cpu_info[4], int info_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu_info
    - info_type
    argTypes:
    - int[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: GetCPUInfo
    functionSourceFile: /src/libwebp/src/dsp/cpu.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GetCPUInfo(int cpu_info[4], int info_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - info
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: GetCPUInfo
    functionSourceFile: /src/libwebp/src/dsp/cpu.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GetCPUInfo(info, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: xgetbv
    functionSourceFile: /src/libwebp/src/dsp/cpu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE xgetbv(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: xgetbv
    functionSourceFile: /src/libwebp/src/dsp/cpu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xgetbv()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: xgetbv
    functionSourceFile: /src/libwebp/src/dsp/cpu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE xgetbv(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: xgetbv
    functionSourceFile: /src/libwebp/src/dsp/cpu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xgetbv()
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - info
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 116
    functionName: CheckSlowModel
    functionSourceFile: /src/libwebp/src/dsp/cpu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CheckSlowModel(int info)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GetCPUInfo
      Src: /src/libwebp/src/dsp/cpu.c:124,1
    - Dst: GetCPUInfo
      Src: /src/libwebp/src/dsp/cpu.c:137,1
    - Dst: CheckSlowModel
      Src: /src/libwebp/src/dsp/cpu.c:146,1
    - Dst: xgetbv
      Src: /src/libwebp/src/dsp/cpu.c:158,1
    - Dst: x86CPUInfo
      Src: /src/libwebp/src/dsp/cpu.c:162,1
    - Dst: GetCPUInfo
      Src: /src/libwebp/src/dsp/cpu.c:163,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 1
    argNames:
    - feature
    argTypes:
    - CPUFeature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 168
    functionName: x86CPUInfo
    functionSourceFile: /src/libwebp/src/dsp/cpu.c
    functionUses: 1
    functionsReached:
    - x86CPUInfo
    - CheckSlowModel
    - xgetbv
    - GetCPUInfo
    linkageType: ''
    returnType: int
    signature: int x86CPUInfo(CPUFeature feature)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: android_getCpuFamily
      Src: /src/libwebp/src/dsp/cpu.c:173,1
    - Dst: android_getCpuFeatures
      Src: /src/libwebp/src/dsp/cpu.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - feature
    argTypes:
    - CPUFeature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 180
    functionName: AndroidCPUInfo
    functionSourceFile: /src/libwebp/src/dsp/cpu.c
    functionUses: 0
    functionsReached:
    - android_getCpuFamily
    - android_getCpuFeatures
    linkageType: ''
    returnType: int
    signature: int AndroidCPUInfo(CPUFeature feature)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - feature
    argTypes:
    - CPUFeature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 209
    functionName: wasmCPUInfo
    functionSourceFile: /src/libwebp/src/dsp/cpu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int wasmCPUInfo(CPUFeature feature)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/libwebp/src/dsp/cpu.c:222,1
    - Dst: fgets
      Src: /src/libwebp/src/dsp/cpu.c:224,1
    - Dst: strncmp
      Src: /src/libwebp/src/dsp/cpu.c:225,1
    - Dst: strstr
      Src: /src/libwebp/src/dsp/cpu.c:226,1
    - Dst: fclose
      Src: /src/libwebp/src/dsp/cpu.c:232,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - feature
    argTypes:
    - CPUFeature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 238
    functionName: armCPUInfo
    functionSourceFile: /src/libwebp/src/dsp/cpu.c
    functionUses: 0
    functionsReached:
    - fgets
    - strncmp
    - strstr
    - fclose
    - fopen
    linkageType: ''
    returnType: int
    signature: int armCPUInfo(CPUFeature feature)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - feature
    argTypes:
    - CPUFeature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 249
    functionName: mipsCPUInfo
    functionSourceFile: /src/libwebp/src/dsp/cpu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mipsCPUInfo(CPUFeature feature)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - feature
    argTypes:
    - CPUFeature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: ppcCPUInfo
    functionSourceFile: /src/libwebp/src/dsp/cpu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ppcCPUInfo(CPUFeature feature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 33
    argNames:
    - (
    - O0
    - ','
    - O1
    - ','
    - O2
    - ','
    - O3
    - ','
    - O4
    - ','
    - O5
    - ','
    - O6
    - ','
    - O7
    - ','
    - I0
    - ','
    - I1
    - ','
    - I2
    - ','
    - I3
    - ','
    - I4
    - ','
    - I5
    - ','
    - I6
    - ','
    - I7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: ADD_SUB_HALVES_X4
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "ADD_SUB_HALVES_X4(O0, O1, O2, O3, O4, O5, O6, O7,                      \\\n
      \                         I0, I1, I2, I3, I4, I5, I6, I7)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - IO0
    - ','
    - IO1
    - ','
    - IO2
    - ','
    - IO3
    - ','
    - IO4
    - ','
    - IO5
    - ','
    - IO6
    - ','
    - IO7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: ABS_X8
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ABS_X8(IO0, IO1, IO2, IO3, IO4, IO5, IO6, IO7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 35
    argNames:
    - (
    - O0
    - ','
    - I0
    - ','
    - I1
    - ','
    - I2
    - ','
    - I3
    - ','
    - I4
    - ','
    - I5
    - ','
    - I6
    - ','
    - I7
    - ','
    - I8
    - ','
    - I9
    - ','
    - I10
    - ','
    - I11
    - ','
    - I12
    - ','
    - I13
    - ','
    - I14
    - ','
    - I15
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 69
    functionName: MUL_HALF
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "MUL_HALF(O0, I0, I1, I2, I3, I4, I5, I6, I7,                           \\\n
      \                I8, I9, I10, I11, I12, I13, I14, I15)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: OUTPUT_EARLY_CLOBBER_REGS_17
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OUTPUT_EARLY_CLOBBER_REGS_17()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - A
    - ','
    - TEMP0
    - ','
    - TEMP1
    - ','
    - TEMP2
    - ','
    - TEMP3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 112
    functionName: HORIZONTAL_PASS
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HORIZONTAL_PASS(A, TEMP0, TEMP1, TEMP2, TEMP3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - TEMP0
    - ','
    - TEMP4
    - ','
    - TEMP8
    - ','
    - TEMP12
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 144
    functionName: VERTICAL_PASS
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERTICAL_PASS(A, B, C, D, TEMP0, TEMP4, TEMP8, TEMP12)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HORIZONTAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:159,1
    - Dst: HORIZONTAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:160,1
    - Dst: HORIZONTAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:161,1
    - Dst: VERTICAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:163,1
    - Dst: VERTICAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:164,1
    - Dst: VERTICAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:165,1
    - Dst: VERTICAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:166,1
    - Dst: OUTPUT_EARLY_CLOBBER_REGS_18
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 172
    functionName: FTransform_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - VERTICAL_PASS
    - HORIZONTAL_PASS
    - OUTPUT_EARLY_CLOBBER_REGS_18
    linkageType: ''
    returnType: void
    signature: "void FTransform_MIPSdspR2(const uint8_t* WEBP_RESTRICT src,\n                                 const
      uint8_t* WEBP_RESTRICT ref,\n                                 int16_t* WEBP_RESTRICT
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_SUB_HALVES
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:187,1
    - Dst: LOAD_IN_X2
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:188,1
    - Dst: MUL_SHIFT_SUM
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:189,1
    - Dst: INSERT_HALF_X2
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:192,1
    - Dst: ADD_SUB_HALVES
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:196,1
    - Dst: ADD_SUB_HALVES
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:197,1
    - Dst: LOAD_IN_X2
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:198,1
    - Dst: LOAD_IN_X2
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:199,1
    - Dst: MUL_SHIFT_SUM
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:200,1
    - Dst: INSERT_HALF_X2
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:203,1
    - Dst: ADD_SUB_HALVES
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:204,1
    - Dst: ADD_SUB_HALVES
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:205,1
    - Dst: SRA_16
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:208,1
    - Dst: INSERT_HALF_X2
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:209,1
    - Dst: SRA_16
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:210,1
    - Dst: INSERT_HALF_X2
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:212,1
    - Dst: ADD_SUB_HALVES
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:216,1
    - Dst: MUL_SHIFT_SUM
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:217,1
    - Dst: MUL_SHIFT_SUM
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:220,1
    - Dst: INSERT_HALF_X2
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:223,1
    - Dst: INSERT_HALF_X2
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:224,1
    - Dst: SHIFT_R_SUM_X2
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:225,1
    - Dst: PACK_2_HALVES_TO_WORD
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:228,1
    - Dst: LOAD_WITH_OFFSET_X4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:230,1
    - Dst: CONVERT_2_BYTES_TO_HALF
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:234,1
    - Dst: STORE_SAT_SUM_X2
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 244
    functionName: ITransformOne
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - ADD_SUB_HALVES
    - LOAD_IN_X2
    - CONVERT_2_BYTES_TO_HALF
    - PACK_2_HALVES_TO_WORD
    - STORE_SAT_SUM_X2
    - SRA_16
    - LOAD_WITH_OFFSET_X4
    - MUL_SHIFT_SUM
    - SHIFT_R_SUM_X2
    - INSERT_HALF_X2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ITransformOne(const uint8_t* WEBP_RESTRICT ref,\n                                      const
      int16_t* WEBP_RESTRICT in,\n                                      uint8_t* WEBP_RESTRICT
      dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ITransformOne
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:249,1
    - Dst: ITransformOne
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - do_two
    argTypes:
    - uint8_t*
    - int16_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 253
    functionName: ITransform_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - ITransformOne
    linkageType: ''
    returnType: void
    signature: "void ITransform_MIPSdspR2(const uint8_t* WEBP_RESTRICT ref,\n                                 const
      int16_t* WEBP_RESTRICT in,\n                                 uint8_t* WEBP_RESTRICT
      dst, int do_two)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_2_BYTES_TO_HALF
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:267,1
    - Dst: ADD_SUB_HALVES_X4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:269,1
    - Dst: PACK_2_HALVES_TO_WORD
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:271,1
    - Dst: ADD_SUB_HALVES_X4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:273,1
    - Dst: ADD_SUB_HALVES_X4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:275,1
    - Dst: ADD_SUB_HALVES_X4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:277,1
    - Dst: ABS_X8
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:279,1
    - Dst: LOAD_WITH_OFFSET_X4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:280,1
    - Dst: LOAD_WITH_OFFSET_X4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:284,1
    - Dst: MUL_HALF
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:288,1
    - Dst: LOAD_WITH_OFFSET_X4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:290,1
    - Dst: CONVERT_2_BYTES_TO_HALF
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:294,1
    - Dst: ADD_SUB_HALVES_X4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:296,1
    - Dst: PACK_2_HALVES_TO_WORD
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:298,1
    - Dst: ADD_SUB_HALVES_X4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:300,1
    - Dst: ADD_SUB_HALVES_X4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:302,1
    - Dst: ADD_SUB_HALVES_X4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:304,1
    - Dst: ABS_X8
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:306,1
    - Dst: LOAD_WITH_OFFSET_X4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:307,1
    - Dst: LOAD_WITH_OFFSET_X4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:311,1
    - Dst: MUL_HALF
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:315,1
    - Dst: abs
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 3
    argNames:
    - a
    - b
    - w
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 322
    functionName: Disto4x4_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - CONVERT_2_BYTES_TO_HALF
    - MUL_HALF
    - abs
    - PACK_2_HALVES_TO_WORD
    - LOAD_WITH_OFFSET_X4
    - ABS_X8
    - ADD_SUB_HALVES_X4
    linkageType: ''
    returnType: int
    signature: "int Disto4x4_MIPSdspR2(const uint8_t* WEBP_RESTRICT const a,\n                              const
      uint8_t* WEBP_RESTRICT const b,\n                              const uint16_t*
      WEBP_RESTRICT const w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Disto4x4_MIPSdspR2
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - a
    - b
    - w
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 336
    functionName: Disto16x16_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - Disto4x4_MIPSdspR2
    linkageType: ''
    returnType: int
    signature: "int Disto16x16_MIPSdspR2(const uint8_t* WEBP_RESTRICT const a,\n                                const
      uint8_t* WEBP_RESTRICT const b,\n                                const uint16_t*
      WEBP_RESTRICT const w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - J
    - ','
    - SIZE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 349
    functionName: FILL_PART
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILL_PART(J, SIZE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - DST
    - ','
    - VALUE
    - ','
    - SIZE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 378
    functionName: FILL_8_OR_16
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILL_8_OR_16(DST, VALUE, SIZE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - DST
    - ','
    - TOP
    - ','
    - SIZE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 390
    functionName: VERTICAL_PRED
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERTICAL_PRED(DST, TOP, SIZE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - DST
    - ','
    - LEFT
    - ','
    - SIZE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 408
    functionName: HORIZONTAL_PRED
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HORIZONTAL_PRED(DST, LEFT, SIZE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 429
    functionName: CLIPPING
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLIPPING()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - DST
    - ','
    - LEFT
    - ','
    - TOP
    - ','
    - SIZE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 456
    functionName: CLIP_8B_TO_DST
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLIP_8B_TO_DST(DST, LEFT, TOP, SIZE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - DST
    - ','
    - LEFT
    - ','
    - TOP
    - ','
    - SIZE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 467
    functionName: CLIP_TO_DST
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLIP_TO_DST(DST, LEFT, TOP, SIZE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - DST
    - ','
    - LEFT
    - ','
    - TOP
    - ','
    - SIZE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 483
    functionName: TRUE_MOTION
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRUE_MOTION(DST, LEFT, TOP, SIZE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FILL_8_OR_16
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 563
    functionName: DCMode16
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - FILL_8_OR_16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DCMode16(uint8_t* WEBP_RESTRICT dst,\n                                 const
      uint8_t* WEBP_RESTRICT left,\n                                 const uint8_t*
      WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FILL_8_OR_16
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 608
    functionName: DCMode8
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - FILL_8_OR_16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DCMode8(uint8_t* WEBP_RESTRICT dst,\n                                const
      uint8_t* WEBP_RESTRICT left,\n                                const uint8_t*
      WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 629
    functionName: DC4
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DC4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 684
    functionName: TM4
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TM4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 715
    functionName: VE4
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VE4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 751
    functionName: HE4
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HE4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 800
    functionName: RD4
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RD4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 850
    functionName: VR4
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VR4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 897
    functionName: LD4
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LD4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 946
    functionName: VL4
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VL4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 994
    functionName: HD4
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HD4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 1030
    functionName: HU4
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HU4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DCMode8
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1039,1
    - Dst: VerticalPred8
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1040,1
    - Dst: HorizontalPred8
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1041,1
    - Dst: TrueMotion8
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1042,1
    - Dst: DCMode8
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1047,1
    - Dst: VerticalPred8
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1048,1
    - Dst: HorizontalPred8
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1049,1
    - Dst: TrueMotion8
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1050,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1035
    functionDepth: 2
    functionLinenumber: 1035
    functionLinenumberEnd: 1051
    functionName: IntraChromaPreds_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - DCMode8
    - TrueMotion8
    - VerticalPred8
    - HorizontalPred8
    linkageType: ''
    returnType: void
    signature: "void IntraChromaPreds_MIPSdspR2(uint8_t* WEBP_RESTRICT dst,\n                                       const
      uint8_t* WEBP_RESTRICT left,\n                                       const uint8_t*
      WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCMode16
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1059,1
    - Dst: VerticalPred16
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1060,1
    - Dst: HorizontalPred16
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1061,1
    - Dst: TrueMotion16
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1056
    functionDepth: 2
    functionLinenumber: 1056
    functionLinenumberEnd: 1063
    functionName: Intra16Preds_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - DCMode16
    - VerticalPred16
    - TrueMotion16
    - HorizontalPred16
    linkageType: ''
    returnType: void
    signature: "void Intra16Preds_MIPSdspR2(uint8_t* WEBP_RESTRICT dst,\n                                   const
      uint8_t* WEBP_RESTRICT left,\n                                   const uint8_t*
      WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DC4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1069,1
    - Dst: TM4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1070,1
    - Dst: VE4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1071,1
    - Dst: HE4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1072,1
    - Dst: RD4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1073,1
    - Dst: VR4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1074,1
    - Dst: LD4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1075,1
    - Dst: VL4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1076,1
    - Dst: HD4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1077,1
    - Dst: HU4
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1079
    functionName: Intra4Preds_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - RD4
    - VR4
    - LD4
    - VL4
    - DC4
    - HU4
    - HD4
    - VE4
    - HE4
    - TM4
    linkageType: ''
    returnType: void
    signature: "void Intra4Preds_MIPSdspR2(uint8_t* WEBP_RESTRICT dst,\n                                  const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1087
    functionDepth: 0
    functionLinenumber: 1087
    functionLinenumberEnd: 1098
    functionName: GET_SSE_INNER
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SSE_INNER(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1105
    functionName: GET_SSE
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SSE(A, B, C, D)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1113,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1114,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1115,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1116,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1117,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1118,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1119,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1120,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1121,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1122,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1123,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1124,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1125,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1126,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1134
    functionName: SSE16x16_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - GET_SSE
    linkageType: ''
    returnType: int
    signature: "int SSE16x16_MIPSdspR2(const uint8_t* WEBP_RESTRICT a,\n                              const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1143,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1144,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1145,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1146,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1147,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1148,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1156
    functionName: SSE16x8_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - GET_SSE
    linkageType: ''
    returnType: int
    signature: "int SSE16x8_MIPSdspR2(const uint8_t* WEBP_RESTRICT a,\n                             const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1165,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1166,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1174
    functionName: SSE8x8_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - GET_SSE
    linkageType: ''
    returnType: int
    signature: "int SSE8x8_MIPSdspR2(const uint8_t* WEBP_RESTRICT a,\n                            const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1189
    functionName: SSE4x4_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SSE4x4_MIPSdspR2(const uint8_t* WEBP_RESTRICT a,\n                            const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - J
    - ','
    - K
    - ','
    - N
    - ','
    - N1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1214
    functionDepth: 0
    functionLinenumber: 1214
    functionLinenumberEnd: 1299
    functionName: QUANTIZE_ONE
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUANTIZE_ONE(J, K, N, N1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1319,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1320,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1321,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1322,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1323,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1324,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1325,1
    - Dst: return
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - in
    - out
    - mtx
    argTypes:
    - int16_t[]
    - int16_t[]
    - VP8Matrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1301
    functionDepth: 0
    functionLinenumber: 1301
    functionLinenumberEnd: 1337
    functionName: QuantizeBlock_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - QUANTIZE_ONE
    - return
    linkageType: ''
    returnType: int
    signature: "int QuantizeBlock_MIPSdspR2(int16_t in[16], int16_t out[16],\n                                   const
      VP8Matrix* WEBP_RESTRICT const mtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QuantizeBlock_MIPSdspR2
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1342,1
    - Dst: QuantizeBlock_MIPSdspR2
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - in
    - out
    - mtx
    argTypes:
    - int16_t[]
    - int16_t[]
    - VP8Matrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1339
    functionDepth: 1
    functionLinenumber: 1339
    functionLinenumberEnd: 1345
    functionName: Quantize2Blocks_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - QuantizeBlock_MIPSdspR2
    linkageType: ''
    returnType: int
    signature: "int Quantize2Blocks_MIPSdspR2(int16_t in[32], int16_t out[32],\n                                     const
      VP8Matrix* WEBP_RESTRICT const mtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - TEMP0
    - ','
    - TEMP1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1354
    functionDepth: 0
    functionLinenumber: 1354
    functionLinenumberEnd: 1368
    functionName: HORIZONTAL_PASS_WHT
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HORIZONTAL_PASS_WHT(A, B, C, D, TEMP0, TEMP1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - TEMP0
    - ','
    - TEMP2
    - ','
    - TEMP4
    - ','
    - TEMP6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1373
    functionDepth: 0
    functionLinenumber: 1373
    functionLinenumberEnd: 1386
    functionName: VERTICAL_PASS_WHT
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERTICAL_PASS_WHT(A, B, C, D, TEMP0, TEMP2, TEMP4, TEMP6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HORIZONTAL_PASS_WHT
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1395,1
    - Dst: HORIZONTAL_PASS_WHT
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1396,1
    - Dst: HORIZONTAL_PASS_WHT
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1397,1
    - Dst: VERTICAL_PASS_WHT
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1398,1
    - Dst: VERTICAL_PASS_WHT
      Src: /src/libwebp/src/dsp/enc_mips_dsp_r2.c:1399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1388
    functionDepth: 1
    functionLinenumber: 1388
    functionLinenumberEnd: 1406
    functionName: FTransformWHT_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - HORIZONTAL_PASS_WHT
    - VERTICAL_PASS_WHT
    linkageType: ''
    returnType: void
    signature: "void FTransformWHT_MIPSdspR2(const int16_t* WEBP_RESTRICT in,\n                                    int16_t*
      WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1415
    functionDepth: 0
    functionLinenumber: 1415
    functionLinenumberEnd: 1480
    functionName: CONVERT_COEFFS_TO_BIN
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT_COEFFS_TO_BIN(A, B, C, D)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1537
    functionName: VP8EncDspInitMIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8EncDspInitMIPSdspR2(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_mips32.c:156,1
    - Dst: WebPRescalerOutputDone
      Src: /src/libwebp/src/dsp/rescaler_mips32.c:156,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_mips32.c:157,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_mips32.c:158,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_mips32.c:159,1
    - Dst: WEBP_RESCALER_FRAC
      Src: /src/libwebp/src/dsp/rescaler_mips32.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - wrk
    argTypes:
    - WebPRescaler*
    assertStmts:
    - condition: (!WebPRescalerOutputDone(wrk))
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/libwebp/src/dsp/rescaler_mips32.c
    - condition: (wrk->y_expand)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/libwebp/src/dsp/rescaler_mips32.c
    - condition: (wrk->y_sub != 0)
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/libwebp/src/dsp/rescaler_mips32.c
    - condition: (wrk->y_accum <= 0)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/libwebp/src/dsp/rescaler_mips32.c
    constantsTouched: []
    func_position:
      end: 207
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 207
    functionName: ExportRowExpand_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/rescaler_mips32.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPRescalerOutputDone
    - WEBP_RESCALER_FRAC
    linkageType: ''
    returnType: void
    signature: void ExportRowExpand_MIPS32(WebPRescaler* const wrk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_mips32.c:220,1
    - Dst: WebPRescalerOutputDone
      Src: /src/libwebp/src/dsp/rescaler_mips32.c:220,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_mips32.c:221,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_mips32.c:222,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_mips32.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - wrk
    argTypes:
    - WebPRescaler*
    assertStmts:
    - condition: (!WebPRescalerOutputDone(wrk))
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/libwebp/src/dsp/rescaler_mips32.c
    - condition: (wrk->fxy_scale != 0)
      pos:
        line_end: 222
        line_start: 222
        source_file: /src/libwebp/src/dsp/rescaler_mips32.c
    - condition: (!wrk->y_expand)
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/libwebp/src/dsp/rescaler_mips32.c
    - condition: (wrk->y_accum <= 0)
      pos:
        line_end: 220
        line_start: 220
        source_file: /src/libwebp/src/dsp/rescaler_mips32.c
    constantsTouched: []
    func_position:
      end: 273
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 273
    functionName: ExportRowShrink_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/rescaler_mips32.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPRescalerOutputDone
    linkageType: ''
    returnType: void
    signature: void ExportRowShrink_MIPS32(WebPRescaler* const wrk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 286
    functionName: WebPRescalerDspInitMIPS32
    functionSourceFile: /src/libwebp/src/dsp/rescaler_mips32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPRescalerDspInitMIPS32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a0
    - a1
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: Average2
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Average2(uint32_t a0, uint32_t a1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2
      Src: /src/libwebp/src/dsp/lossless.c:40,1
    - Dst: Average2
      Src: /src/libwebp/src/dsp/lossless.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a0
    - a1
    - a2
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Average3
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - Average2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Average3(uint32_t a0, uint32_t a1, uint32_t a2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2
      Src: /src/libwebp/src/dsp/lossless.c:45,1
    - Dst: Average2
      Src: /src/libwebp/src/dsp/lossless.c:45,1
    - Dst: Average2
      Src: /src/libwebp/src/dsp/lossless.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a0
    - a1
    - a2
    - a3
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: Average4
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - Average2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Average4(uint32_t a0, uint32_t a1, uint32_t a2,\n                                     uint32_t
      a3)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: Clip255
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Clip255(uint32_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Clip255
      Src: /src/libwebp/src/dsp/lossless.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: AddSubtractComponentFull
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - Clip255
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE AddSubtractComponentFull(int a, int b, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddSubtractComponentFull
      Src: /src/libwebp/src/dsp/lossless.c:63,1
    - Dst: AddSubtractComponentFull
      Src: /src/libwebp/src/dsp/lossless.c:64,1
    - Dst: AddSubtractComponentFull
      Src: /src/libwebp/src/dsp/lossless.c:66,1
    - Dst: AddSubtractComponentFull
      Src: /src/libwebp/src/dsp/lossless.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c0
    - c1
    - c2
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: ClampedAddSubtractFull
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - AddSubtractComponentFull
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ClampedAddSubtractFull(uint32_t c0, uint32_t c1,\n                                                   uint32_t
      c2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Clip255
      Src: /src/libwebp/src/dsp/lossless.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: AddSubtractComponentHalf
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - Clip255
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE AddSubtractComponentHalf(int a, int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2
      Src: /src/libwebp/src/dsp/lossless.c:78,1
    - Dst: AddSubtractComponentHalf
      Src: /src/libwebp/src/dsp/lossless.c:79,1
    - Dst: AddSubtractComponentHalf
      Src: /src/libwebp/src/dsp/lossless.c:80,1
    - Dst: AddSubtractComponentHalf
      Src: /src/libwebp/src/dsp/lossless.c:81,1
    - Dst: AddSubtractComponentHalf
      Src: /src/libwebp/src/dsp/lossless.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c0
    - c1
    - c2
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: ClampedAddSubtractHalf
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - AddSubtractComponentHalf
    - Average2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ClampedAddSubtractHalf(uint32_t c0, uint32_t c1,\n                                                   uint32_t
      c2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/libwebp/src/dsp/lossless.c:97,1
    - Dst: abs
      Src: /src/libwebp/src/dsp/lossless.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: Sub3
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - abs
    linkageType: ''
    returnType: LOCAL_INLINE
    signature: LOCAL_INLINE Sub3(int a, int b, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sub3
      Src: /src/libwebp/src/dsp/lossless.c:104,1
    - Dst: Sub3
      Src: /src/libwebp/src/dsp/lossless.c:105,1
    - Dst: Sub3
      Src: /src/libwebp/src/dsp/lossless.c:106,1
    - Dst: Sub3
      Src: /src/libwebp/src/dsp/lossless.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: Select
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - Sub3
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Select(uint32_t a, uint32_t b, uint32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: VP8LPredictor0_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t VP8LPredictor0_C(const uint32_t* const left,\n                                 const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: VP8LPredictor1_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t VP8LPredictor1_C(const uint32_t* const left,\n                                 const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: VP8LPredictor2_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t VP8LPredictor2_C(const uint32_t* const left,\n                          const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: VP8LPredictor3_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t VP8LPredictor3_C(const uint32_t* const left,\n                          const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: VP8LPredictor4_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t VP8LPredictor4_C(const uint32_t* const left,\n                          const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average3
      Src: /src/libwebp/src/dsp/lossless.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: VP8LPredictor5_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - Average3
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t VP8LPredictor5_C(const uint32_t* const left,\n                          const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2
      Src: /src/libwebp/src/dsp/lossless.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: VP8LPredictor6_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - Average2
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t VP8LPredictor6_C(const uint32_t* const left,\n                          const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2
      Src: /src/libwebp/src/dsp/lossless.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: VP8LPredictor7_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - Average2
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t VP8LPredictor7_C(const uint32_t* const left,\n                          const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2
      Src: /src/libwebp/src/dsp/lossless.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: VP8LPredictor8_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - Average2
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t VP8LPredictor8_C(const uint32_t* const left,\n                          const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2
      Src: /src/libwebp/src/dsp/lossless.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: VP8LPredictor9_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - Average2
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t VP8LPredictor9_C(const uint32_t* const left,\n                          const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average4
      Src: /src/libwebp/src/dsp/lossless.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: VP8LPredictor10_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - Average4
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t VP8LPredictor10_C(const uint32_t* const left,\n                           const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Select
      Src: /src/libwebp/src/dsp/lossless.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: VP8LPredictor11_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - Select
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t VP8LPredictor11_C(const uint32_t* const left,\n                           const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClampedAddSubtractFull
      Src: /src/libwebp/src/dsp/lossless.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: VP8LPredictor12_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - ClampedAddSubtractFull
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t VP8LPredictor12_C(const uint32_t* const left,\n                           const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClampedAddSubtractHalf
      Src: /src/libwebp/src/dsp/lossless.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: VP8LPredictor13_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - ClampedAddSubtractHalf
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t VP8LPredictor13_C(const uint32_t* const left,\n                           const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LAddPixels
      Src: /src/libwebp/src/dsp/lossless.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: PredictorAdd0_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - VP8LAddPixels
    linkageType: ''
    returnType: void
    signature: "void PredictorAdd0_C(const uint32_t* in, const uint32_t* upper,\n
      \                           int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LAddPixels
      Src: /src/libwebp/src/dsp/lossless.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 202
    functionName: PredictorAdd1_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - VP8LAddPixels
    linkageType: ''
    returnType: void
    signature: "void PredictorAdd1_C(const uint32_t* in, const uint32_t* upper,\n
      \                           int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PredictorAdd0_C
      Src: /src/libwebp/src/dsp/lossless.c:224,1
    - Dst: PredictorAdd1_C
      Src: /src/libwebp/src/dsp/lossless.c:225,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/dsp/lossless.c:235,1
    - Dst: PredictorAdd2_C
      Src: /src/libwebp/src/dsp/lossless.c:243,1
    - Dst: pred_func
      Src: /src/libwebp/src/dsp/lossless.c:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - transform
    - y_start
    - y_end
    - in
    - out
    argTypes:
    - VP8LTransform*
    - int
    - int
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 261
    functionName: PredictorInverseTransform_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - PredictorAdd2_C
    - pred_func
    - VP8LSubSampleSize
    - PredictorAdd1_C
    - PredictorAdd0_C
    linkageType: ''
    returnType: void
    signature: "void PredictorInverseTransform_C(const VP8LTransform* const transform,\n
      \                                       int y_start, int y_end,\n                                        const
      uint32_t* in, uint32_t* out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - src
    - num_pixels
    - dst
    argTypes:
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 276
    functionName: VP8LAddGreenToBlueAndRed_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void VP8LAddGreenToBlueAndRed_C(const uint32_t* src, int num_pixels,\n
      \                               uint32_t* dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - color_pred
    - color
    argTypes:
    - int8_t
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 280
    functionName: ColorTransformDelta
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE ColorTransformDelta(int8_t color_pred, int8_t color)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - color_code
    - m
    argTypes:
    - uint32_t
    - VP8LMultipliers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 287
    functionName: ColorCodeToMultipliers
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ColorCodeToMultipliers(uint32_t color_code,\n                                               VP8LMultipliers*
      const m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ColorTransformDelta
      Src: /src/libwebp/src/dsp/lossless.c:299,1
    - Dst: ColorTransformDelta
      Src: /src/libwebp/src/dsp/lossless.c:301,1
    - Dst: ColorTransformDelta
      Src: /src/libwebp/src/dsp/lossless.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - m
    - src
    - num_pixels
    - dst
    argTypes:
    - VP8LMultipliers*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 306
    functionName: VP8LTransformColorInverse_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - ColorTransformDelta
    linkageType: ''
    returnType: void
    signature: "void VP8LTransformColorInverse_C(const VP8LMultipliers* const m,\n
      \                                const uint32_t* src, int num_pixels,\n                                 uint32_t*
      dst)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/dsp/lossless.c:317,1
    - Dst: ColorCodeToMultipliers
      Src: /src/libwebp/src/dsp/lossless.c:328,1
    - Dst: VP8LTransformColorInverse
      Src: /src/libwebp/src/dsp/lossless.c:329,1
    - Dst: ColorCodeToMultipliers
      Src: /src/libwebp/src/dsp/lossless.c:334,1
    - Dst: VP8LTransformColorInverse
      Src: /src/libwebp/src/dsp/lossless.c:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - transform
    - y_start
    - y_end
    - src
    - dst
    argTypes:
    - VP8LTransform*
    - int
    - int
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 342
    functionName: ColorSpaceInverseTransform_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - VP8LSubSampleSize
    - VP8LTransformColorInverse
    - ColorCodeToMultipliers
    linkageType: ''
    returnType: void
    signature: "void ColorSpaceInverseTransform_C(const VP8LTransform* const transform,\n
      \                                        int y_start, int y_end,\n                                         const
      uint32_t* src, uint32_t* dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - FUNC_NAME
    - ','
    - F_NAME
    - ','
    - STATIC_DECL
    - ','
    - TYPE
    - ','
    - BIT_SUFFIX
    - ','
    - GET_INDEX
    - ','
    - GET_VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 415
    functionName: COLOR_INDEX_INVERSE
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "COLOR_INDEX_INVERSE(FUNC_NAME, F_NAME, STATIC_DECL, TYPE, BIT_SUFFIX,
      \ \\\n                            GET_INDEX, GET_VALUE)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless.c:428,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless.c:429,1
    - Dst: VP8LAddGreenToBlueAndRed
      Src: /src/libwebp/src/dsp/lossless.c:432,1
    - Dst: PredictorInverseTransform_C
      Src: /src/libwebp/src/dsp/lossless.c:435,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/lossless.c:439,1
    - Dst: ColorSpaceInverseTransform_C
      Src: /src/libwebp/src/dsp/lossless.c:444,1
    - Dst: VP8LSubSampleSize
      Src: /src/libwebp/src/dsp/lossless.c:456,1
    - Dst: memmove
      Src: /src/libwebp/src/dsp/lossless.c:458,1
    - Dst: ColorIndexInverseTransform_C
      Src: /src/libwebp/src/dsp/lossless.c:459,1
    - Dst: ColorIndexInverseTransform_C
      Src: /src/libwebp/src/dsp/lossless.c:461,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - transform
    - row_start
    - row_end
    - in
    - out
    argTypes:
    - VP8LTransform*
    - int
    - int
    - uint32_t*
    - uint32_t*
    assertStmts:
    - condition: (row_start < row_end)
      pos:
        line_end: 427
        line_start: 427
        source_file: /src/libwebp/src/dsp/lossless.c
    - condition: (row_end <= transform->ysize)
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/libwebp/src/dsp/lossless.c
    constantsTouched: []
    func_position:
      end: 465
      start: 424
    functionDepth: 3
    functionLinenumber: 424
    functionLinenumberEnd: 465
    functionName: VP8LInverseTransform
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 1
    functionsReached:
    - memmove
    - assert
    - memcpy
    - VP8LSubSampleSize
    - VP8LAddGreenToBlueAndRed
    - ColorSpaceInverseTransform_C
    - PredictorInverseTransform_C
    - ColorIndexInverseTransform_C
    linkageType: ''
    returnType: void
    signature: "void VP8LInverseTransform(const VP8LTransform* const transform, int
      row_start,\n                          int row_end, const uint32_t* const in,\n
      \                         uint32_t* const out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 476
    functionName: is_big_endian
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_big_endian(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 487
    functionName: VP8LConvertBGRAToRGB_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void VP8LConvertBGRAToRGB_C(const uint32_t* WEBP_RESTRICT src, int
      num_pixels,\n                            uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 499
    functionName: VP8LConvertBGRAToRGBA_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void VP8LConvertBGRAToRGBA_C(const uint32_t* WEBP_RESTRICT src, int
      num_pixels,\n                             uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 516
    functionName: VP8LConvertBGRAToRGBA4444_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void VP8LConvertBGRAToRGBA4444_C(const uint32_t* WEBP_RESTRICT src,\n
      \                                int num_pixels, uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 533
    functionName: VP8LConvertBGRAToRGB565_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void VP8LConvertBGRAToRGB565_C(const uint32_t* WEBP_RESTRICT src,\n
      \                              int num_pixels, uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 544
    functionName: VP8LConvertBGRAToBGR_C
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void VP8LConvertBGRAToBGR_C(const uint32_t* WEBP_RESTRICT src, int
      num_pixels,\n                            uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_big_endian
      Src: /src/libwebp/src/dsp/lossless.c:548,1
    - Dst: WebPUint32ToMem
      Src: /src/libwebp/src/dsp/lossless.c:552,1
    - Dst: BSwap32
      Src: /src/libwebp/src/dsp/lossless.c:552,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/lossless.c:556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    - swap_on_big_endian
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 558
    functionName: CopyOrSwap
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - WebPUint32ToMem
    - BSwap32
    - is_big_endian
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void CopyOrSwap(const uint32_t* WEBP_RESTRICT src, int num_pixels,\n
      \                      uint8_t* WEBP_RESTRICT dst, int swap_on_big_endian)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: VP8LConvertBGRAToRGB
      Src: /src/libwebp/src/dsp/lossless.c:564,1
    - Dst: VP8LConvertBGRAToRGBA
      Src: /src/libwebp/src/dsp/lossless.c:567,1
    - Dst: VP8LConvertBGRAToRGBA
      Src: /src/libwebp/src/dsp/lossless.c:570,1
    - Dst: WebPApplyAlphaMultiply
      Src: /src/libwebp/src/dsp/lossless.c:571,1
    - Dst: VP8LConvertBGRAToBGR
      Src: /src/libwebp/src/dsp/lossless.c:574,1
    - Dst: CopyOrSwap
      Src: /src/libwebp/src/dsp/lossless.c:577,1
    - Dst: CopyOrSwap
      Src: /src/libwebp/src/dsp/lossless.c:580,1
    - Dst: WebPApplyAlphaMultiply
      Src: /src/libwebp/src/dsp/lossless.c:581,1
    - Dst: CopyOrSwap
      Src: /src/libwebp/src/dsp/lossless.c:584,1
    - Dst: CopyOrSwap
      Src: /src/libwebp/src/dsp/lossless.c:587,1
    - Dst: WebPApplyAlphaMultiply
      Src: /src/libwebp/src/dsp/lossless.c:588,1
    - Dst: VP8LConvertBGRAToRGBA4444
      Src: /src/libwebp/src/dsp/lossless.c:591,1
    - Dst: VP8LConvertBGRAToRGBA4444
      Src: /src/libwebp/src/dsp/lossless.c:594,1
    - Dst: WebPApplyAlphaMultiply4444
      Src: /src/libwebp/src/dsp/lossless.c:595,1
    - Dst: VP8LConvertBGRAToRGB565
      Src: /src/libwebp/src/dsp/lossless.c:598,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless.c:601,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 4
    argNames:
    - in_data
    - num_pixels
    - out_colorspace
    - rgba
    argTypes:
    - uint32_t*
    - int
    - WEBP_CSP_MODE
    - uint8_t*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 600
        line_start: 600
        source_file: /src/libwebp/src/dsp/lossless.c
    constantsTouched: []
    func_position:
      end: 603
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 603
    functionName: VP8LConvertFromBGRA
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 2
    functionsReached:
    - VP8LConvertBGRAToRGBA4444
    - VP8LConvertBGRAToRGB565
    - assert
    - WebPApplyAlphaMultiply4444
    - WebPApplyAlphaMultiply
    - VP8LConvertBGRAToRGB
    - VP8LConvertBGRAToRGBA
    - CopyOrSwap
    - VP8LConvertBGRAToBGR
    linkageType: ''
    returnType: void
    signature: "void VP8LConvertFromBGRA(const uint32_t* const in_data, int num_pixels,\n
      \                        WEBP_CSP_MODE out_colorspace, uint8_t* const rgba)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - IN
    - ','
    - OUT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 654
    functionName: COPY_PREDICTOR_ARRAY
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_PREDICTOR_ARRAY(IN, OUT)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: COPY_PREDICTOR_ARRAY
      Src: /src/libwebp/src/dsp/lossless.c:659,1
    - Dst: COPY_PREDICTOR_ARRAY
      Src: /src/libwebp/src/dsp/lossless.c:660,1
    - Dst: COPY_PREDICTOR_ARRAY
      Src: /src/libwebp/src/dsp/lossless.c:661,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/lossless.c:682,1
    - Dst: VP8LDspInitSSE2
      Src: /src/libwebp/src/dsp/lossless.c:683,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/lossless.c:685,1
    - Dst: VP8LDspInitSSE41
      Src: /src/libwebp/src/dsp/lossless.c:686,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/lossless.c:688,1
    - Dst: VP8LDspInitAVX2
      Src: /src/libwebp/src/dsp/lossless.c:689,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/lossless.c:697,1
    - Dst: VP8LDspInitMIPSdspR2
      Src: /src/libwebp/src/dsp/lossless.c:698,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/lossless.c:702,1
    - Dst: VP8LDspInitMSA
      Src: /src/libwebp/src/dsp/lossless.c:703,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/lossless.c:710,1
    - Dst: VP8LDspInitNEON
      Src: /src/libwebp/src/dsp/lossless.c:711,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless.c:715,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless.c:716,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless.c:717,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless.c:718,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless.c:719,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless.c:720,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless.c:721,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless.c:722,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless.c:723,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (VP8LAddGreenToBlueAndRed != NULL)
      pos:
        line_end: 714
        line_start: 714
        source_file: /src/libwebp/src/dsp/lossless.c
    - condition: (VP8LConvertBGRAToRGBA != NULL)
      pos:
        line_end: 716
        line_start: 716
        source_file: /src/libwebp/src/dsp/lossless.c
    - condition: (VP8LConvertBGRAToRGBA4444 != NULL)
      pos:
        line_end: 719
        line_start: 719
        source_file: /src/libwebp/src/dsp/lossless.c
    - condition: (VP8LMapColor32b != NULL)
      pos:
        line_end: 721
        line_start: 721
        source_file: /src/libwebp/src/dsp/lossless.c
    - condition: (VP8LTransformColorInverse != NULL)
      pos:
        line_end: 715
        line_start: 715
        source_file: /src/libwebp/src/dsp/lossless.c
    - condition: (VP8LConvertBGRAToRGB != NULL)
      pos:
        line_end: 717
        line_start: 717
        source_file: /src/libwebp/src/dsp/lossless.c
    - condition: (VP8LConvertBGRAToBGR != NULL)
      pos:
        line_end: 718
        line_start: 718
        source_file: /src/libwebp/src/dsp/lossless.c
    - condition: (VP8LConvertBGRAToRGB565 != NULL)
      pos:
        line_end: 720
        line_start: 720
        source_file: /src/libwebp/src/dsp/lossless.c
    - condition: (VP8LMapColor8b != NULL)
      pos:
        line_end: 722
        line_start: 722
        source_file: /src/libwebp/src/dsp/lossless.c
    constantsTouched: []
    func_position:
      end: 724
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 724
    functionName: WEBP_DSP_INIT_FUNC
    functionSourceFile: /src/libwebp/src/dsp/lossless.c
    functionUses: 0
    functionsReached:
    - VP8LDspInitNEON
    - VP8GetCPUInfo
    - VP8LDspInitSSE41
    - VP8LDspInitAVX2
    - VP8LDspInitMIPSdspR2
    - VP8LDspInitMSA
    - assert
    - COPY_PREDICTOR_ARRAY
    - VP8LDspInitSSE2
    linkageType: ''
    returnType: void
    signature: void WEBP_DSP_INIT_FUNC(VP8LDspInit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_subs_epu8
      Src: /src/libwebp/src/dsp/ssim_sse2.c:30,1
    - Dst: _mm_subs_epu8
      Src: /src/libwebp/src/dsp/ssim_sse2.c:31,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/ssim_sse2.c:32,1
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/ssim_sse2.c:34,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/ssim_sse2.c:35,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/ssim_sse2.c:36,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/ssim_sse2.c:38,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/ssim_sse2.c:39,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/ssim_sse2.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - sum
    argTypes:
    - __m128i
    - __m128i
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: SubtractAndSquare_SSE2
    functionSourceFile: /src/libwebp/src/dsp/ssim_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_subs_epu8
    - _mm_unpacklo_epi8
    - _mm_setzero_si128
    - _mm_madd_epi16
    - _mm_add_epi32
    - _mm_unpackhi_epi8
    - _mm_or_si128
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE SubtractAndSquare_SSE2(const __m128i a, const __m128i
      b,\n                                               __m128i* const sum)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/ssim_sse2.c:54,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/ssim_sse2.c:55,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/ssim_sse2.c:56,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/ssim_sse2.c:59,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/ssim_sse2.c:60,1
    - Dst: SubtractAndSquare_SSE2
      Src: /src/libwebp/src/dsp/ssim_sse2.c:63,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/ssim_sse2.c:64,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/ssim_sse2.c:65,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/ssim_sse2.c:66,1
    - Dst: SubtractAndSquare_SSE2
      Src: /src/libwebp/src/dsp/ssim_sse2.c:68,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/ssim_sse2.c:69,1
    - Dst: SubtractAndSquare_SSE2
      Src: /src/libwebp/src/dsp/ssim_sse2.c:71,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/ssim_sse2.c:72,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/ssim_sse2.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - src1
    - src2
    - len
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 82
    functionName: AccumulateSSE_SSE2
    functionSourceFile: /src/libwebp/src/dsp/ssim_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_setzero_si128
    - _mm_storeu_si128
    - SubtractAndSquare_SSE2
    - _mm_loadu_si128
    - _mm_add_epi32
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t AccumulateSSE_SSE2(const uint8_t* src1, const uint8_t* src2,\n
      \                                  int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/ssim_sse2.c:89,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/ssim_sse2.c:90,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/ssim_sse2.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: HorizontalAdd16b_SSE2
    functionSourceFile: /src/libwebp/src/dsp/ssim_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_storeu_si128
    - _mm_srli_si128
    - _mm_add_epi16
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t HorizontalAdd16b_SSE2(const __m128i* const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/ssim_sse2.c:96,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/ssim_sse2.c:97,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/ssim_sse2.c:98,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/ssim_sse2.c:98,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/ssim_sse2.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: HorizontalAdd32b_SSE2
    functionSourceFile: /src/libwebp/src/dsp/ssim_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_cvtsi128_si32
    - _mm_srli_si128
    - _mm_add_epi32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t HorizontalAdd32b_SSE2(const __m128i* const m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - WEIGHT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: ACCUMULATE_ROW
    functionSourceFile: /src/libwebp/src/dsp/ssim_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACCUMULATE_ROW(WEIGHT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: VP8SSIMDspInitSSE2
    functionSourceFile: /src/libwebp/src/dsp/ssim_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8SSIMDspInitSSE2(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8BitCost
      Src: /src/libwebp/src/dsp/cost_mips_dsp_r2.c:29,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/dsp/cost_mips_dsp_r2.c:38,1
    - Dst: abs
      Src: /src/libwebp/src/dsp/cost_mips_dsp_r2.c:82,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/cost_mips_dsp_r2.c:83,1
    - Dst: VP8LevelCost
      Src: /src/libwebp/src/dsp/cost_mips_dsp_r2.c:84,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/dsp/cost_mips_dsp_r2.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ctx0
    - res
    argTypes:
    - int
    - VP8Residual*
    assertStmts:
    - condition: (v != 0)
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/libwebp/src/dsp/cost_mips_dsp_r2.c
    constantsTouched: []
    func_position:
      end: 93
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 93
    functionName: GetResidualCost_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/cost_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - assert
    - abs
    - VP8LevelCost
    - VP8BitCost
    linkageType: ''
    returnType: int
    signature: int GetResidualCost_MIPSdspR2(int ctx0, const VP8Residual* const res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: VP8EncDspCostInitMIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/cost_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8EncDspCostInitMIPSdspR2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maj
    - ','
    - min
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: LOCAL_GCC_PREREQ
    functionSourceFile: /src/libwebp/src/dsp/cpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCAL_GCC_PREREQ(maj, min)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maj
    - ','
    - min
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: LOCAL_GCC_PREREQ
    functionSourceFile: /src/libwebp/src/dsp/cpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCAL_GCC_PREREQ(maj, min)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maj
    - ','
    - min
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: LOCAL_CLANG_PREREQ
    functionSourceFile: /src/libwebp/src/dsp/cpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCAL_CLANG_PREREQ(maj, min)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maj
    - ','
    - min
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: LOCAL_CLANG_PREREQ
    functionSourceFile: /src/libwebp/src/dsp/cpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCAL_CLANG_PREREQ(maj, min)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: __has_builtin
    functionSourceFile: /src/libwebp/src/dsp/cpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_builtin(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - i
    argTypes:
    - __m256i
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: _mm256_extract_epi32
    functionSourceFile: /src/libwebp/src/dsp/cpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE _mm256_extract_epi32(__m256i a, const int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_extract_epi32
      Src: /src/libwebp/src/dsp/cpu.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: _mm256_cvtsi256_si32
    functionSourceFile: /src/libwebp/src/dsp/cpu.h
    functionUses: 0
    functionsReached:
    - _mm256_extract_epi32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE _mm256_cvtsi256_si32(__m256i a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: WEBP_DSP_INIT_VARS
    functionSourceFile: /src/libwebp/src/dsp/cpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_DSP_INIT_VARS(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 232
    functionName: WEBP_DSP_INIT
    functionSourceFile: /src/libwebp/src/dsp/cpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_DSP_INIT(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: WEBP_DSP_INIT_VARS
    functionSourceFile: /src/libwebp/src/dsp/cpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_DSP_INIT_VARS(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 249
    functionName: WEBP_DSP_INIT
    functionSourceFile: /src/libwebp/src/dsp/cpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_DSP_INIT(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: WEBP_DSP_INIT_VARS
    functionSourceFile: /src/libwebp/src/dsp/cpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_DSP_INIT_VARS(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 262
    functionName: WEBP_DSP_INIT
    functionSourceFile: /src/libwebp/src/dsp/cpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_DSP_INIT(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 277
    functionName: WEBP_DSP_INIT_FUNC
    functionSourceFile: /src/libwebp/src/dsp/cpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_DSP_INIT_FUNC(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: WEBP_OFFSET_PTR
    functionSourceFile: /src/libwebp/src/dsp/cpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_OFFSET_PTR(ptr, off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse41.c:27,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/dec_sse41.c:29,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/dec_sse41.c:29,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/dec_sse41.c:30,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/dec_sse41.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: HE16_SSE41
    functionSourceFile: /src/libwebp/src/dsp/dec_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_cvtsi32_si128
    - _mm_storeu_si128
    - WebPMemToInt32
    - _mm_shuffle_epi8
    - _mm_set1_epi8
    linkageType: ''
    returnType: void
    signature: void HE16_SSE41(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: VP8DspInitSSE41
    functionSourceFile: /src/libwebp/src/dsp/dec_sse41.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8DspInitSSE41(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_s16
      Src: /src/libwebp/src/dsp/cost_neon.c:24,1
    - Dst: vld1q_s16
      Src: /src/libwebp/src/dsp/cost_neon.c:25,1
    - Dst: vld1q_s16
      Src: /src/libwebp/src/dsp/cost_neon.c:26,1
    - Dst: vtstq_s16
      Src: /src/libwebp/src/dsp/cost_neon.c:27,1
    - Dst: vtstq_s16
      Src: /src/libwebp/src/dsp/cost_neon.c:28,1
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/cost_neon.c:29,1
    - Dst: vqmovn_u16
      Src: /src/libwebp/src/dsp/cost_neon.c:29,1
    - Dst: vqmovn_u16
      Src: /src/libwebp/src/dsp/cost_neon.c:29,1
    - Dst: vandq_u8
      Src: /src/libwebp/src/dsp/cost_neon.c:30,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/cost_neon.c:30,1
    - Dst: vmaxvq_u8
      Src: /src/libwebp/src/dsp/cost_neon.c:33,1
    - Dst: vmax_u8
      Src: /src/libwebp/src/dsp/cost_neon.c:35,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/cost_neon.c:35,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/cost_neon.c:35,1
    - Dst: vmovl_u8
      Src: /src/libwebp/src/dsp/cost_neon.c:36,1
    - Dst: vmax_u16
      Src: /src/libwebp/src/dsp/cost_neon.c:38,1
    - Dst: vget_low_u16
      Src: /src/libwebp/src/dsp/cost_neon.c:38,1
    - Dst: vget_high_u16
      Src: /src/libwebp/src/dsp/cost_neon.c:38,1
    - Dst: vmovl_u16
      Src: /src/libwebp/src/dsp/cost_neon.c:39,1
    - Dst: vmax_u32
      Src: /src/libwebp/src/dsp/cost_neon.c:41,1
    - Dst: vget_low_u32
      Src: /src/libwebp/src/dsp/cost_neon.c:41,1
    - Dst: vget_high_u32
      Src: /src/libwebp/src/dsp/cost_neon.c:41,1
    - Dst: vpmax_u32
      Src: /src/libwebp/src/dsp/cost_neon.c:42,1
    - Dst: vst1_lane_s32
      Src: /src/libwebp/src/dsp/cost_neon.c:44,1
    - Dst: vreinterpret_s32_u32
      Src: /src/libwebp/src/dsp/cost_neon.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - coeffs
    - res
    argTypes:
    - int16_t*
    - VP8Residual*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 49
    functionName: SetResidualCoeffs_NEON
    functionSourceFile: /src/libwebp/src/dsp/cost_neon.c
    functionUses: 0
    functionsReached:
    - vqmovn_u16
    - vget_low_u16
    - vmovl_u8
    - vget_low_u32
    - vmax_u16
    - vpmax_u32
    - vandq_u8
    - vmax_u32
    - vmaxvq_u8
    - vtstq_s16
    - vdupq_n_s16
    - vst1_lane_s32
    - vget_low_u8
    - vmovl_u16
    - vget_high_u8
    - vget_high_u16
    - vld1q_s16
    - vmax_u8
    - vget_high_u32
    - vcombine_u8
    - vld1q_u8
    - vreinterpret_s32_u32
    linkageType: ''
    returnType: void
    signature: "void SetResidualCoeffs_NEON(const int16_t* WEBP_RESTRICT const coeffs,\n
      \                                  VP8Residual* WEBP_RESTRICT const res)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8BitCost
      Src: /src/libwebp/src/dsp/cost_neon.c:62,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/dsp/cost_neon.c:65,1
    - Dst: vdupq_n_u8
      Src: /src/libwebp/src/dsp/cost_neon.c:69,1
    - Dst: vdupq_n_u8
      Src: /src/libwebp/src/dsp/cost_neon.c:70,1
    - Dst: vld1q_s16
      Src: /src/libwebp/src/dsp/cost_neon.c:71,1
    - Dst: vld1q_s16
      Src: /src/libwebp/src/dsp/cost_neon.c:72,1
    - Dst: vreinterpretq_u16_s16
      Src: /src/libwebp/src/dsp/cost_neon.c:73,1
    - Dst: vabsq_s16
      Src: /src/libwebp/src/dsp/cost_neon.c:73,1
    - Dst: vreinterpretq_u16_s16
      Src: /src/libwebp/src/dsp/cost_neon.c:74,1
    - Dst: vabsq_s16
      Src: /src/libwebp/src/dsp/cost_neon.c:74,1
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/cost_neon.c:75,1
    - Dst: vqmovn_u16
      Src: /src/libwebp/src/dsp/cost_neon.c:75,1
    - Dst: vqmovn_u16
      Src: /src/libwebp/src/dsp/cost_neon.c:75,1
    - Dst: vminq_u8
      Src: /src/libwebp/src/dsp/cost_neon.c:76,1
    - Dst: vminq_u8
      Src: /src/libwebp/src/dsp/cost_neon.c:77,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/cost_neon.c:79,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/cost_neon.c:80,1
    - Dst: vst1q_u16
      Src: /src/libwebp/src/dsp/cost_neon.c:82,1
    - Dst: vst1q_u16
      Src: /src/libwebp/src/dsp/cost_neon.c:83,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/cost_neon.c:96,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/dsp/cost_neon.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ctx0
    - res
    argTypes:
    - int
    - VP8Residual*
    assertStmts:
    - condition: (flevel != 0)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/libwebp/src/dsp/cost_neon.c
    constantsTouched: []
    func_position:
      end: 106
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 106
    functionName: GetResidualCost_NEON
    functionSourceFile: /src/libwebp/src/dsp/cost_neon.c
    functionUses: 0
    functionsReached:
    - vst1q_u16
    - vst1q_u8
    - assert
    - vqmovn_u16
    - VP8BitCost
    - vabsq_s16
    - vcombine_u8
    - vld1q_s16
    - vreinterpretq_u16_s16
    - vdupq_n_u8
    - vminq_u8
    linkageType: ''
    returnType: int
    signature: int GetResidualCost_NEON(int ctx0, const VP8Residual* const res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: VP8EncDspCostInitNEON
    functionSourceFile: /src/libwebp/src/dsp/cost_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8EncDspCostInitNEON(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FUNC_NAME
    - ','
    - FUNC
    - ','
    - XSTEP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 55
    functionName: ROW_FUNC
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROW_FUNC(FUNC_NAME, FUNC, XSTEP)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/libwebp/src/dsp/yuv.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 10
    argNames:
    - WEBP_RESTRICT
    - y_stride
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - uv_stride
    - WEBP_RESTRICT
    - dst_stride
    - width
    - height
    - func
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int
    - int
    - WebPSamplerRowFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 83
    functionName: WebPSamplerProcessPlane
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 1
    functionsReached:
    - func
    linkageType: ''
    returnType: void
    signature: "void WebPSamplerProcessPlane(const uint8_t* WEBP_RESTRICT y, int y_stride,\n
      \                            const uint8_t* WEBP_RESTRICT u,\n                             const
      uint8_t* WEBP_RESTRICT v, int uv_stride,\n                             uint8_t*
      WEBP_RESTRICT dst, int dst_stride,\n                             int width,
      int height, WebPSamplerRowFunc func)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/yuv.c:112,1
    - Dst: WebPInitSamplersSSE2
      Src: /src/libwebp/src/dsp/yuv.c:113,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/yuv.c:117,1
    - Dst: WebPInitSamplersSSE41
      Src: /src/libwebp/src/dsp/yuv.c:118,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/yuv.c:122,1
    - Dst: WebPInitSamplersMIPS32
      Src: /src/libwebp/src/dsp/yuv.c:123,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/yuv.c:127,1
    - Dst: WebPInitSamplersMIPSdspR2
      Src: /src/libwebp/src/dsp/yuv.c:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 132
    functionName: WEBP_DSP_INIT_FUNC
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached:
    - WebPInitSamplersMIPSdspR2
    - VP8GetCPUInfo
    - WebPInitSamplersSSE2
    - WebPInitSamplersSSE41
    - WebPInitSamplersMIPS32
    linkageType: ''
    returnType: void
    signature: void WEBP_DSP_INIT_FUNC(WebPInitSamplers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8RGBToY
      Src: /src/libwebp/src/dsp/yuv.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - width
    argTypes:
    - uint32_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 145
    functionName: ConvertARGBToY_C
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached:
    - VP8RGBToY
    linkageType: ''
    returnType: void
    signature: "void ConvertARGBToY_C(const uint32_t* WEBP_RESTRICT argb,\n                             uint8_t*
      WEBP_RESTRICT y, int width)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VP8RGBToU
      Src: /src/libwebp/src/dsp/yuv.c:161,1
    - Dst: VP8RGBToV
      Src: /src/libwebp/src/dsp/yuv.c:162,1
    - Dst: VP8RGBToU
      Src: /src/libwebp/src/dsp/yuv.c:177,1
    - Dst: VP8RGBToV
      Src: /src/libwebp/src/dsp/yuv.c:178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - src_width
    - do_store
    argTypes:
    - uint32_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 187
    functionName: WebPConvertARGBToUV_C
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 1
    functionsReached:
    - VP8RGBToV
    - VP8RGBToU
    linkageType: ''
    returnType: void
    signature: "void WebPConvertARGBToUV_C(const uint32_t* WEBP_RESTRICT argb,\n                           uint8_t*
      WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT v,\n                           int src_width,
      int do_store)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8RGBToY
      Src: /src/libwebp/src/dsp/yuv.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - width
    - step
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: ConvertRGBToY_C
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached:
    - VP8RGBToY
    linkageType: ''
    returnType: void
    signature: "void ConvertRGBToY_C(const uint8_t* WEBP_RESTRICT rgb,\n                            uint8_t*
      WEBP_RESTRICT y, int width, int step)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8RGBToY
      Src: /src/libwebp/src/dsp/yuv.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - width
    - step
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 205
    functionName: ConvertBGRToY_C
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached:
    - VP8RGBToY
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRToY_C(const uint8_t* WEBP_RESTRICT bgr,\n                            uint8_t*
      WEBP_RESTRICT y, int width, int step)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8RGBToU
      Src: /src/libwebp/src/dsp/yuv.c:213,1
    - Dst: VP8RGBToV
      Src: /src/libwebp/src/dsp/yuv.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - width
    argTypes:
    - uint16_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: WebPConvertRGBA32ToUV_C
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached:
    - VP8RGBToV
    - VP8RGBToU
    linkageType: ''
    returnType: void
    signature: "void WebPConvertRGBA32ToUV_C(const uint16_t* WEBP_RESTRICT rgb,\n
      \                            uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT
      v,\n                             int width)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pow
      Src: /src/libwebp/src/dsp/yuv.c:244,1
    - Dst: pow
      Src: /src/libwebp/src/dsp/yuv.c:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 251
    functionName: WEBP_DSP_INIT_FUNC
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached:
    - pow
    linkageType: ''
    returnType: void
    signature: void WEBP_DSP_INIT_FUNC(WebPInitGammaTables)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: GammaToLinear
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GammaToLinear(uint8_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/yuv.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts:
    - condition: (tab_pos + 1 < GAMMA_TAB_SIZE + 1)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/libwebp/src/dsp/yuv.c
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: Interpolate
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Interpolate(int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Interpolate
      Src: /src/libwebp/src/dsp/yuv.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - base_value
    - shift
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: LinearToGamma
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached:
    - Interpolate
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE LinearToGamma(uint32_t base_value, int shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    functionName: WebPInitGammaTables
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WebPInitGammaTables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    functionName: GammaToLinear
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GammaToLinear(uint8_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - base_value
    - shift
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 280
    functionName: LinearToGamma
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE LinearToGamma(uint32_t base_value, int shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - step
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 289
    functionName: SUM4
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUM4(ptr, step)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: SUM2
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUM2(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - step
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: SUM4
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUM4(ptr, step)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 304
    functionName: SUM2
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUM2(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 306
    functionName: SUM2ALPHA
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUM2ALPHA(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    functionName: SUM4ALPHA
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUM4ALPHA(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sum
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 426
    functionName: DIVIDE_BY_ALPHA
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIVIDE_BY_ALPHA(sum, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sum
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 430
    functionName: DIVIDE_BY_ALPHA
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIVIDE_BY_ALPHA(sum, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GammaToLinear
      Src: /src/libwebp/src/dsp/yuv.c:438,1
    - Dst: GammaToLinear
      Src: /src/libwebp/src/dsp/yuv.c:439,1
    - Dst: GammaToLinear
      Src: /src/libwebp/src/dsp/yuv.c:440,1
    - Dst: GammaToLinear
      Src: /src/libwebp/src/dsp/yuv.c:441,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/yuv.c:442,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/yuv.c:444,1
    - Dst: LinearToGamma
      Src: /src/libwebp/src/dsp/yuv.c:446,1
    - Dst: DIVIDE_BY_ALPHA
      Src: /src/libwebp/src/dsp/yuv.c:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - src
    - a_ptr
    - total_a
    - step
    - rgb_stride
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - int
    - int
    assertStmts:
    - condition: (total_a > 0 && total_a <= 4 * 0xff)
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/libwebp/src/dsp/yuv.c
    - condition: ((uint64_t)sum * kInvAlpha[total_a] < ((uint64_t)1 << 32))
      pos:
        line_end: 443
        line_start: 443
        source_file: /src/libwebp/src/dsp/yuv.c
    constantsTouched: []
    func_position:
      end: 447
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 447
    functionName: LinearToGammaWeighted
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached:
    - GammaToLinear
    - LinearToGamma
    - assert
    - DIVIDE_BY_ALPHA
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE LinearToGammaWeighted(const uint8_t* src,\n                                             const
      uint8_t* a_ptr,\n                                             uint32_t total_a,
      int step,\n                                             int rgb_stride)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SUM4ALPHA
      Src: /src/libwebp/src/dsp/yuv.c:455,1
    - Dst: SUM4
      Src: /src/libwebp/src/dsp/yuv.c:458,1
    - Dst: SUM4
      Src: /src/libwebp/src/dsp/yuv.c:459,1
    - Dst: SUM4
      Src: /src/libwebp/src/dsp/yuv.c:460,1
    - Dst: LinearToGammaWeighted
      Src: /src/libwebp/src/dsp/yuv.c:462,1
    - Dst: LinearToGammaWeighted
      Src: /src/libwebp/src/dsp/yuv.c:463,1
    - Dst: LinearToGammaWeighted
      Src: /src/libwebp/src/dsp/yuv.c:464,1
    - Dst: SUM2ALPHA
      Src: /src/libwebp/src/dsp/yuv.c:472,1
    - Dst: SUM2
      Src: /src/libwebp/src/dsp/yuv.c:475,1
    - Dst: SUM2
      Src: /src/libwebp/src/dsp/yuv.c:476,1
    - Dst: SUM2
      Src: /src/libwebp/src/dsp/yuv.c:477,1
    - Dst: LinearToGammaWeighted
      Src: /src/libwebp/src/dsp/yuv.c:479,1
    - Dst: LinearToGammaWeighted
      Src: /src/libwebp/src/dsp/yuv.c:480,1
    - Dst: LinearToGammaWeighted
      Src: /src/libwebp/src/dsp/yuv.c:481,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 7
    argNames:
    - r_ptr
    - g_ptr
    - b_ptr
    - a_ptr
    - rgb_stride
    - dst
    - width
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - uint16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 488
    functionName: WebPAccumulateRGBA
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 1
    functionsReached:
    - SUM2
    - SUM4ALPHA
    - SUM2ALPHA
    - SUM4
    - LinearToGammaWeighted
    linkageType: ''
    returnType: void
    signature: "void WebPAccumulateRGBA(const uint8_t* const r_ptr, const uint8_t*
      const g_ptr,\n                        const uint8_t* const b_ptr, const uint8_t*
      const a_ptr,\n                        int rgb_stride, uint16_t* dst, int width)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SUM4
      Src: /src/libwebp/src/dsp/yuv.c:495,1
    - Dst: SUM4
      Src: /src/libwebp/src/dsp/yuv.c:496,1
    - Dst: SUM4
      Src: /src/libwebp/src/dsp/yuv.c:497,1
    - Dst: SUM2
      Src: /src/libwebp/src/dsp/yuv.c:506,1
    - Dst: SUM2
      Src: /src/libwebp/src/dsp/yuv.c:507,1
    - Dst: SUM2
      Src: /src/libwebp/src/dsp/yuv.c:508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 7
    argNames:
    - r_ptr
    - g_ptr
    - b_ptr
    - step
    - rgb_stride
    - dst
    - width
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    - uint16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 513
    functionName: WebPAccumulateRGB
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 1
    functionsReached:
    - SUM4
    - SUM2
    linkageType: ''
    returnType: void
    signature: "void WebPAccumulateRGB(const uint8_t* const r_ptr, const uint8_t*
      const g_ptr,\n                       const uint8_t* const b_ptr, int step, int
      rgb_stride,\n                       uint16_t* dst, int width)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/yuv.c:530,1
    - Dst: WebPInitGammaTables
      Src: /src/libwebp/src/dsp/yuv.c:534,1
    - Dst: WebPConvertRGBToY
      Src: /src/libwebp/src/dsp/yuv.c:540,1
    - Dst: WebPConvertRGBToY
      Src: /src/libwebp/src/dsp/yuv.c:541,1
    - Dst: WebPConvertBGRToY
      Src: /src/libwebp/src/dsp/yuv.c:543,1
    - Dst: WebPConvertBGRToY
      Src: /src/libwebp/src/dsp/yuv.c:544,1
    - Dst: WebPExtractAlpha
      Src: /src/libwebp/src/dsp/yuv.c:549,1
    - Dst: memset
      Src: /src/libwebp/src/dsp/yuv.c:554,1
    - Dst: WebPAccumulateRGB
      Src: /src/libwebp/src/dsp/yuv.c:560,1
    - Dst: WebPAccumulateRGBA
      Src: /src/libwebp/src/dsp/yuv.c:562,1
    - Dst: WebPConvertRGBA32ToUV
      Src: /src/libwebp/src/dsp/yuv.c:566,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 17
    argNames:
    - r_ptr
    - g_ptr
    - b_ptr
    - a_ptr
    - step
    - rgb_stride
    - has_alpha
    - width
    - height
    - tmp_rgb
    - y_stride
    - uv_stride
    - a_stride
    - dst_y
    - dst_u
    - dst_v
    - dst_a
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    - uint16_t*
    - int
    - int
    - int
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts:
    - condition: (kAlphaFix + GAMMA_FIX <= 31)
      pos:
        line_end: 529
        line_start: 529
        source_file: /src/libwebp/src/dsp/yuv.c
    constantsTouched: []
    func_position:
      end: 574
      start: 515
    functionDepth: 4
    functionLinenumber: 515
    functionLinenumberEnd: 574
    functionName: ImportYUVAFromRGBA_C
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPAccumulateRGB
    - WebPInitGammaTables
    - WebPConvertRGBA32ToUV
    - memset
    - WebPConvertRGBToY
    - WebPAccumulateRGBA
    - WebPExtractAlpha
    - WebPConvertBGRToY
    linkageType: ''
    returnType: void
    signature: "void ImportYUVAFromRGBA_C(const uint8_t* r_ptr, const uint8_t* g_ptr,\n
      \                                const uint8_t* b_ptr, const uint8_t* a_ptr,\n
      \                                int step,        // bytes per pixel\n                                 int
      rgb_stride,  // bytes per scanline\n                                 int has_alpha,
      int width, int height,\n                                 uint16_t* tmp_rgb,
      int y_stride, int uv_stride,\n                                 int a_stride,
      uint8_t* dst_y, uint8_t* dst_u,\n                                 uint8_t* dst_v,
      uint8_t* dst_a)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WebPConvertRGBToY
      Src: /src/libwebp/src/dsp/yuv.c:587,1
    - Dst: WebPConvertBGRToY
      Src: /src/libwebp/src/dsp/yuv.c:589,1
    - Dst: WebPExtractAlpha
      Src: /src/libwebp/src/dsp/yuv.c:592,1
    - Dst: memset
      Src: /src/libwebp/src/dsp/yuv.c:594,1
    - Dst: WebPAccumulateRGB
      Src: /src/libwebp/src/dsp/yuv.c:600,1
    - Dst: WebPAccumulateRGBA
      Src: /src/libwebp/src/dsp/yuv.c:603,1
    - Dst: WebPConvertRGBA32ToUV
      Src: /src/libwebp/src/dsp/yuv.c:606,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 12
    argNames:
    - r_ptr
    - g_ptr
    - b_ptr
    - a_ptr
    - step
    - has_alpha
    - width
    - tmp_rgb
    - dst_y
    - dst_u
    - dst_v
    - dst_a
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - uint16_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 576
    functionDepth: 4
    functionLinenumber: 576
    functionLinenumberEnd: 607
    functionName: ImportYUVAFromRGBALastLine_C
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached:
    - WebPAccumulateRGB
    - WebPConvertRGBA32ToUV
    - memset
    - WebPConvertRGBToY
    - WebPAccumulateRGBA
    - WebPExtractAlpha
    - WebPConvertBGRToY
    linkageType: ''
    returnType: void
    signature: "void ImportYUVAFromRGBALastLine_C(\n    const uint8_t* r_ptr, const
      uint8_t* g_ptr, const uint8_t* b_ptr,\n    const uint8_t* a_ptr,\n    int step,
      \ // bytes per pixel\n    int has_alpha, int width, uint16_t* tmp_rgb, uint8_t*
      dst_y, uint8_t* dst_u,\n    uint8_t* dst_v, uint8_t* dst_a)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/yuv.c:658,1
    - Dst: WebPInitConvertARGBToYUVSSE2
      Src: /src/libwebp/src/dsp/yuv.c:659,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/yuv.c:663,1
    - Dst: WebPInitConvertARGBToYUVSSE41
      Src: /src/libwebp/src/dsp/yuv.c:664,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/yuv.c:671,1
    - Dst: WebPInitConvertARGBToYUVNEON
      Src: /src/libwebp/src/dsp/yuv.c:672,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/yuv.c:676,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/yuv.c:677,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/yuv.c:678,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/yuv.c:679,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/yuv.c:680,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WebPConvertARGBToY != NULL)
      pos:
        line_end: 675
        line_start: 675
        source_file: /src/libwebp/src/dsp/yuv.c
    - condition: (WebPConvertARGBToUV != NULL)
      pos:
        line_end: 676
        line_start: 676
        source_file: /src/libwebp/src/dsp/yuv.c
    - condition: (WebPConvertRGBToY != NULL)
      pos:
        line_end: 677
        line_start: 677
        source_file: /src/libwebp/src/dsp/yuv.c
    - condition: (WebPConvertBGRToY != NULL)
      pos:
        line_end: 678
        line_start: 678
        source_file: /src/libwebp/src/dsp/yuv.c
    - condition: (WebPConvertRGBA32ToUV != NULL)
      pos:
        line_end: 679
        line_start: 679
        source_file: /src/libwebp/src/dsp/yuv.c
    constantsTouched: []
    func_position:
      end: 681
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 681
    functionName: WEBP_DSP_INIT_FUNC
    functionSourceFile: /src/libwebp/src/dsp/yuv.c
    functionUses: 0
    functionsReached:
    - VP8GetCPUInfo
    - assert
    - WebPInitConvertARGBToYUVNEON
    - WebPInitConvertARGBToYUVSSE2
    - WebPInitConvertARGBToYUVSSE41
    linkageType: ''
    returnType: void
    signature: void WEBP_DSP_INIT_FUNC(WebPInitConvertARGBToYUV)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:40,1
    - Dst: vtbl1q_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:40,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:40,1
    - Dst: vtbl1q_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:41,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argb
    - shuffle
    argTypes:
    - uint8x16_t
    - uint8x16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: DoGreenShuffle_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_neon.c
    functionUses: 0
    functionsReached:
    - vcombine_u8
    - vtbl1q_u8
    - vget_high_u8
    - vget_low_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoGreenShuffle_NEON(const uint8x16_t argb,\n                                                  const
      uint8x16_t shuffle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:49,1
    - Dst: vtbl1_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:49,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:49,1
    - Dst: vtbl1_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:50,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argb
    - shuffle
    argTypes:
    - uint8x16_t
    - uint8x8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: DoGreenShuffle_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_neon.c
    functionUses: 0
    functionsReached:
    - vcombine_u8
    - vget_high_u8
    - vget_low_u8
    - vtbl1_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoGreenShuffle_NEON(const uint8x16_t argb,\n                                                  const
      uint8x8_t shuffle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:58,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:60,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:63,1
    - Dst: DoGreenShuffle_NEON
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:64,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:65,1
    - Dst: vsubq_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:65,1
    - Dst: VP8LSubtractGreenFromBlueAndRed_C
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - argb_data
    - num_pixels
    argTypes:
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 69
    functionName: SubtractGreenFromBlueAndRed_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_neon.c
    functionUses: 0
    functionsReached:
    - vst1q_u8
    - DoGreenShuffle_NEON
    - vld1_u8
    - vsubq_u8
    - VP8LSubtractGreenFromBlueAndRed_C
    - vld1q_u8
    linkageType: ''
    returnType: void
    signature: "void SubtractGreenFromBlueAndRed_NEON(uint32_t* argb_data,\n                                             int
      num_pixels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:79,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:79,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:80,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:80,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:81,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:81,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:82,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:82,1
    - Dst: vld1q_s16
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:83,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:85,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:85,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:86,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:86,1
    - Dst: vld1q_s16
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:88,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:93,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:96,1
    - Dst: vdupq_n_u32
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:98,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:101,1
    - Dst: DoGreenShuffle_NEON
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:103,1
    - Dst: vqdmulhq_s16
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:105,1
    - Dst: vreinterpretq_s16_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:105,1
    - Dst: vshlq_n_s16
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:107,1
    - Dst: vreinterpretq_s16_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:107,1
    - Dst: vqdmulhq_s16
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:109,1
    - Dst: vshrq_n_u32
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:111,1
    - Dst: vreinterpretq_u32_s16
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:111,1
    - Dst: vaddq_s8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:114,1
    - Dst: vreinterpretq_s8_u32
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:114,1
    - Dst: vreinterpretq_s8_s16
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:114,1
    - Dst: vandq_u32
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:116,1
    - Dst: vreinterpretq_u32_s8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:116,1
    - Dst: vsubq_s8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:118,1
    - Dst: vreinterpretq_s8_u8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:118,1
    - Dst: vreinterpretq_s8_u32
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:118,1
    - Dst: vst1q_s8
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:119,1
    - Dst: VP8LTransformColor_C
      Src: /src/libwebp/src/dsp/lossless_enc_neon.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - m
    - WEBP_RESTRICT
    - num_pixels
    argTypes:
    - VP8LMultipliers*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 123
    functionName: TransformColor_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_neon.c
    functionUses: 0
    functionsReached:
    - vdupq_n_u32
    - vreinterpretq_s8_u8
    - vshrq_n_u32
    - vaddq_s8
    - vreinterpretq_u32_s8
    - vst1q_s8
    - vreinterpretq_s8_u32
    - vsubq_s8
    - vandq_u32
    - vld1q_s16
    - vshlq_n_s16
    - vqdmulhq_s16
    - VP8LTransformColor_C
    - CST
    - vreinterpretq_s16_u8
    - DoGreenShuffle_NEON
    - vreinterpretq_s8_s16
    - vld1_u8
    - vreinterpretq_u32_s16
    - vld1q_u8
    linkageType: ''
    returnType: void
    signature: "void TransformColor_NEON(const VP8LMultipliers* WEBP_RESTRICT const
      m,\n                                uint32_t* WEBP_RESTRICT argb_data,\n                                int
      num_pixels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: CST
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_neon.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CST(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: VP8LEncDspInitNEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8LEncDspInitNEON(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_sse41.c:30,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_sse41.c:31,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_sse41.c:31,1
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_sse41.c:32,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_sse41.c:32,1
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_sse41.c:34,1
    - Dst: _mm_setr_epi8
      Src: /src/libwebp/src/dsp/lossless_sse41.c:36,1
    - Dst: _mm_setr_epi8
      Src: /src/libwebp/src/dsp/lossless_sse41.c:37,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse41.c:41,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/lossless_sse41.c:42,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_sse41.c:43,1
    - Dst: _mm_add_epi8
      Src: /src/libwebp/src/dsp/lossless_sse41.c:44,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/lossless_sse41.c:45,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_sse41.c:46,1
    - Dst: _mm_add_epi8
      Src: /src/libwebp/src/dsp/lossless_sse41.c:47,1
    - Dst: _mm_blendv_epi8
      Src: /src/libwebp/src/dsp/lossless_sse41.c:48,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_sse41.c:49,1
    - Dst: VP8LTransformColorInverse_C
      Src: /src/libwebp/src/dsp/lossless_sse41.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - m
    - src
    - num_pixels
    - dst
    argTypes:
    - VP8LMultipliers*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 55
    functionName: TransformColorInverse_SSE41
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse41.c
    functionUses: 0
    functionsReached:
    - VP8LTransformColorInverse_C
    - _mm_set1_epi32
    - CST
    - _mm_mulhi_epi16
    - _mm_setr_epi8
    - _mm_blendv_epi8
    - _mm_storeu_si128
    - _mm_shuffle_epi8
    - _mm_loadu_si128
    - _mm_add_epi8
    linkageType: ''
    returnType: void
    signature: "void TransformColorInverse_SSE41(const VP8LMultipliers* const m,\n
      \                                       const uint32_t* const src,\n                                        int
      num_pixels, uint32_t* dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: CST
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse41.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CST(X)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setr_epi8
      Src: /src/libwebp/src/dsp/lossless_sse41.c:87,1
    - Dst: _mm_shuffle_epi32
      Src: /src/libwebp/src/dsp/lossless_sse41.c:88,1
    - Dst: _mm_shuffle_epi32
      Src: /src/libwebp/src/dsp/lossless_sse41.c:89,1
    - Dst: _mm_shuffle_epi32
      Src: /src/libwebp/src/dsp/lossless_sse41.c:90,1
    - Dst: VP8LConvertBGRAToRGB_C
      Src: /src/libwebp/src/dsp/lossless_sse41.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: ConvertBGRAToRGB_SSE41
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_shuffle_epi32
    - _mm_setr_epi8
    - VP8LConvertBGRAToRGB_C
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToRGB_SSE41(const uint32_t* WEBP_RESTRICT src,\n                                   int
      num_pixels, uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setr_epi8
      Src: /src/libwebp/src/dsp/lossless_sse41.c:105,1
    - Dst: _mm_shuffle_epi32
      Src: /src/libwebp/src/dsp/lossless_sse41.c:106,1
    - Dst: _mm_shuffle_epi32
      Src: /src/libwebp/src/dsp/lossless_sse41.c:107,1
    - Dst: _mm_shuffle_epi32
      Src: /src/libwebp/src/dsp/lossless_sse41.c:108,1
    - Dst: VP8LConvertBGRAToBGR_C
      Src: /src/libwebp/src/dsp/lossless_sse41.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: ConvertBGRAToBGR_SSE41
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_shuffle_epi32
    - _mm_setr_epi8
    - VP8LConvertBGRAToBGR_C
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToBGR_SSE41(const uint32_t* WEBP_RESTRICT src,\n                                   int
      num_pixels, uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: VP8LDspInitSSE41
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse41.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8LDspInitSSE41(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8BitCost
      Src: /src/libwebp/src/dsp/cost.c:247,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/dsp/cost.c:250,1
    - Dst: abs
      Src: /src/libwebp/src/dsp/cost.c:253,1
    - Dst: VP8LevelCost
      Src: /src/libwebp/src/dsp/cost.c:255,1
    - Dst: abs
      Src: /src/libwebp/src/dsp/cost.c:260,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/cost.c:261,1
    - Dst: VP8LevelCost
      Src: /src/libwebp/src/dsp/cost.c:262,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/dsp/cost.c:267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ctx0
    - res
    argTypes:
    - int
    - VP8Residual*
    assertStmts:
    - condition: (v != 0)
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/libwebp/src/dsp/cost.c
    constantsTouched: []
    func_position:
      end: 271
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 271
    functionName: GetResidualCost_C
    functionSourceFile: /src/libwebp/src/dsp/cost.c
    functionUses: 0
    functionsReached:
    - assert
    - abs
    - VP8LevelCost
    - VP8BitCost
    linkageType: ''
    returnType: int
    signature: int GetResidualCost_C(int ctx0, const VP8Residual* const res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/cost.c:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - coeffs
    - res
    argTypes:
    - int16_t*
    - VP8Residual*
    assertStmts:
    - condition: (res->first == 0 || coeffs[0] == 0)
      pos:
        line_end: 276
        line_start: 276
        source_file: /src/libwebp/src/dsp/cost.c
    constantsTouched: []
    func_position:
      end: 285
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 285
    functionName: SetResidualCoeffs_C
    functionSourceFile: /src/libwebp/src/dsp/cost.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void SetResidualCoeffs_C(const int16_t* WEBP_RESTRICT const coeffs,\n
      \                               VP8Residual* WEBP_RESTRICT const res)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/cost.c:306,1
    - Dst: VP8EncDspCostInitMIPS32
      Src: /src/libwebp/src/dsp/cost.c:307,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/cost.c:311,1
    - Dst: VP8EncDspCostInitMIPSdspR2
      Src: /src/libwebp/src/dsp/cost.c:312,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/cost.c:316,1
    - Dst: VP8EncDspCostInitSSE2
      Src: /src/libwebp/src/dsp/cost.c:317,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/cost.c:321,1
    - Dst: VP8EncDspCostInitNEON
      Src: /src/libwebp/src/dsp/cost.c:322,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 326
    functionName: WEBP_DSP_INIT_FUNC
    functionSourceFile: /src/libwebp/src/dsp/cost.c
    functionUses: 0
    functionsReached:
    - VP8GetCPUInfo
    - VP8EncDspCostInitSSE2
    - VP8EncDspCostInitMIPSdspR2
    - VP8EncDspCostInitNEON
    - VP8EncDspCostInitMIPS32
    linkageType: ''
    returnType: void
    signature: void WEBP_DSP_INIT_FUNC(VP8EncDspCostInit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - in
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: ILVR_UW2
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVR_UW2(in, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - in
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: ILVRL_UW4
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ILVRL_UW4(in, out0, out1, out2, out3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - cnst
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: MULTHI_16
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULTHI_16(in0, in1, in2, in3, cnst, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - cnst
    - ','
    - out0
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: MULTHI_8
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULTHI_8(in0, in1, cnst, out0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - y0
    - ','
    - y1
    - ','
    - v0
    - ','
    - v1
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 68
    functionName: CALC_R16
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALC_R16(y0, y1, v0, v1, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - y0
    - ','
    - v0
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: CALC_R8
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALC_R8(y0, v0, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - y0
    - ','
    - y1
    - ','
    - u0
    - ','
    - u1
    - ','
    - v0
    - ','
    - v1
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: CALC_G16
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALC_G16(y0, y1, u0, u1, v0, v1, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - y0
    - ','
    - u0
    - ','
    - v0
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: CALC_G8
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALC_G8(y0, u0, v0, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - y0
    - ','
    - y1
    - ','
    - u0
    - ','
    - u1
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 115
    functionName: CALC_B16
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALC_B16(y0, y1, u0, u1, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - y0
    - ','
    - u0
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: CALC_B8
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALC_B8(y0, u0, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - y
    - ','
    - u
    - ','
    - v
    - ','
    - R
    - ','
    - G
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 146
    functionName: CALC_RGB16
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALC_RGB16(y, u, v, R, G, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - y
    - ','
    - u
    - ','
    - v
    - ','
    - R
    - ','
    - G
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 167
    functionName: CALC_RGB8
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALC_RGB8(y, u, v, R, G, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 187
    functionName: STORE16_3
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE16_3(a0, a1, a2, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 202
    functionName: STORE8_3
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE8_3(a0, a1, a2, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 216
    functionName: STORE16_4
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE16_4(a0, a1, a2, a3, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 225
    functionName: STORE8_4
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE8_4(a0, a1, a2, a3, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 233
    functionName: STORE2_16
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE2_16(a0, a1, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: STORE2_8
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE2_8(a0, a1, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - y
    - ','
    - u
    - ','
    - v
    - ','
    - out0
    - ','
    - out1
    - ','
    - N
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 250
    functionName: CALC_RGBA4444
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALC_RGBA4444(y, u, v, out0, out1, N, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - y
    - ','
    - u
    - ','
    - v
    - ','
    - out0
    - ','
    - out1
    - ','
    - N
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 263
    functionName: CALC_RGB565
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALC_RGB565(y, u, v, out0, out1, N, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 264
    functionName: Clip8
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Clip8(int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:267,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:268,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:269,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:269,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:270,1
    - Dst: Clip8
      Src: /src/libwebp/src/dsp/upsampling_msa.c:271,1
    - Dst: Clip8
      Src: /src/libwebp/src/dsp/upsampling_msa.c:272,1
    - Dst: Clip8
      Src: /src/libwebp/src/dsp/upsampling_msa.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - y
    - u
    - v
    - rgb
    argTypes:
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 274
    functionName: YuvToRgb
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 2
    functionsReached:
    - Clip8
    - MultHi
    linkageType: ''
    returnType: void
    signature: void YuvToRgb(int y, int u, int v, uint8_t* const rgb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:277,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:278,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:279,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:279,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:280,1
    - Dst: Clip8
      Src: /src/libwebp/src/dsp/upsampling_msa.c:281,1
    - Dst: Clip8
      Src: /src/libwebp/src/dsp/upsampling_msa.c:282,1
    - Dst: Clip8
      Src: /src/libwebp/src/dsp/upsampling_msa.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - y
    - u
    - v
    - bgr
    argTypes:
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 284
    functionName: YuvToBgr
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 1
    functionsReached:
    - Clip8
    - MultHi
    linkageType: ''
    returnType: void
    signature: void YuvToBgr(int y, int u, int v, uint8_t* const bgr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:288,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:289,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:290,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:290,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:291,1
    - Dst: Clip8
      Src: /src/libwebp/src/dsp/upsampling_msa.c:292,1
    - Dst: Clip8
      Src: /src/libwebp/src/dsp/upsampling_msa.c:293,1
    - Dst: Clip8
      Src: /src/libwebp/src/dsp/upsampling_msa.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - y
    - u
    - v
    - rgb
    argTypes:
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 304
    functionName: YuvToRgb565
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached:
    - Clip8
    - MultHi
    linkageType: ''
    returnType: void
    signature: void YuvToRgb565(int y, int u, int v, uint8_t* const rgb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:307,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:308,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:309,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:309,1
    - Dst: MultHi
      Src: /src/libwebp/src/dsp/upsampling_msa.c:310,1
    - Dst: Clip8
      Src: /src/libwebp/src/dsp/upsampling_msa.c:311,1
    - Dst: Clip8
      Src: /src/libwebp/src/dsp/upsampling_msa.c:312,1
    - Dst: Clip8
      Src: /src/libwebp/src/dsp/upsampling_msa.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - y
    - u
    - v
    - argb
    argTypes:
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 323
    functionName: YuvToRgba4444
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached:
    - Clip8
    - MultHi
    linkageType: ''
    returnType: void
    signature: void YuvToRgba4444(int y, int u, int v, uint8_t* const argb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YuvToRgb
      Src: /src/libwebp/src/dsp/upsampling_msa.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - y
    - u
    - v
    - argb
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: YuvToArgb
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached:
    - YuvToRgb
    linkageType: ''
    returnType: void
    signature: void YuvToArgb(uint8_t y, uint8_t u, uint8_t v, uint8_t* const argb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YuvToBgr
      Src: /src/libwebp/src/dsp/upsampling_msa.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - y
    - u
    - v
    - bgra
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: YuvToBgra
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached:
    - YuvToBgr
    linkageType: ''
    returnType: void
    signature: void YuvToBgra(uint8_t y, uint8_t u, uint8_t v, uint8_t* const bgra)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YuvToRgb
      Src: /src/libwebp/src/dsp/upsampling_msa.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - y
    - u
    - v
    - rgba
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: YuvToRgba
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached:
    - YuvToRgb
    linkageType: ''
    returnType: void
    signature: void YuvToRgba(uint8_t y, uint8_t u, uint8_t v, uint8_t* const rgba)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CALC_RGB16
      Src: /src/libwebp/src/dsp/upsampling_msa.c:348,1
    - Dst: STORE16_3
      Src: /src/libwebp/src/dsp/upsampling_msa.c:349,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:358,1
    - Dst: CALC_RGB16
      Src: /src/libwebp/src/dsp/upsampling_msa.c:359,1
    - Dst: STORE16_3
      Src: /src/libwebp/src/dsp/upsampling_msa.c:360,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:361,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:364,1
    - Dst: CALC_RGB8
      Src: /src/libwebp/src/dsp/upsampling_msa.c:365,1
    - Dst: STORE8_3
      Src: /src/libwebp/src/dsp/upsampling_msa.c:366,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 369
    functionName: YuvToRgbLine
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached:
    - CALC_RGB8
    - STORE8_3
    - memcpy
    - CALC_RGB16
    - STORE16_3
    linkageType: ''
    returnType: void
    signature: "void YuvToRgbLine(const uint8_t* WEBP_RESTRICT y,\n                         const
      uint8_t* WEBP_RESTRICT u,\n                         const uint8_t* WEBP_RESTRICT
      v,\n                         uint8_t* WEBP_RESTRICT dst, int length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CALC_RGB16
      Src: /src/libwebp/src/dsp/upsampling_msa.c:377,1
    - Dst: STORE16_3
      Src: /src/libwebp/src/dsp/upsampling_msa.c:378,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:387,1
    - Dst: CALC_RGB16
      Src: /src/libwebp/src/dsp/upsampling_msa.c:388,1
    - Dst: STORE16_3
      Src: /src/libwebp/src/dsp/upsampling_msa.c:389,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:390,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:393,1
    - Dst: CALC_RGB8
      Src: /src/libwebp/src/dsp/upsampling_msa.c:394,1
    - Dst: STORE8_3
      Src: /src/libwebp/src/dsp/upsampling_msa.c:395,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 398
    functionName: YuvToBgrLine
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached:
    - CALC_RGB8
    - STORE8_3
    - memcpy
    - CALC_RGB16
    - STORE16_3
    linkageType: ''
    returnType: void
    signature: "void YuvToBgrLine(const uint8_t* WEBP_RESTRICT y,\n                         const
      uint8_t* WEBP_RESTRICT u,\n                         const uint8_t* WEBP_RESTRICT
      v,\n                         uint8_t* WEBP_RESTRICT dst, int length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __msa_ldi_b
      Src: /src/libwebp/src/dsp/upsampling_msa.c:406,1
    - Dst: CALC_RGB16
      Src: /src/libwebp/src/dsp/upsampling_msa.c:408,1
    - Dst: STORE16_4
      Src: /src/libwebp/src/dsp/upsampling_msa.c:409,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:418,1
    - Dst: CALC_RGB16
      Src: /src/libwebp/src/dsp/upsampling_msa.c:419,1
    - Dst: STORE16_4
      Src: /src/libwebp/src/dsp/upsampling_msa.c:420,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:421,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:424,1
    - Dst: CALC_RGB8
      Src: /src/libwebp/src/dsp/upsampling_msa.c:425,1
    - Dst: STORE8_4
      Src: /src/libwebp/src/dsp/upsampling_msa.c:426,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 429
    functionName: YuvToRgbaLine
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached:
    - CALC_RGB8
    - __msa_ldi_b
    - memcpy
    - CALC_RGB16
    - STORE16_4
    - STORE8_4
    linkageType: ''
    returnType: void
    signature: "void YuvToRgbaLine(const uint8_t* WEBP_RESTRICT y,\n                          const
      uint8_t* WEBP_RESTRICT u,\n                          const uint8_t* WEBP_RESTRICT
      v,\n                          uint8_t* WEBP_RESTRICT dst, int length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __msa_ldi_b
      Src: /src/libwebp/src/dsp/upsampling_msa.c:436,1
    - Dst: CALC_RGB16
      Src: /src/libwebp/src/dsp/upsampling_msa.c:438,1
    - Dst: STORE16_4
      Src: /src/libwebp/src/dsp/upsampling_msa.c:439,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:448,1
    - Dst: CALC_RGB16
      Src: /src/libwebp/src/dsp/upsampling_msa.c:449,1
    - Dst: STORE16_4
      Src: /src/libwebp/src/dsp/upsampling_msa.c:450,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:451,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:454,1
    - Dst: CALC_RGB8
      Src: /src/libwebp/src/dsp/upsampling_msa.c:455,1
    - Dst: STORE8_4
      Src: /src/libwebp/src/dsp/upsampling_msa.c:456,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 459
    functionName: YuvToBgraLine
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached:
    - CALC_RGB8
    - __msa_ldi_b
    - memcpy
    - CALC_RGB16
    - STORE16_4
    - STORE8_4
    linkageType: ''
    returnType: void
    signature: "void YuvToBgraLine(const uint8_t* WEBP_RESTRICT y,\n                          const
      uint8_t* WEBP_RESTRICT u,\n                          const uint8_t* WEBP_RESTRICT
      v,\n                          uint8_t* WEBP_RESTRICT dst, int length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __msa_ldi_b
      Src: /src/libwebp/src/dsp/upsampling_msa.c:467,1
    - Dst: CALC_RGB16
      Src: /src/libwebp/src/dsp/upsampling_msa.c:469,1
    - Dst: STORE16_4
      Src: /src/libwebp/src/dsp/upsampling_msa.c:470,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:479,1
    - Dst: CALC_RGB16
      Src: /src/libwebp/src/dsp/upsampling_msa.c:480,1
    - Dst: STORE16_4
      Src: /src/libwebp/src/dsp/upsampling_msa.c:481,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:482,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:485,1
    - Dst: CALC_RGB8
      Src: /src/libwebp/src/dsp/upsampling_msa.c:486,1
    - Dst: STORE8_4
      Src: /src/libwebp/src/dsp/upsampling_msa.c:487,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 490
    functionName: YuvToArgbLine
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached:
    - CALC_RGB8
    - __msa_ldi_b
    - memcpy
    - CALC_RGB16
    - STORE16_4
    - STORE8_4
    linkageType: ''
    returnType: void
    signature: "void YuvToArgbLine(const uint8_t* WEBP_RESTRICT y,\n                          const
      uint8_t* WEBP_RESTRICT u,\n                          const uint8_t* WEBP_RESTRICT
      v,\n                          uint8_t* WEBP_RESTRICT dst, int length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CALC_RGBA4444
      Src: /src/libwebp/src/dsp/upsampling_msa.c:499,1
    - Dst: CALC_RGBA4444
      Src: /src/libwebp/src/dsp/upsampling_msa.c:501,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:511,1
    - Dst: CALC_RGBA4444
      Src: /src/libwebp/src/dsp/upsampling_msa.c:513,1
    - Dst: CALC_RGBA4444
      Src: /src/libwebp/src/dsp/upsampling_msa.c:515,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:517,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:520,1
    - Dst: CALC_RGBA4444
      Src: /src/libwebp/src/dsp/upsampling_msa.c:522,1
    - Dst: CALC_RGBA4444
      Src: /src/libwebp/src/dsp/upsampling_msa.c:524,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 528
    functionName: YuvToRgba4444Line
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CALC_RGBA4444
    linkageType: ''
    returnType: void
    signature: "void YuvToRgba4444Line(const uint8_t* WEBP_RESTRICT y,\n                              const
      uint8_t* WEBP_RESTRICT u,\n                              const uint8_t* WEBP_RESTRICT
      v,\n                              uint8_t* WEBP_RESTRICT dst, int length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CALC_RGB565
      Src: /src/libwebp/src/dsp/upsampling_msa.c:537,1
    - Dst: CALC_RGB565
      Src: /src/libwebp/src/dsp/upsampling_msa.c:539,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:549,1
    - Dst: CALC_RGB565
      Src: /src/libwebp/src/dsp/upsampling_msa.c:551,1
    - Dst: CALC_RGB565
      Src: /src/libwebp/src/dsp/upsampling_msa.c:553,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:555,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:558,1
    - Dst: CALC_RGB565
      Src: /src/libwebp/src/dsp/upsampling_msa.c:560,1
    - Dst: CALC_RGB565
      Src: /src/libwebp/src/dsp/upsampling_msa.c:562,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/upsampling_msa.c:564,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 566
    functionName: YuvToRgb565Line
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CALC_RGB565
    linkageType: ''
    returnType: void
    signature: "void YuvToRgb565Line(const uint8_t* WEBP_RESTRICT y,\n                            const
      uint8_t* WEBP_RESTRICT u,\n                            const uint8_t* WEBP_RESTRICT
      v,\n                            uint8_t* WEBP_RESTRICT dst, int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 599
    functionName: UPSAMPLE_32PIXELS
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPSAMPLE_32PIXELS(a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FUNC_NAME
    - ','
    - FUNC
    - ','
    - XSTEP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 683
    functionName: UPSAMPLE_FUNC
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPSAMPLE_FUNC(FUNC_NAME, FUNC, XSTEP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 715
    functionName: WebPInitUpsamplersMSA
    functionSourceFile: /src/libwebp/src/dsp/upsampling_msa.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPInitUpsamplersMSA(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: clip_8b
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE clip_8b(int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - max
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: clip_max
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE clip_max(int v, int max)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - distribution
    - histo
    argTypes:
    - int[]
    - VP8Histogram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: VP8SetHistogramData
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void VP8SetHistogramData(const int distribution[MAX_COEFF_THRESH +
      1],\n                         VP8Histogram* const histo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8FTransform
      Src: /src/libwebp/src/dsp/enc.c:74,1
    - Dst: abs
      Src: /src/libwebp/src/dsp/enc.c:78,1
    - Dst: clip_max
      Src: /src/libwebp/src/dsp/enc.c:79,1
    - Dst: VP8SetHistogramData
      Src: /src/libwebp/src/dsp/enc.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - start_block
    - end_block
    - histo
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - VP8Histogram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 84
    functionName: CollectHistogram_C
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - abs
    - clip_max
    - VP8SetHistogramData
    - VP8FTransform
    linkageType: ''
    returnType: void
    signature: "void CollectHistogram_C(const uint8_t* WEBP_RESTRICT ref,\n                               const
      uint8_t* WEBP_RESTRICT pred,\n                               int start_block,
      int end_block,\n                               VP8Histogram* WEBP_RESTRICT const
      histo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clip_8b
      Src: /src/libwebp/src/dsp/enc.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 104
    functionName: InitTables
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - clip_8b
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION InitTables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: STORE
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE(x, y, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_TRANSFORM_AC3_MUL2
      Src: /src/libwebp/src/dsp/enc.c:124,1
    - Dst: WEBP_TRANSFORM_AC3_MUL1
      Src: /src/libwebp/src/dsp/enc.c:124,1
    - Dst: WEBP_TRANSFORM_AC3_MUL1
      Src: /src/libwebp/src/dsp/enc.c:126,1
    - Dst: WEBP_TRANSFORM_AC3_MUL2
      Src: /src/libwebp/src/dsp/enc.c:126,1
    - Dst: WEBP_TRANSFORM_AC3_MUL2
      Src: /src/libwebp/src/dsp/enc.c:141,1
    - Dst: WEBP_TRANSFORM_AC3_MUL1
      Src: /src/libwebp/src/dsp/enc.c:141,1
    - Dst: WEBP_TRANSFORM_AC3_MUL1
      Src: /src/libwebp/src/dsp/enc.c:143,1
    - Dst: WEBP_TRANSFORM_AC3_MUL2
      Src: /src/libwebp/src/dsp/enc.c:143,1
    - Dst: STORE
      Src: /src/libwebp/src/dsp/enc.c:144,1
    - Dst: STORE
      Src: /src/libwebp/src/dsp/enc.c:145,1
    - Dst: STORE
      Src: /src/libwebp/src/dsp/enc.c:146,1
    - Dst: STORE
      Src: /src/libwebp/src/dsp/enc.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 150
    functionName: ITransformOne
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 1
    functionsReached:
    - STORE
    - WEBP_TRANSFORM_AC3_MUL2
    - WEBP_TRANSFORM_AC3_MUL1
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ITransformOne(const uint8_t* WEBP_RESTRICT ref,\n                                      const
      int16_t* WEBP_RESTRICT in,\n                                      uint8_t* WEBP_RESTRICT
      dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ITransformOne
      Src: /src/libwebp/src/dsp/enc.c:155,1
    - Dst: ITransformOne
      Src: /src/libwebp/src/dsp/enc.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - do_two
    argTypes:
    - uint8_t*
    - int16_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: ITransform_C
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - ITransformOne
    linkageType: ''
    returnType: void
    signature: "void ITransform_C(const uint8_t* WEBP_RESTRICT ref,\n                         const
      int16_t* WEBP_RESTRICT in,\n                         uint8_t* WEBP_RESTRICT
      dst, int do_two)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 190
    functionName: FTransform_C
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void FTransform_C(const uint8_t* WEBP_RESTRICT src,\n                         const
      uint8_t* WEBP_RESTRICT ref,\n                         int16_t* WEBP_RESTRICT
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8FTransform
      Src: /src/libwebp/src/dsp/enc.c:196,1
    - Dst: VP8FTransform
      Src: /src/libwebp/src/dsp/enc.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: FTransform2_C
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - VP8FTransform
    linkageType: ''
    returnType: void
    signature: "void FTransform2_C(const uint8_t* WEBP_RESTRICT src,\n                          const
      uint8_t* WEBP_RESTRICT ref,\n                          int16_t* WEBP_RESTRICT
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 230
    functionName: FTransformWHT_C
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void FTransformWHT_C(const int16_t* WEBP_RESTRICT in,\n                            int16_t*
      WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/dsp/enc.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dst
    - value
    - size
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 243
    functionName: Fill
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Fill(uint8_t* dst, int value, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/enc.c:250,1
    - Dst: Fill
      Src: /src/libwebp/src/dsp/enc.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - size
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: VerticalPred
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Fill
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VerticalPred(uint8_t* WEBP_RESTRICT dst,\n                                     const
      uint8_t* WEBP_RESTRICT top,\n                                     int size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/dsp/enc.c:262,1
    - Dst: Fill
      Src: /src/libwebp/src/dsp/enc.c:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - size
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 267
    functionName: HorizontalPred
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - memset
    - Fill
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE HorizontalPred(uint8_t* WEBP_RESTRICT dst,\n                                       const
      uint8_t* WEBP_RESTRICT left,\n                                       int size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HorizontalPred
      Src: /src/libwebp/src/dsp/enc.c:285,1
    - Dst: VerticalPred
      Src: /src/libwebp/src/dsp/enc.c:293,1
    - Dst: Fill
      Src: /src/libwebp/src/dsp/enc.c:295,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - size
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 298
    functionName: TrueMotion
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 3
    functionsReached:
    - Fill
    - HorizontalPred
    - VerticalPred
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE TrueMotion(uint8_t* WEBP_RESTRICT dst,\n                                   const
      uint8_t* WEBP_RESTRICT left,\n                                   const uint8_t*
      WEBP_RESTRICT top, int size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Fill
      Src: /src/libwebp/src/dsp/enc.c:321,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - size
    - round
    - shift
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 322
    functionName: DCMode
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - Fill
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DCMode(uint8_t* WEBP_RESTRICT dst,\n                               const
      uint8_t* WEBP_RESTRICT left,\n                               const uint8_t*
      WEBP_RESTRICT top, int size,\n                               int round, int
      shift)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DCMode
      Src: /src/libwebp/src/dsp/enc.c:331,1
    - Dst: VerticalPred
      Src: /src/libwebp/src/dsp/enc.c:332,1
    - Dst: HorizontalPred
      Src: /src/libwebp/src/dsp/enc.c:333,1
    - Dst: TrueMotion
      Src: /src/libwebp/src/dsp/enc.c:334,1
    - Dst: DCMode
      Src: /src/libwebp/src/dsp/enc.c:339,1
    - Dst: VerticalPred
      Src: /src/libwebp/src/dsp/enc.c:340,1
    - Dst: HorizontalPred
      Src: /src/libwebp/src/dsp/enc.c:341,1
    - Dst: TrueMotion
      Src: /src/libwebp/src/dsp/enc.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 343
    functionName: IntraChromaPreds_C
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - DCMode
    - TrueMotion
    - HorizontalPred
    - VerticalPred
    linkageType: ''
    returnType: void
    signature: "void IntraChromaPreds_C(uint8_t* WEBP_RESTRICT dst,\n                               const
      uint8_t* WEBP_RESTRICT left,\n                               const uint8_t*
      WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCMode
      Src: /src/libwebp/src/dsp/enc.c:352,1
    - Dst: VerticalPred
      Src: /src/libwebp/src/dsp/enc.c:353,1
    - Dst: HorizontalPred
      Src: /src/libwebp/src/dsp/enc.c:354,1
    - Dst: TrueMotion
      Src: /src/libwebp/src/dsp/enc.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 356
    functionName: Intra16Preds_C
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - DCMode
    - TrueMotion
    - HorizontalPred
    - VerticalPred
    linkageType: ''
    returnType: void
    signature: "void Intra16Preds_C(uint8_t* WEBP_RESTRICT dst,\n                           const
      uint8_t* WEBP_RESTRICT left,\n                           const uint8_t* WEBP_RESTRICT
      top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    functionName: DST
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DST(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 366
    functionName: AVG3
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AVG3(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 367
    functionName: AVG2
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AVG2(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:371,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:372,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:373,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:374,1
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/enc.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 380
    functionName: VE4
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 1
    functionsReached:
    - AVG3
    - memcpy
    linkageType: ''
    returnType: void
    signature: void VE4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPUint32ToMem
      Src: /src/libwebp/src/dsp/enc.c:389,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:389,1
    - Dst: WebPUint32ToMem
      Src: /src/libwebp/src/dsp/enc.c:390,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:390,1
    - Dst: WebPUint32ToMem
      Src: /src/libwebp/src/dsp/enc.c:391,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:391,1
    - Dst: WebPUint32ToMem
      Src: /src/libwebp/src/dsp/enc.c:392,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 393
    functionName: HE4
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 1
    functionsReached:
    - WebPUint32ToMem
    - AVG3
    linkageType: ''
    returnType: void
    signature: void HE4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fill
      Src: /src/libwebp/src/dsp/enc.c:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 400
    functionName: DC4
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 1
    functionsReached:
    - Fill
    linkageType: ''
    returnType: void
    signature: void DC4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:412,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:412,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:413,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:413,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:413,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:414,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:414,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:414,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:414,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:415,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:415,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:415,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:415,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:415,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:416,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:416,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:416,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:416,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:417,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:417,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:417,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:418,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 419
    functionName: RD4
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 1
    functionsReached:
    - AVG3
    - DST
    linkageType: ''
    returnType: void
    signature: void RD4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:430,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:430,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:431,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:431,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:431,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:432,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:432,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:432,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:432,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:433,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:433,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:433,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:433,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:433,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:434,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:434,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:434,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:434,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:435,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:435,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:435,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:436,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 437
    functionName: LD4
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 1
    functionsReached:
    - AVG3
    - DST
    linkageType: ''
    returnType: void
    signature: void LD4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:448,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:448,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc.c:448,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:449,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:449,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc.c:449,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:450,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:450,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc.c:450,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:451,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc.c:451,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:453,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:453,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:454,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:454,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:455,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:455,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:455,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:456,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:456,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:456,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:457,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:457,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:457,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:458,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 459
    functionName: VR4
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 1
    functionsReached:
    - AVG2
    - AVG3
    - DST
    linkageType: ''
    returnType: void
    signature: void VR4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:470,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc.c:470,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:471,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:471,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc.c:471,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:472,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:472,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc.c:472,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:473,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:473,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc.c:473,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:475,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:475,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:476,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:476,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:476,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:477,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:477,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:477,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:478,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:478,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:478,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:479,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:479,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:480,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 481
    functionName: VL4
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 1
    functionsReached:
    - AVG2
    - AVG3
    - DST
    linkageType: ''
    returnType: void
    signature: void VL4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:488,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc.c:488,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:489,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:489,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc.c:489,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:490,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:490,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc.c:490,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:491,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:491,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:492,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:492,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:492,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:493,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:493,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:493,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:494,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:494,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:494,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:494,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:494,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 495
    functionName: HU4
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 1
    functionsReached:
    - AVG2
    - AVG3
    - DST
    linkageType: ''
    returnType: void
    signature: void HU4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:507,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:507,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc.c:507,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:508,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:508,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc.c:508,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:509,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:509,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc.c:509,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:510,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc.c:510,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:512,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:512,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:513,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:513,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:514,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:514,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:514,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:515,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:515,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:515,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:516,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:516,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:516,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc.c:517,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 518
    functionName: HD4
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 1
    functionsReached:
    - AVG2
    - AVG3
    - DST
    linkageType: ''
    returnType: void
    signature: void HD4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 530
    functionName: TM4
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TM4(uint8_t* WEBP_RESTRICT dst, const uint8_t* WEBP_RESTRICT top)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DC4
      Src: /src/libwebp/src/dsp/enc.c:540,1
    - Dst: TM4
      Src: /src/libwebp/src/dsp/enc.c:541,1
    - Dst: VE4
      Src: /src/libwebp/src/dsp/enc.c:542,1
    - Dst: HE4
      Src: /src/libwebp/src/dsp/enc.c:543,1
    - Dst: RD4
      Src: /src/libwebp/src/dsp/enc.c:544,1
    - Dst: VR4
      Src: /src/libwebp/src/dsp/enc.c:545,1
    - Dst: LD4
      Src: /src/libwebp/src/dsp/enc.c:546,1
    - Dst: VL4
      Src: /src/libwebp/src/dsp/enc.c:547,1
    - Dst: HD4
      Src: /src/libwebp/src/dsp/enc.c:548,1
    - Dst: HU4
      Src: /src/libwebp/src/dsp/enc.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 550
    functionName: Intra4Preds_C
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - RD4
    - VR4
    - LD4
    - VL4
    - DC4
    - HU4
    - HD4
    - VE4
    - HE4
    - TM4
    linkageType: ''
    returnType: void
    signature: "void Intra4Preds_C(uint8_t* WEBP_RESTRICT dst,\n                          const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - w
    - h
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 571
    functionName: GetSSE
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE GetSSE(const uint8_t* WEBP_RESTRICT a,\n                              const
      uint8_t* WEBP_RESTRICT b, int w, int h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSSE
      Src: /src/libwebp/src/dsp/enc.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 576
    functionName: SSE16x16_C
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - GetSSE
    linkageType: ''
    returnType: int
    signature: "int SSE16x16_C(const uint8_t* WEBP_RESTRICT a,\n                      const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSSE
      Src: /src/libwebp/src/dsp/enc.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 580
    functionName: SSE16x8_C
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - GetSSE
    linkageType: ''
    returnType: int
    signature: "int SSE16x8_C(const uint8_t* WEBP_RESTRICT a,\n                     const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSSE
      Src: /src/libwebp/src/dsp/enc.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 584
    functionName: SSE8x8_C
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - GetSSE
    linkageType: ''
    returnType: int
    signature: "int SSE8x8_C(const uint8_t* WEBP_RESTRICT a,\n                    const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSSE
      Src: /src/libwebp/src/dsp/enc.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 588
    functionName: SSE4x4_C
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - GetSSE
    linkageType: ''
    returnType: int
    signature: "int SSE4x4_C(const uint8_t* WEBP_RESTRICT a,\n                    const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - dc
    argTypes:
    - uint8_t*
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 603
    functionName: Mean16x4_C
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Mean16x4_C(const uint8_t* WEBP_RESTRICT ref, uint32_t dc[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/libwebp/src/dsp/enc.c:642,1
    - Dst: abs
      Src: /src/libwebp/src/dsp/enc.c:643,1
    - Dst: abs
      Src: /src/libwebp/src/dsp/enc.c:644,1
    - Dst: abs
      Src: /src/libwebp/src/dsp/enc.c:645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 648
    functionName: TTransform
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - abs
    linkageType: ''
    returnType: int
    signature: "int TTransform(const uint8_t* WEBP_RESTRICT in,\n                      const
      uint16_t* WEBP_RESTRICT w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TTransform
      Src: /src/libwebp/src/dsp/enc.c:653,1
    - Dst: TTransform
      Src: /src/libwebp/src/dsp/enc.c:654,1
    - Dst: abs
      Src: /src/libwebp/src/dsp/enc.c:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - w
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 656
    functionName: Disto4x4_C
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - TTransform
    - abs
    linkageType: ''
    returnType: int
    signature: "int Disto4x4_C(const uint8_t* WEBP_RESTRICT const a,\n                      const
      uint8_t* WEBP_RESTRICT const b,\n                      const uint16_t* WEBP_RESTRICT
      const w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Disto4x4_C
      Src: /src/libwebp/src/dsp/enc.c:665,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - a
    - b
    - w
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 669
    functionName: Disto16x16_C
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - Disto4x4_C
    linkageType: ''
    returnType: int
    signature: "int Disto16x16_C(const uint8_t* WEBP_RESTRICT const a,\n                        const
      uint8_t* WEBP_RESTRICT const b,\n                        const uint16_t* WEBP_RESTRICT
      const w)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: QUANTDIV
      Src: /src/libwebp/src/dsp/enc.c:693,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - in
    - out
    - mtx
    argTypes:
    - int16_t[]
    - int16_t[]
    - VP8Matrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 705
    functionName: QuantizeBlock_C
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - QUANTDIV
    linkageType: ''
    returnType: int
    signature: "int QuantizeBlock_C(int16_t in[16], int16_t out[16],\n                           const
      VP8Matrix* WEBP_RESTRICT const mtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8EncQuantizeBlock
      Src: /src/libwebp/src/dsp/enc.c:710,1
    - Dst: VP8EncQuantizeBlock
      Src: /src/libwebp/src/dsp/enc.c:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - in
    - out
    - mtx
    argTypes:
    - int16_t[]
    - int16_t[]
    - VP8Matrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 713
    functionName: Quantize2Blocks_C
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - VP8EncQuantizeBlock
    linkageType: ''
    returnType: int
    signature: "int Quantize2Blocks_C(int16_t in[32], int16_t out[32],\n                             const
      VP8Matrix* WEBP_RESTRICT const mtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/enc.c:723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - w
    - h
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 727
    functionName: Copy
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 15
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Copy(const uint8_t* WEBP_RESTRICT src,\n                             uint8_t*
      WEBP_RESTRICT dst, int w, int h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Copy
      Src: /src/libwebp/src/dsp/enc.c:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 732
    functionName: Copy4x4_C
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - Copy
    linkageType: ''
    returnType: void
    signature: "void Copy4x4_C(const uint8_t* WEBP_RESTRICT src,\n                      uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Copy
      Src: /src/libwebp/src/dsp/enc.c:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 737
    functionName: Copy16x8_C
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - Copy
    linkageType: ''
    returnType: void
    signature: "void Copy16x8_C(const uint8_t* WEBP_RESTRICT src,\n                       uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: VP8DspInit
      Src: /src/libwebp/src/dsp/enc.c:774,1
    - Dst: InitTables
      Src: /src/libwebp/src/dsp/enc.c:775,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/enc.c:813,1
    - Dst: VP8EncDspInitSSE2
      Src: /src/libwebp/src/dsp/enc.c:814,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/enc.c:816,1
    - Dst: VP8EncDspInitSSE41
      Src: /src/libwebp/src/dsp/enc.c:817,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/enc.c:823,1
    - Dst: VP8EncDspInitMIPS32
      Src: /src/libwebp/src/dsp/enc.c:824,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/enc.c:828,1
    - Dst: VP8EncDspInitMIPSdspR2
      Src: /src/libwebp/src/dsp/enc.c:829,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/enc.c:833,1
    - Dst: VP8EncDspInitMSA
      Src: /src/libwebp/src/dsp/enc.c:834,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/enc.c:841,1
    - Dst: VP8EncDspInitNEON
      Src: /src/libwebp/src/dsp/enc.c:842,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:846,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:847,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:848,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:849,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:850,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:851,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:852,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:853,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:854,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:855,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:856,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:857,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:858,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:859,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:860,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:861,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:862,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:863,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:864,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc.c:865,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (VP8FTransform != NULL)
      pos:
        line_end: 846
        line_start: 846
        source_file: /src/libwebp/src/dsp/enc.c
    - condition: (VP8CollectHistogram != NULL)
      pos:
        line_end: 850
        line_start: 850
        source_file: /src/libwebp/src/dsp/enc.c
    - condition: (VP8SSE4x4 != NULL)
      pos:
        line_end: 854
        line_start: 854
        source_file: /src/libwebp/src/dsp/enc.c
    - condition: (VP8EncPredChroma8 != NULL)
      pos:
        line_end: 860
        line_start: 860
        source_file: /src/libwebp/src/dsp/enc.c
    - condition: (VP8Copy16x8 != NULL)
      pos:
        line_end: 864
        line_start: 864
        source_file: /src/libwebp/src/dsp/enc.c
    - condition: (VP8FTransformWHT != NULL)
      pos:
        line_end: 847
        line_start: 847
        source_file: /src/libwebp/src/dsp/enc.c
    - condition: (VP8SSE16x16 != NULL)
      pos:
        line_end: 851
        line_start: 851
        source_file: /src/libwebp/src/dsp/enc.c
    - condition: (VP8EncQuantizeBlock != NULL)
      pos:
        line_end: 855
        line_start: 855
        source_file: /src/libwebp/src/dsp/enc.c
    - condition: (VP8Mean16x4 != NULL)
      pos:
        line_end: 861
        line_start: 861
        source_file: /src/libwebp/src/dsp/enc.c
    - condition: (VP8EncPredLuma16 != NULL)
      pos:
        line_end: 859
        line_start: 859
        source_file: /src/libwebp/src/dsp/enc.c
    - condition: (VP8Copy4x4 != NULL)
      pos:
        line_end: 863
        line_start: 863
        source_file: /src/libwebp/src/dsp/enc.c
    - condition: (VP8TDisto4x4 != NULL)
      pos:
        line_end: 848
        line_start: 848
        source_file: /src/libwebp/src/dsp/enc.c
    - condition: (VP8SSE16x8 != NULL)
      pos:
        line_end: 852
        line_start: 852
        source_file: /src/libwebp/src/dsp/enc.c
    - condition: (VP8EncQuantize2Blocks != NULL)
      pos:
        line_end: 856
        line_start: 856
        source_file: /src/libwebp/src/dsp/enc.c
    - condition: (VP8EncPredLuma4 != NULL)
      pos:
        line_end: 858
        line_start: 858
        source_file: /src/libwebp/src/dsp/enc.c
    - condition: (VP8EncQuantizeBlockWHT != NULL)
      pos:
        line_end: 862
        line_start: 862
        source_file: /src/libwebp/src/dsp/enc.c
    - condition: (VP8ITransform != NULL)
      pos:
        line_end: 845
        line_start: 845
        source_file: /src/libwebp/src/dsp/enc.c
    - condition: (VP8TDisto16x16 != NULL)
      pos:
        line_end: 849
        line_start: 849
        source_file: /src/libwebp/src/dsp/enc.c
    - condition: (VP8SSE8x8 != NULL)
      pos:
        line_end: 853
        line_start: 853
        source_file: /src/libwebp/src/dsp/enc.c
    - condition: (VP8FTransform2 != NULL)
      pos:
        line_end: 857
        line_start: 857
        source_file: /src/libwebp/src/dsp/enc.c
    constantsTouched: []
    func_position:
      end: 866
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 866
    functionName: WEBP_DSP_INIT_FUNC
    functionSourceFile: /src/libwebp/src/dsp/enc.c
    functionUses: 0
    functionsReached:
    - InitTables
    - VP8GetCPUInfo
    - VP8EncDspInitMIPS32
    - assert
    - VP8EncDspInitNEON
    - VP8EncDspInitSSE2
    - VP8EncDspInitSSE41
    - VP8DspInit
    - VP8EncDspInitMIPSdspR2
    - VP8EncDspInitMSA
    linkageType: ''
    returnType: void
    signature: void WEBP_DSP_INIT_FUNC(VP8EncDspInit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/alpha_processing.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - mult
    argTypes:
    - uint8_t
    - uint32_t
    assertStmts:
    - condition: (v <= 255)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/libwebp/src/dsp/alpha_processing.c
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: Mult
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Mult(uint8_t x, uint32_t mult)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - inverse
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: GetScale
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GetScale(uint32_t a, int inverse)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - inverse
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: GetScale
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GetScale(uint32_t a, int inverse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetScale
      Src: /src/libwebp/src/dsp/alpha_processing.c:151,1
    - Dst: Mult
      Src: /src/libwebp/src/dsp/alpha_processing.c:153,1
    - Dst: Mult
      Src: /src/libwebp/src/dsp/alpha_processing.c:154,1
    - Dst: Mult
      Src: /src/libwebp/src/dsp/alpha_processing.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ptr
    - width
    - inverse
    argTypes:
    - uint32_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 160
    functionName: WebPMultARGBRow_C
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached:
    - Mult
    - GetScale
    linkageType: ''
    returnType: void
    signature: void WebPMultARGBRow_C(uint32_t* const ptr, int width, int inverse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetScale
      Src: /src/libwebp/src/dsp/alpha_processing.c:172,1
    - Dst: Mult
      Src: /src/libwebp/src/dsp/alpha_processing.c:173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ptr
    - alpha
    - width
    - inverse
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 177
    functionName: WebPMultRow_C
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached:
    - Mult
    - GetScale
    linkageType: ''
    returnType: void
    signature: "void WebPMultRow_C(uint8_t* WEBP_RESTRICT const ptr,\n                   const
      uint8_t* WEBP_RESTRICT const alpha, int width,\n                   int inverse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPMultARGBRow
      Src: /src/libwebp/src/dsp/alpha_processing.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ptr
    - stride
    - width
    - num_rows
    - inverse
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: WebPMultARGBRows
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 3
    functionsReached:
    - WebPMultARGBRow
    linkageType: ''
    returnType: void
    signature: "void WebPMultARGBRows(uint8_t* ptr, int stride, int width, int num_rows,\n
      \                     int inverse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPMultRow
      Src: /src/libwebp/src/dsp/alpha_processing.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - WEBP_RESTRICT
    - stride
    - WEBP_RESTRICT
    - alpha_stride
    - width
    - num_rows
    - inverse
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 209
    functionName: WebPMultRows
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 3
    functionsReached:
    - WebPMultRow
    linkageType: ''
    returnType: void
    signature: "void WebPMultRows(uint8_t* WEBP_RESTRICT ptr, int stride,\n                  const
      uint8_t* WEBP_RESTRICT alpha, int alpha_stride,\n                  int width,
      int num_rows, int inverse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: MULTIPLIER
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULTIPLIER(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: PREMULTIPLY
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREMULTIPLY(x, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: MULTIPLIER
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULTIPLIER(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: PREMULTIPLY
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREMULTIPLY(x, m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MULTIPLIER
      Src: /src/libwebp/src/dsp/alpha_processing.c:237,1
    - Dst: PREMULTIPLY
      Src: /src/libwebp/src/dsp/alpha_processing.c:238,1
    - Dst: PREMULTIPLY
      Src: /src/libwebp/src/dsp/alpha_processing.c:239,1
    - Dst: PREMULTIPLY
      Src: /src/libwebp/src/dsp/alpha_processing.c:240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - rgba
    - alpha_first
    - w
    - h
    - stride
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 245
    functionName: ApplyAlphaMultiply_C
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached:
    - MULTIPLIER
    - PREMULTIPLY
    linkageType: ''
    returnType: void
    signature: "void ApplyAlphaMultiply_C(uint8_t* rgba, int alpha_first, int w, int
      h,\n                                 int stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 253
    functionName: MULTIPLIER
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULTIPLIER(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: dither_hi
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE dither_hi(uint8_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: dither_lo
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE dither_lo(uint8_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - m
    argTypes:
    - uint8_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: multiply
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE multiply(uint8_t x, uint32_t m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MULTIPLIER
      Src: /src/libwebp/src/dsp/alpha_processing.c:275,1
    - Dst: multiply
      Src: /src/libwebp/src/dsp/alpha_processing.c:276,1
    - Dst: dither_hi
      Src: /src/libwebp/src/dsp/alpha_processing.c:276,1
    - Dst: multiply
      Src: /src/libwebp/src/dsp/alpha_processing.c:277,1
    - Dst: dither_lo
      Src: /src/libwebp/src/dsp/alpha_processing.c:277,1
    - Dst: multiply
      Src: /src/libwebp/src/dsp/alpha_processing.c:278,1
    - Dst: dither_hi
      Src: /src/libwebp/src/dsp/alpha_processing.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - rgba4444
    - w
    - h
    - stride
    - rg_byte_pos
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 284
    functionName: ApplyAlphaMultiply4444_C
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached:
    - multiply
    - MULTIPLIER
    - dither_lo
    - dither_hi
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ApplyAlphaMultiply4444_C(uint8_t* rgba4444, int w,\n                                                 int
      h, int stride,\n                                                 int rg_byte_pos
      /* 0 or 1 */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ApplyAlphaMultiply4444_C
      Src: /src/libwebp/src/dsp/alpha_processing.c:290,1
    - Dst: ApplyAlphaMultiply4444_C
      Src: /src/libwebp/src/dsp/alpha_processing.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - rgba4444
    - w
    - h
    - stride
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 294
    functionName: ApplyAlphaMultiply_16b_C
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached:
    - ApplyAlphaMultiply4444_C
    linkageType: ''
    returnType: void
    signature: "void ApplyAlphaMultiply_16b_C(uint8_t* rgba4444, int w, int h,\n                                     int
      stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - alpha_stride
    - width
    - height
    - WEBP_RESTRICT
    - dst_stride
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 314
    functionName: DispatchAlpha_C
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DispatchAlpha_C(const uint8_t* WEBP_RESTRICT alpha, int alpha_stride,\n
      \                          int width, int height, uint8_t* WEBP_RESTRICT dst,\n
      \                          int dst_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - alpha_stride
    - width
    - height
    - WEBP_RESTRICT
    - dst_stride
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 328
    functionName: DispatchAlphaToGreen_C
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DispatchAlphaToGreen_C(const uint8_t* WEBP_RESTRICT alpha,\n
      \                                  int alpha_stride, int width, int height,\n
      \                                  uint32_t* WEBP_RESTRICT dst,\n                                   int
      dst_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - argb_stride
    - width
    - height
    - WEBP_RESTRICT
    - alpha_stride
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 346
    functionName: ExtractAlpha_C
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ExtractAlpha_C(const uint8_t* WEBP_RESTRICT argb, int argb_stride,\n
      \                         int width, int height, uint8_t* WEBP_RESTRICT alpha,\n
      \                         int alpha_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - size
    argTypes:
    - uint32_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: ExtractGreen_C
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ExtractGreen_C(const uint32_t* WEBP_RESTRICT argb,\n                           uint8_t*
      WEBP_RESTRICT alpha, int size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - src
    - length
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 362
    functionName: HasAlpha8b_C
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int HasAlpha8b_C(const uint8_t* src, int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - src
    - length
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 370
    functionName: HasAlpha32b_C
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int HasAlpha32b_C(const uint8_t* src, int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - src
    - length
    - color
    argTypes:
    - uint32_t*
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: AlphaReplace_C
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AlphaReplace_C(uint32_t* src, int length, uint32_t color)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a
    - r
    - g
    - b
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 384
    functionName: MakeARGB32
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE MakeARGB32(int a, int r, int g, int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeARGB32
      Src: /src/libwebp/src/dsp/alpha_processing.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - len
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 396
    functionName: PackARGB_C
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached:
    - MakeARGB32
    linkageType: ''
    returnType: void
    signature: "void PackARGB_C(const uint8_t* WEBP_RESTRICT a,\n                       const
      uint8_t* WEBP_RESTRICT r,\n                       const uint8_t* WEBP_RESTRICT
      g,\n                       const uint8_t* WEBP_RESTRICT b, int len,\n                       uint32_t*
      WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeARGB32
      Src: /src/libwebp/src/dsp/alpha_processing.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - len
    - step
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 408
    functionName: PackRGB_C
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached:
    - MakeARGB32
    linkageType: ''
    returnType: void
    signature: "void PackRGB_C(const uint8_t* WEBP_RESTRICT r,\n                      const
      uint8_t* WEBP_RESTRICT g,\n                      const uint8_t* WEBP_RESTRICT
      b, int len, int step,\n                      uint32_t* WEBP_RESTRICT out)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/alpha_processing.c:466,1
    - Dst: WebPInitAlphaProcessingSSE2
      Src: /src/libwebp/src/dsp/alpha_processing.c:467,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/alpha_processing.c:469,1
    - Dst: WebPInitAlphaProcessingSSE41
      Src: /src/libwebp/src/dsp/alpha_processing.c:470,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/alpha_processing.c:476,1
    - Dst: WebPInitAlphaProcessingMIPSdspR2
      Src: /src/libwebp/src/dsp/alpha_processing.c:477,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/alpha_processing.c:484,1
    - Dst: WebPInitAlphaProcessingNEON
      Src: /src/libwebp/src/dsp/alpha_processing.c:485,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/alpha_processing.c:489,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/alpha_processing.c:490,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/alpha_processing.c:491,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/alpha_processing.c:492,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/alpha_processing.c:493,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/alpha_processing.c:494,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/alpha_processing.c:495,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/alpha_processing.c:496,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/alpha_processing.c:498,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/alpha_processing.c:500,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/alpha_processing.c:501,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/alpha_processing.c:502,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/alpha_processing.c:503,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WebPPackARGB != NULL)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/libwebp/src/dsp/alpha_processing.c
    - condition: (WebPMultARGBRow != NULL)
      pos:
        line_end: 488
        line_start: 488
        source_file: /src/libwebp/src/dsp/alpha_processing.c
    - condition: (WebPExtractGreen != NULL)
      pos:
        line_end: 495
        line_start: 495
        source_file: /src/libwebp/src/dsp/alpha_processing.c
    - condition: (WebPExtractAlpha != NULL)
      pos:
        line_end: 494
        line_start: 494
        source_file: /src/libwebp/src/dsp/alpha_processing.c
    - condition: (WebPHasAlpha8b != NULL)
      pos:
        line_end: 500
        line_start: 500
        source_file: /src/libwebp/src/dsp/alpha_processing.c
    - condition: (WebPDispatchAlphaToGreen != NULL)
      pos:
        line_end: 493
        line_start: 493
        source_file: /src/libwebp/src/dsp/alpha_processing.c
    - condition: (WebPAlphaReplace != NULL)
      pos:
        line_end: 502
        line_start: 502
        source_file: /src/libwebp/src/dsp/alpha_processing.c
    - condition: (WebPMultRow != NULL)
      pos:
        line_end: 489
        line_start: 489
        source_file: /src/libwebp/src/dsp/alpha_processing.c
    - condition: (WebPApplyAlphaMultiply4444 != NULL)
      pos:
        line_end: 491
        line_start: 491
        source_file: /src/libwebp/src/dsp/alpha_processing.c
    - condition: (WebPDispatchAlpha != NULL)
      pos:
        line_end: 492
        line_start: 492
        source_file: /src/libwebp/src/dsp/alpha_processing.c
    - condition: (WebPApplyAlphaMultiply != NULL)
      pos:
        line_end: 490
        line_start: 490
        source_file: /src/libwebp/src/dsp/alpha_processing.c
    - condition: (WebPPackRGB != NULL)
      pos:
        line_end: 499
        line_start: 499
        source_file: /src/libwebp/src/dsp/alpha_processing.c
    - condition: (WebPHasAlpha32b != NULL)
      pos:
        line_end: 501
        line_start: 501
        source_file: /src/libwebp/src/dsp/alpha_processing.c
    constantsTouched: []
    func_position:
      end: 504
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 504
    functionName: WEBP_DSP_INIT_FUNC
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing.c
    functionUses: 0
    functionsReached:
    - VP8GetCPUInfo
    - WebPInitAlphaProcessingMIPSdspR2
    - assert
    - WebPInitAlphaProcessingSSE41
    - WebPInitAlphaProcessingSSE2
    - WebPInitAlphaProcessingNEON
    linkageType: ''
    returnType: void
    signature: void WEBP_DSP_INIT_FUNC(WebPInitAlphaProcessing)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: INIT_VECTOR2
    functionSourceFile: /src/libwebp/src/dsp/neon.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_VECTOR2(v, a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - v
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: INIT_VECTOR3
    functionSourceFile: /src/libwebp/src/dsp/neon.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_VECTOR3(v, a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - v
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: INIT_VECTOR4
    functionSourceFile: /src/libwebp/src/dsp/neon.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_VECTOR4(v, a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vreinterpretq_u64_s32
      Src: /src/libwebp/src/dsp/neon.h:59,1
    - Dst: vreinterpretq_u64_s32
      Src: /src/libwebp/src/dsp/neon.h:60,1
    - Dst: vreinterpretq_u64_s32
      Src: /src/libwebp/src/dsp/neon.h:61,1
    - Dst: vreinterpretq_u64_s32
      Src: /src/libwebp/src/dsp/neon.h:62,1
    - Dst: vget_high_u64
      Src: /src/libwebp/src/dsp/neon.h:65,1
    - Dst: vget_low_u64
      Src: /src/libwebp/src/dsp/neon.h:66,1
    - Dst: vget_high_u64
      Src: /src/libwebp/src/dsp/neon.h:67,1
    - Dst: vget_low_u64
      Src: /src/libwebp/src/dsp/neon.h:68,1
    - Dst: vcombine_u64
      Src: /src/libwebp/src/dsp/neon.h:69,1
    - Dst: vget_low_u64
      Src: /src/libwebp/src/dsp/neon.h:69,1
    - Dst: vcombine_u64
      Src: /src/libwebp/src/dsp/neon.h:70,1
    - Dst: vget_high_u64
      Src: /src/libwebp/src/dsp/neon.h:70,1
    - Dst: vcombine_u64
      Src: /src/libwebp/src/dsp/neon.h:71,1
    - Dst: vget_low_u64
      Src: /src/libwebp/src/dsp/neon.h:71,1
    - Dst: vcombine_u64
      Src: /src/libwebp/src/dsp/neon.h:72,1
    - Dst: vget_high_u64
      Src: /src/libwebp/src/dsp/neon.h:72,1
    - Dst: vtrnq_s32
      Src: /src/libwebp/src/dsp/neon.h:75,1
    - Dst: vreinterpretq_s32_u64
      Src: /src/libwebp/src/dsp/neon.h:75,1
    - Dst: vreinterpretq_s32_u64
      Src: /src/libwebp/src/dsp/neon.h:76,1
    - Dst: vtrnq_s32
      Src: /src/libwebp/src/dsp/neon.h:77,1
    - Dst: vreinterpretq_s32_u64
      Src: /src/libwebp/src/dsp/neon.h:77,1
    - Dst: vreinterpretq_s32_u64
      Src: /src/libwebp/src/dsp/neon.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - rows
    argTypes:
    - int32x4x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 86
    functionName: int32x4x4_t::Transpose4x4_NEON
    functionSourceFile: /src/libwebp/src/dsp/neon.h
    functionUses: 0
    functionsReached:
    - vcombine_u64
    - vreinterpretq_u64_s32
    - vget_low_u64
    - vget_high_u64
    - vreinterpretq_s32_u64
    - vtrnq_s32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE int32x4x4_t Transpose4x4_NEON(const int32x4x4_t rows)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - REG
    - ','
    - SIZE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 105
    functionName: PRINT_REG
    functionSourceFile: /src/libwebp/src/dsp/neon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT_REG(REG, SIZE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:29,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:29,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:30,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:30,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cost
    argTypes:
    - __m128i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: HorizontalSum_SSE41
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_cvtsi128_si32
    - _mm_srli_si128
    - _mm_add_epi32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE HorizontalSum_SSE41(__m128i cost)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:36,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:37,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:41,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:42,1
    - Dst: _mm_set_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:43,1
    - Dst: _mm_hadd_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:44,1
    - Dst: _mm_mullo_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:45,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:46,1
    - Dst: HorizontalSum_SSE41
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - length
    argTypes:
    - uint32_t*
    - int
    assertStmts:
    - condition: (length % 8 == 0)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/libwebp/src/dsp/lossless_enc_sse41.c
    constantsTouched: []
    func_position:
      end: 49
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 49
    functionName: ExtraCost_SSE41
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_mullo_epi32
    - assert
    - _mm_set_epi32
    - HorizontalSum_SSE41
    - _mm_loadu_si128
    - _mm_add_epi32
    - _mm_hadd_epi32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ExtraCost_SSE41(const uint32_t* const a, int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:58,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:60,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:61,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:62,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:63,1
    - Dst: VP8LSubtractGreenFromBlueAndRed_C
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - argb_data
    - num_pixels
    argTypes:
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 69
    functionName: SubtractGreenFromBlueAndRed_SSE41
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_storeu_si128
    - _mm_sub_epi8
    - _mm_shuffle_epi8
    - _mm_loadu_si128
    - _mm_set_epi8
    - VP8LSubtractGreenFromBlueAndRed_C
    linkageType: ''
    returnType: void
    signature: "void SubtractGreenFromBlueAndRed_SSE41(uint32_t* argb_data,\n                                              int
      num_pixels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: CST_5b
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse41.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CST_5b(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HI
    - ','
    - LO
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: MK_CST_16
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse41.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MK_CST_16(HI, LO)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:86,1
    - Dst: CST_5b
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:86,1
    - Dst: CST_5b
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:86,1
    - Dst: _mm_setr_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:88,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:93,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:94,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:95,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:96,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:97,1
    - Dst: _mm_srli_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:97,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:100,1
    - Dst: _mm_extract_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:102,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:103,1
    - Dst: _mm_extract_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:104,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:105,1
    - Dst: _mm_extract_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:106,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:107,1
    - Dst: _mm_extract_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:108,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:109,1
    - Dst: _mm_srli_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:109,1
    - Dst: _mm_extract_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:111,1
    - Dst: _mm_extract_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:112,1
    - Dst: _mm_extract_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:113,1
    - Dst: _mm_extract_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:114,1
    - Dst: VP8LCollectColorBlueTransforms_C
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 7
    argNames:
    - WEBP_RESTRICT
    - stride
    - tile_width
    - tile_height
    - green_to_blue
    - red_to_blue
    - histo
    argTypes:
    - uint32_t*
    - int
    - int
    - int
    - int
    - int
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 125
    functionName: CollectColorBlueTransforms_SSE41
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_mulhi_epi16
    - CST_5b
    - _mm_setr_epi8
    - VP8LCollectColorBlueTransforms_C
    - _mm_srli_epi32
    - _mm_add_epi16
    - _mm_shuffle_epi8
    - _mm_sub_epi16
    - _mm_loadu_si128
    - _mm_extract_epi8
    - MK_CST_16
    linkageType: ''
    returnType: void
    signature: "void CollectColorBlueTransforms_SSE41(const uint32_t* WEBP_RESTRICT
      argb,\n                                             int stride, int tile_width,\n
      \                                            int tile_height, int green_to_blue,\n
      \                                            int red_to_blue,\n                                             uint32_t
      histo[])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:131,1
    - Dst: CST_5b
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:131,1
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:132,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:137,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:138,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:139,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:140,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:143,1
    - Dst: _mm_extract_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:145,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:146,1
    - Dst: _mm_extract_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:147,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:148,1
    - Dst: _mm_extract_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:149,1
    - Dst: _mm_extract_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:150,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:151,1
    - Dst: _mm_extract_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:153,1
    - Dst: _mm_extract_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:154,1
    - Dst: _mm_extract_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:155,1
    - Dst: _mm_extract_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:156,1
    - Dst: VP8LCollectColorRedTransforms_C
      Src: /src/libwebp/src/dsp/lossless_enc_sse41.c:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - stride
    - tile_width
    - tile_height
    - green_to_red
    - histo
    argTypes:
    - uint32_t*
    - int
    - int
    - int
    - int
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 167
    functionName: CollectColorRedTransforms_SSE41
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - CST_5b
    - _mm_madd_epi16
    - _mm_sub_epi16
    - _mm_and_si128
    - _mm_loadu_si128
    - VP8LCollectColorRedTransforms_C
    - _mm_extract_epi8
    - MK_CST_16
    linkageType: ''
    returnType: void
    signature: "void CollectColorRedTransforms_SSE41(const uint32_t* WEBP_RESTRICT
      argb,\n                                            int stride, int tile_width,\n
      \                                           int tile_height, int green_to_red,\n
      \                                           uint32_t histo[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 187
    functionName: VP8LEncDspInitSSE41
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse41.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8LEncDspInitSSE41(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 346
    functionName: VP8InitClipTables
    functionSourceFile: /src/libwebp/src/dsp/dec_clip_tables.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8InitClipTables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:39,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:40,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:41,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:43,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:44,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:45,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:46,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:47,1
    - Dst: _mm_mulhi_epu16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:49,1
    - Dst: _mm_mulhi_epu16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:51,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:52,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:53,1
    - Dst: _mm_mulhi_epu16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:55,1
    - Dst: _mm_mulhi_epu16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:56,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:57,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:58,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:59,1
    - Dst: _mm_mulhi_epu16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:62,1
    - Dst: _mm_adds_epu16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:63,1
    - Dst: _mm_subs_epu16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:64,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:67,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:68,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - Y0
    - U0
    - V0
    - R
    - G
    - B
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 70
    functionName: ConvertYUV444ToRGB_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_mulhi_epu16
    - _mm_set1_epi16
    - _mm_subs_epu16
    - _mm_srli_epi16
    - _mm_add_epi16
    - _mm_sub_epi16
    - _mm_srai_epi16
    - _mm_adds_epu16
    linkageType: ''
    returnType: void
    signature: "void ConvertYUV444ToRGB_SSE41(const __m128i* const Y0,\n                                     const
      __m128i* const U0,\n                                     const __m128i* const
      V0, __m128i* const R,\n                                     __m128i* const G,
      __m128i* const B)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:74,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:75,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/yuv_sse41.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: Load_HI_16_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_loadl_epi64
    - _mm_setzero_si128
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Load_HI_16_SSE41(const uint8_t* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:80,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:81,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/yuv_sse41.c:81,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:82,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: Load_UV_HI_8_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_cvtsi32_si128
    - _mm_unpacklo_epi8
    - _mm_setzero_si128
    - WebPMemToInt32
    - _mm_unpacklo_epi16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Load_UV_HI_8_SSE41(const uint8_t* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load_HI_16_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:92,1
    - Dst: Load_HI_16_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:92,1
    - Dst: Load_HI_16_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:93,1
    - Dst: ConvertYUV444ToRGB_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - y
    - u
    - v
    - R
    - G
    - B
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: YUV444ToRGB_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 1
    functionsReached:
    - Load_HI_16_SSE41
    - ConvertYUV444ToRGB_SSE41
    linkageType: ''
    returnType: void
    signature: "void YUV444ToRGB_SSE41(const uint8_t* WEBP_RESTRICT const y,\n                              const
      uint8_t* WEBP_RESTRICT const u,\n                              const uint8_t*
      WEBP_RESTRICT const v,\n                              __m128i* const R, __m128i*
      const G,\n                              __m128i* const B)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load_HI_16_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:103,1
    - Dst: Load_UV_HI_8_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:103,1
    - Dst: Load_UV_HI_8_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:104,1
    - Dst: ConvertYUV444ToRGB_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - y
    - u
    - v
    - R
    - G
    - B
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: YUV420ToRGB_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - Load_HI_16_SSE41
    - Load_UV_HI_8_SSE41
    - ConvertYUV444ToRGB_SSE41
    linkageType: ''
    returnType: void
    signature: "void YUV420ToRGB_SSE41(const uint8_t* WEBP_RESTRICT const y,\n                              const
      uint8_t* WEBP_RESTRICT const u,\n                              const uint8_t*
      WEBP_RESTRICT const v,\n                              __m128i* const R, __m128i*
      const G,\n                              __m128i* const B)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8PlanarTo24b_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:127,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:129,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:130,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:131,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:132,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:133,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 7
    argNames:
    - in0
    - in1
    - in2
    - in3
    - in4
    - in5
    - rgb
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 135
    functionName: PlanarTo24b_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 1
    functionsReached:
    - _mm_storeu_si128
    - VP8PlanarTo24b_SSE41
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PlanarTo24b_SSE41(\n    __m128i* const in0, __m128i* const
      in1, __m128i* const in2,\n    __m128i* const in3, __m128i* const in4, __m128i*
      const in5,\n    uint8_t* WEBP_RESTRICT const rgb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YUV444ToRGB_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:144,1
    - Dst: YUV444ToRGB_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:145,1
    - Dst: YUV444ToRGB_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:146,1
    - Dst: YUV444ToRGB_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:147,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:150,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:151,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:152,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:153,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:154,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:155,1
    - Dst: PlanarTo24b_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 159
    functionName: VP8YuvToRgb32_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - PlanarTo24b_SSE41
    - YUV444ToRGB_SSE41
    - _mm_packus_epi16
    linkageType: ''
    returnType: void
    signature: "void VP8YuvToRgb32_SSE41(const uint8_t* WEBP_RESTRICT y,\n                         const
      uint8_t* WEBP_RESTRICT u,\n                         const uint8_t* WEBP_RESTRICT
      v,\n                         uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YUV444ToRGB_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:168,1
    - Dst: YUV444ToRGB_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:169,1
    - Dst: YUV444ToRGB_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:170,1
    - Dst: YUV444ToRGB_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:171,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:174,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:175,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:176,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:177,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:178,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:179,1
    - Dst: PlanarTo24b_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 183
    functionName: VP8YuvToBgr32_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - PlanarTo24b_SSE41
    - YUV444ToRGB_SSE41
    - _mm_packus_epi16
    linkageType: ''
    returnType: void
    signature: "void VP8YuvToBgr32_SSE41(const uint8_t* WEBP_RESTRICT y,\n                         const
      uint8_t* WEBP_RESTRICT u,\n                         const uint8_t* WEBP_RESTRICT
      v,\n                         uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YUV420ToRGB_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:197,1
    - Dst: YUV420ToRGB_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:198,1
    - Dst: YUV420ToRGB_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:199,1
    - Dst: YUV420ToRGB_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:200,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:203,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:204,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:205,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:206,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:207,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:208,1
    - Dst: PlanarTo24b_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:211,1
    - Dst: VP8YuvToRgb
      Src: /src/libwebp/src/dsp/yuv_sse41.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 224
    functionName: YuvToRgbRow_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - PlanarTo24b_SSE41
    - VP8YuvToRgb
    - _mm_packus_epi16
    - YUV420ToRGB_SSE41
    linkageType: ''
    returnType: void
    signature: "void YuvToRgbRow_SSE41(const uint8_t* WEBP_RESTRICT y,\n                              const
      uint8_t* WEBP_RESTRICT u,\n                              const uint8_t* WEBP_RESTRICT
      v,\n                              uint8_t* WEBP_RESTRICT dst, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YUV420ToRGB_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:235,1
    - Dst: YUV420ToRGB_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:236,1
    - Dst: YUV420ToRGB_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:237,1
    - Dst: YUV420ToRGB_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:238,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:241,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:242,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:243,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:244,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:245,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:246,1
    - Dst: PlanarTo24b_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:249,1
    - Dst: VP8YuvToBgr
      Src: /src/libwebp/src/dsp/yuv_sse41.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 262
    functionName: YuvToBgrRow_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - VP8YuvToBgr
    - PlanarTo24b_SSE41
    - _mm_packus_epi16
    - YUV420ToRGB_SSE41
    linkageType: ''
    returnType: void
    signature: "void YuvToBgrRow_SSE41(const uint8_t* WEBP_RESTRICT y,\n                              const
      uint8_t* WEBP_RESTRICT u,\n                              const uint8_t* WEBP_RESTRICT
      v,\n                              uint8_t* WEBP_RESTRICT dst, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: WebPInitSamplersSSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPInitSamplersSSE41(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: LOAD_16
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_16(src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - V
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: STORE_16
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_16(V, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OUT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 291
    functionName: WEBP_SSE41_SHUFF
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_SSE41_SHUFF(OUT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:303,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:304,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:305,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:306,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:307,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:308,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:312,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:314,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:316,1
    - Dst: WEBP_SSE41_SHUFF
      Src: /src/libwebp/src/dsp/yuv_sse41.c:318,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:322,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:324,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:326,1
    - Dst: WEBP_SSE41_SHUFF
      Src: /src/libwebp/src/dsp/yuv_sse41.c:328,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:332,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:334,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:336,1
    - Dst: WEBP_SSE41_SHUFF
      Src: /src/libwebp/src/dsp/yuv_sse41.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - rgb
    - out
    argTypes:
    - uint8_t*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 340
    functionName: RGBPackedToPlanar_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - WEBP_SSE41_SHUFF
    - _mm_loadu_si128
    - _mm_set_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE RGBPackedToPlanar_SSE41(\n    const uint8_t* WEBP_RESTRICT
      const rgb, __m128i* const out /*out[6]*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:346,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:347,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:348,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:349,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:350,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:351,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:352,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:353,1
    - Dst: VP8L32bToPlanar_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:354,1
    - Dst: VP8L32bToPlanar_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - rgba
    - rgb
    argTypes:
    - uint8_t*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 362
    functionName: RGBAPackedToRGBPlanar_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_loadu_si128
    - VP8L32bToPlanar_SSE41
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE RGBAPackedToRGBPlanar_SSE41(\n    const uint8_t* WEBP_RESTRICT
      const rgba, __m128i* const rgb /*in[6]*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:368,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:369,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:370,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:371,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:372,1
    - Dst: VP8L32bToPlanar_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:373,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:374,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:375,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:376,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:377,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:378,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argb
    - rgb
    argTypes:
    - uint32_t*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 380
    functionName: ARGBPackedToRGBPlanar16_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_setzero_si128
    - VP8L32bToPlanar_SSE41
    - _mm_loadu_si128
    - _mm_unpackhi_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ARGBPackedToRGBPlanar16_SSE41(\n    const uint32_t* WEBP_RESTRICT
      const argb, __m128i* const rgb /*in[6]*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - RG_LO
    - ','
    - RG_HI
    - ','
    - GB_LO
    - ','
    - GB_HI
    - ','
    - MULT_RG
    - ','
    - MULT_GB
    - ','
    - ROUNDER
    - ','
    - DESCALE_FIX
    - ','
    - OUT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 400
    functionName: TRANSFORM
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TRANSFORM(RG_LO, RG_HI, GB_LO, GB_HI, MULT_RG, MULT_GB, ROUNDER, \\\n
      \                 DESCALE_FIX, OUT)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 402
    functionName: MK_CST_16
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MK_CST_16(A, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:406,1
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:407,1
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/yuv_sse41.c:408,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:410,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:411,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:412,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:413,1
    - Dst: TRANSFORM
      Src: /src/libwebp/src/dsp/yuv_sse41.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - R
    - G
    - B
    - Y
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 415
    functionName: ConvertRGBToYImpl_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_unpacklo_epi16
    - _mm_unpackhi_epi16
    - TRANSFORM
    - MK_CST_16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ConvertRGBToYImpl_SSE41(const __m128i* const R,\n                                                const
      __m128i* const G,\n                                                const __m128i*
      const B,\n                                                __m128i* const Y)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:422,1
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:423,1
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:424,1
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:425,1
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/yuv_sse41.c:426,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:428,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:429,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:430,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:431,1
    - Dst: TRANSFORM
      Src: /src/libwebp/src/dsp/yuv_sse41.c:432,1
    - Dst: TRANSFORM
      Src: /src/libwebp/src/dsp/yuv_sse41.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - R
    - G
    - B
    - U
    - V
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 436
    functionName: ConvertRGBToUV_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_unpacklo_epi16
    - _mm_unpackhi_epi16
    - TRANSFORM
    - MK_CST_16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ConvertRGBToUV_SSE41(const __m128i* const R,\n                                             const
      __m128i* const G,\n                                             const __m128i*
      const B,\n                                             __m128i* const U,\n                                             __m128i*
      const V)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:447,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:451,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:452,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:453,1
    - Dst: ConvertRGBToYImpl_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:454,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:457,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:458,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:459,1
    - Dst: ConvertRGBToYImpl_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:460,1
    - Dst: STORE_16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:463,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - rgb_plane
    - swap_rb
    - i
    - WEBP_RESTRICT
    argTypes:
    - __m128i*
    - int
    - int*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 465
    functionName: ConvertRGBToYHelper_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - ConvertRGBToYImpl_SSE41
    - _mm_setzero_si128
    - STORE_16
    - _mm_packus_epi16
    - _mm_unpackhi_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ConvertRGBToYHelper_SSE41(\n    const __m128i* const rgb_plane
      /*in[6]*/, int swap_rb, int* i,\n    uint8_t* WEBP_RESTRICT y)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RGBPackedToPlanar_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:474,1
    - Dst: ConvertRGBToYHelper_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:475,1
    - Dst: RGBAPackedToRGBPlanar_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:479,1
    - Dst: ConvertRGBToYHelper_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:480,1
    - Dst: VP8RGBToY
      Src: /src/libwebp/src/dsp/yuv_sse41.c:484,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - width
    - step
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 486
    functionName: ConvertRGBToY_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - RGBAPackedToRGBPlanar_SSE41
    - VP8RGBToY
    - ConvertRGBToYHelper_SSE41
    - RGBPackedToPlanar_SSE41
    linkageType: ''
    returnType: void
    signature: "void ConvertRGBToY_SSE41(const uint8_t* WEBP_RESTRICT rgb,\n                                uint8_t*
      WEBP_RESTRICT y, int width, int step)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RGBPackedToPlanar_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:495,1
    - Dst: ConvertRGBToYHelper_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:496,1
    - Dst: RGBAPackedToRGBPlanar_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:500,1
    - Dst: ConvertRGBToYHelper_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:501,1
    - Dst: VP8RGBToY
      Src: /src/libwebp/src/dsp/yuv_sse41.c:505,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - width
    - step
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 507
    functionName: ConvertBGRToY_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - RGBAPackedToRGBPlanar_SSE41
    - VP8RGBToY
    - ConvertRGBToYHelper_SSE41
    - RGBPackedToPlanar_SSE41
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRToY_SSE41(const uint8_t* WEBP_RESTRICT bgr,\n                                uint8_t*
      WEBP_RESTRICT y, int width, int step)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARGBPackedToRGBPlanar16_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:515,1
    - Dst: ConvertRGBToYImpl_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:516,1
    - Dst: ConvertRGBToYImpl_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:517,1
    - Dst: STORE_16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:518,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:518,1
    - Dst: VP8RGBToY
      Src: /src/libwebp/src/dsp/yuv_sse41.c:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - width
    argTypes:
    - uint32_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 525
    functionName: ConvertARGBToY_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - ConvertRGBToYImpl_SSE41
    - STORE_16
    - _mm_packus_epi16
    - ARGBPackedToRGBPlanar16_SSE41
    - VP8RGBToY
    linkageType: ''
    returnType: void
    signature: "void ConvertARGBToY_SSE41(const uint32_t* WEBP_RESTRICT argb,\n                                 uint8_t*
      WEBP_RESTRICT y, int width)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:532,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:533,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:534,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/yuv_sse41.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - A
    - B
    - out
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 536
    functionName: HorizontalAddPack_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_madd_epi16
    - _mm_packs_epi32
    - _mm_set1_epi16
    linkageType: ''
    returnType: void
    signature: "void HorizontalAddPack_SSE41(const __m128i* const A,\n                                    const
      __m128i* const B,\n                                    __m128i* const out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGBPackedToRGBPlanar16_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:546,1
    - Dst: HorizontalAddPack_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:547,1
    - Dst: HorizontalAddPack_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:548,1
    - Dst: HorizontalAddPack_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:549,1
    - Dst: ConvertRGBToUV_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:550,1
    - Dst: ARGBPackedToRGBPlanar16_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:552,1
    - Dst: HorizontalAddPack_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:553,1
    - Dst: HorizontalAddPack_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:554,1
    - Dst: HorizontalAddPack_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:555,1
    - Dst: ConvertRGBToUV_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:556,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:558,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:559,1
    - Dst: LOAD_16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:561,1
    - Dst: LOAD_16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:562,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:563,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:564,1
    - Dst: STORE_16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:566,1
    - Dst: STORE_16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:567,1
    - Dst: WebPConvertARGBToUV_C
      Src: /src/libwebp/src/dsp/yuv_sse41.c:570,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - src_width
    - do_store
    argTypes:
    - uint32_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 572
    functionName: ConvertARGBToUV_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_avg_epu8
    - STORE_16
    - ARGBPackedToRGBPlanar16_SSE41
    - ConvertRGBToUV_SSE41
    - LOAD_16
    - WebPConvertARGBToUV_C
    - _mm_packus_epi16
    - HorizontalAddPack_SSE41
    linkageType: ''
    returnType: void
    signature: "void ConvertARGBToUV_SSE41(const uint32_t* WEBP_RESTRICT argb,\n                                  uint8_t*
      WEBP_RESTRICT u,\n                                  uint8_t* WEBP_RESTRICT v,
      int src_width,\n                                  int do_store)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD_16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:578,1
    - Dst: LOAD_16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:579,1
    - Dst: LOAD_16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:580,1
    - Dst: LOAD_16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:581,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:584,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:586,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:587,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:588,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:589,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/yuv_sse41.c:590,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/yuv_sse41.c:596,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:597,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/yuv_sse41.c:598,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/yuv_sse41.c:599,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/yuv_sse41.c:601,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/yuv_sse41.c:602,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/yuv_sse41.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - rgbx
    - r
    - g
    - b
    argTypes:
    - uint16_t*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 604
    functionName: RGBA32PackedToPlanar_16b_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_unpackhi_epi64
    - _mm_unpacklo_epi32
    - _mm_shuffle_epi8
    - LOAD_16
    - _mm_set_epi8
    - _mm_unpacklo_epi64
    - _mm_or_si128
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE RGBA32PackedToPlanar_16b_SSE41(\n    const uint16_t* WEBP_RESTRICT
      const rgbx, __m128i* const r,\n    __m128i* const g, __m128i* const b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RGBA32PackedToPlanar_16b_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:613,1
    - Dst: ConvertRGBToUV_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:614,1
    - Dst: RGBA32PackedToPlanar_16b_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:615,1
    - Dst: ConvertRGBToUV_SSE41
      Src: /src/libwebp/src/dsp/yuv_sse41.c:616,1
    - Dst: STORE_16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:617,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:617,1
    - Dst: STORE_16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:618,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse41.c:618,1
    - Dst: WebPConvertRGBA32ToUV_C
      Src: /src/libwebp/src/dsp/yuv_sse41.c:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - width
    argTypes:
    - uint16_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 606
    functionDepth: 3
    functionLinenumber: 606
    functionLinenumberEnd: 626
    functionName: ConvertRGBA32ToUV_SSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 0
    functionsReached:
    - RGBA32PackedToPlanar_16b_SSE41
    - STORE_16
    - ConvertRGBToUV_SSE41
    - WebPConvertRGBA32ToUV_C
    - _mm_packus_epi16
    linkageType: ''
    returnType: void
    signature: "void ConvertRGBA32ToUV_SSE41(const uint16_t* WEBP_RESTRICT rgb,\n
      \                                   uint8_t* WEBP_RESTRICT u,\n                                    uint8_t*
      WEBP_RESTRICT v, int width)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 640
    functionName: WebPInitConvertARGBToYUVSSE41
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse41.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPInitConvertARGBToYUVSSE41(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/src/dsp/common_sse2.h:41,1
    - Dst: fprintf
      Src: /src/libwebp/src/dsp/common_sse2.h:43,1
    - Dst: fprintf
      Src: /src/libwebp/src/dsp/common_sse2.h:45,1
    - Dst: fprintf
      Src: /src/libwebp/src/dsp/common_sse2.h:47,1
    - Dst: fprintf
      Src: /src/libwebp/src/dsp/common_sse2.h:49,1
    - Dst: fprintf
      Src: /src/libwebp/src/dsp/common_sse2.h:51,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - r
    - name
    - size
    argTypes:
    - __m128i
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 52
    functionName: PrintReg
    functionSourceFile: /src/libwebp/src/dsp/common_sse2.h
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PrintReg(const __m128i r, const char* const name,\n                                 int
      size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/common_sse2.h:60,1
    - Dst: _mm_sad_epu8
      Src: /src/libwebp/src/dsp/common_sse2.h:61,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/common_sse2.h:63,1
    - Dst: _mm_shuffle_epi32
      Src: /src/libwebp/src/dsp/common_sse2.h:63,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/common_sse2.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: VP8HorizontalAdd8b
    functionSourceFile: /src/libwebp/src/dsp/common_sse2.h
    functionUses: 0
    functionsReached:
    - _mm_setzero_si128
    - _mm_sad_epu8
    - _mm_shuffle_epi32
    - _mm_add_epi32
    - _mm_cvtsi128_si32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8HorizontalAdd8b(const __m128i* const a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/common_sse2.h:77,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/common_sse2.h:78,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/common_sse2.h:79,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/common_sse2.h:80,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/common_sse2.h:85,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/common_sse2.h:86,1
    - Dst: _mm_unpackhi_epi32
      Src: /src/libwebp/src/dsp/common_sse2.h:87,1
    - Dst: _mm_unpackhi_epi32
      Src: /src/libwebp/src/dsp/common_sse2.h:88,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/common_sse2.h:93,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/common_sse2.h:94,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/common_sse2.h:95,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/common_sse2.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 8
    argNames:
    - in0
    - in1
    - in2
    - in3
    - out0
    - out1
    - out2
    - out3
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 101
    functionName: VP8Transpose_2_4x4_16b
    functionSourceFile: /src/libwebp/src/dsp/common_sse2.h
    functionUses: 0
    functionsReached:
    - _mm_unpackhi_epi32
    - _mm_unpackhi_epi64
    - _mm_unpacklo_epi32
    - _mm_unpackhi_epi16
    - _mm_unpacklo_epi16
    - _mm_unpacklo_epi64
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8Transpose_2_4x4_16b(\n    const __m128i* const in0,
      const __m128i* const in1,\n    const __m128i* const in2, const __m128i* const
      in3, __m128i* const out0,\n    __m128i* const out1, __m128i* const out2, __m128i*
      const out3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - IN
    - ','
    - OUT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: VP8PlanarTo24bHelper
    functionSourceFile: /src/libwebp/src/dsp/common_sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VP8PlanarTo24bHelper(IN, OUT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8PlanarTo24bHelper
      Src: /src/libwebp/src/dsp/common_sse2.h:147,1
    - Dst: VP8PlanarTo24bHelper
      Src: /src/libwebp/src/dsp/common_sse2.h:148,1
    - Dst: VP8PlanarTo24bHelper
      Src: /src/libwebp/src/dsp/common_sse2.h:149,1
    - Dst: VP8PlanarTo24bHelper
      Src: /src/libwebp/src/dsp/common_sse2.h:153,1
    - Dst: VP8PlanarTo24bHelper
      Src: /src/libwebp/src/dsp/common_sse2.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - in0
    - in1
    - in2
    - in3
    - in4
    - in5
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 156
    functionName: VP8PlanarTo24b_SSE2
    functionSourceFile: /src/libwebp/src/dsp/common_sse2.h
    functionUses: 0
    functionsReached:
    - VP8PlanarTo24bHelper
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8PlanarTo24b_SSE2(\n    __m128i* const in0, __m128i*
      const in1, __m128i* const in2,\n    __m128i* const in3, __m128i* const in4,
      __m128i* const in5)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/common_sse2.h:167,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/common_sse2.h:168,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/common_sse2.h:169,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/common_sse2.h:170,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/common_sse2.h:171,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/common_sse2.h:172,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/common_sse2.h:173,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/common_sse2.h:174,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/common_sse2.h:177,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/common_sse2.h:178,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/common_sse2.h:179,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/common_sse2.h:180,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/common_sse2.h:182,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/common_sse2.h:183,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/common_sse2.h:184,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/common_sse2.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - in0
    - in1
    - in2
    - in3
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 186
    functionName: VP8L32bToPlanar_SSE2
    functionSourceFile: /src/libwebp/src/dsp/common_sse2.h
    functionUses: 0
    functionsReached:
    - _mm_unpackhi_epi64
    - _mm_unpacklo_epi8
    - _mm_unpackhi_epi8
    - _mm_unpacklo_epi64
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8L32bToPlanar_SSE2(__m128i* const in0,\n                                             __m128i*
      const in1,\n                                             __m128i* const in2,\n
      \                                            __m128i* const in3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: abs_mips32
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE abs_mips32(int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - step
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: do_filter2
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE do_filter2(uint8_t* p, int step)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - step
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 50
    functionName: do_filter4
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE do_filter4(uint8_t* p, int step)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - p
    - step
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: do_filter6
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE do_filter6(uint8_t* p, int step)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abs_mips32
      Src: /src/libwebp/src/dsp/dec_mips32.c:71,1
    - Dst: abs_mips32
      Src: /src/libwebp/src/dsp/dec_mips32.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - p
    - step
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: hev
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 0
    functionsReached:
    - abs_mips32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE hev(const uint8_t* p, int step, int thresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abs_mips32
      Src: /src/libwebp/src/dsp/dec_mips32.c:76,1
    - Dst: abs_mips32
      Src: /src/libwebp/src/dsp/dec_mips32.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - step
    - t
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: needs_filter
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 0
    functionsReached:
    - abs_mips32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE needs_filter(const uint8_t* p, int step, int t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abs_mips32
      Src: /src/libwebp/src/dsp/dec_mips32.c:84,1
    - Dst: abs_mips32
      Src: /src/libwebp/src/dsp/dec_mips32.c:84,1
    - Dst: abs_mips32
      Src: /src/libwebp/src/dsp/dec_mips32.c:87,1
    - Dst: abs_mips32
      Src: /src/libwebp/src/dsp/dec_mips32.c:87,1
    - Dst: abs_mips32
      Src: /src/libwebp/src/dsp/dec_mips32.c:88,1
    - Dst: abs_mips32
      Src: /src/libwebp/src/dsp/dec_mips32.c:88,1
    - Dst: abs_mips32
      Src: /src/libwebp/src/dsp/dec_mips32.c:89,1
    - Dst: abs_mips32
      Src: /src/libwebp/src/dsp/dec_mips32.c:89,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 4
    argNames:
    - p
    - step
    - t
    - it
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: needs_filter2
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 0
    functionsReached:
    - abs_mips32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE needs_filter2(const uint8_t* p, int step, int t,\n                                     int
      it)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: needs_filter2
      Src: /src/libwebp/src/dsp/dec_mips32.c:97,1
    - Dst: hev
      Src: /src/libwebp/src/dsp/dec_mips32.c:98,1
    - Dst: do_filter2
      Src: /src/libwebp/src/dsp/dec_mips32.c:99,1
    - Dst: do_filter6
      Src: /src/libwebp/src/dsp/dec_mips32.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - p
    - hstride
    - vstride
    - size
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 106
    functionName: FilterLoop26
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 0
    functionsReached:
    - hev
    - do_filter2
    - do_filter6
    - needs_filter2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE FilterLoop26(uint8_t* p, int hstride, int vstride,\n                                     int
      size, int thresh, int ithresh,\n                                     int hev_thresh)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: needs_filter2
      Src: /src/libwebp/src/dsp/dec_mips32.c:113,1
    - Dst: hev
      Src: /src/libwebp/src/dsp/dec_mips32.c:114,1
    - Dst: do_filter2
      Src: /src/libwebp/src/dsp/dec_mips32.c:115,1
    - Dst: do_filter4
      Src: /src/libwebp/src/dsp/dec_mips32.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - p
    - hstride
    - vstride
    - size
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 122
    functionName: FilterLoop24
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 0
    functionsReached:
    - do_filter4
    - hev
    - do_filter2
    - needs_filter2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE FilterLoop24(uint8_t* p, int hstride, int vstride,\n                                     int
      size, int thresh, int ithresh,\n                                     int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop26
      Src: /src/libwebp/src/dsp/dec_mips32.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: VFilter16
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 1
    functionsReached:
    - FilterLoop26
    linkageType: ''
    returnType: void
    signature: "void VFilter16(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                     int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop26
      Src: /src/libwebp/src/dsp/dec_mips32.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: HFilter16
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 1
    functionsReached:
    - FilterLoop26
    linkageType: ''
    returnType: void
    signature: "void HFilter16(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                     int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop26
      Src: /src/libwebp/src/dsp/dec_mips32.c:138,1
    - Dst: FilterLoop26
      Src: /src/libwebp/src/dsp/dec_mips32.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: VFilter8
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 1
    functionsReached:
    - FilterLoop26
    linkageType: ''
    returnType: void
    signature: "void VFilter8(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT v,\n
      \                    int stride, int thresh, int ithresh, int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop26
      Src: /src/libwebp/src/dsp/dec_mips32.c:144,1
    - Dst: FilterLoop26
      Src: /src/libwebp/src/dsp/dec_mips32.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: HFilter8
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 1
    functionsReached:
    - FilterLoop26
    linkageType: ''
    returnType: void
    signature: "void HFilter8(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT v,\n
      \                    int stride, int thresh, int ithresh, int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop24
      Src: /src/libwebp/src/dsp/dec_mips32.c:150,1
    - Dst: FilterLoop24
      Src: /src/libwebp/src/dsp/dec_mips32.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: VFilter8i
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 2
    functionsReached:
    - FilterLoop24
    linkageType: ''
    returnType: void
    signature: "void VFilter8i(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT v,\n
      \                     int stride, int thresh, int ithresh, int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop24
      Src: /src/libwebp/src/dsp/dec_mips32.c:156,1
    - Dst: FilterLoop24
      Src: /src/libwebp/src/dsp/dec_mips32.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: HFilter8i
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 2
    functionsReached:
    - FilterLoop24
    linkageType: ''
    returnType: void
    signature: "void HFilter8i(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT v,\n
      \                     int stride, int thresh, int ithresh, int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop24
      Src: /src/libwebp/src/dsp/dec_mips32.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: VFilter16i
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 2
    functionsReached:
    - FilterLoop24
    linkageType: ''
    returnType: void
    signature: "void VFilter16i(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                      int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop24
      Src: /src/libwebp/src/dsp/dec_mips32.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: HFilter16i
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 2
    functionsReached:
    - FilterLoop24
    linkageType: ''
    returnType: void
    signature: "void HFilter16i(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                      int hev_thresh)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: needs_filter
      Src: /src/libwebp/src/dsp/dec_mips32.c:186,1
    - Dst: do_filter2
      Src: /src/libwebp/src/dsp/dec_mips32.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - p
    - stride
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 190
    functionName: SimpleVFilter16
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 1
    functionsReached:
    - needs_filter
    - do_filter2
    linkageType: ''
    returnType: void
    signature: void SimpleVFilter16(uint8_t* p, int stride, int thresh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: needs_filter
      Src: /src/libwebp/src/dsp/dec_mips32.c:196,1
    - Dst: do_filter2
      Src: /src/libwebp/src/dsp/dec_mips32.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - p
    - stride
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 200
    functionName: SimpleHFilter16
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 1
    functionsReached:
    - needs_filter
    - do_filter2
    linkageType: ''
    returnType: void
    signature: void SimpleHFilter16(uint8_t* p, int stride, int thresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleVFilter16
      Src: /src/libwebp/src/dsp/dec_mips32.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - stride
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: SimpleVFilter16i
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 2
    functionsReached:
    - SimpleVFilter16
    linkageType: ''
    returnType: void
    signature: void SimpleVFilter16i(uint8_t* p, int stride, int thresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleHFilter16
      Src: /src/libwebp/src/dsp/dec_mips32.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - stride
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: SimpleHFilter16i
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 2
    functionsReached:
    - SimpleHFilter16
    linkageType: ''
    returnType: void
    signature: void SimpleHFilter16i(uint8_t* p, int stride, int thresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MUL_SHIFT_C1_IO
      Src: /src/libwebp/src/dsp/dec_mips32.c:264,1
    - Dst: MUL_SHIFT_C1_IO
      Src: /src/libwebp/src/dsp/dec_mips32.c:310,1
    - Dst: MUL_SHIFT_C1_IO
      Src: /src/libwebp/src/dsp/dec_mips32.c:320,1
    - Dst: MUL_SHIFT_C1_IO
      Src: /src/libwebp/src/dsp/dec_mips32.c:330,1
    - Dst: MUL_SHIFT_C1_IO
      Src: /src/libwebp/src/dsp/dec_mips32.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 534
    functionName: TransformOne
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 2
    functionsReached:
    - MUL_SHIFT_C1_IO
    linkageType: ''
    returnType: void
    signature: "void TransformOne(const int16_t* WEBP_RESTRICT in,\n                         uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TransformOne
      Src: /src/libwebp/src/dsp/dec_mips32.c:538,1
    - Dst: TransformOne
      Src: /src/libwebp/src/dsp/dec_mips32.c:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - do_two
    argTypes:
    - int16_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 542
    functionName: TransformTwo
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 0
    functionsReached:
    - TransformOne
    linkageType: ''
    returnType: void
    signature: "void TransformTwo(const int16_t* WEBP_RESTRICT in,\n                         uint8_t*
      WEBP_RESTRICT dst, int do_two)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8InitClipTables
      Src: /src/libwebp/src/dsp/dec_mips32.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 567
    functionName: VP8DspInitMIPS32
    functionSourceFile: /src/libwebp/src/dsp/dec_mips32.c
    functionUses: 1
    functionsReached:
    - VP8InitClipTables
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8DspInitMIPS32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - alpha
    - alpha_stride
    - width
    - height
    - dst
    - dst_stride
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 77
    functionName: DispatchAlpha_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DispatchAlpha_MIPSdspR2(const uint8_t* alpha, int alpha_stride,\n
      \                                  int width, int height, uint8_t* dst,\n                                   int
      dst_stride)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ptr
    - width
    - inverse
    argTypes:
    - uint32_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 121
    functionName: MultARGBRow_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MultARGBRow_MIPSdspR2(uint32_t* const ptr, int width, int inverse)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - a
    - r
    - g
    - b
    - len
    - out
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 162
    functionName: PackARGB_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PackARGB_MIPSdspR2(const uint8_t* a, const uint8_t* r,\n                               const
      uint8_t* g, const uint8_t* b, int len,\n                               uint32_t*
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - r
    - g
    - b
    - len
    - step
    - out
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 201
    functionName: PackRGB_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PackRGB_MIPSdspR2(const uint8_t* r, const uint8_t* g,\n                              const
      uint8_t* b, int len, int step,\n                              uint32_t* out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 215
    functionName: WebPInitAlphaProcessingMIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_mips_dsp_r2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPInitAlphaProcessingMIPSdspR2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - OUT
    - ','
    - IN0
    - ','
    - IN1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: WEBP_SSE41_SHUFF
    functionSourceFile: /src/libwebp/src/dsp/common_sse41.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_SSE41_SHUFF(OUT, IN0, IN1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/common_sse41.h:48,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/common_sse41.h:49,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/common_sse41.h:51,1
    - Dst: WEBP_SSE41_SHUFF
      Src: /src/libwebp/src/dsp/common_sse41.h:53,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/common_sse41.h:61,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/common_sse41.h:63,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/common_sse41.h:64,1
    - Dst: WEBP_SSE41_SHUFF
      Src: /src/libwebp/src/dsp/common_sse41.h:66,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/common_sse41.h:72,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/common_sse41.h:74,1
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/common_sse41.h:75,1
    - Dst: WEBP_SSE41_SHUFF
      Src: /src/libwebp/src/dsp/common_sse41.h:77,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/common_sse41.h:82,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/common_sse41.h:83,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/common_sse41.h:84,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/common_sse41.h:85,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/common_sse41.h:86,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/common_sse41.h:87,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/common_sse41.h:88,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/common_sse41.h:89,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/common_sse41.h:90,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/common_sse41.h:91,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/common_sse41.h:92,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/common_sse41.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 6
    argNames:
    - in0
    - in1
    - in2
    - in3
    - in4
    - in5
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 95
    functionName: VP8PlanarTo24b_SSE41
    functionSourceFile: /src/libwebp/src/dsp/common_sse41.h
    functionUses: 1
    functionsReached:
    - WEBP_SSE41_SHUFF
    - _mm_set_epi8
    - _mm_or_si128
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8PlanarTo24b_SSE41(\n    __m128i* const in0, __m128i*
      const in1, __m128i* const in2,\n    __m128i* const in3, __m128i* const in4,
      __m128i* const in5)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set_epi8
      Src: /src/libwebp/src/dsp/common_sse41.h:107,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/common_sse41.h:108,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/common_sse41.h:109,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/common_sse41.h:110,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/common_sse41.h:111,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/common_sse41.h:116,1
    - Dst: _mm_unpackhi_epi32
      Src: /src/libwebp/src/dsp/common_sse41.h:117,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/common_sse41.h:118,1
    - Dst: _mm_unpackhi_epi32
      Src: /src/libwebp/src/dsp/common_sse41.h:119,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/common_sse41.h:120,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/common_sse41.h:121,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/common_sse41.h:122,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/common_sse41.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - in0
    - in1
    - in2
    - in3
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 124
    functionName: VP8L32bToPlanar_SSE41
    functionSourceFile: /src/libwebp/src/dsp/common_sse41.h
    functionUses: 2
    functionsReached:
    - _mm_unpackhi_epi32
    - _mm_unpackhi_epi64
    - _mm_unpacklo_epi32
    - _mm_shuffle_epi8
    - _mm_set_epi8
    - _mm_unpacklo_epi64
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8L32bToPlanar_SSE41(__m128i* const in0,\n                                              __m128i*
      const in1,\n                                              __m128i* const in2,\n
      \                                             __m128i* const in3)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:252,1
    - Dst: BitsLog2Floor
      Src: /src/libwebp/src/dsp/lossless_enc.c:258,1
    - Dst: log
      Src: /src/libwebp/src/dsp/lossless_enc.c:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts:
    - condition: (v >= LOG_LOOKUP_IDX_MAX)
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    constantsTouched: []
    func_position:
      end: 281
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 281
    functionName: FastSLog2Slow_C
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - log
    - BitsLog2Floor
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FastSLog2Slow_C(uint32_t v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:284,1
    - Dst: BitsLog2Floor
      Src: /src/libwebp/src/dsp/lossless_enc.c:290,1
    - Dst: DivRound
      Src: /src/libwebp/src/dsp/lossless_enc.c:307,1
    - Dst: log
      Src: /src/libwebp/src/dsp/lossless_enc.c:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts:
    - condition: (v >= LOG_LOOKUP_IDX_MAX)
      pos:
        line_end: 283
        line_start: 283
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    constantsTouched: []
    func_position:
      end: 313
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 313
    functionName: FastLog2Slow_C
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 0
    functionsReached:
    - assert
    - log
    - BitsLog2Floor
    - DivRound
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t FastLog2Slow_C(uint32_t v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc.c:329,1
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc.c:331,1
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc.c:334,1
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc.c:337,1
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc.c:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - X
    - Y
    argTypes:
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 339
    functionName: CombinedShannonEntropy_C
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 0
    functionsReached:
    - VP8LFastSLog2
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t CombinedShannonEntropy_C(const uint32_t X[256],\n                                         const
      uint32_t Y[256])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc.c:349,1
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - X
    - n
    argTypes:
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 354
    functionName: ShannonEntropy_C
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 0
    functionsReached:
    - VP8LFastSLog2
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ShannonEntropy_C(const uint32_t* X, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - entropy
    argTypes:
    - VP8LBitEntropy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 362
    functionName: VP8LBitEntropyInit
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VP8LBitEntropyInit(VP8LBitEntropy* const entropy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8LBitEntropyInit
      Src: /src/libwebp/src/dsp/lossless_enc.c:368,1
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc.c:375,1
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc.c:381,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - array
    - n
    - entropy
    argTypes:
    - uint32_t*
    - int
    - VP8LBitEntropy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 382
    functionName: VP8LBitsEntropyUnrefined
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 1
    functionsReached:
    - VP8LBitEntropyInit
    - VP8LFastSLog2
    linkageType: ''
    returnType: void
    signature: "void VP8LBitsEntropyUnrefined(const uint32_t* WEBP_RESTRICT const
      array, int n,\n                              VP8LBitEntropy* WEBP_RESTRICT const
      entropy)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc.c:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 6
    argNames:
    - val
    - i
    - val_prev
    - i_prev
    - bit_entropy
    - stats
    argTypes:
    - uint32_t
    - int
    - uint32_t*
    - int*
    - VP8LBitEntropy*
    - VP8LStreaks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 408
    functionName: GetEntropyUnrefinedHelper
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 0
    functionsReached:
    - VP8LFastSLog2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE GetEntropyUnrefinedHelper(\n    uint32_t val, int i, uint32_t*
      WEBP_RESTRICT const val_prev,\n    int* WEBP_RESTRICT const i_prev,\n    VP8LBitEntropy*
      WEBP_RESTRICT const bit_entropy,\n    VP8LStreaks* WEBP_RESTRICT const stats)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/dsp/lossless_enc.c:418,1
    - Dst: VP8LBitEntropyInit
      Src: /src/libwebp/src/dsp/lossless_enc.c:419,1
    - Dst: GetEntropyUnrefinedHelper
      Src: /src/libwebp/src/dsp/lossless_enc.c:424,1
    - Dst: GetEntropyUnrefinedHelper
      Src: /src/libwebp/src/dsp/lossless_enc.c:427,1
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc.c:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - X
    - length
    - bit_entropy
    - stats
    argTypes:
    - uint32_t[]
    - int
    - VP8LBitEntropy*
    - VP8LStreaks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 430
    functionName: GetEntropyUnrefined_C
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 0
    functionsReached:
    - VP8LFastSLog2
    - memset
    - VP8LBitEntropyInit
    - GetEntropyUnrefinedHelper
    linkageType: ''
    returnType: void
    signature: "void GetEntropyUnrefined_C(\n    const uint32_t X[], int length,\n
      \   VP8LBitEntropy* WEBP_RESTRICT const bit_entropy,\n    VP8LStreaks* WEBP_RESTRICT
      const stats)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/dsp/lossless_enc.c:440,1
    - Dst: VP8LBitEntropyInit
      Src: /src/libwebp/src/dsp/lossless_enc.c:441,1
    - Dst: GetEntropyUnrefinedHelper
      Src: /src/libwebp/src/dsp/lossless_enc.c:446,1
    - Dst: GetEntropyUnrefinedHelper
      Src: /src/libwebp/src/dsp/lossless_enc.c:449,1
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc.c:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - X
    - Y
    - length
    - bit_entropy
    - stats
    argTypes:
    - uint32_t[]
    - uint32_t[]
    - int
    - VP8LBitEntropy*
    - VP8LStreaks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 452
    functionName: GetCombinedEntropyUnrefined_C
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 0
    functionsReached:
    - VP8LFastSLog2
    - memset
    - VP8LBitEntropyInit
    - GetEntropyUnrefinedHelper
    linkageType: ''
    returnType: void
    signature: "void GetCombinedEntropyUnrefined_C(\n    const uint32_t X[], const
      uint32_t Y[], int length,\n    VP8LBitEntropy* WEBP_RESTRICT const bit_entropy,\n
      \   VP8LStreaks* WEBP_RESTRICT const stats)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - argb_data
    - num_pixels
    argTypes:
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 465
    functionName: VP8LSubtractGreenFromBlueAndRed_C
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VP8LSubtractGreenFromBlueAndRed_C(uint32_t* argb_data, int num_pixels)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - color_pred
    - color
    argTypes:
    - int8_t
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 469
    functionName: ColorTransformDelta
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE ColorTransformDelta(int8_t color_pred, int8_t color)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 471
    functionName: U32ToS8
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE U32ToS8(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U32ToS8
      Src: /src/libwebp/src/dsp/lossless_enc.c:478,1
    - Dst: U32ToS8
      Src: /src/libwebp/src/dsp/lossless_enc.c:479,1
    - Dst: ColorTransformDelta
      Src: /src/libwebp/src/dsp/lossless_enc.c:482,1
    - Dst: ColorTransformDelta
      Src: /src/libwebp/src/dsp/lossless_enc.c:484,1
    - Dst: ColorTransformDelta
      Src: /src/libwebp/src/dsp/lossless_enc.c:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - m
    - WEBP_RESTRICT
    - num_pixels
    argTypes:
    - VP8LMultipliers*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 489
    functionName: VP8LTransformColor_C
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 1
    functionsReached:
    - ColorTransformDelta
    - U32ToS8
    linkageType: ''
    returnType: void
    signature: "void VP8LTransformColor_C(const VP8LMultipliers* WEBP_RESTRICT const
      m,\n                          uint32_t* WEBP_RESTRICT data, int num_pixels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U32ToS8
      Src: /src/libwebp/src/dsp/lossless_enc.c:493,1
    - Dst: ColorTransformDelta
      Src: /src/libwebp/src/dsp/lossless_enc.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - green_to_red
    - argb
    argTypes:
    - uint8_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 497
    functionName: TransformColorRed
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 1
    functionsReached:
    - ColorTransformDelta
    - U32ToS8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE TransformColorRed(uint8_t green_to_red,\n                                             uint32_t
      argb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U32ToS8
      Src: /src/libwebp/src/dsp/lossless_enc.c:502,1
    - Dst: U32ToS8
      Src: /src/libwebp/src/dsp/lossless_enc.c:503,1
    - Dst: ColorTransformDelta
      Src: /src/libwebp/src/dsp/lossless_enc.c:505,1
    - Dst: ColorTransformDelta
      Src: /src/libwebp/src/dsp/lossless_enc.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - green_to_blue
    - red_to_blue
    - argb
    argTypes:
    - uint8_t
    - uint8_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 508
    functionName: TransformColorBlue
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 1
    functionsReached:
    - ColorTransformDelta
    - U32ToS8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE TransformColorBlue(uint8_t green_to_blue,\n                                              uint8_t
      red_to_blue,\n                                              uint32_t argb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TransformColorRed
      Src: /src/libwebp/src/dsp/lossless_enc.c:517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - stride
    - tile_width
    - tile_height
    - green_to_red
    - histo
    argTypes:
    - uint32_t*
    - int
    - int
    - int
    - int
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 521
    functionName: VP8LCollectColorRedTransforms_C
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 1
    functionsReached:
    - TransformColorRed
    linkageType: ''
    returnType: void
    signature: "void VP8LCollectColorRedTransforms_C(const uint32_t* WEBP_RESTRICT
      argb,\n                                     int stride, int tile_width,\n                                     int
      tile_height, int green_to_red,\n                                     uint32_t
      histo[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TransformColorBlue
      Src: /src/libwebp/src/dsp/lossless_enc.c:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 7
    argNames:
    - WEBP_RESTRICT
    - stride
    - tile_width
    - tile_height
    - green_to_blue
    - red_to_blue
    - histo
    argTypes:
    - uint32_t*
    - int
    - int
    - int
    - int
    - int
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 535
    functionName: VP8LCollectColorBlueTransforms_C
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 1
    functionsReached:
    - TransformColorBlue
    linkageType: ''
    returnType: void
    signature: "void VP8LCollectColorBlueTransforms_C(const uint32_t* WEBP_RESTRICT
      argb,\n                                      int stride, int tile_width,\n                                      int
      tile_height, int green_to_blue,\n                                      int red_to_blue,
      uint32_t histo[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - array1
    - array2
    - length
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 547
    functionName: VectorMismatch_C
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int VectorMismatch_C(const uint32_t* const array1,\n                            const
      uint32_t* const array2, int length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - row
    - width
    - xbits
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 568
    functionName: VP8LBundleColorMap_C
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void VP8LBundleColorMap_C(const uint8_t* WEBP_RESTRICT const row,
      int width,\n                          int xbits, uint32_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - population
    - length
    argTypes:
    - uint32_t*
    - int
    assertStmts:
    - condition: (length % 2 == 0)
      pos:
        line_end: 574
        line_start: 574
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    constantsTouched: []
    func_position:
      end: 580
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 580
    functionName: ExtraCost_C
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ExtraCost_C(const uint32_t* population, int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - size
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 589
    functionName: AddVector_C
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AddVector_C(const uint32_t* WEBP_RESTRICT a,\n                        const
      uint32_t* WEBP_RESTRICT b,\n                        uint32_t* WEBP_RESTRICT
      out, int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - size
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: AddVectorEq_C
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AddVectorEq_C(const uint32_t* WEBP_RESTRICT a,\n                          uint32_t*
      WEBP_RESTRICT out, int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LSubPixels
      Src: /src/libwebp/src/dsp/lossless_enc.c:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 605
    functionName: PredictorSub0_C
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 0
    functionsReached:
    - VP8LSubPixels
    linkageType: ''
    returnType: void
    signature: "void PredictorSub0_C(const uint32_t* in, const uint32_t* upper,\n
      \                           int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LSubPixels
      Src: /src/libwebp/src/dsp/lossless_enc.c:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 612
    functionName: PredictorSub1_C
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 0
    functionsReached:
    - VP8LSubPixels
    linkageType: ''
    returnType: void
    signature: "void PredictorSub1_C(const uint32_t* in, const uint32_t* upper,\n
      \                           int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - PREDICTOR_I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 628
    functionName: GENERATE_PREDICTOR_SUB
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_PREDICTOR_SUB(PREDICTOR_I)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: VP8LDspInit
      Src: /src/libwebp/src/dsp/lossless_enc.c:686,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/lossless_enc.c:750,1
    - Dst: VP8LEncDspInitSSE2
      Src: /src/libwebp/src/dsp/lossless_enc.c:751,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/lossless_enc.c:753,1
    - Dst: VP8LEncDspInitSSE41
      Src: /src/libwebp/src/dsp/lossless_enc.c:754,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/lossless_enc.c:756,1
    - Dst: VP8LEncDspInitAVX2
      Src: /src/libwebp/src/dsp/lossless_enc.c:757,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/lossless_enc.c:765,1
    - Dst: VP8LEncDspInitMIPS32
      Src: /src/libwebp/src/dsp/lossless_enc.c:766,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/lossless_enc.c:770,1
    - Dst: VP8LEncDspInitMIPSdspR2
      Src: /src/libwebp/src/dsp/lossless_enc.c:771,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/lossless_enc.c:775,1
    - Dst: VP8LEncDspInitMSA
      Src: /src/libwebp/src/dsp/lossless_enc.c:776,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/lossless_enc.c:783,1
    - Dst: VP8LEncDspInitNEON
      Src: /src/libwebp/src/dsp/lossless_enc.c:784,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:788,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:789,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:790,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:791,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:792,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:793,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:794,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:795,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:796,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:797,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:798,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:799,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:800,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:801,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:802,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:803,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:804,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:805,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:806,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:807,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:808,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:809,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:810,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:811,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:812,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:813,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:814,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:815,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:816,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:817,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:818,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:819,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:820,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:821,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:822,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:823,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:824,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:825,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:826,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:827,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:828,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:829,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:830,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:831,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:832,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:833,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc.c:834,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 119
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (VP8LCollectColorBlueTransforms != NULL)
      pos:
        line_end: 789
        line_start: 789
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LFastLog2Slow != NULL)
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LShannonEntropy != NULL)
      pos:
        line_end: 795
        line_start: 795
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LAddVectorEq != NULL)
      pos:
        line_end: 799
        line_start: 799
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub_C[14] != NULL)
      pos:
        line_end: 832
        line_start: 832
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub[7] != NULL)
      pos:
        line_end: 809
        line_start: 809
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub[6] != NULL)
      pos:
        line_end: 808
        line_start: 808
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub_C[5] != NULL)
      pos:
        line_end: 823
        line_start: 823
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LFastSLog2Slow != NULL)
      pos:
        line_end: 792
        line_start: 792
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LGetEntropyUnrefined != NULL)
      pos:
        line_end: 796
        line_start: 796
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LVectorMismatch != NULL)
      pos:
        line_end: 800
        line_start: 800
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub[0] != NULL)
      pos:
        line_end: 802
        line_start: 802
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub[2] != NULL)
      pos:
        line_end: 804
        line_start: 804
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub[5] != NULL)
      pos:
        line_end: 807
        line_start: 807
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub[11] != NULL)
      pos:
        line_end: 813
        line_start: 813
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub_C[10] != NULL)
      pos:
        line_end: 828
        line_start: 828
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub_C[13] != NULL)
      pos:
        line_end: 831
        line_start: 831
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub[12] != NULL)
      pos:
        line_end: 814
        line_start: 814
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub_C[4] != NULL)
      pos:
        line_end: 822
        line_start: 822
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub[3] != NULL)
      pos:
        line_end: 805
        line_start: 805
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub_C[9] != NULL)
      pos:
        line_end: 827
        line_start: 827
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub_C[12] != NULL)
      pos:
        line_end: 830
        line_start: 830
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub_C[3] != NULL)
      pos:
        line_end: 821
        line_start: 821
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LSubtractGreenFromBlueAndRed != NULL)
      pos:
        line_end: 787
        line_start: 787
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LExtraCost != NULL)
      pos:
        line_end: 793
        line_start: 793
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LGetCombinedEntropyUnrefined != NULL)
      pos:
        line_end: 797
        line_start: 797
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LBundleColorMap != NULL)
      pos:
        line_end: 801
        line_start: 801
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub_C[8] != NULL)
      pos:
        line_end: 826
        line_start: 826
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub_C[11] != NULL)
      pos:
        line_end: 829
        line_start: 829
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub[10] != NULL)
      pos:
        line_end: 812
        line_start: 812
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub[4] != NULL)
      pos:
        line_end: 806
        line_start: 806
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub_C[2] != NULL)
      pos:
        line_end: 820
        line_start: 820
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub[9] != NULL)
      pos:
        line_end: 811
        line_start: 811
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LCollectColorRedTransforms != NULL)
      pos:
        line_end: 790
        line_start: 790
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LTransformColor != NULL)
      pos:
        line_end: 788
        line_start: 788
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LCombinedShannonEntropy != NULL)
      pos:
        line_end: 794
        line_start: 794
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LAddVector != NULL)
      pos:
        line_end: 798
        line_start: 798
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub[1] != NULL)
      pos:
        line_end: 803
        line_start: 803
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub[8] != NULL)
      pos:
        line_end: 810
        line_start: 810
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub[14] != NULL)
      pos:
        line_end: 816
        line_start: 816
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub_C[1] != NULL)
      pos:
        line_end: 819
        line_start: 819
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub_C[7] != NULL)
      pos:
        line_end: 825
        line_start: 825
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub_C[6] != NULL)
      pos:
        line_end: 824
        line_start: 824
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub[13] != NULL)
      pos:
        line_end: 815
        line_start: 815
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub_C[0] != NULL)
      pos:
        line_end: 818
        line_start: 818
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub[15] != NULL)
      pos:
        line_end: 817
        line_start: 817
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    - condition: (VP8LPredictorsSub_C[15] != NULL)
      pos:
        line_end: 833
        line_start: 833
        source_file: /src/libwebp/src/dsp/lossless_enc.c
    constantsTouched: []
    func_position:
      end: 835
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 835
    functionName: WEBP_DSP_INIT_FUNC
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc.c
    functionUses: 0
    functionsReached:
    - VP8LEncDspInitMIPS32
    - VP8GetCPUInfo
    - VP8LEncDspInitMIPSdspR2
    - VP8LEncDspInitSSE2
    - assert
    - VP8LEncDspInitSSE41
    - VP8LEncDspInitAVX2
    - VP8LEncDspInitMSA
    - VP8LEncDspInitNEON
    - VP8LDspInit
    linkageType: ''
    returnType: void
    signature: void WEBP_DSP_INIT_FUNC(VP8LEncDspInit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - FUNC_NAME
    - ','
    - XSTEP
    - ','
    - R
    - ','
    - G
    - ','
    - B
    - ','
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 79
    functionName: ROW_FUNC
    functionSourceFile: /src/libwebp/src/dsp/yuv_mips32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROW_FUNC(FUNC_NAME, XSTEP, R, G, B, A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: WebPInitSamplersMIPS32
    functionSourceFile: /src/libwebp/src/dsp/yuv_mips32.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPInitSamplersMIPS32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - in
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: DCHECK
    functionSourceFile: /src/libwebp/src/dsp/filters_sse2.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DCHECK(in, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/filters_sse2.c:44,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:46,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:47,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:48,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:49,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/filters_sse2.c:50,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/filters_sse2.c:51,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:52,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts:
    - condition: (length >= 0)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/libwebp/src/dsp/filters_sse2.c
    constantsTouched: []
    func_position:
      end: 56
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 56
    functionName: PredictLineTop_SSE2
    functionSourceFile: /src/libwebp/src/dsp/filters_sse2.c
    functionUses: 0
    functionsReached:
    - assert
    - _mm_loadu_si128
    - _mm_sub_epi8
    - _mm_storeu_si128
    linkageType: ''
    returnType: void
    signature: "void PredictLineTop_SSE2(const uint8_t* WEBP_RESTRICT src,\n                                const
      uint8_t* WEBP_RESTRICT pred,\n                                uint8_t* WEBP_RESTRICT
      dst, int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/filters_sse2.c:63,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:65,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:66,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:67,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:68,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/filters_sse2.c:69,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/filters_sse2.c:70,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:71,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    assertStmts:
    - condition: (length >= 0)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/libwebp/src/dsp/filters_sse2.c
    constantsTouched: []
    func_position:
      end: 75
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 75
    functionName: PredictLineLeft_SSE2
    functionSourceFile: /src/libwebp/src/dsp/filters_sse2.c
    functionUses: 0
    functionsReached:
    - assert
    - _mm_loadu_si128
    - _mm_sub_epi8
    - _mm_storeu_si128
    linkageType: ''
    returnType: void
    signature: "void PredictLineLeft_SSE2(const uint8_t* WEBP_RESTRICT src,\n                                 uint8_t*
      WEBP_RESTRICT dst, int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK
      Src: /src/libwebp/src/dsp/filters_sse2.c:85,1
    - Dst: PredictLineLeft_SSE2
      Src: /src/libwebp/src/dsp/filters_sse2.c:89,1
    - Dst: PredictLineLeft_SSE2
      Src: /src/libwebp/src/dsp/filters_sse2.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 101
    functionName: DoHorizontalFilter_SSE2
    functionSourceFile: /src/libwebp/src/dsp/filters_sse2.c
    functionUses: 0
    functionsReached:
    - PredictLineLeft_SSE2
    - DCHECK
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoHorizontalFilter_SSE2(const uint8_t* WEBP_RESTRICT in,\n
      \                                               int width, int height,\n                                                int
      stride,\n                                                uint8_t* WEBP_RESTRICT
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK
      Src: /src/libwebp/src/dsp/filters_sse2.c:110,1
    - Dst: PredictLineLeft_SSE2
      Src: /src/libwebp/src/dsp/filters_sse2.c:115,1
    - Dst: PredictLineTop_SSE2
      Src: /src/libwebp/src/dsp/filters_sse2.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 125
    functionName: DoVerticalFilter_SSE2
    functionSourceFile: /src/libwebp/src/dsp/filters_sse2.c
    functionUses: 0
    functionsReached:
    - PredictLineLeft_SSE2
    - PredictLineTop_SSE2
    - DCHECK
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoVerticalFilter_SSE2(const uint8_t* WEBP_RESTRICT in,\n
      \                                             int width, int height, int stride,\n
      \                                             uint8_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: GradientPredictor_SSE2
    functionSourceFile: /src/libwebp/src/dsp/filters_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GradientPredictor_SSE2(uint8_t a, uint8_t b, uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:141,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/filters_sse2.c:143,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/filters_sse2.c:144,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/filters_sse2.c:145,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/filters_sse2.c:146,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/filters_sse2.c:147,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/filters_sse2.c:148,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/filters_sse2.c:149,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/filters_sse2.c:150,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/filters_sse2.c:151,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/filters_sse2.c:152,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/filters_sse2.c:153,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/filters_sse2.c:154,1
    - Dst: GradientPredictor_SSE2
      Src: /src/libwebp/src/dsp/filters_sse2.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - row
    - top
    - out
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 160
    functionName: GradientPredictDirect_SSE2
    functionSourceFile: /src/libwebp/src/dsp/filters_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - GradientPredictor_SSE2
    - _mm_setzero_si128
    - _mm_storel_epi64
    - _mm_add_epi16
    - _mm_sub_epi16
    - _mm_sub_epi8
    - _mm_loadl_epi64
    - _mm_packus_epi16
    linkageType: ''
    returnType: void
    signature: "void GradientPredictDirect_SSE2(const uint8_t* const row,\n                                       const
      uint8_t* const top,\n                                       uint8_t* WEBP_RESTRICT
      const out,\n                                       int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK
      Src: /src/libwebp/src/dsp/filters_sse2.c:166,1
    - Dst: PredictLineLeft_SSE2
      Src: /src/libwebp/src/dsp/filters_sse2.c:170,1
    - Dst: GradientPredictDirect_SSE2
      Src: /src/libwebp/src/dsp/filters_sse2.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 181
    functionName: DoGradientFilter_SSE2
    functionSourceFile: /src/libwebp/src/dsp/filters_sse2.c
    functionUses: 0
    functionsReached:
    - PredictLineLeft_SSE2
    - GradientPredictDirect_SSE2
    - DCHECK
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoGradientFilter_SSE2(const uint8_t* WEBP_RESTRICT in,\n
      \                                             int width, int height, int stride,\n
      \                                             uint8_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoHorizontalFilter_SSE2
      Src: /src/libwebp/src/dsp/filters_sse2.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT filtered_data
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: HorizontalFilter_SSE2
    functionSourceFile: /src/libwebp/src/dsp/filters_sse2.c
    functionUses: 1
    functionsReached:
    - DoHorizontalFilter_SSE2
    linkageType: ''
    returnType: void
    signature: "void HorizontalFilter_SSE2(const uint8_t* WEBP_RESTRICT data, int
      width,\n                                  int height, int stride,\n                                  uint8_t*
      WEBP_RESTRICT filtered_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoVerticalFilter_SSE2
      Src: /src/libwebp/src/dsp/filters_sse2.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT filtered_data
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: VerticalFilter_SSE2
    functionSourceFile: /src/libwebp/src/dsp/filters_sse2.c
    functionUses: 1
    functionsReached:
    - DoVerticalFilter_SSE2
    linkageType: ''
    returnType: void
    signature: "void VerticalFilter_SSE2(const uint8_t* WEBP_RESTRICT data, int width,\n
      \                               int height, int stride,\n                                uint8_t*
      WEBP_RESTRICT filtered_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoGradientFilter_SSE2
      Src: /src/libwebp/src/dsp/filters_sse2.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT filtered_data
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: GradientFilter_SSE2
    functionSourceFile: /src/libwebp/src/dsp/filters_sse2.c
    functionUses: 1
    functionsReached:
    - DoGradientFilter_SSE2
    linkageType: ''
    returnType: void
    signature: "void GradientFilter_SSE2(const uint8_t* WEBP_RESTRICT data, int width,\n
      \                               int height, int stride,\n                                uint8_t*
      WEBP_RESTRICT filtered_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set_epi32
      Src: /src/libwebp/src/dsp/filters_sse2.c:214,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/filters_sse2.c:216,1
    - Dst: _mm_add_epi8
      Src: /src/libwebp/src/dsp/filters_sse2.c:217,1
    - Dst: _mm_slli_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:218,1
    - Dst: _mm_add_epi8
      Src: /src/libwebp/src/dsp/filters_sse2.c:219,1
    - Dst: _mm_slli_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:220,1
    - Dst: _mm_add_epi8
      Src: /src/libwebp/src/dsp/filters_sse2.c:221,1
    - Dst: _mm_slli_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:222,1
    - Dst: _mm_add_epi8
      Src: /src/libwebp/src/dsp/filters_sse2.c:223,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/filters_sse2.c:224,1
    - Dst: _mm_srli_epi64
      Src: /src/libwebp/src/dsp/filters_sse2.c:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - prev
    - in
    - out
    - width
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 228
    functionName: HorizontalUnfilter_SSE2
    functionSourceFile: /src/libwebp/src/dsp/filters_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_srli_epi64
    - _mm_storel_epi64
    - _mm_set_epi32
    - _mm_add_epi8
    - _mm_slli_si128
    - _mm_loadl_epi64
    linkageType: ''
    returnType: void
    signature: "void HorizontalUnfilter_SSE2(const uint8_t* prev, const uint8_t* in,\n
      \                                   uint8_t* out, int width)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HorizontalUnfilter_SSE2
      Src: /src/libwebp/src/dsp/filters_sse2.c:233,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/filters_sse2.c:237,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:239,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:240,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:241,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:242,1
    - Dst: _mm_add_epi8
      Src: /src/libwebp/src/dsp/filters_sse2.c:243,1
    - Dst: _mm_add_epi8
      Src: /src/libwebp/src/dsp/filters_sse2.c:244,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:245,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - prev
    - in
    - out
    - width
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts:
    - condition: (width >= 0)
      pos:
        line_end: 236
        line_start: 236
        source_file: /src/libwebp/src/dsp/filters_sse2.c
    constantsTouched: []
    func_position:
      end: 250
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 250
    functionName: VerticalUnfilter_SSE2
    functionSourceFile: /src/libwebp/src/dsp/filters_sse2.c
    functionUses: 0
    functionsReached:
    - HorizontalUnfilter_SSE2
    - assert
    - _mm_storeu_si128
    - _mm_loadu_si128
    - _mm_add_epi8
    linkageType: ''
    returnType: void
    signature: "void VerticalUnfilter_SSE2(const uint8_t* prev, const uint8_t* in,\n
      \                                 uint8_t* out, int width)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:258,1
    - Dst: _mm_set_epi32
      Src: /src/libwebp/src/dsp/filters_sse2.c:259,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/filters_sse2.c:261,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/filters_sse2.c:262,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/filters_sse2.c:263,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/filters_sse2.c:264,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/filters_sse2.c:265,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/filters_sse2.c:266,1
    - Dst: _mm_set_epi32
      Src: /src/libwebp/src/dsp/filters_sse2.c:268,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/filters_sse2.c:271,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/filters_sse2.c:272,1
    - Dst: _mm_add_epi8
      Src: /src/libwebp/src/dsp/filters_sse2.c:273,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:274,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:275,1
    - Dst: _mm_slli_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:277,1
    - Dst: _mm_slli_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:278,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/filters_sse2.c:279,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/filters_sse2.c:281,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/filters_sse2.c:282,1
    - Dst: GradientPredictor_SSE2
      Src: /src/libwebp/src/dsp/filters_sse2.c:285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - in
    - top
    - row
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 289
    functionName: GradientPredictInverse_SSE2
    functionSourceFile: /src/libwebp/src/dsp/filters_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - GradientPredictor_SSE2
    - _mm_setzero_si128
    - _mm_storel_epi64
    - _mm_add_epi16
    - _mm_sub_epi16
    - _mm_set_epi32
    - _mm_and_si128
    - _mm_add_epi8
    - _mm_slli_si128
    - _mm_loadl_epi64
    - _mm_packus_epi16
    - _mm_srli_si128
    - _mm_or_si128
    linkageType: ''
    returnType: void
    signature: "void GradientPredictInverse_SSE2(const uint8_t* const in,\n                                        const
      uint8_t* const top,\n                                        uint8_t* const
      row, int length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HorizontalUnfilter_SSE2
      Src: /src/libwebp/src/dsp/filters_sse2.c:294,1
    - Dst: GradientPredictInverse_SSE2
      Src: /src/libwebp/src/dsp/filters_sse2.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - prev
    - in
    - out
    - width
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 299
    functionName: GradientUnfilter_SSE2
    functionSourceFile: /src/libwebp/src/dsp/filters_sse2.c
    functionUses: 0
    functionsReached:
    - HorizontalUnfilter_SSE2
    - GradientPredictInverse_SSE2
    linkageType: ''
    returnType: void
    signature: "void GradientUnfilter_SSE2(const uint8_t* prev, const uint8_t* in,\n
      \                                 uint8_t* out, int width)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 319
    functionName: VP8FiltersInitSSE2
    functionSourceFile: /src/libwebp/src/dsp/filters_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8FiltersInitSSE2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_set1_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:33,1
    - Dst: _mm256_avg_epu8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:34,1
    - Dst: _mm256_and_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:35,1
    - Dst: _mm256_xor_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:35,1
    - Dst: _mm256_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a0
    - a1
    - avg
    argTypes:
    - __m256i*
    - __m256i*
    - __m256i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: Average2_m256i
    functionSourceFile: /src/libwebp/src/dsp/lossless_avx2.c
    functionUses: 2
    functionsReached:
    - _mm256_set1_epi8
    - _mm256_xor_si256
    - _mm256_avg_epu8
    - _mm256_and_si256
    - _mm256_sub_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Average2_m256i(const __m256i* const a0,\n                                       const
      __m256i* const a1,\n                                       __m256i* const avg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_avx2.c:45,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:47,1
    - Dst: _mm256_add_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:48,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: PredictorAdd0_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_avx2.c
    functionUses: 0
    functionsReached:
    - _mm256_set1_epi32
    - _mm256_loadu_si256
    - _mm256_storeu_si256
    - _mm256_add_epi8
    linkageType: ''
    returnType: void
    signature: "void PredictorAdd0_AVX2(const uint32_t* in, const uint32_t* upper,\n
      \                              int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_avx2.c:61,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:64,1
    - Dst: _mm256_slli_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:66,1
    - Dst: _mm256_add_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:68,1
    - Dst: _mm256_slli_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:70,1
    - Dst: _mm256_add_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:73,1
    - Dst: _mm256_extract_epi32
      Src: /src/libwebp/src/dsp/lossless_avx2.c:75,1
    - Dst: _mm256_add_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:76,1
    - Dst: _mm256_set_epi32
      Src: /src/libwebp/src/dsp/lossless_avx2.c:78,1
    - Dst: _mm256_add_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:80,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:81,1
    - Dst: _mm256_permutevar8x32_epi32
      Src: /src/libwebp/src/dsp/lossless_avx2.c:83,1
    - Dst: _mm256_set_epi32
      Src: /src/libwebp/src/dsp/lossless_avx2.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 89
    functionName: PredictorAdd1_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_avx2.c
    functionUses: 0
    functionsReached:
    - _mm256_slli_si256
    - _mm256_extract_epi32
    - _mm256_storeu_si256
    - _mm256_add_epi8
    - _mm256_set1_epi32
    - _mm256_permutevar8x32_epi32
    - _mm256_loadu_si256
    - _mm256_set_epi32
    linkageType: ''
    returnType: void
    signature: "void PredictorAdd1_AVX2(const uint32_t* in, const uint32_t* upper,\n
      \                              int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - IN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 108
    functionName: GENERATE_PREDICTOR_1
    functionSourceFile: /src/libwebp/src/dsp/lossless_avx2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_PREDICTOR_1(X, IN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - IN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 138
    functionName: GENERATE_PREDICTOR_2
    functionSourceFile: /src/libwebp/src/dsp/lossless_avx2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_PREDICTOR_2(X, IN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OUT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 153
    functionName: DO_PRED10
    functionSourceFile: /src/libwebp/src/dsp/lossless_avx2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_PRED10(OUT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_setr_epi32
      Src: /src/libwebp/src/dsp/lossless_avx2.c:165,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:167,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:168,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:169,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:170,1
    - Dst: Average2_m256i
      Src: /src/libwebp/src/dsp/lossless_avx2.c:172,1
    - Dst: DO_PRED10
      Src: /src/libwebp/src/dsp/lossless_avx2.c:178,1
    - Dst: _mm256_permute2x128_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:181,1
    - Dst: _mm256_permute2x128_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:182,1
    - Dst: _mm256_permute2x128_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:183,1
    - Dst: DO_PRED10
      Src: /src/libwebp/src/dsp/lossless_avx2.c:185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 193
    functionName: PredictorAdd10_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_avx2.c
    functionUses: 0
    functionsReached:
    - Average2_m256i
    - _mm256_setr_epi32
    - _mm256_permute2x128_si256
    - _mm256_loadu_si256
    - DO_PRED10
    linkageType: ''
    returnType: void
    signature: "void PredictorAdd10_AVX2(const uint32_t* in, const uint32_t* upper,\n
      \                               int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OUT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: DO_PRED11
    functionSourceFile: /src/libwebp/src/dsp/lossless_avx2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_PRED11(OUT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_setr_epi32
      Src: /src/libwebp/src/dsp/lossless_avx2.c:224,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:226,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:227,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:228,1
    - Dst: _mm256_unpacklo_epi32
      Src: /src/libwebp/src/dsp/lossless_avx2.c:233,1
    - Dst: _mm256_unpacklo_epi32
      Src: /src/libwebp/src/dsp/lossless_avx2.c:234,1
    - Dst: _mm256_unpackhi_epi32
      Src: /src/libwebp/src/dsp/lossless_avx2.c:235,1
    - Dst: _mm256_unpackhi_epi32
      Src: /src/libwebp/src/dsp/lossless_avx2.c:236,1
    - Dst: _mm256_sad_epu8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:237,1
    - Dst: _mm256_sad_epu8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:238,1
    - Dst: _mm256_packs_epi32
      Src: /src/libwebp/src/dsp/lossless_avx2.c:239,1
    - Dst: DO_PRED11
      Src: /src/libwebp/src/dsp/lossless_avx2.c:247,1
    - Dst: _mm256_permute2x128_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:250,1
    - Dst: _mm256_permute2x128_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:251,1
    - Dst: _mm256_permute2x128_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:252,1
    - Dst: _mm256_permute2x128_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:253,1
    - Dst: DO_PRED11
      Src: /src/libwebp/src/dsp/lossless_avx2.c:255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 263
    functionName: PredictorAdd11_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_avx2.c
    functionUses: 0
    functionsReached:
    - _mm256_unpackhi_epi32
    - _mm256_unpacklo_epi32
    - DO_PRED11
    - _mm256_sad_epu8
    - _mm256_packs_epi32
    - _mm256_setr_epi32
    - _mm256_permute2x128_si256
    - _mm256_loadu_si256
    linkageType: ''
    returnType: void
    signature: "void PredictorAdd11_AVX2(const uint32_t* in, const uint32_t* upper,\n
      \                               int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DIFF
    - ','
    - OUT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 276
    functionName: DO_PRED12
    functionSourceFile: /src/libwebp/src/dsp/lossless_avx2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_PRED12(DIFF, OUT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_setzero_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:287,1
    - Dst: _mm256_setr_epi32
      Src: /src/libwebp/src/dsp/lossless_avx2.c:288,1
    - Dst: _mm256_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:289,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:292,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:293,1
    - Dst: _mm256_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:294,1
    - Dst: _mm256_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:295,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:296,1
    - Dst: _mm256_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:297,1
    - Dst: _mm256_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:298,1
    - Dst: _mm256_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_avx2.c:299,1
    - Dst: _mm256_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_avx2.c:300,1
    - Dst: DO_PRED12
      Src: /src/libwebp/src/dsp/lossless_avx2.c:304,1
    - Dst: DO_PRED12_SHIFT
      Src: /src/libwebp/src/dsp/lossless_avx2.c:305,1
    - Dst: DO_PRED12
      Src: /src/libwebp/src/dsp/lossless_avx2.c:306,1
    - Dst: DO_PRED12_SHIFT
      Src: /src/libwebp/src/dsp/lossless_avx2.c:307,1
    - Dst: DO_PRED12
      Src: /src/libwebp/src/dsp/lossless_avx2.c:308,1
    - Dst: DO_PRED12_SHIFT
      Src: /src/libwebp/src/dsp/lossless_avx2.c:309,1
    - Dst: DO_PRED12
      Src: /src/libwebp/src/dsp/lossless_avx2.c:310,1
    - Dst: DO_PRED12_SHIFT
      Src: /src/libwebp/src/dsp/lossless_avx2.c:311,1
    - Dst: _mm256_permute2x128_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:314,1
    - Dst: _mm256_permute2x128_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:315,1
    - Dst: _mm256_permute2x128_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:316,1
    - Dst: DO_PRED12
      Src: /src/libwebp/src/dsp/lossless_avx2.c:318,1
    - Dst: DO_PRED12_SHIFT
      Src: /src/libwebp/src/dsp/lossless_avx2.c:319,1
    - Dst: DO_PRED12
      Src: /src/libwebp/src/dsp/lossless_avx2.c:320,1
    - Dst: DO_PRED12_SHIFT
      Src: /src/libwebp/src/dsp/lossless_avx2.c:321,1
    - Dst: DO_PRED12
      Src: /src/libwebp/src/dsp/lossless_avx2.c:322,1
    - Dst: DO_PRED12_SHIFT
      Src: /src/libwebp/src/dsp/lossless_avx2.c:323,1
    - Dst: DO_PRED12
      Src: /src/libwebp/src/dsp/lossless_avx2.c:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 329
    functionName: PredictorAdd12_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_avx2.c
    functionUses: 0
    functionsReached:
    - _mm256_setzero_si256
    - DO_PRED12_SHIFT
    - _mm256_sub_epi16
    - DO_PRED12
    - _mm256_permute2x128_si256
    - _mm256_setr_epi32
    - _mm256_unpacklo_epi8
    - _mm256_loadu_si256
    - _mm256_unpackhi_epi8
    linkageType: ''
    returnType: void
    signature: "void PredictorAdd12_AVX2(const uint32_t* in, const uint32_t* upper,\n
      \                               int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_set_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:342,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:346,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:347,1
    - Dst: _mm256_add_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:348,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:349,1
    - Dst: VP8LAddGreenToBlueAndRed_SSE
      Src: /src/libwebp/src/dsp/lossless_avx2.c:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - src
    - num_pixels
    - dst
    argTypes:
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 355
    functionName: AddGreenToBlueAndRed_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_avx2.c
    functionUses: 0
    functionsReached:
    - _mm256_storeu_si256
    - _mm256_add_epi8
    - _mm256_set_epi8
    - _mm256_shuffle_epi8
    - VP8LAddGreenToBlueAndRed_SSE
    - _mm256_loadu_si256
    linkageType: ''
    returnType: void
    signature: "void AddGreenToBlueAndRed_AVX2(const uint32_t* const src, int num_pixels,\n
      \                                     uint32_t* dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_avx2.c:365,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_avx2.c:366,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_avx2.c:366,1
    - Dst: _mm256_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_avx2.c:367,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_avx2.c:367,1
    - Dst: _mm256_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_avx2.c:369,1
    - Dst: _mm256_setr_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:370,1
    - Dst: _mm256_setr_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:373,1
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:378,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:379,1
    - Dst: _mm256_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_avx2.c:380,1
    - Dst: _mm256_add_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:381,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:382,1
    - Dst: _mm256_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_avx2.c:383,1
    - Dst: _mm256_add_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:384,1
    - Dst: _mm256_blendv_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:385,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:386,1
    - Dst: VP8LTransformColorInverse_SSE
      Src: /src/libwebp/src/dsp/lossless_avx2.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - m
    - src
    - num_pixels
    - dst
    argTypes:
    - VP8LMultipliers*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 392
    functionName: TransformColorInverse_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_avx2.c
    functionUses: 0
    functionsReached:
    - CST
    - VP8LTransformColorInverse_SSE
    - _mm256_storeu_si256
    - _mm256_blendv_epi8
    - _mm256_mulhi_epi16
    - _mm256_setr_epi8
    - _mm256_add_epi8
    - _mm256_set1_epi32
    - _mm256_shuffle_epi8
    - _mm256_loadu_si256
    linkageType: ''
    returnType: void
    signature: "void TransformColorInverse_AVX2(const VP8LMultipliers* const m,\n
      \                                      const uint32_t* const src,\n                                       int
      num_pixels, uint32_t* dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    functionName: CST
    functionSourceFile: /src/libwebp/src/dsp/lossless_avx2.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CST(X)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_loadu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:402,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:403,1
    - Dst: _mm256_set_epi8
      Src: /src/libwebp/src/dsp/lossless_avx2.c:405,1
    - Dst: _mm256_storeu_si256
      Src: /src/libwebp/src/dsp/lossless_avx2.c:407,1
    - Dst: VP8LConvertBGRAToRGBA_SSE
      Src: /src/libwebp/src/dsp/lossless_avx2.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 414
    functionName: ConvertBGRAToRGBA_AVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_avx2.c
    functionUses: 0
    functionsReached:
    - VP8LConvertBGRAToRGBA_SSE
    - _mm256_storeu_si256
    - _mm256_set_epi8
    - _mm256_shuffle_epi8
    - _mm256_loadu_si256
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToRGBA_AVX2(const uint32_t* WEBP_RESTRICT src,\n                                   int
      num_pixels, uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 436
    functionName: VP8LDspInitAVX2
    functionSourceFile: /src/libwebp/src/dsp/lossless_avx2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8LDspInitAVX2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:42,1
    - Dst: vmovl_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:42,1
    - Dst: vreinterpret_u8_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32x2_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: ConvertU8ToS16_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 1
    functionsReached:
    - vmovl_u8
    - vreinterpretq_s16_u16
    - vreinterpret_u8_u32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE ConvertU8ToS16_NEON(uint32x2_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:51,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:52,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:55,1
    - Dst: vreinterpret_u32_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:55,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:56,1
    - Dst: vreinterpret_u32_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:56,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:57,1
    - Dst: vreinterpret_u32_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:57,1
    - Dst: vst1_lane_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:58,1
    - Dst: vreinterpret_u32_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - dst01
    - dst23
    argTypes:
    - uint8_t*
    - int16x8_t
    - int16x8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: SaturateAndStore4x4_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 1
    functionsReached:
    - vreinterpret_u32_u8
    - vqmovun_s16
    - vst1_lane_u32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE SaturateAndStore4x4_NEON(uint8_t* const dst,\n                                                 const
      int16x8_t dst01,\n                                                 const int16x8_t
      dst23)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdup_n_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:65,1
    - Dst: vdup_n_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:66,1
    - Dst: vld1_lane_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:69,1
    - Dst: vld1_lane_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:70,1
    - Dst: vld1_lane_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:71,1
    - Dst: vld1_lane_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:72,1
    - Dst: ConvertU8ToS16_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:76,1
    - Dst: ConvertU8ToS16_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:77,1
    - Dst: vrsraq_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:80,1
    - Dst: vrsraq_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:81,1
    - Dst: SaturateAndStore4x4_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - row01
    - row23
    - ref
    - dst
    argTypes:
    - int16x8_t
    - int16x8_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 85
    functionName: Add4x4_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 3
    functionsReached:
    - vld1_lane_u32
    - vdup_n_u32
    - vrsraq_n_s16
    - SaturateAndStore4x4_NEON
    - ConvertU8ToS16_NEON
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Add4x4_NEON(const int16x8_t row01,\n                                    const
      int16x8_t row23,\n                                    const uint8_t* WEBP_RESTRICT
      const ref,\n                                    uint8_t* WEBP_RESTRICT const
      dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vzipq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:92,1
    - Dst: vzipq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in0
    - in1
    - out
    argTypes:
    - int16x8_t
    - int16x8_t
    - int16x8x2_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: Transpose8x2_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 1
    functionsReached:
    - vzipq_s16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Transpose8x2_NEON(const int16x8_t in0,\n                                          const
      int16x8_t in1,\n                                          int16x8x2_t* const
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcombine_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:102,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:102,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:102,1
    - Dst: vsraq_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:105,1
    - Dst: vqdmulhq_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:105,1
    - Dst: vqdmulhq_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:106,1
    - Dst: vqadd_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:107,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:107,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:108,1
    - Dst: vqsub_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:109,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:109,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:110,1
    - Dst: vqsub_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:113,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:113,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:113,1
    - Dst: vqadd_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:114,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:114,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:114,1
    - Dst: vcombine_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:115,1
    - Dst: vcombine_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:116,1
    - Dst: vqaddq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:117,1
    - Dst: vqsubq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:118,1
    - Dst: vcombine_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:119,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:119,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:119,1
    - Dst: Transpose8x2_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rows
    argTypes:
    - int16x8x2_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 121
    functionName: TransformPass_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 1
    functionsReached:
    - vqsubq_s16
    - vqadd_s16
    - vcombine_s16
    - vqsub_s16
    - vqdmulhq_n_s16
    - vget_low_s16
    - vsraq_n_s16
    - Transpose8x2_NEON
    - vget_high_s16
    - vqaddq_s16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE TransformPass_NEON(int16x8x2_t* const rows)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_VECTOR2
      Src: /src/libwebp/src/dsp/enc_neon.c:127,1
    - Dst: vld1q_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:127,1
    - Dst: vld1q_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:127,1
    - Dst: TransformPass_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:128,1
    - Dst: TransformPass_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:129,1
    - Dst: Add4x4_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: ITransformOne_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - Add4x4_NEON
    - TransformPass_NEON
    - vld1q_s16
    - INIT_VECTOR2
    linkageType: ''
    returnType: void
    signature: "void ITransformOne_NEON(const uint8_t* WEBP_RESTRICT ref,\n                               const
      int16_t* WEBP_RESTRICT in,\n                               uint8_t* WEBP_RESTRICT
      dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 248
    functionName: ITransformOne_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ITransformOne_NEON(const uint8_t* WEBP_RESTRICT ref,\n                               const
      int16_t* WEBP_RESTRICT in,\n                               uint8_t* WEBP_RESTRICT
      dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ITransformOne_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:255,1
    - Dst: ITransformOne_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - do_two
    argTypes:
    - uint8_t*
    - int16_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 259
    functionName: ITransform_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - ITransformOne_NEON
    linkageType: ''
    returnType: void
    signature: "void ITransform_NEON(const uint8_t* WEBP_RESTRICT ref,\n                            const
      int16_t* WEBP_RESTRICT in,\n                            uint8_t* WEBP_RESTRICT
      dst, int do_two)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:263,1
    - Dst: vld1q_lane_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:264,1
    - Dst: vld1q_lane_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:265,1
    - Dst: vld1q_lane_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:266,1
    - Dst: vld1q_lane_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:267,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: Load4x4_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vreinterpretq_u8_u32
    - vdupq_n_u32
    - vld1q_lane_u32
    linkageType: ''
    returnType: uint8x16_t
    signature: uint8x16_t Load4x4_NEON(const uint8_t* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vtrn_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:278,1
    - Dst: vtrn_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:279,1
    - Dst: vtrn_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:280,1
    - Dst: vreinterpret_s32_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:280,1
    - Dst: vreinterpret_s32_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:281,1
    - Dst: vtrn_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:282,1
    - Dst: vreinterpret_s32_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:282,1
    - Dst: vreinterpret_s32_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:283,1
    - Dst: vreinterpretq_s16_s64
      Src: /src/libwebp/src/dsp/enc_neon.c:284,1
    - Dst: vcombine_s64
      Src: /src/libwebp/src/dsp/enc_neon.c:284,1
    - Dst: vreinterpret_s64_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:285,1
    - Dst: vreinterpret_s64_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:285,1
    - Dst: vreinterpretq_s16_s64
      Src: /src/libwebp/src/dsp/enc_neon.c:286,1
    - Dst: vcombine_s64
      Src: /src/libwebp/src/dsp/enc_neon.c:286,1
    - Dst: vreinterpret_s64_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:287,1
    - Dst: vreinterpret_s64_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - A
    - B
    - C
    - D
    - out01
    - out32
    argTypes:
    - int16x4_t
    - int16x4_t
    - int16x4_t
    - int16x4_t
    - int16x8_t*
    - int16x8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 288
    functionName: Transpose4x4_S16_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vtrn_s16
    - vreinterpret_s64_s32
    - vcombine_s64
    - vreinterpret_s32_s16
    - vtrn_s32
    - vreinterpretq_s16_s64
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Transpose4x4_S16_NEON(\n    const int16x4_t A, const int16x4_t
      B, const int16x4_t C, const int16x4_t D,\n    int16x8_t* const out01, int16x8_t*
      const out32)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:292,1
    - Dst: vsubl_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint8x8_t
    - uint8x8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: DiffU8ToS16_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vreinterpretq_s16_u16
    - vsubl_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DiffU8ToS16_NEON(const uint8x8_t a,\n                                              const
      uint8x8_t b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load4x4_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:300,1
    - Dst: Load4x4_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:301,1
    - Dst: DiffU8ToS16_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:302,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:302,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:302,1
    - Dst: DiffU8ToS16_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:303,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:303,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:303,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:304,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:305,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:306,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:307,1
    - Dst: Transpose4x4_S16_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:308,1
    - Dst: vdupq_n_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:311,1
    - Dst: vdupq_n_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:312,1
    - Dst: vaddq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:313,1
    - Dst: vsubq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:314,1
    - Dst: vshlq_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:315,1
    - Dst: vadd_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:317,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:317,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:317,1
    - Dst: vsub_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:319,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:319,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:319,1
    - Dst: vmull_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:320,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:320,1
    - Dst: vmull_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:321,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:321,1
    - Dst: vmlal_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:322,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:322,1
    - Dst: vmlsl_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:323,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:323,1
    - Dst: vshrn_n_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:324,1
    - Dst: vaddq_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:324,1
    - Dst: vshrn_n_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:325,1
    - Dst: vaddq_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:325,1
    - Dst: Transpose4x4_S16_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:326,1
    - Dst: vdupq_n_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:330,1
    - Dst: vdupq_n_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:331,1
    - Dst: vaddq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:332,1
    - Dst: vsubq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:333,1
    - Dst: vadd_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:334,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:334,1
    - Dst: vdup_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:334,1
    - Dst: vshr_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:335,1
    - Dst: vadd_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:335,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:335,1
    - Dst: vshr_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:336,1
    - Dst: vsub_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:336,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:336,1
    - Dst: vmull_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:337,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:337,1
    - Dst: vmull_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:338,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:338,1
    - Dst: vmlal_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:339,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:339,1
    - Dst: vmlsl_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:340,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:340,1
    - Dst: vaddhn_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:341,1
    - Dst: vaddhn_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:342,1
    - Dst: vreinterpret_s16_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:344,1
    - Dst: vceq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:344,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:344,1
    - Dst: vdup_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:344,1
    - Dst: vadd_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:345,1
    - Dst: vst1_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:346,1
    - Dst: vst1_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:347,1
    - Dst: vst1_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:348,1
    - Dst: vst1_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 351
    functionName: FTransform_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vget_low_s16
    - Transpose4x4_S16_NEON
    - vaddhn_s32
    - vshrn_n_s32
    - vreinterpret_s16_u16
    - vshr_n_s16
    - vdupq_n_s32
    - vadd_s16
    - vmull_n_s16
    - vsub_s16
    - vmlsl_n_s16
    - vmlal_n_s16
    - vsubq_s16
    - vdup_n_s16
    - Load4x4_NEON
    - vget_low_u8
    - vget_high_u8
    - vshlq_n_s16
    - vget_high_s16
    - vaddq_s16
    - vceq_s16
    - DiffU8ToS16_NEON
    - vaddq_s32
    - vst1_s16
    linkageType: ''
    returnType: void
    signature: "void FTransform_NEON(const uint8_t* WEBP_RESTRICT src,\n                            const
      uint8_t* WEBP_RESTRICT ref,\n                            int16_t* WEBP_RESTRICT
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 478
    functionName: FTransform_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void FTransform_NEON(const uint8_t* WEBP_RESTRICT src,\n                            const
      uint8_t* WEBP_RESTRICT ref,\n                            int16_t* WEBP_RESTRICT
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - VALUE
    - ','
    - LANE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 487
    functionName: LOAD_LANE_16b
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_LANE_16b(VALUE, LANE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdup_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:491,1
    - Dst: INIT_VECTOR4
      Src: /src/libwebp/src/dsp/enc_neon.c:494,1
    - Dst: LOAD_LANE_16b
      Src: /src/libwebp/src/dsp/enc_neon.c:495,1
    - Dst: LOAD_LANE_16b
      Src: /src/libwebp/src/dsp/enc_neon.c:496,1
    - Dst: LOAD_LANE_16b
      Src: /src/libwebp/src/dsp/enc_neon.c:497,1
    - Dst: LOAD_LANE_16b
      Src: /src/libwebp/src/dsp/enc_neon.c:498,1
    - Dst: LOAD_LANE_16b
      Src: /src/libwebp/src/dsp/enc_neon.c:499,1
    - Dst: LOAD_LANE_16b
      Src: /src/libwebp/src/dsp/enc_neon.c:500,1
    - Dst: LOAD_LANE_16b
      Src: /src/libwebp/src/dsp/enc_neon.c:501,1
    - Dst: LOAD_LANE_16b
      Src: /src/libwebp/src/dsp/enc_neon.c:502,1
    - Dst: LOAD_LANE_16b
      Src: /src/libwebp/src/dsp/enc_neon.c:503,1
    - Dst: LOAD_LANE_16b
      Src: /src/libwebp/src/dsp/enc_neon.c:504,1
    - Dst: LOAD_LANE_16b
      Src: /src/libwebp/src/dsp/enc_neon.c:505,1
    - Dst: LOAD_LANE_16b
      Src: /src/libwebp/src/dsp/enc_neon.c:506,1
    - Dst: LOAD_LANE_16b
      Src: /src/libwebp/src/dsp/enc_neon.c:507,1
    - Dst: LOAD_LANE_16b
      Src: /src/libwebp/src/dsp/enc_neon.c:508,1
    - Dst: LOAD_LANE_16b
      Src: /src/libwebp/src/dsp/enc_neon.c:509,1
    - Dst: LOAD_LANE_16b
      Src: /src/libwebp/src/dsp/enc_neon.c:510,1
    - Dst: vaddl_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:517,1
    - Dst: vaddl_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:518,1
    - Dst: vsubl_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:519,1
    - Dst: vsubl_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:520,1
    - Dst: vaddq_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:521,1
    - Dst: vaddq_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:522,1
    - Dst: vsubq_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:523,1
    - Dst: vsubq_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:524,1
    - Dst: Transpose4x4_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:527,1
    - Dst: vaddq_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:532,1
    - Dst: vaddq_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:533,1
    - Dst: vsubq_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:534,1
    - Dst: vsubq_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:535,1
    - Dst: vhaddq_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:536,1
    - Dst: vhaddq_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:537,1
    - Dst: vhsubq_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:538,1
    - Dst: vhsubq_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:539,1
    - Dst: vmovn_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:540,1
    - Dst: vmovn_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:541,1
    - Dst: vmovn_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:542,1
    - Dst: vmovn_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:543,1
    - Dst: vst1_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:545,1
    - Dst: vst1_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:546,1
    - Dst: vst1_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:547,1
    - Dst: vst1_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 550
    functionName: FTransformWHT_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - Transpose4x4_NEON
    - vhsubq_s32
    - vmovn_s32
    - vsubq_s32
    - LOAD_LANE_16b
    - INIT_VECTOR4
    - vsubl_s16
    - vdup_n_s16
    - vhaddq_s32
    - vaddq_s32
    - vst1_s16
    - vaddl_s16
    linkageType: ''
    returnType: void
    signature: "void FTransformWHT_NEON(const int16_t* WEBP_RESTRICT src,\n                               int16_t*
      WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vtrnq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:572,1
    - Dst: vtrnq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:573,1
    - Dst: vtrnq_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:574,1
    - Dst: vreinterpretq_s32_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:574,1
    - Dst: vreinterpretq_s32_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:575,1
    - Dst: vtrnq_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:576,1
    - Dst: vreinterpretq_s32_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:576,1
    - Dst: vreinterpretq_s32_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:577,1
    - Dst: vreinterpretq_s16_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:578,1
    - Dst: vreinterpretq_s16_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:579,1
    - Dst: vreinterpretq_s16_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:580,1
    - Dst: vreinterpretq_s16_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - q4_in
    argTypes:
    - int16x8x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 583
    functionName: int16x8x4_t::DistoTranspose4x4S16_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vtrnq_s32
    - vreinterpretq_s32_s16
    - vreinterpretq_s16_s32
    - vtrnq_s16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE int16x8x4_t DistoTranspose4x4S16_NEON(int16x8x4_t q4_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vaddq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:589,1
    - Dst: vaddq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:590,1
    - Dst: vsubq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:591,1
    - Dst: vsubq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:592,1
    - Dst: INIT_VECTOR4
      Src: /src/libwebp/src/dsp/enc_neon.c:598,1
    - Dst: vabsq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:598,1
    - Dst: vaddq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:598,1
    - Dst: vabsq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:599,1
    - Dst: vaddq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:599,1
    - Dst: vabdq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:599,1
    - Dst: vabdq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - q4_in
    argTypes:
    - int16x8x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 602
    functionName: int16x8x4_t::DistoHorizontalPass_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vabdq_s16
    - vabsq_s16
    - INIT_VECTOR4
    - vsubq_s16
    - vaddq_s16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: 'WEBP_INLINE int16x8x4_t

      DistoHorizontalPass_NEON(const int16x8x4_t q4_in)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:606,1
    - Dst: vaddl_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:606,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:608,1
    - Dst: vaddl_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:608,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:610,1
    - Dst: vsubl_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:610,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:612,1
    - Dst: vsubl_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:612,1
    - Dst: INIT_VECTOR4
      Src: /src/libwebp/src/dsp/enc_neon.c:615,1
    - Dst: vaddq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:615,1
    - Dst: vaddq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:615,1
    - Dst: vsubq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:616,1
    - Dst: vsubq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - q4_in
    argTypes:
    - uint8x8x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 618
    functionName: int16x8x4_t::DistoVerticalPass_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vaddl_u8
    - vsubl_u8
    - vreinterpretq_s16_u16
    - INIT_VECTOR4
    - vsubq_s16
    - vaddq_s16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE int16x8x4_t DistoVerticalPass_NEON(const uint8x8x4_t q4_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:621,1
    - Dst: vld1q_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:622,1
    - Dst: INIT_VECTOR4
      Src: /src/libwebp/src/dsp/enc_neon.c:624,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:624,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:624,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:625,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:625,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:626,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:626,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:627,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - w
    argTypes:
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 629
    functionName: int16x4x4_t::DistoLoadW_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vreinterpretq_s16_u16
    - vget_low_s16
    - INIT_VECTOR4
    - vld1q_u16
    - vget_high_s16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE int16x4x4_t DistoLoadW_NEON(const uint16_t* w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmull_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:638,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:638,1
    - Dst: vmull_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:639,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:639,1
    - Dst: vmull_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:640,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:640,1
    - Dst: vmull_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:641,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:641,1
    - Dst: vmlsl_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:642,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:642,1
    - Dst: vmlsl_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:643,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:643,1
    - Dst: vmlsl_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:644,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:644,1
    - Dst: vmlsl_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:645,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:645,1
    - Dst: vaddq_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:647,1
    - Dst: vaddq_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:648,1
    - Dst: vaddq_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:649,1
    - Dst: vpadd_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:650,1
    - Dst: vget_low_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:650,1
    - Dst: vget_high_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:650,1
    - Dst: vpadd_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - q4_in
    - d4_w
    argTypes:
    - int16x8x4_t
    - int16x4x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 653
    functionName: DistoSum_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vget_high_s16
    - vmlsl_s16
    - vpadd_s32
    - vget_low_s16
    - vget_high_s32
    - vget_low_s32
    - vaddq_s32
    - vmull_s16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DistoSum_NEON(const int16x8x4_t q4_in,\n                                           const
      int16x4x4_t d4_w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - src
    - ','
    - VALUE
    - ','
    - LANE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 657
    functionName: LOAD_LANE_32b
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_LANE_32b(src, VALUE, LANE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdup_n_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:664,1
    - Dst: vdup_n_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:665,1
    - Dst: vdup_n_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:666,1
    - Dst: vdup_n_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:667,1
    - Dst: LOAD_LANE_32b
      Src: /src/libwebp/src/dsp/enc_neon.c:671,1
    - Dst: LOAD_LANE_32b
      Src: /src/libwebp/src/dsp/enc_neon.c:672,1
    - Dst: LOAD_LANE_32b
      Src: /src/libwebp/src/dsp/enc_neon.c:673,1
    - Dst: LOAD_LANE_32b
      Src: /src/libwebp/src/dsp/enc_neon.c:674,1
    - Dst: LOAD_LANE_32b
      Src: /src/libwebp/src/dsp/enc_neon.c:675,1
    - Dst: LOAD_LANE_32b
      Src: /src/libwebp/src/dsp/enc_neon.c:676,1
    - Dst: LOAD_LANE_32b
      Src: /src/libwebp/src/dsp/enc_neon.c:677,1
    - Dst: LOAD_LANE_32b
      Src: /src/libwebp/src/dsp/enc_neon.c:678,1
    - Dst: INIT_VECTOR4
      Src: /src/libwebp/src/dsp/enc_neon.c:679,1
    - Dst: vreinterpret_u8_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:679,1
    - Dst: vreinterpret_u8_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:680,1
    - Dst: vreinterpret_u8_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:681,1
    - Dst: vreinterpret_u8_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:682,1
    - Dst: DistoVerticalPass_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:688,1
    - Dst: DistoLoadW_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:689,1
    - Dst: DistoTranspose4x4S16_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:691,1
    - Dst: DistoHorizontalPass_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:692,1
    - Dst: DistoSum_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:693,1
    - Dst: vabs_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:696,1
    - Dst: vshr_n_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:697,1
    - Dst: vget_lane_s32
      Src: /src/libwebp/src/dsp/enc_neon.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - a
    - b
    - w
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 700
    functionName: Disto4x4_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - DistoHorizontalPass_NEON
    - DistoTranspose4x4S16_NEON
    - DistoSum_NEON
    - vdup_n_u32
    - vreinterpret_u8_u32
    - vabs_s32
    - DistoVerticalPass_NEON
    - INIT_VECTOR4
    - vget_lane_s32
    - vshr_n_s32
    - DistoLoadW_NEON
    - LOAD_LANE_32b
    linkageType: ''
    returnType: int
    signature: "int Disto4x4_NEON(const uint8_t* WEBP_RESTRICT const a,\n                         const
      uint8_t* WEBP_RESTRICT const b,\n                         const uint16_t* WEBP_RESTRICT
      const w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Disto4x4_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - a
    - b
    - w
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 703
    functionDepth: 2
    functionLinenumber: 703
    functionLinenumberEnd: 714
    functionName: Disto16x16_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - Disto4x4_NEON
    linkageType: ''
    returnType: int
    signature: "int Disto16x16_NEON(const uint8_t* WEBP_RESTRICT const a,\n                           const
      uint8_t* WEBP_RESTRICT const b,\n                           const uint16_t*
      WEBP_RESTRICT const w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:722,1
    - Dst: FTransform_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:727,1
    - Dst: vld1q_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:730,1
    - Dst: vld1q_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:731,1
    - Dst: vreinterpretq_u16_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:732,1
    - Dst: vabsq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:732,1
    - Dst: vreinterpretq_u16_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:733,1
    - Dst: vabsq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:733,1
    - Dst: vshrq_n_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:734,1
    - Dst: vshrq_n_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:735,1
    - Dst: vminq_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:736,1
    - Dst: vminq_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:737,1
    - Dst: vst1q_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:738,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:738,1
    - Dst: vst1q_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:739,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:739,1
    - Dst: VP8SetHistogramData
      Src: /src/libwebp/src/dsp/enc_neon.c:746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - start_block
    - end_block
    - histo
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - VP8Histogram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 747
    functionName: CollectHistogram_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - VP8SetHistogramData
    - vshrq_n_u16
    - vdupq_n_u16
    - vminq_u16
    - FTransform_NEON
    - vreinterpretq_s16_u16
    - vabsq_s16
    - vst1q_s16
    - vld1q_s16
    - vreinterpretq_u16_s16
    linkageType: ''
    returnType: void
    signature: "void CollectHistogram_NEON(const uint8_t* WEBP_RESTRICT ref,\n                                  const
      uint8_t* WEBP_RESTRICT pred,\n                                  int start_block,
      int end_block,\n                                  VP8Histogram* WEBP_RESTRICT
      const histo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:754,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:755,1
    - Dst: vabdq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:756,1
    - Dst: vmull_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:758,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:758,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:758,1
    - Dst: vmull_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:760,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:760,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:760,1
    - Dst: vpaddlq_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:762,1
    - Dst: vpaddlq_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:763,1
    - Dst: vaddq_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:764,1
    - Dst: vaddq_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - sum
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32x4_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 765
    functionName: AccumulateSSE16_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vabdq_u8
    - vget_low_u8
    - vget_high_u8
    - vmull_u8
    - vaddq_u32
    - vld1q_u8
    - vpaddlq_u16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE AccumulateSSE16_NEON(\n    const uint8_t* WEBP_RESTRICT
      const a, const uint8_t* WEBP_RESTRICT const b,\n    uint32x4_t* const sum)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vaddvq_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:770,1
    - Dst: vpaddlq_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:772,1
    - Dst: vadd_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:773,1
    - Dst: vreinterpret_u32_u64
      Src: /src/libwebp/src/dsp/enc_neon.c:773,1
    - Dst: vget_low_u64
      Src: /src/libwebp/src/dsp/enc_neon.c:773,1
    - Dst: vreinterpret_u32_u64
      Src: /src/libwebp/src/dsp/enc_neon.c:774,1
    - Dst: vget_high_u64
      Src: /src/libwebp/src/dsp/enc_neon.c:774,1
    - Dst: vget_lane_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sum
    argTypes:
    - uint32x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 777
    functionName: SumToInt_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vpaddlq_u32
    - vget_low_u64
    - vadd_u32
    - vget_high_u64
    - vget_lane_u32
    - vreinterpret_u32_u64
    - vaddvq_u32
    linkageType: ''
    returnType: int
    signature: int SumToInt_NEON(uint32x4_t sum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:781,1
    - Dst: AccumulateSSE16_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:784,1
    - Dst: SumToInt_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 787
    functionName: SSE16x16_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - SumToInt_NEON
    - AccumulateSSE16_NEON
    - vdupq_n_u32
    linkageType: ''
    returnType: int
    signature: "int SSE16x16_NEON(const uint8_t* WEBP_RESTRICT a,\n                         const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:791,1
    - Dst: AccumulateSSE16_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:794,1
    - Dst: SumToInt_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 797
    functionName: SSE16x8_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - SumToInt_NEON
    - AccumulateSSE16_NEON
    - vdupq_n_u32
    linkageType: ''
    returnType: int
    signature: "int SSE16x8_NEON(const uint8_t* WEBP_RESTRICT a,\n                        const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:801,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:804,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:805,1
    - Dst: vabd_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:806,1
    - Dst: vmull_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:807,1
    - Dst: vpadalq_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:808,1
    - Dst: SumToInt_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 811
    functionName: SSE8x8_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vabd_u8
    - vdupq_n_u32
    - SumToInt_NEON
    - vld1_u8
    - vmull_u8
    - vpadalq_u16
    linkageType: ''
    returnType: int
    signature: "int SSE8x8_NEON(const uint8_t* WEBP_RESTRICT a,\n                       const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load4x4_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:815,1
    - Dst: Load4x4_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:816,1
    - Dst: vabdq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:817,1
    - Dst: vmull_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:819,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:819,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:819,1
    - Dst: vmull_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:821,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:821,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:821,1
    - Dst: vpaddlq_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:823,1
    - Dst: vpaddlq_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:824,1
    - Dst: SumToInt_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:825,1
    - Dst: vaddq_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 826
    functionName: SSE4x4_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vabdq_u8
    - vget_low_u8
    - vget_high_u8
    - SumToInt_NEON
    - vmull_u8
    - vaddq_u32
    - Load4x4_NEON
    - vpaddlq_u16
    linkageType: ''
    returnType: int
    signature: "int SSE4x4_NEON(const uint8_t* WEBP_RESTRICT a,\n                       const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:836,1
    - Dst: vld1q_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:837,1
    - Dst: vld1q_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:838,1
    - Dst: vld1q_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:839,1
    - Dst: vld1q_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:840,1
    - Dst: vld1q_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:842,1
    - Dst: vreinterpretq_u16_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:843,1
    - Dst: vabsq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:843,1
    - Dst: vshrq_n_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:844,1
    - Dst: vaddq_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:845,1
    - Dst: vmull_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:846,1
    - Dst: vget_low_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:846,1
    - Dst: vget_low_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:846,1
    - Dst: vmull_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:847,1
    - Dst: vget_high_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:847,1
    - Dst: vget_high_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:847,1
    - Dst: vhaddq_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:848,1
    - Dst: vhaddq_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:849,1
    - Dst: vcombine_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:851,1
    - Dst: vshrn_n_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:851,1
    - Dst: vshrn_n_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:851,1
    - Dst: vminq_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:852,1
    - Dst: vdupq_n_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:852,1
    - Dst: veorq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:853,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:853,1
    - Dst: vsubq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:854,1
    - Dst: vmulq_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:855,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:855,1
    - Dst: vst1q_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:856,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/enc_neon.c:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - in
    - mtx
    - offset
    argTypes:
    - int16_t*
    - VP8Matrix*
    - int
    assertStmts:
    - condition: (QFIX == 17)
      pos:
        line_end: 856
        line_start: 856
        source_file: /src/libwebp/src/dsp/enc_neon.c
    constantsTouched: []
    func_position:
      end: 859
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 859
    functionName: Quantize_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vmull_u16
    - vget_low_u16
    - vmulq_s16
    - vcombine_u16
    - assert
    - veorq_s16
    - vld1q_u32
    - vsubq_s16
    - vminq_u16
    - vreinterpretq_s16_u16
    - vabsq_s16
    - vget_high_u16
    - vld1q_s16
    - vreinterpretq_u16_s16
    - vshrq_n_s16
    - vshrn_n_u32
    - vdupq_n_u16
    - vst1q_s16
    - vaddq_u16
    - vld1q_u16
    - vhaddq_u32
    linkageType: ''
    returnType: int16x8_t
    signature: "int16x8_t Quantize_NEON(int16_t* WEBP_RESTRICT const in,\n                               const
      VP8Matrix* WEBP_RESTRICT const mtx,\n                               int offset)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Quantize_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:868,1
    - Dst: Quantize_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:869,1
    - Dst: INIT_VECTOR2
      Src: /src/libwebp/src/dsp/enc_neon.c:876,1
    - Dst: vreinterpretq_u8_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:876,1
    - Dst: vreinterpretq_u8_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:876,1
    - Dst: INIT_VECTOR4
      Src: /src/libwebp/src/dsp/enc_neon.c:877,1
    - Dst: vtbl2q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:877,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:877,1
    - Dst: vtbl2q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:878,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:878,1
    - Dst: vtbl2q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:879,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:879,1
    - Dst: vtbl2q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:880,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:880,1
    - Dst: INIT_VECTOR4
      Src: /src/libwebp/src/dsp/enc_neon.c:883,1
    - Dst: vreinterpret_u8_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:883,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:883,1
    - Dst: vreinterpret_u8_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:884,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:884,1
    - Dst: vreinterpret_u8_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:885,1
    - Dst: vget_low_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:885,1
    - Dst: vreinterpret_u8_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:886,1
    - Dst: vget_high_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:886,1
    - Dst: INIT_VECTOR4
      Src: /src/libwebp/src/dsp/enc_neon.c:887,1
    - Dst: vtbl4_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:887,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:887,1
    - Dst: vtbl4_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:888,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:888,1
    - Dst: vtbl4_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:889,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:889,1
    - Dst: vtbl4_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:890,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:890,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:893,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:894,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:895,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:896,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - in
    - out
    - mtx
    argTypes:
    - int16_t[]
    - int16_t[]
    - VP8Matrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 903
    functionName: QuantizeBlock_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - INIT_VECTOR2
    - Quantize_NEON
    - vst1_u8
    - vget_low_s16
    - vtbl2q_u8
    - INIT_VECTOR4
    - vld1_u8
    - vreinterpret_u8_s16
    - vget_high_s16
    - vtbl4_u8
    - vreinterpretq_u8_s16
    linkageType: ''
    returnType: int
    signature: "int QuantizeBlock_NEON(int16_t in[16], int16_t out[16],\n                              const
      VP8Matrix* WEBP_RESTRICT const mtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QuantizeBlock_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:908,1
    - Dst: QuantizeBlock_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - in
    - out
    - mtx
    argTypes:
    - int16_t[]
    - int16_t[]
    - VP8Matrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 905
    functionDepth: 2
    functionLinenumber: 905
    functionLinenumberEnd: 911
    functionName: Quantize2Blocks_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - QuantizeBlock_NEON
    linkageType: ''
    returnType: int
    signature: "int Quantize2Blocks_NEON(int16_t in[32], int16_t out[32],\n                                const
      VP8Matrix* WEBP_RESTRICT const mtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - dst
    - ','
    - tbl
    - ','
    - res
    - ','
    - lane
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 927
    functionName: DC4_VE4_HE4_TM4_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DC4_VE4_HE4_TM4_NEON(dst, tbl, res, lane)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dst
    - ','
    - tbl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 934
    functionName: RD4_VR4_LD4_VL4_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RD4_VR4_LD4_VL4_NEON(dst, tbl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCAL_CLANG_PREREQ
      Src: /src/libwebp/src/dsp/enc_neon.c:936,1
    - Dst: LOCAL_GCC_PREREQ
      Src: /src/libwebp/src/dsp/enc_neon.c:936,1
    - Dst: vld1_u8_x2
      Src: /src/libwebp/src/dsp/enc_neon.c:937,1
    - Dst: INIT_VECTOR2
      Src: /src/libwebp/src/dsp/enc_neon.c:940,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:940,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:940,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 943
    functionName: uint8x8x2_t::Vld1U8x2
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - INIT_VECTOR2
    - vld1_u8
    - vld1_u8_x2
    - LOCAL_CLANG_PREREQ
    - LOCAL_GCC_PREREQ
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE uint8x8x2_t Vld1U8x2(const uint8_t* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCAL_CLANG_PREREQ
      Src: /src/libwebp/src/dsp/enc_neon.c:946,1
    - Dst: LOCAL_GCC_PREREQ
      Src: /src/libwebp/src/dsp/enc_neon.c:946,1
    - Dst: vld1q_u8_x4
      Src: /src/libwebp/src/dsp/enc_neon.c:947,1
    - Dst: INIT_VECTOR4
      Src: /src/libwebp/src/dsp/enc_neon.c:950,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:950,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:950,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:951,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:951,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 954
    functionName: uint8x16x4_t::Vld1qU8x4
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vld1q_u8_x4
    - INIT_VECTOR4
    - LOCAL_CLANG_PREREQ
    - LOCAL_GCC_PREREQ
    - vld1q_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE uint8x16x4_t Vld1qU8x4(const uint8_t* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vld1qU8x4
      Src: /src/libwebp/src/dsp/enc_neon.c:979,1
    - Dst: Vld1qU8x4
      Src: /src/libwebp/src/dsp/enc_neon.c:980,1
    - Dst: Vld1qU8x4
      Src: /src/libwebp/src/dsp/enc_neon.c:981,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:983,1
    - Dst: vqtbl1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:987,1
    - Dst: vextq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:989,1
    - Dst: vrhaddq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:991,1
    - Dst: vhaddq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:991,1
    - Dst: vrhaddq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:992,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1000,1
    - Dst: vset_lane_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1001,1
    - Dst: vgetq_lane_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1001,1
    - Dst: vaddlv_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1003,1
    - Dst: vsetq_lane_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1005,1
    - Dst: vgetq_lane_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1005,1
    - Dst: vsetq_lane_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1006,1
    - Dst: vdup_laneq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1011,1
    - Dst: vqtbl1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1014,1
    - Dst: vreinterpret_u8_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:1016,1
    - Dst: vdup_n_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:1016,1
    - Dst: vgetq_lane_u32
      Src: /src/libwebp/src/dsp/enc_neon.c:1017,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1017,1
    - Dst: vextq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1017,1
    - Dst: vsubl_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1019,1
    - Dst: vaddw_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1020,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1020,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:1021,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:1021,1
    - Dst: vaddw_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1023,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1023,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:1024,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:1024,1
    - Dst: DC4_VE4_HE4_TM4_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1027,1
    - Dst: DC4_VE4_HE4_TM4_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1028,1
    - Dst: DC4_VE4_HE4_TM4_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1029,1
    - Dst: DC4_VE4_HE4_TM4_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1030,1
    - Dst: RD4_VR4_LD4_VL4_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1033,1
    - Dst: RD4_VR4_LD4_VL4_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1034,1
    - Dst: RD4_VR4_LD4_VL4_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1035,1
    - Dst: RD4_VR4_LD4_VL4_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1036,1
    - Dst: vqtbl2q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1039,1
    - Dst: vqtbl2q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1040,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1042,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1042,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1043,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1043,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1044,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1044,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1045,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 1046
    functionName: Intra4Preds_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - RD4_VR4_LD4_VL4_NEON
    - vextq_u8
    - vdup_n_u32
    - vaddlv_u8
    - vqtbl1q_u8
    - vhaddq_u8
    - vset_lane_u8
    - DC4_VE4_HE4_TM4_NEON
    - vqmovun_s16
    - vqtbl2q_u8
    - vreinterpret_u8_u32
    - vgetq_lane_u8
    - vrhaddq_u8
    - vdup_laneq_u8
    - vsubl_u8
    - vst1_u8
    - vsetq_lane_u8
    - vreinterpretq_s16_u16
    - vget_low_u8
    - vget_high_u8
    - Vld1qU8x4
    - vgetq_lane_u32
    - vaddw_u8
    - vld1q_u8
    - vreinterpretq_u32_u8
    linkageType: ''
    returnType: void
    signature: "void Intra4Preds_NEON(uint8_t* WEBP_RESTRICT dst,\n                             const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1050,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - value
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1055
    functionName: Fill_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vdupq_n_u8
    - vst1q_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Fill_NEON(uint8_t* dst, const uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1058,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1061,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1063
    functionName: Fill16_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vld1q_u8
    - vst1q_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Fill16_NEON(uint8_t* dst, const uint8_t* src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Fill_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1070,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1074,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1075,1
    - Dst: vdupq_laneq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1075,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1076,1
    - Dst: vdupq_laneq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1076,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1077,1
    - Dst: vdupq_laneq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1077,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1078,1
    - Dst: vdupq_laneq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1078,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1079,1
    - Dst: vdupq_laneq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1079,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1080,1
    - Dst: vdupq_laneq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1080,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1081,1
    - Dst: vdupq_laneq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1081,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1082,1
    - Dst: vdupq_laneq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1082,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1083,1
    - Dst: vdupq_laneq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1083,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1084,1
    - Dst: vdupq_laneq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1084,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1085,1
    - Dst: vdupq_laneq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1085,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1086,1
    - Dst: vdupq_laneq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1086,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1087,1
    - Dst: vdupq_laneq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1087,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1088,1
    - Dst: vdupq_laneq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1088,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1089,1
    - Dst: vdupq_laneq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1089,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1090,1
    - Dst: vdupq_laneq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1090,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - dst
    - left
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1065
    functionDepth: 1
    functionLinenumber: 1065
    functionLinenumberEnd: 1091
    functionName: HorizontalPred16_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vld1q_u8
    - vdupq_laneq_u8
    - Fill_NEON
    - vst1q_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE HorizontalPred16_NEON(uint8_t* dst,\n                                              const
      uint8_t* left)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Fill16_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1095,1
    - Dst: Fill_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1097,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - top
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1093
    functionDepth: 1
    functionLinenumber: 1093
    functionLinenumberEnd: 1099
    functionName: VerticalPred16_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - Fill16_NEON
    - Fill_NEON
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VerticalPred16_NEON(uint8_t* dst, const uint8_t* top)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vaddlvq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1107,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1107,1
    - Dst: vaddlvq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1110,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1110,1
    - Dst: vqrshrnh_n_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:1111,1
    - Dst: vqrshrnh_n_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:1114,1
    - Dst: vaddlvq_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1120,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1120,1
    - Dst: vqrshrnh_n_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:1121,1
    - Dst: Fill_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - dst
    - left
    - top
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1128
    functionName: DCMode_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vqrshrnh_n_u16
    - Fill_NEON
    - vld1q_u8
    - vaddlvq_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DCMode_NEON(uint8_t* dst, const uint8_t* left,\n                                    const
      uint8_t* top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vaddl_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1138,1
    - Dst: vqsubq_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:1139,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:1140,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:1140,1
    - Dst: vaddl_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1141,1
    - Dst: vqsubq_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:1142,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/enc_neon.c:1143,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:1143,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1144,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - dst
    - outer
    - inner
    - a
    - i
    - n
    argTypes:
    - uint8_t*
    - uint8x8_t
    - uint8x8x2_t
    - uint16x8_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1130
    functionDepth: 0
    functionLinenumber: 1130
    functionLinenumberEnd: 1146
    functionName: TrueMotionHelper_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - vaddl_u8
    - vst1_u8
    - vreinterpretq_s16_u16
    - vqsubq_u16
    - vqmovun_s16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE TrueMotionHelper_NEON(uint8_t* dst,\n                                              const
      uint8x8_t outer,\n                                              const uint8x8x2_t
      inner,\n                                              const uint16x8_t a, int
      i,\n                                              const int n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VerticalPred16_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1160,1
    - Dst: Fill_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1162,1
    - Dst: HorizontalPred16_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1169,1
    - Dst: vdupq_n_u16
      Src: /src/libwebp/src/dsp/enc_neon.c:1174,1
    - Dst: Vld1U8x2
      Src: /src/libwebp/src/dsp/enc_neon.c:1175,1
    - Dst: vld4_dup_u8
      Src: /src/libwebp/src/dsp/enc_neon.c:1178,1
    - Dst: TrueMotionHelper_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1180,1
    - Dst: TrueMotionHelper_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1181,1
    - Dst: TrueMotionHelper_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1182,1
    - Dst: TrueMotionHelper_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1183,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - dst
    - left
    - top
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1148
    functionDepth: 2
    functionLinenumber: 1148
    functionLinenumberEnd: 1185
    functionName: TrueMotion_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 2
    functionsReached:
    - vld4_dup_u8
    - Fill_NEON
    - vdupq_n_u16
    - TrueMotionHelper_NEON
    - Vld1U8x2
    - HorizontalPred16_NEON
    - VerticalPred16_NEON
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE TrueMotion_NEON(uint8_t* dst, const uint8_t* left,\n                                        const
      uint8_t* top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCMode_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1190,1
    - Dst: VerticalPred16_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1191,1
    - Dst: HorizontalPred16_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1192,1
    - Dst: TrueMotion_NEON
      Src: /src/libwebp/src/dsp/enc_neon.c:1193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1187
    functionDepth: 2
    functionLinenumber: 1187
    functionLinenumberEnd: 1194
    functionName: Intra16Preds_NEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 0
    functionsReached:
    - HorizontalPred16_NEON
    - DCMode_NEON
    - TrueMotion_NEON
    - VerticalPred16_NEON
    linkageType: ''
    returnType: void
    signature: "void Intra16Preds_NEON(uint8_t* WEBP_RESTRICT dst,\n                              const
      uint8_t* WEBP_RESTRICT left,\n                              const uint8_t* WEBP_RESTRICT
      top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1230
    functionName: VP8EncDspInitNEON
    functionSourceFile: /src/libwebp/src/dsp/enc_neon.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8EncDspInitNEON(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: MULTIPLIER
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_neon.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULTIPLIER(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: PREMULTIPLY
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_neon.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREMULTIPLY(x, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - V
    - ','
    - ALPHA
    - ','
    - OTHER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: MULTIPLY_BY_ALPHA
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULTIPLY_BY_ALPHA(V, ALPHA, OTHER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdup_n_u8
      Src: /src/libwebp/src/dsp/alpha_processing_neon.c:88,1
    - Dst: vld4_u8
      Src: /src/libwebp/src/dsp/alpha_processing_neon.c:96,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/alpha_processing_neon.c:97,1
    - Dst: vst4_u8
      Src: /src/libwebp/src/dsp/alpha_processing_neon.c:99,1
    - Dst: vand_u8
      Src: /src/libwebp/src/dsp/alpha_processing_neon.c:100,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/alpha_processing_neon.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - alpha_stride
    - width
    - height
    - WEBP_RESTRICT
    - dst_stride
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 115
    functionName: DispatchAlpha_NEON
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_neon.c
    functionUses: 0
    functionsReached:
    - vld4_u8
    - vand_u8
    - vst1_u8
    - vld1_u8
    - vdup_n_u8
    - vst4_u8
    linkageType: ''
    returnType: int
    signature: "int DispatchAlpha_NEON(const uint8_t* WEBP_RESTRICT alpha,\n                              int
      alpha_stride, int width, int height,\n                              uint8_t*
      WEBP_RESTRICT dst, int dst_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdup_n_u8
      Src: /src/libwebp/src/dsp/alpha_processing_neon.c:123,1
    - Dst: vdup_n_u8
      Src: /src/libwebp/src/dsp/alpha_processing_neon.c:124,1
    - Dst: vdup_n_u8
      Src: /src/libwebp/src/dsp/alpha_processing_neon.c:125,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/alpha_processing_neon.c:128,1
    - Dst: vst4_u8
      Src: /src/libwebp/src/dsp/alpha_processing_neon.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - alpha_stride
    - width
    - height
    - WEBP_RESTRICT
    - dst_stride
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 135
    functionName: DispatchAlphaToGreen_NEON
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_neon.c
    functionUses: 0
    functionsReached:
    - vld1_u8
    - vdup_n_u8
    - vst4_u8
    linkageType: ''
    returnType: void
    signature: "void DispatchAlphaToGreen_NEON(const uint8_t* WEBP_RESTRICT alpha,\n
      \                                     int alpha_stride, int width, int height,\n
      \                                     uint32_t* WEBP_RESTRICT dst,\n                                      int
      dst_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdup_n_u8
      Src: /src/libwebp/src/dsp/alpha_processing_neon.c:141,1
    - Dst: vld4_u8
      Src: /src/libwebp/src/dsp/alpha_processing_neon.c:149,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/alpha_processing_neon.c:151,1
    - Dst: vand_u8
      Src: /src/libwebp/src/dsp/alpha_processing_neon.c:152,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/alpha_processing_neon.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - argb_stride
    - width
    - height
    - WEBP_RESTRICT
    - alpha_stride
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 166
    functionName: ExtractAlpha_NEON
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_neon.c
    functionUses: 0
    functionsReached:
    - vst1_u8
    - vld4_u8
    - vdup_n_u8
    - vand_u8
    linkageType: ''
    returnType: int
    signature: "int ExtractAlpha_NEON(const uint8_t* WEBP_RESTRICT argb, int argb_stride,\n
      \                            int width, int height,\n                             uint8_t*
      WEBP_RESTRICT alpha, int alpha_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld4q_u8
      Src: /src/libwebp/src/dsp/alpha_processing_neon.c:172,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/alpha_processing_neon.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - size
    argTypes:
    - uint32_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: ExtractGreen_NEON
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_neon.c
    functionUses: 0
    functionsReached:
    - vld4q_u8
    - vst1q_u8
    linkageType: ''
    returnType: void
    signature: "void ExtractGreen_NEON(const uint32_t* WEBP_RESTRICT argb,\n                              uint8_t*
      WEBP_RESTRICT alpha, int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: WebPInitAlphaProcessingNEON
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_neon.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPInitAlphaProcessingNEON(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - in
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: DCHECK
    functionSourceFile: /src/libwebp/src/dsp/filters.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DCHECK(in, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: PredictLine_C
    functionSourceFile: /src/libwebp/src/dsp/filters.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PredictLine_C(const uint8_t* WEBP_RESTRICT src,\n                                      const
      uint8_t* WEBP_RESTRICT pred,\n                                      uint8_t*
      WEBP_RESTRICT dst, int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK
      Src: /src/libwebp/src/dsp/filters.c:51,1
    - Dst: PredictLine_C
      Src: /src/libwebp/src/dsp/filters.c:55,1
    - Dst: PredictLine_C
      Src: /src/libwebp/src/dsp/filters.c:63,1
    - Dst: PredictLine_C
      Src: /src/libwebp/src/dsp/filters.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 69
    functionName: DoHorizontalFilter_C
    functionSourceFile: /src/libwebp/src/dsp/filters.c
    functionUses: 0
    functionsReached:
    - PredictLine_C
    - DCHECK
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoHorizontalFilter_C(const uint8_t* WEBP_RESTRICT in,\n
      \                                            int width, int height, int stride,\n
      \                                            uint8_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK
      Src: /src/libwebp/src/dsp/filters.c:79,1
    - Dst: PredictLine_C
      Src: /src/libwebp/src/dsp/filters.c:84,1
    - Dst: PredictLine_C
      Src: /src/libwebp/src/dsp/filters.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 95
    functionName: DoVerticalFilter_C
    functionSourceFile: /src/libwebp/src/dsp/filters.c
    functionUses: 0
    functionsReached:
    - PredictLine_C
    - DCHECK
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoVerticalFilter_C(const uint8_t* WEBP_RESTRICT in,\n
      \                                          int width, int height, int stride,\n
      \                                          uint8_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: GradientPredictor_C
    functionSourceFile: /src/libwebp/src/dsp/filters.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GradientPredictor_C(uint8_t a, uint8_t b, uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK
      Src: /src/libwebp/src/dsp/filters.c:112,1
    - Dst: PredictLine_C
      Src: /src/libwebp/src/dsp/filters.c:116,1
    - Dst: PredictLine_C
      Src: /src/libwebp/src/dsp/filters.c:125,1
    - Dst: GradientPredictor_C
      Src: /src/libwebp/src/dsp/filters.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 135
    functionName: DoGradientFilter_C
    functionSourceFile: /src/libwebp/src/dsp/filters.c
    functionUses: 0
    functionsReached:
    - PredictLine_C
    - GradientPredictor_C
    - DCHECK
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoGradientFilter_C(const uint8_t* WEBP_RESTRICT in,\n
      \                                          int width, int height, int stride,\n
      \                                          uint8_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoHorizontalFilter_C
      Src: /src/libwebp/src/dsp/filters.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT filtered_data
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: HorizontalFilter_C
    functionSourceFile: /src/libwebp/src/dsp/filters.c
    functionUses: 1
    functionsReached:
    - DoHorizontalFilter_C
    linkageType: ''
    returnType: void
    signature: "void HorizontalFilter_C(const uint8_t* WEBP_RESTRICT data, int width,\n
      \                              int height, int stride,\n                               uint8_t*
      WEBP_RESTRICT filtered_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoVerticalFilter_C
      Src: /src/libwebp/src/dsp/filters.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT filtered_data
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: VerticalFilter_C
    functionSourceFile: /src/libwebp/src/dsp/filters.c
    functionUses: 1
    functionsReached:
    - DoVerticalFilter_C
    linkageType: ''
    returnType: void
    signature: "void VerticalFilter_C(const uint8_t* WEBP_RESTRICT data, int width,\n
      \                            int height, int stride,\n                             uint8_t*
      WEBP_RESTRICT filtered_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoGradientFilter_C
      Src: /src/libwebp/src/dsp/filters.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT filtered_data
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: GradientFilter_C
    functionSourceFile: /src/libwebp/src/dsp/filters.c
    functionUses: 1
    functionsReached:
    - DoGradientFilter_C
    linkageType: ''
    returnType: void
    signature: "void GradientFilter_C(const uint8_t* WEBP_RESTRICT data, int width,\n
      \                            int height, int stride,\n                             uint8_t*
      WEBP_RESTRICT filtered_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/filters.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - prev
    - in
    - out
    - width
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: NoneUnfilter_C
    functionSourceFile: /src/libwebp/src/dsp/filters.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void NoneUnfilter_C(const uint8_t* prev, const uint8_t* in, uint8_t*
      out,\n                           int width)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - prev
    - in
    - out
    - width
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: HorizontalUnfilter_C
    functionSourceFile: /src/libwebp/src/dsp/filters.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void HorizontalUnfilter_C(const uint8_t* prev, const uint8_t* in,\n
      \                                uint8_t* out, int width)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HorizontalUnfilter_C
      Src: /src/libwebp/src/dsp/filters.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - prev
    - in
    - out
    - width
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 189
    functionName: VerticalUnfilter_C
    functionSourceFile: /src/libwebp/src/dsp/filters.c
    functionUses: 0
    functionsReached:
    - HorizontalUnfilter_C
    linkageType: ''
    returnType: void
    signature: "void VerticalUnfilter_C(const uint8_t* prev, const uint8_t* in,\n
      \                              uint8_t* out, int width)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HorizontalUnfilter_C
      Src: /src/libwebp/src/dsp/filters.c:195,1
    - Dst: GradientPredictor_C
      Src: /src/libwebp/src/dsp/filters.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - prev
    - in
    - out
    - width
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 206
    functionName: GradientUnfilter_C
    functionSourceFile: /src/libwebp/src/dsp/filters.c
    functionUses: 0
    functionsReached:
    - HorizontalUnfilter_C
    - GradientPredictor_C
    linkageType: ''
    returnType: void
    signature: "void GradientUnfilter_C(const uint8_t* prev, const uint8_t* in,\n
      \                              uint8_t* out, int width)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/filters.c:237,1
    - Dst: VP8FiltersInitSSE2
      Src: /src/libwebp/src/dsp/filters.c:238,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/filters.c:242,1
    - Dst: VP8FiltersInitMIPSdspR2
      Src: /src/libwebp/src/dsp/filters.c:243,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/filters.c:247,1
    - Dst: VP8FiltersInitMSA
      Src: /src/libwebp/src/dsp/filters.c:248,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/filters.c:255,1
    - Dst: VP8FiltersInitNEON
      Src: /src/libwebp/src/dsp/filters.c:256,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/filters.c:260,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/filters.c:261,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/filters.c:262,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/filters.c:263,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/filters.c:264,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/filters.c:265,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/filters.c:266,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WebPUnfilters[WEBP_FILTER_NONE] != NULL)
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/libwebp/src/dsp/filters.c
    - condition: (WebPUnfilters[WEBP_FILTER_HORIZONTAL] != NULL)
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/libwebp/src/dsp/filters.c
    - condition: (WebPFilters[WEBP_FILTER_HORIZONTAL] != NULL)
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/libwebp/src/dsp/filters.c
    - condition: (WebPFilters[WEBP_FILTER_VERTICAL] != NULL)
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/libwebp/src/dsp/filters.c
    - condition: (WebPFilters[WEBP_FILTER_GRADIENT] != NULL)
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/libwebp/src/dsp/filters.c
    - condition: (WebPUnfilters[WEBP_FILTER_VERTICAL] != NULL)
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/libwebp/src/dsp/filters.c
    - condition: (WebPUnfilters[WEBP_FILTER_GRADIENT] != NULL)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/libwebp/src/dsp/filters.c
    constantsTouched: []
    func_position:
      end: 267
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 267
    functionName: WEBP_DSP_INIT_FUNC
    functionSourceFile: /src/libwebp/src/dsp/filters.c
    functionUses: 0
    functionsReached:
    - VP8GetCPUInfo
    - assert
    - VP8FiltersInitMSA
    - VP8FiltersInitNEON
    - VP8FiltersInitSSE2
    - VP8FiltersInitMIPSdspR2
    linkageType: ''
    returnType: void
    signature: void WEBP_DSP_INIT_FUNC(VP8FiltersInit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8BitCost
      Src: /src/libwebp/src/dsp/cost_mips32.c:29,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/dsp/cost_mips32.c:38,1
    - Dst: abs
      Src: /src/libwebp/src/dsp/cost_mips32.c:86,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/cost_mips32.c:87,1
    - Dst: VP8LevelCost
      Src: /src/libwebp/src/dsp/cost_mips32.c:88,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/dsp/cost_mips32.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ctx0
    - res
    argTypes:
    - int
    - VP8Residual*
    assertStmts:
    - condition: (v != 0)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/libwebp/src/dsp/cost_mips32.c
    constantsTouched: []
    func_position:
      end: 97
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 97
    functionName: GetResidualCost_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/cost_mips32.c
    functionUses: 0
    functionsReached:
    - assert
    - abs
    - VP8LevelCost
    - VP8BitCost
    linkageType: ''
    returnType: int
    signature: int GetResidualCost_MIPS32(int ctx0, const VP8Residual* const res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/cost_mips32.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - coeffs
    - res
    argTypes:
    - int16_t*
    - VP8Residual*
    assertStmts:
    - condition: (res->first == 0 || coeffs[0] == 0)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/libwebp/src/dsp/cost_mips32.c
    constantsTouched: []
    func_position:
      end: 136
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 136
    functionName: SetResidualCoeffs_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/cost_mips32.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void SetResidualCoeffs_MIPS32(const int16_t* WEBP_RESTRICT const coeffs,\n
      \                                    VP8Residual* WEBP_RESTRICT const res)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: VP8EncDspCostInitMIPS32
    functionSourceFile: /src/libwebp/src/dsp/cost_mips32.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8EncDspCostInitMIPS32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: CST_5b
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CST_5b(X)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:38,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:39,1
    - Dst: _mm_shufflelo_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:40,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:40,1
    - Dst: _mm_shufflehi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:41,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:41,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:42,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:43,1
    - Dst: VP8LSubtractGreenFromBlueAndRed_C
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - argb_data
    - num_pixels
    argTypes:
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 49
    functionName: SubtractGreenFromBlueAndRed_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_shufflelo_epi16
    - _mm_srli_epi16
    - _mm_storeu_si128
    - _mm_sub_epi8
    - _MM_SHUFFLE
    - _mm_loadu_si128
    - _mm_shufflehi_epi16
    - VP8LSubtractGreenFromBlueAndRed_C
    linkageType: ''
    returnType: void
    signature: "void SubtractGreenFromBlueAndRed_SSE2(uint32_t* argb_data,\n                                             int
      num_pixels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HI
    - ','
    - LO
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: MK_CST_16
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MK_CST_16(HI, LO)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:61,1
    - Dst: CST_5b
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:61,1
    - Dst: CST_5b
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:61,1
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:62,1
    - Dst: CST_5b
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:62,1
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:63,1
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:64,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:67,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:68,1
    - Dst: _mm_shufflelo_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:69,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:69,1
    - Dst: _mm_shufflehi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:70,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:70,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:71,1
    - Dst: _mm_slli_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:72,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:73,1
    - Dst: _mm_srli_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:74,1
    - Dst: _mm_add_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:75,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:76,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:77,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:78,1
    - Dst: VP8LTransformColor_C
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - m
    - WEBP_RESTRICT
    - num_pixels
    argTypes:
    - VP8LMultipliers*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 84
    functionName: TransformColor_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_shufflelo_epi16
    - _mm_mulhi_epi16
    - VP8LTransformColor_C
    - CST_5b
    - _mm_storeu_si128
    - _mm_srli_epi32
    - _mm_sub_epi8
    - _MM_SHUFFLE
    - _mm_and_si128
    - _mm_loadu_si128
    - _mm_slli_epi16
    - _mm_add_epi8
    - _mm_shufflehi_epi16
    - MK_CST_16
    linkageType: ''
    returnType: void
    signature: "void TransformColor_SSE2(const VP8LMultipliers* WEBP_RESTRICT const
      m,\n                                uint32_t* WEBP_RESTRICT argb_data,\n                                int
      num_pixels)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:92,1
    - Dst: CST_5b
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:92,1
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:93,1
    - Dst: CST_5b
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:93,1
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:94,1
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:95,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:102,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:103,1
    - Dst: _mm_slli_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:104,1
    - Dst: _mm_slli_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:105,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:106,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:107,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:108,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:109,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:110,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:111,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:112,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:113,1
    - Dst: _mm_srli_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:114,1
    - Dst: _mm_srli_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:115,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:116,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:117,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:118,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:119,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:120,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:121,1
    - Dst: VP8LCollectColorBlueTransforms_C
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 7
    argNames:
    - WEBP_RESTRICT
    - stride
    - tile_width
    - tile_height
    - green_to_blue
    - red_to_blue
    - histo
    argTypes:
    - uint32_t*
    - int
    - int
    - int
    - int
    - int
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 133
    functionName: CollectColorBlueTransforms_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_mulhi_epi16
    - CST_5b
    - VP8LCollectColorBlueTransforms_C
    - _mm_storeu_si128
    - _mm_srli_epi32
    - _mm_packs_epi32
    - _mm_sub_epi8
    - _mm_slli_epi16
    - _mm_and_si128
    - _mm_loadu_si128
    - MK_CST_16
    linkageType: ''
    returnType: void
    signature: "void CollectColorBlueTransforms_SSE2(const uint32_t* WEBP_RESTRICT
      argb,\n                                            int stride, int tile_width,\n
      \                                           int tile_height, int green_to_blue,\n
      \                                           int red_to_blue, uint32_t histo[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:139,1
    - Dst: CST_5b
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:139,1
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:140,1
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:141,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:149,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:150,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:151,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:152,1
    - Dst: _mm_srli_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:153,1
    - Dst: _mm_srli_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:154,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:155,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:156,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:157,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:158,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:159,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:160,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:161,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:162,1
    - Dst: VP8LCollectColorRedTransforms_C
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - stride
    - tile_width
    - tile_height
    - green_to_red
    - histo
    argTypes:
    - uint32_t*
    - int
    - int
    - int
    - int
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 174
    functionName: CollectColorRedTransforms_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_mulhi_epi16
    - CST_5b
    - _mm_storeu_si128
    - _mm_srli_epi32
    - _mm_packs_epi32
    - _mm_sub_epi8
    - _mm_and_si128
    - _mm_loadu_si128
    - VP8LCollectColorRedTransforms_C
    - MK_CST_16
    linkageType: ''
    returnType: void
    signature: "void CollectColorRedTransforms_SSE2(const uint32_t* WEBP_RESTRICT
      argb,\n                                           int stride, int tile_width,\n
      \                                          int tile_height, int green_to_red,\n
      \                                          uint32_t histo[])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:190,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:191,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:194,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:195,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:196,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:197,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:198,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:199,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:200,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:201,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:202,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:202,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:203,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:203,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:204,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:204,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:205,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:205,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:210,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:211,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:212,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:213,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:214,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:214,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:215,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:215,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:221,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:222,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:223,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:223,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:225,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:226,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:227,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - size
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - int
    assertStmts:
    - condition: (size % 2 == 0)
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/libwebp/src/dsp/lossless_enc_sse2.c
    - condition: (size >= 16)
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/libwebp/src/dsp/lossless_enc_sse2.c
    constantsTouched: []
    func_position:
      end: 229
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 229
    functionName: AddVector_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 0
    functionsReached:
    - assert
    - _mm_storeu_si128
    - _mm_storel_epi64
    - _mm_loadu_si128
    - _mm_add_epi32
    - _mm_loadl_epi64
    linkageType: ''
    returnType: void
    signature: "void AddVector_SSE2(const uint32_t* WEBP_RESTRICT a,\n                           const
      uint32_t* WEBP_RESTRICT b,\n                           uint32_t* WEBP_RESTRICT
      out, int size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:238,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:239,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:242,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:243,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:244,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:245,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:246,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:247,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:248,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:249,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:250,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:250,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:251,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:251,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:252,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:252,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:253,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:253,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:258,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:259,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:260,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:261,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:262,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:262,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:263,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:263,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:269,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:270,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:271,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:271,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:273,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:274,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:275,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - size
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    assertStmts:
    - condition: (size % 2 == 0)
      pos:
        line_end: 238
        line_start: 238
        source_file: /src/libwebp/src/dsp/lossless_enc_sse2.c
    - condition: (size >= 16)
      pos:
        line_end: 237
        line_start: 237
        source_file: /src/libwebp/src/dsp/lossless_enc_sse2.c
    constantsTouched: []
    func_position:
      end: 277
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 277
    functionName: AddVectorEq_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 0
    functionsReached:
    - assert
    - _mm_storeu_si128
    - _mm_storel_epi64
    - _mm_loadu_si128
    - _mm_add_epi32
    - _mm_loadl_epi64
    linkageType: ''
    returnType: void
    signature: "void AddVectorEq_SSE2(const uint32_t* WEBP_RESTRICT a,\n                             uint32_t*
      WEBP_RESTRICT out, int size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:289,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:292,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:293,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:294,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:295,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:296,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:297,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:298,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:299,1
    - Dst: _mm_packs_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:301,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:301,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:301,1
    - Dst: _mm_packs_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:303,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:303,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:303,1
    - Dst: _mm_movemask_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:304,1
    - Dst: _mm_cmpgt_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:304,1
    - Dst: _mm_movemask_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:305,1
    - Dst: _mm_cmpgt_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:305,1
    - Dst: BitsCtz
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:307,1
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:312,1
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:316,1
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:320,1
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - X
    - Y
    argTypes:
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 322
    functionName: CombinedShannonEntropy_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_setzero_si128
    - VP8LFastSLog2
    - _mm_packs_epi32
    - BitsCtz
    - _mm_cmpgt_epi8
    - _mm_movemask_epi8
    - _mm_loadu_si128
    - _mm_packs_epi16
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t CombinedShannonEntropy_SSE2(const uint32_t X[256],\n                                            const
      uint32_t Y[256])"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:337,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:338,1
    - Dst: _mm_cmpeq_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:343,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:345,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:347,1
    - Dst: _mm_movemask_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:348,1
    - Dst: _mm_cmpeq_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:352,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:353,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:354,1
    - Dst: _mm_movemask_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:355,1
    - Dst: _mm_movemask_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:363,1
    - Dst: _mm_cmpeq_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:363,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:364,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:365,1
    - Dst: _mm_movemask_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:368,1
    - Dst: _mm_cmpeq_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:368,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:369,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:370,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - array1
    - array2
    - length
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 380
    functionName: VectorMismatch_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_movemask_epi8
    - _mm_loadu_si128
    - _mm_cmpeq_epi32
    linkageType: ''
    returnType: int
    signature: "int VectorMismatch_SSE2(const uint32_t* const array1,\n                               const
      uint32_t* const array2, int length)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:387,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:388,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:391,1
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:392,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:395,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:396,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:397,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:398,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:399,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:400,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:401,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:402,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:403,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:404,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:405,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:410,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:411,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:414,1
    - Dst: _mm_mullo_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:415,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:416,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:417,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:418,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:419,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:420,1
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:425,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:426,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:427,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:430,1
    - Dst: _mm_mullo_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:431,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:432,1
    - Dst: _mm_srli_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:433,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:434,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:436,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:437,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:442,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:445,1
    - Dst: _mm_slli_epi64
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:446,1
    - Dst: _mm_movemask_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:447,1
    - Dst: VP8LBundleColorMap_C
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:455,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 4
    argNames:
    - row
    - width
    - xbits
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int
    - int
    - uint32_t*
    assertStmts:
    - condition: (xbits == 3)
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/libwebp/src/dsp/lossless_enc_sse2.c
    - condition: (xbits <= 3)
      pos:
        line_end: 387
        line_start: 387
        source_file: /src/libwebp/src/dsp/lossless_enc_sse2.c
    - condition: (xbits >= 0)
      pos:
        line_end: 386
        line_start: 386
        source_file: /src/libwebp/src/dsp/lossless_enc_sse2.c
    constantsTouched: []
    func_position:
      end: 457
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 457
    functionName: BundleColorMap_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_unpacklo_epi8
    - _mm_slli_epi64
    - _mm_set1_epi16
    - VP8LBundleColorMap_C
    - _mm_setzero_si128
    - assert
    - _mm_storeu_si128
    - _mm_srli_epi32
    - _mm_and_si128
    - _mm_loadu_si128
    - _mm_movemask_epi8
    - _mm_mullo_epi16
    - _mm_unpackhi_epi16
    - _mm_unpacklo_epi16
    - _mm_unpackhi_epi8
    - _mm_or_si128
    linkageType: ''
    returnType: void
    signature: "void BundleColorMap_SSE2(const uint8_t* WEBP_RESTRICT const row,\n
      \                               int width, int xbits,\n                                uint32_t*
      WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:466,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:467,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:468,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:468,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a0
    - a1
    - avg
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 470
    functionName: Average2_m128i
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_avg_epu8
    - _mm_xor_si128
    - _mm_sub_epi8
    - _mm_and_si128
    - _mm_set1_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Average2_m128i(const __m128i* const a0,\n                                       const
      __m128i* const a1,\n                                       __m128i* const avg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:476,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:478,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:479,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 486
    functionName: PredictorSub0_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_storeu_si128
    - _mm_set1_epi32
    - _mm_loadu_si128
    - _mm_sub_epi8
    linkageType: ''
    returnType: void
    signature: "void PredictorSub0_SSE2(const uint32_t* in, const uint32_t* upper,\n
      \                              int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - IN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 504
    functionName: GENERATE_PREDICTOR_1
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_PREDICTOR_1(X, IN)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:516,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:517,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:518,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:519,1
    - Dst: Average2_m128i
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:521,1
    - Dst: Average2_m128i
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:522,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:523,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 529
    functionName: PredictorSub5_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_storeu_si128
    - _mm_loadu_si128
    - _mm_sub_epi8
    - Average2_m128i
    linkageType: ''
    returnType: void
    signature: "void PredictorSub5_SSE2(const uint32_t* in, const uint32_t* upper,\n
      \                              int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 549
    functionName: GENERATE_PREDICTOR_2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_PREDICTOR_2(X, A, B)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:561,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:562,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:563,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:564,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:565,1
    - Dst: Average2_m128i
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:567,1
    - Dst: Average2_m128i
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:568,1
    - Dst: Average2_m128i
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:569,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:570,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 576
    functionName: PredictorSub10_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_storeu_si128
    - _mm_loadu_si128
    - _mm_sub_epi8
    - Average2_m128i
    linkageType: ''
    returnType: void
    signature: "void PredictorSub10_SSE2(const uint32_t* in, const uint32_t* upper,\n
      \                               int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:583,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:584,1
    - Dst: _mm_unpackhi_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:585,1
    - Dst: _mm_unpackhi_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:586,1
    - Dst: _mm_sad_epu8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:587,1
    - Dst: _mm_sad_epu8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:588,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - A
    - B
    - out
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 590
    functionName: GetSumAbsDiff32_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpackhi_epi32
    - _mm_packs_epi32
    - _mm_unpacklo_epi32
    - _mm_sad_epu8
    linkageType: ''
    returnType: void
    signature: "void GetSumAbsDiff32_SSE2(const __m128i* const A, const __m128i* const
      B,\n                                 __m128i* const out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:596,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:597,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:598,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:599,1
    - Dst: GetSumAbsDiff32_SSE2
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:601,1
    - Dst: GetSumAbsDiff32_SSE2
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:602,1
    - Dst: _mm_cmpgt_epi32
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:604,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:605,1
    - Dst: _mm_andnot_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:606,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:607,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:608,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 615
    functionName: PredictorSub11_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_storeu_si128
    - _mm_sub_epi8
    - _mm_and_si128
    - _mm_loadu_si128
    - _mm_cmpgt_epi32
    - _mm_andnot_si128
    - GetSumAbsDiff32_SSE2
    - _mm_or_si128
    linkageType: ''
    returnType: void
    signature: "void PredictorSub11_SSE2(const uint32_t* in, const uint32_t* upper,\n
      \                               int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:621,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:623,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:624,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:625,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:626,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:627,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:628,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:629,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:630,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:631,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:632,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:633,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:634,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:635,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:636,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:637,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:638,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 644
    functionName: PredictorSub12_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_setzero_si128
    - _mm_storeu_si128
    - _mm_add_epi16
    - _mm_sub_epi16
    - _mm_sub_epi8
    - _mm_loadu_si128
    - _mm_packus_epi16
    - _mm_unpackhi_epi8
    linkageType: ''
    returnType: void
    signature: "void PredictorSub12_SSE2(const uint32_t* in, const uint32_t* upper,\n
      \                               int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:650,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:652,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:653,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:654,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:655,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:659,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:660,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:661,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:662,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:663,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:664,1
    - Dst: _mm_cmpgt_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:665,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:666,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:667,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:668,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:672,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:673,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:674,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:675,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:676,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:677,1
    - Dst: _mm_cmpgt_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:678,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:679,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:680,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:681,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:684,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:685,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 692
    functionName: PredictorSub13_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_cmpgt_epi16
    - _mm_unpacklo_epi8
    - _mm_srli_epi16
    - _mm_setzero_si128
    - _mm_storeu_si128
    - _mm_add_epi16
    - _mm_sub_epi16
    - _mm_sub_epi8
    - _mm_srai_epi16
    - _mm_loadu_si128
    - _mm_packus_epi16
    - _mm_unpackhi_epi8
    linkageType: ''
    returnType: void
    signature: "void PredictorSub13_SSE2(const uint32_t* in, const uint32_t* upper,\n
      \                               int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/lossless_enc_sse2.c:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 738
    functionName: VP8LEncDspInitSSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_sse2.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8LEncDspInitSSE2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:33,1
    - Dst: VP8FTransform
      Src: /src/libwebp/src/dsp/enc_sse41.c:40,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:45,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:46,1
    - Dst: _mm_abs_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:48,1
    - Dst: _mm_abs_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:49,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:50,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:51,1
    - Dst: _mm_min_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:53,1
    - Dst: _mm_min_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:54,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:56,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:57,1
    - Dst: VP8SetHistogramData
      Src: /src/libwebp/src/dsp/enc_sse41.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - start_block
    - end_block
    - histo
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - VP8Histogram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 66
    functionName: CollectHistogram_SSE41
    functionSourceFile: /src/libwebp/src/dsp/enc_sse41.c
    functionUses: 0
    functionsReached:
    - VP8SetHistogramData
    - _mm_set1_epi16
    - VP8FTransform
    - _mm_storeu_si128
    - _mm_abs_epi16
    - _mm_srai_epi16
    - _mm_loadu_si128
    - _mm_min_epi16
    linkageType: ''
    returnType: void
    signature: "void CollectHistogram_SSE41(const uint8_t* WEBP_RESTRICT ref,\n                                   const
      uint8_t* WEBP_RESTRICT pred,\n                                   int start_block,
      int end_block,\n                                   VP8Histogram* WEBP_RESTRICT
      const histo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:84,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:85,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:86,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse41.c:91,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:92,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:93,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:94,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse41.c:95,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/enc_sse41.c:98,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/enc_sse41.c:99,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/enc_sse41.c:100,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/enc_sse41.c:101,1
    - Dst: _mm_cvtepu8_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:102,1
    - Dst: _mm_cvtepu8_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:103,1
    - Dst: _mm_cvtepu8_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:104,1
    - Dst: _mm_cvtepu8_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:105,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:116,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:117,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:118,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:119,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:120,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:121,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:122,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:123,1
    - Dst: VP8Transpose_2_4x4_16b
      Src: /src/libwebp/src/dsp/enc_sse41.c:130,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:136,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:137,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:140,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:141,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:142,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:143,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:144,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:145,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:146,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:147,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/enc_sse41.c:150,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/enc_sse41.c:151,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/enc_sse41.c:152,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/enc_sse41.c:153,1
    - Dst: _mm_abs_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:155,1
    - Dst: _mm_abs_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:156,1
    - Dst: _mm_abs_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:157,1
    - Dst: _mm_abs_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:158,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:161,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:162,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:163,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:164,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse41.c:165,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse41.c:166,1
    - Dst: _mm_sub_epi32
      Src: /src/libwebp/src/dsp/enc_sse41.c:169,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 3
    argNames:
    - inA
    - inB
    - w
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 173
    functionName: TTransform_SSE41
    functionSourceFile: /src/libwebp/src/dsp/enc_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_storeu_si128
    - _mm_madd_epi16
    - _mm_unpackhi_epi64
    - _mm_abs_epi16
    - _mm_unpacklo_epi32
    - _mm_add_epi16
    - _mm_sub_epi16
    - _mm_loadu_si128
    - _mm_add_epi32
    - _mm_loadl_epi64
    - _mm_cvtepu8_epi16
    - _mm_unpacklo_epi64
    - VP8Transpose_2_4x4_16b
    - _mm_sub_epi32
    linkageType: ''
    returnType: int
    signature: "int TTransform_SSE41(const uint8_t* inA, const uint8_t* inB,\n                            const
      uint16_t* const w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TTransform_SSE41
      Src: /src/libwebp/src/dsp/enc_sse41.c:178,1
    - Dst: abs
      Src: /src/libwebp/src/dsp/enc_sse41.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - w
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: Disto4x4_SSE41
    functionSourceFile: /src/libwebp/src/dsp/enc_sse41.c
    functionUses: 0
    functionsReached:
    - abs
    - TTransform_SSE41
    linkageType: ''
    returnType: int
    signature: "int Disto4x4_SSE41(const uint8_t* WEBP_RESTRICT const a,\n                          const
      uint8_t* WEBP_RESTRICT const b,\n                          const uint16_t* WEBP_RESTRICT
      const w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Disto4x4_SSE41
      Src: /src/libwebp/src/dsp/enc_sse41.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - a
    - b
    - w
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 193
    functionName: Disto16x16_SSE41
    functionSourceFile: /src/libwebp/src/dsp/enc_sse41.c
    functionUses: 0
    functionsReached:
    - Disto4x4_SSE41
    linkageType: ''
    returnType: int
    signature: "int Disto16x16_SSE41(const uint8_t* WEBP_RESTRICT const a,\n                            const
      uint8_t* WEBP_RESTRICT const b,\n                            const uint16_t*
      WEBP_RESTRICT const w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - F
    - ','
    - G
    - ','
    - H
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: PSHUFB_CST
    functionSourceFile: /src/libwebp/src/dsp/enc_sse41.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PSHUFB_CST(A, B, C, D, E, F, G, H)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:209,1
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:210,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:215,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:216,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:217,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:218,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:219,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:220,1
    - Dst: _mm_abs_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:223,1
    - Dst: _mm_abs_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:224,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:228,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:229,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:230,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:231,1
    - Dst: _mm_mulhi_epu16
      Src: /src/libwebp/src/dsp/enc_sse41.c:238,1
    - Dst: _mm_mullo_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:239,1
    - Dst: _mm_mulhi_epu16
      Src: /src/libwebp/src/dsp/enc_sse41.c:240,1
    - Dst: _mm_mullo_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:241,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:242,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:243,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:244,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:245,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:247,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:248,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:249,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:250,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse41.c:251,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse41.c:252,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse41.c:253,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse41.c:254,1
    - Dst: _mm_srai_epi32
      Src: /src/libwebp/src/dsp/enc_sse41.c:256,1
    - Dst: _mm_srai_epi32
      Src: /src/libwebp/src/dsp/enc_sse41.c:257,1
    - Dst: _mm_srai_epi32
      Src: /src/libwebp/src/dsp/enc_sse41.c:258,1
    - Dst: _mm_srai_epi32
      Src: /src/libwebp/src/dsp/enc_sse41.c:259,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/enc_sse41.c:262,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/enc_sse41.c:263,1
    - Dst: _mm_min_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:266,1
    - Dst: _mm_min_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:267,1
    - Dst: _mm_sign_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:271,1
    - Dst: _mm_sign_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:272,1
    - Dst: _mm_mullo_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:275,1
    - Dst: _mm_mullo_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:276,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:278,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:279,1
    - Dst: PSHUFB_CST
      Src: /src/libwebp/src/dsp/enc_sse41.c:288,1
    - Dst: PSHUFB_CST
      Src: /src/libwebp/src/dsp/enc_sse41.c:289,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/enc_sse41.c:290,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/enc_sse41.c:291,1
    - Dst: PSHUFB_CST
      Src: /src/libwebp/src/dsp/enc_sse41.c:292,1
    - Dst: PSHUFB_CST
      Src: /src/libwebp/src/dsp/enc_sse41.c:293,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/enc_sse41.c:294,1
    - Dst: _mm_shuffle_epi8
      Src: /src/libwebp/src/dsp/enc_sse41.c:295,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:296,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:297,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:298,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse41.c:299,1
    - Dst: _mm_packs_epi16
      Src: /src/libwebp/src/dsp/enc_sse41.c:300,1
    - Dst: _mm_movemask_epi8
      Src: /src/libwebp/src/dsp/enc_sse41.c:304,1
    - Dst: _mm_cmpeq_epi8
      Src: /src/libwebp/src/dsp/enc_sse41.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 4
    argNames:
    - in
    - out
    - sharpen
    - mtx
    argTypes:
    - int16_t[]
    - int16_t[]
    - uint16_t*
    - VP8Matrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 305
    functionName: DoQuantizeBlock_SSE41
    functionSourceFile: /src/libwebp/src/dsp/enc_sse41.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi16
    - _mm_abs_epi16
    - PSHUFB_CST
    - _mm_loadu_si128
    - _mm_add_epi32
    - _mm_packs_epi16
    - _mm_setzero_si128
    - _mm_sign_epi16
    - _mm_storeu_si128
    - _mm_packs_epi32
    - _mm_mullo_epi16
    - _mm_unpackhi_epi16
    - _mm_srai_epi32
    - _mm_movemask_epi8
    - _mm_cmpeq_epi8
    - _mm_or_si128
    - _mm_mulhi_epu16
    - _mm_add_epi16
    - _mm_shuffle_epi8
    - _mm_unpacklo_epi16
    - _mm_min_epi16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoQuantizeBlock_SSE41(int16_t in[16], int16_t out[16],\n
      \                                            const uint16_t* const sharpen,\n
      \                                            const VP8Matrix* const mtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoQuantizeBlock_SSE41
      Src: /src/libwebp/src/dsp/enc_sse41.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out
    - mtx
    argTypes:
    - int16_t[]
    - int16_t[]
    - VP8Matrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: QuantizeBlock_SSE41
    functionSourceFile: /src/libwebp/src/dsp/enc_sse41.c
    functionUses: 1
    functionsReached:
    - DoQuantizeBlock_SSE41
    linkageType: ''
    returnType: int
    signature: "int QuantizeBlock_SSE41(int16_t in[16], int16_t out[16],\n                               const
      VP8Matrix* WEBP_RESTRICT const mtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoQuantizeBlock_SSE41
      Src: /src/libwebp/src/dsp/enc_sse41.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out
    - mtx
    argTypes:
    - int16_t[]
    - int16_t[]
    - VP8Matrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: QuantizeBlockWHT_SSE41
    functionSourceFile: /src/libwebp/src/dsp/enc_sse41.c
    functionUses: 0
    functionsReached:
    - DoQuantizeBlock_SSE41
    linkageType: ''
    returnType: int
    signature: "int QuantizeBlockWHT_SSE41(int16_t in[16], int16_t out[16],\n                                  const
      VP8Matrix* WEBP_RESTRICT const mtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoQuantizeBlock_SSE41
      Src: /src/libwebp/src/dsp/enc_sse41.c:323,1
    - Dst: DoQuantizeBlock_SSE41
      Src: /src/libwebp/src/dsp/enc_sse41.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - in
    - out
    - mtx
    argTypes:
    - int16_t[]
    - int16_t[]
    - VP8Matrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 326
    functionName: Quantize2Blocks_SSE41
    functionSourceFile: /src/libwebp/src/dsp/enc_sse41.c
    functionUses: 0
    functionsReached:
    - DoQuantizeBlock_SSE41
    linkageType: ''
    returnType: int
    signature: "int Quantize2Blocks_SSE41(int16_t in[32], int16_t out[32],\n                                 const
      VP8Matrix* WEBP_RESTRICT const mtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 339
    functionName: VP8EncDspInitSSE41
    functionSourceFile: /src/libwebp/src/dsp/enc_sse41.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8EncDspInitSSE41(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: MULT_FIX_C
    functionSourceFile: /src/libwebp/src/dsp/rescaler_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULT_FIX_C(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: MULT_FIX_FLOOR_C
    functionSourceFile: /src/libwebp/src/dsp/rescaler_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULT_FIX_FLOOR_C(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SRC
    - ','
    - DST
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: LOAD_32x4
    functionSourceFile: /src/libwebp/src/dsp/rescaler_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_32x4(SRC, DST)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - SRC
    - ','
    - DST0
    - ','
    - DST1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: LOAD_32x8
    functionSourceFile: /src/libwebp/src/dsp/rescaler_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_32x8(SRC, DST0, DST1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - SRC0
    - ','
    - SRC1
    - ','
    - DST
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: STORE_32x8
    functionSourceFile: /src/libwebp/src/dsp/rescaler_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_32x8(SRC0, SRC1, DST)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: MAKE_HALF_CST
    functionSourceFile: /src/libwebp/src/dsp/rescaler_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAKE_HALF_CST(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: MULT_FIX
    functionSourceFile: /src/libwebp/src/dsp/rescaler_neon.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULT_FIX(A, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: MULT_FIX_FLOOR
    functionSourceFile: /src/libwebp/src/dsp/rescaler_neon.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULT_FIX_FLOOR(A, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD_32x4
      Src: /src/libwebp/src/dsp/rescaler_neon.c:53,1
    - Dst: LOAD_32x4
      Src: /src/libwebp/src/dsp/rescaler_neon.c:54,1
    - Dst: vmull_n_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:55,1
    - Dst: vget_low_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:55,1
    - Dst: vmull_n_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:56,1
    - Dst: vget_high_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:56,1
    - Dst: vmlal_n_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:57,1
    - Dst: vget_low_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:57,1
    - Dst: vmlal_n_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:58,1
    - Dst: vget_high_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:58,1
    - Dst: vcombine_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:59,1
    - Dst: vrshrn_n_u64
      Src: /src/libwebp/src/dsp/rescaler_neon.c:59,1
    - Dst: vrshrn_n_u64
      Src: /src/libwebp/src/dsp/rescaler_neon.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - frow
    - irow
    - A
    - B
    argTypes:
    - rescaler_t*
    - rescaler_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: Interpolate_NEON
    functionSourceFile: /src/libwebp/src/dsp/rescaler_neon.c
    functionUses: 0
    functionsReached:
    - LOAD_32x4
    - vcombine_u32
    - vrshrn_n_u64
    - vget_high_u32
    - vmlal_n_u32
    - vget_low_u32
    - vmull_n_u32
    linkageType: ''
    returnType: uint32x4_t
    signature: "uint32x4_t Interpolate_NEON(const rescaler_t* WEBP_RESTRICT const
      frow,\n                                   const rescaler_t* WEBP_RESTRICT const
      irow,\n                                   uint32_t A, uint32_t B)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAKE_HALF_CST
      Src: /src/libwebp/src/dsp/rescaler_neon.c:72,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_neon.c:73,1
    - Dst: WebPRescalerOutputDone
      Src: /src/libwebp/src/dsp/rescaler_neon.c:73,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_neon.c:74,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_neon.c:75,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_neon.c:76,1
    - Dst: LOAD_32x4
      Src: /src/libwebp/src/dsp/rescaler_neon.c:79,1
    - Dst: LOAD_32x4
      Src: /src/libwebp/src/dsp/rescaler_neon.c:80,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler_neon.c:81,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler_neon.c:82,1
    - Dst: vmovn_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:83,1
    - Dst: vmovn_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:84,1
    - Dst: vqmovn_u16
      Src: /src/libwebp/src/dsp/rescaler_neon.c:85,1
    - Dst: vcombine_u16
      Src: /src/libwebp/src/dsp/rescaler_neon.c:85,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/rescaler_neon.c:86,1
    - Dst: MULT_FIX_C
      Src: /src/libwebp/src/dsp/rescaler_neon.c:90,1
    - Dst: WEBP_RESCALER_FRAC
      Src: /src/libwebp/src/dsp/rescaler_neon.c:94,1
    - Dst: Interpolate_NEON
      Src: /src/libwebp/src/dsp/rescaler_neon.c:98,1
    - Dst: Interpolate_NEON
      Src: /src/libwebp/src/dsp/rescaler_neon.c:100,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler_neon.c:101,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler_neon.c:102,1
    - Dst: vmovn_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:103,1
    - Dst: vmovn_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:104,1
    - Dst: vqmovn_u16
      Src: /src/libwebp/src/dsp/rescaler_neon.c:105,1
    - Dst: vcombine_u16
      Src: /src/libwebp/src/dsp/rescaler_neon.c:105,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/rescaler_neon.c:106,1
    - Dst: MULT_FIX_C
      Src: /src/libwebp/src/dsp/rescaler_neon.c:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - wrk
    argTypes:
    - WebPRescaler*
    assertStmts:
    - condition: (wrk->y_accum <= 0)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/libwebp/src/dsp/rescaler_neon.c
    - condition: (wrk->y_expand)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/libwebp/src/dsp/rescaler_neon.c
    - condition: (!WebPRescalerOutputDone(wrk))
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/libwebp/src/dsp/rescaler_neon.c
    - condition: (wrk->y_sub != 0)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/libwebp/src/dsp/rescaler_neon.c
    constantsTouched: []
    func_position:
      end: 115
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 115
    functionName: RescalerExportRowExpand_NEON
    functionSourceFile: /src/libwebp/src/dsp/rescaler_neon.c
    functionUses: 0
    functionsReached:
    - vmovn_u32
    - vcombine_u16
    - LOAD_32x4
    - assert
    - vst1_u8
    - vqmovn_u16
    - WEBP_RESCALER_FRAC
    - WebPRescalerOutputDone
    - MAKE_HALF_CST
    - MULT_FIX_C
    - MULT_FIX
    - Interpolate_NEON
    linkageType: ''
    returnType: void
    signature: void RescalerExportRowExpand_NEON(WebPRescaler* const wrk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:126,1
    - Dst: MAKE_HALF_CST
      Src: /src/libwebp/src/dsp/rescaler_neon.c:127,1
    - Dst: MAKE_HALF_CST
      Src: /src/libwebp/src/dsp/rescaler_neon.c:128,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_neon.c:129,1
    - Dst: WebPRescalerOutputDone
      Src: /src/libwebp/src/dsp/rescaler_neon.c:129,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_neon.c:130,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler_neon.c:131,1
    - Dst: LOAD_32x8
      Src: /src/libwebp/src/dsp/rescaler_neon.c:134,1
    - Dst: LOAD_32x8
      Src: /src/libwebp/src/dsp/rescaler_neon.c:135,1
    - Dst: MULT_FIX_FLOOR
      Src: /src/libwebp/src/dsp/rescaler_neon.c:136,1
    - Dst: MULT_FIX_FLOOR
      Src: /src/libwebp/src/dsp/rescaler_neon.c:137,1
    - Dst: vqsubq_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:138,1
    - Dst: vqsubq_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:139,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler_neon.c:140,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler_neon.c:141,1
    - Dst: vmovn_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:142,1
    - Dst: vmovn_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:143,1
    - Dst: vqmovn_u16
      Src: /src/libwebp/src/dsp/rescaler_neon.c:144,1
    - Dst: vcombine_u16
      Src: /src/libwebp/src/dsp/rescaler_neon.c:144,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/rescaler_neon.c:145,1
    - Dst: STORE_32x8
      Src: /src/libwebp/src/dsp/rescaler_neon.c:146,1
    - Dst: MULT_FIX_FLOOR_C
      Src: /src/libwebp/src/dsp/rescaler_neon.c:149,1
    - Dst: MULT_FIX_C
      Src: /src/libwebp/src/dsp/rescaler_neon.c:150,1
    - Dst: LOAD_32x8
      Src: /src/libwebp/src/dsp/rescaler_neon.c:156,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler_neon.c:157,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler_neon.c:158,1
    - Dst: vmovn_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:159,1
    - Dst: vmovn_u32
      Src: /src/libwebp/src/dsp/rescaler_neon.c:160,1
    - Dst: vqmovn_u16
      Src: /src/libwebp/src/dsp/rescaler_neon.c:161,1
    - Dst: vcombine_u16
      Src: /src/libwebp/src/dsp/rescaler_neon.c:161,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/rescaler_neon.c:162,1
    - Dst: STORE_32x8
      Src: /src/libwebp/src/dsp/rescaler_neon.c:163,1
    - Dst: MULT_FIX_C
      Src: /src/libwebp/src/dsp/rescaler_neon.c:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - wrk
    argTypes:
    - WebPRescaler*
    assertStmts:
    - condition: (!WebPRescalerOutputDone(wrk))
      pos:
        line_end: 128
        line_start: 128
        source_file: /src/libwebp/src/dsp/rescaler_neon.c
    - condition: (!wrk->y_expand)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/libwebp/src/dsp/rescaler_neon.c
    - condition: (wrk->y_accum <= 0)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/libwebp/src/dsp/rescaler_neon.c
    constantsTouched: []
    func_position:
      end: 171
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 171
    functionName: RescalerExportRowShrink_NEON
    functionSourceFile: /src/libwebp/src/dsp/rescaler_neon.c
    functionUses: 0
    functionsReached:
    - vmovn_u32
    - vcombine_u16
    - vdupq_n_u32
    - MULT_FIX_FLOOR
    - assert
    - vst1_u8
    - vqmovn_u16
    - LOAD_32x8
    - MULT_FIX_FLOOR_C
    - WebPRescalerOutputDone
    - MAKE_HALF_CST
    - vqsubq_u32
    - STORE_32x8
    - MULT_FIX_C
    - MULT_FIX
    linkageType: ''
    returnType: void
    signature: void RescalerExportRowShrink_NEON(WebPRescaler* const wrk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: WebPRescalerDspInitNEON
    functionSourceFile: /src/libwebp/src/dsp/rescaler_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPRescalerDspInitNEON(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - psrc
    - ','
    - pdst
    - ','
    - m0
    - ','
    - m1
    - ','
    - m2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: CONVERT16_BGRA_XXX
    functionSourceFile: /src/libwebp/src/dsp/lossless_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT16_BGRA_XXX(psrc, pdst, m0, m1, m2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - psrc
    - ','
    - pdst
    - ','
    - m0
    - ','
    - m1
    - ','
    - m2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: CONVERT12_BGRA_XXX
    functionSourceFile: /src/libwebp/src/dsp/lossless_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT12_BGRA_XXX(psrc, pdst, m0, m1, m2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - psrc
    - ','
    - pdst
    - ','
    - m0
    - ','
    - m1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: CONVERT8_BGRA_XXX
    functionSourceFile: /src/libwebp/src/dsp/lossless_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT8_BGRA_XXX(psrc, pdst, m0, m1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - psrc
    - ','
    - pdst
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: CONVERT4_BGRA_XXX
    functionSourceFile: /src/libwebp/src/dsp/lossless_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT4_BGRA_XXX(psrc, pdst, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - psrc
    - ','
    - pdst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: CONVERT1_BGRA_BGR
    functionSourceFile: /src/libwebp/src/dsp/lossless_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT1_BGRA_BGR(psrc, pdst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - psrc
    - ','
    - pdst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: CONVERT1_BGRA_RGB
    functionSourceFile: /src/libwebp/src/dsp/lossless_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT1_BGRA_RGB(psrc, pdst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - src0
    - ','
    - src1
    - ','
    - dst0
    - ','
    - dst1
    - ','
    - c0
    - ','
    - c1
    - ','
    - mask0
    - ','
    - mask1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: TRANSFORM_COLOR_INVERSE_8
    functionSourceFile: /src/libwebp/src/dsp/lossless_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TRANSFORM_COLOR_INVERSE_8(src0, src1, dst0, dst1, c0, c1, mask0, \\\n
      \                                 mask1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - src
    - ','
    - dst
    - ','
    - c0
    - ','
    - c1
    - ','
    - mask0
    - ','
    - mask1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 119
    functionName: TRANSFORM_COLOR_INVERSE_4
    functionSourceFile: /src/libwebp/src/dsp/lossless_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRANSFORM_COLOR_INVERSE_4(src, dst, c0, c1, mask0, mask1)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LD_UB2
      Src: /src/libwebp/src/dsp/lossless_msa.c:130,1
    - Dst: VSHF_B2_UB
      Src: /src/libwebp/src/dsp/lossless_msa.c:131,1
    - Dst: ST_UB2
      Src: /src/libwebp/src/dsp/lossless_msa.c:132,1
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/lossless_msa.c:139,1
    - Dst: VSHF_UB
      Src: /src/libwebp/src/dsp/lossless_msa.c:140,1
    - Dst: ST_UB
      Src: /src/libwebp/src/dsp/lossless_msa.c:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - src
    - num_pixels
    - dst
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 159
    functionName: ConvertBGRAToRGBA_MSA
    functionSourceFile: /src/libwebp/src/dsp/lossless_msa.c
    functionUses: 0
    functionsReached:
    - VSHF_UB
    - ST_UB2
    - LD_UB
    - ST_UB
    - VSHF_B2_UB
    - LD_UB2
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToRGBA_MSA(const uint32_t* src, int num_pixels,\n
      \                                 uint8_t* dst)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT16_BGRA_XXX
      Src: /src/libwebp/src/dsp/lossless_msa.c:172,1
    - Dst: CONVERT12_BGRA_XXX
      Src: /src/libwebp/src/dsp/lossless_msa.c:179,1
    - Dst: CONVERT8_BGRA_XXX
      Src: /src/libwebp/src/dsp/lossless_msa.c:184,1
    - Dst: CONVERT4_BGRA_XXX
      Src: /src/libwebp/src/dsp/lossless_msa.c:189,1
    - Dst: CONVERT1_BGRA_BGR
      Src: /src/libwebp/src/dsp/lossless_msa.c:195,1
    - Dst: CONVERT1_BGRA_BGR
      Src: /src/libwebp/src/dsp/lossless_msa.c:196,1
    - Dst: CONVERT1_BGRA_BGR
      Src: /src/libwebp/src/dsp/lossless_msa.c:197,1
    - Dst: CONVERT1_BGRA_BGR
      Src: /src/libwebp/src/dsp/lossless_msa.c:199,1
    - Dst: CONVERT1_BGRA_BGR
      Src: /src/libwebp/src/dsp/lossless_msa.c:200,1
    - Dst: CONVERT1_BGRA_BGR
      Src: /src/libwebp/src/dsp/lossless_msa.c:202,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 3
    argNames:
    - src
    - num_pixels
    - dst
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 205
    functionName: ConvertBGRAToBGR_MSA
    functionSourceFile: /src/libwebp/src/dsp/lossless_msa.c
    functionUses: 0
    functionsReached:
    - CONVERT1_BGRA_BGR
    - CONVERT8_BGRA_XXX
    - CONVERT16_BGRA_XXX
    - CONVERT12_BGRA_XXX
    - CONVERT4_BGRA_XXX
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToBGR_MSA(const uint32_t* src, int num_pixels,\n                                 uint8_t*
      dst)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT16_BGRA_XXX
      Src: /src/libwebp/src/dsp/lossless_msa.c:218,1
    - Dst: CONVERT12_BGRA_XXX
      Src: /src/libwebp/src/dsp/lossless_msa.c:225,1
    - Dst: CONVERT8_BGRA_XXX
      Src: /src/libwebp/src/dsp/lossless_msa.c:230,1
    - Dst: CONVERT4_BGRA_XXX
      Src: /src/libwebp/src/dsp/lossless_msa.c:235,1
    - Dst: CONVERT1_BGRA_RGB
      Src: /src/libwebp/src/dsp/lossless_msa.c:241,1
    - Dst: CONVERT1_BGRA_RGB
      Src: /src/libwebp/src/dsp/lossless_msa.c:242,1
    - Dst: CONVERT1_BGRA_RGB
      Src: /src/libwebp/src/dsp/lossless_msa.c:243,1
    - Dst: CONVERT1_BGRA_RGB
      Src: /src/libwebp/src/dsp/lossless_msa.c:245,1
    - Dst: CONVERT1_BGRA_RGB
      Src: /src/libwebp/src/dsp/lossless_msa.c:246,1
    - Dst: CONVERT1_BGRA_RGB
      Src: /src/libwebp/src/dsp/lossless_msa.c:248,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 3
    argNames:
    - src
    - num_pixels
    - dst
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 251
    functionName: ConvertBGRAToRGB_MSA
    functionSourceFile: /src/libwebp/src/dsp/lossless_msa.c
    functionUses: 0
    functionsReached:
    - CONVERT8_BGRA_XXX
    - CONVERT1_BGRA_RGB
    - CONVERT16_BGRA_XXX
    - CONVERT12_BGRA_XXX
    - CONVERT4_BGRA_XXX
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToRGB_MSA(const uint32_t* src, int num_pixels,\n                                 uint8_t*
      dst)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LD_UB2
      Src: /src/libwebp/src/dsp/lossless_msa.c:264,1
    - Dst: VSHF_B2_UB
      Src: /src/libwebp/src/dsp/lossless_msa.c:265,1
    - Dst: ADD2
      Src: /src/libwebp/src/dsp/lossless_msa.c:266,1
    - Dst: ST_UB2
      Src: /src/libwebp/src/dsp/lossless_msa.c:267,1
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/lossless_msa.c:274,1
    - Dst: VSHF_UB
      Src: /src/libwebp/src/dsp/lossless_msa.c:275,1
    - Dst: ST_UB
      Src: /src/libwebp/src/dsp/lossless_msa.c:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - src
    - num_pixels
    - dst
    argTypes:
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 293
    functionName: AddGreenToBlueAndRed_MSA
    functionSourceFile: /src/libwebp/src/dsp/lossless_msa.c
    functionUses: 0
    functionsReached:
    - VSHF_UB
    - LD_UB
    - ST_UB2
    - ST_UB
    - VSHF_B2_UB
    - ADD2
    - LD_UB2
    linkageType: ''
    returnType: void
    signature: "void AddGreenToBlueAndRed_MSA(const uint32_t* const src, int num_pixels,\n
      \                                    uint32_t* dst)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/lossless_msa.c:300,1
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/lossless_msa.c:301,1
    - Dst: LD_UB2
      Src: /src/libwebp/src/dsp/lossless_msa.c:309,1
    - Dst: TRANSFORM_COLOR_INVERSE_8
      Src: /src/libwebp/src/dsp/lossless_msa.c:310,1
    - Dst: ST_UB2
      Src: /src/libwebp/src/dsp/lossless_msa.c:311,1
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/lossless_msa.c:318,1
    - Dst: TRANSFORM_COLOR_INVERSE_4
      Src: /src/libwebp/src/dsp/lossless_msa.c:319,1
    - Dst: ST_UB
      Src: /src/libwebp/src/dsp/lossless_msa.c:320,1
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/lossless_msa.c:326,1
    - Dst: TRANSFORM_COLOR_INVERSE_4
      Src: /src/libwebp/src/dsp/lossless_msa.c:327,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/lossless_msa.c:329,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/lossless_msa.c:330,1
    - Dst: SD
      Src: /src/libwebp/src/dsp/lossless_msa.c:331,1
    - Dst: SW
      Src: /src/libwebp/src/dsp/lossless_msa.c:332,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/lossless_msa.c:334,1
    - Dst: SD
      Src: /src/libwebp/src/dsp/lossless_msa.c:335,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/lossless_msa.c:337,1
    - Dst: SW
      Src: /src/libwebp/src/dsp/lossless_msa.c:338,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - m
    - src
    - num_pixels
    - dst
    argTypes:
    - VP8LMultipliers*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 342
    functionName: TransformColorInverse_MSA
    functionSourceFile: /src/libwebp/src/dsp/lossless_msa.c
    functionUses: 0
    functionsReached:
    - SD
    - LD_UB
    - ST_UB2
    - ST_UB
    - SW
    - __msa_fill_w
    - __msa_copy_s_w
    - TRANSFORM_COLOR_INVERSE_4
    - __msa_copy_s_d
    - LD_UB2
    - TRANSFORM_COLOR_INVERSE_8
    linkageType: ''
    returnType: void
    signature: "void TransformColorInverse_MSA(const VP8LMultipliers* const m,\n                                      const
      uint32_t* src, int num_pixels,\n                                      uint32_t*
      dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 356
    functionName: VP8LDspInitMSA
    functionSourceFile: /src/libwebp/src/dsp/lossless_msa.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8LDspInitMSA(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/cost_sse2.c:30,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/cost_sse2.c:31,1
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/cost_sse2.c:33,1
    - Dst: _mm_packs_epi16
      Src: /src/libwebp/src/dsp/cost_sse2.c:34,1
    - Dst: _mm_cmpeq_epi8
      Src: /src/libwebp/src/dsp/cost_sse2.c:35,1
    - Dst: _mm_movemask_epi8
      Src: /src/libwebp/src/dsp/cost_sse2.c:40,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/cost_sse2.c:43,1
    - Dst: BitsLog2Floor
      Src: /src/libwebp/src/dsp/cost_sse2.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - coeffs
    - res
    argTypes:
    - int16_t*
    - VP8Residual*
    assertStmts:
    - condition: (res->first == 0 || coeffs[0] == 0)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/libwebp/src/dsp/cost_sse2.c
    constantsTouched: []
    func_position:
      end: 46
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 46
    functionName: SetResidualCoeffs_SSE2
    functionSourceFile: /src/libwebp/src/dsp/cost_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_setzero_si128
    - assert
    - BitsLog2Floor
    - _mm_movemask_epi8
    - _mm_loadu_si128
    - _mm_packs_epi16
    - _mm_cmpeq_epi8
    linkageType: ''
    returnType: void
    signature: "void SetResidualCoeffs_SSE2(const int16_t* WEBP_RESTRICT const coeffs,\n
      \                                  VP8Residual* WEBP_RESTRICT const res)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8BitCost
      Src: /src/libwebp/src/dsp/cost_sse2.c:59,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/dsp/cost_sse2.c:62,1
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/cost_sse2.c:66,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/cost_sse2.c:67,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/cost_sse2.c:68,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/cost_sse2.c:69,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/cost_sse2.c:70,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/cost_sse2.c:71,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/cost_sse2.c:72,1
    - Dst: _mm_max_epi16
      Src: /src/libwebp/src/dsp/cost_sse2.c:73,1
    - Dst: _mm_max_epi16
      Src: /src/libwebp/src/dsp/cost_sse2.c:74,1
    - Dst: _mm_packs_epi16
      Src: /src/libwebp/src/dsp/cost_sse2.c:75,1
    - Dst: _mm_min_epu8
      Src: /src/libwebp/src/dsp/cost_sse2.c:76,1
    - Dst: _mm_min_epu8
      Src: /src/libwebp/src/dsp/cost_sse2.c:77,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/cost_sse2.c:79,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/cost_sse2.c:80,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/cost_sse2.c:82,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/cost_sse2.c:83,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/cost_sse2.c:96,1
    - Dst: VP8BitCost
      Src: /src/libwebp/src/dsp/cost_sse2.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ctx0
    - res
    argTypes:
    - int
    - VP8Residual*
    assertStmts:
    - condition: (flevel != 0)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/libwebp/src/dsp/cost_sse2.c
    constantsTouched: []
    func_position:
      end: 106
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 106
    functionName: GetResidualCost_SSE2
    functionSourceFile: /src/libwebp/src/dsp/cost_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_setzero_si128
    - _mm_max_epi16
    - _mm_storeu_si128
    - assert
    - VP8BitCost
    - _mm_sub_epi16
    - _mm_loadu_si128
    - _mm_min_epu8
    - _mm_packs_epi16
    - _mm_set1_epi8
    linkageType: ''
    returnType: int
    signature: int GetResidualCost_SSE2(int ctx0, const VP8Residual* const res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: VP8EncDspCostInitSSE2
    functionSourceFile: /src/libwebp/src/dsp/cost_sse2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8EncDspCostInitSSE2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 37
    functionName: ROW_FUNC_PART_1
    functionSourceFile: /src/libwebp/src/dsp/yuv_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROW_FUNC_PART_1()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - R
    - ','
    - G
    - ','
    - B
    - ','
    - K
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 61
    functionName: ROW_FUNC_PART_2
    functionSourceFile: /src/libwebp/src/dsp/yuv_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROW_FUNC_PART_2(R, G, B, K)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: ASM_CLOBBER_LIST
    functionSourceFile: /src/libwebp/src/dsp/yuv_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASM_CLOBBER_LIST()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - FUNC_NAME
    - ','
    - XSTEP
    - ','
    - R
    - ','
    - G
    - ','
    - B
    - ','
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 111
    functionName: ROW_FUNC
    functionSourceFile: /src/libwebp/src/dsp/yuv_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROW_FUNC(FUNC_NAME, XSTEP, R, G, B, A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: WebPInitSamplersMIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/yuv_mips_dsp_r2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPInitSamplersMIPSdspR2(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc_mips32.c:27,1
    - Dst: log
      Src: /src/libwebp/src/dsp/lossless_enc_mips32.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts:
    - condition: (v >= LOG_LOOKUP_IDX_MAX)
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/libwebp/src/dsp/lossless_enc_mips32.c
    constantsTouched: []
    func_position:
      end: 59
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 59
    functionName: FastSLog2Slow_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_mips32.c
    functionUses: 0
    functionsReached:
    - assert
    - log
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FastSLog2Slow_MIPS32(uint32_t v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/lossless_enc_mips32.c:62,1
    - Dst: DivRound
      Src: /src/libwebp/src/dsp/lossless_enc_mips32.c:83,1
    - Dst: log
      Src: /src/libwebp/src/dsp/lossless_enc_mips32.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts:
    - condition: (v >= LOG_LOOKUP_IDX_MAX)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/libwebp/src/dsp/lossless_enc_mips32.c
    constantsTouched: []
    func_position:
      end: 89
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 89
    functionName: FastLog2Slow_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_mips32.c
    functionUses: 0
    functionsReached:
    - assert
    - log
    - DivRound
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t FastLog2Slow_MIPS32(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - population
    - length
    argTypes:
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 129
    functionName: ExtraCost_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_mips32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ExtraCost_MIPS32(const uint32_t* const population, int length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc_mips32.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - val
    - i
    - val_prev
    - i_prev
    - bit_entropy
    - stats
    argTypes:
    - uint32_t
    - int
    - uint32_t*
    - int*
    - VP8LBitEntropy*
    - VP8LStreaks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 184
    functionName: GetEntropyUnrefinedHelper
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_mips32.c
    functionUses: 2
    functionsReached:
    - VP8LFastSLog2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE GetEntropyUnrefinedHelper(\n    uint32_t val, int i, uint32_t*
      WEBP_RESTRICT const val_prev,\n    int* WEBP_RESTRICT const i_prev,\n    VP8LBitEntropy*
      WEBP_RESTRICT const bit_entropy,\n    VP8LStreaks* WEBP_RESTRICT const stats)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/dsp/lossless_enc_mips32.c:194,1
    - Dst: VP8LBitEntropyInit
      Src: /src/libwebp/src/dsp/lossless_enc_mips32.c:195,1
    - Dst: GetEntropyUnrefinedHelper
      Src: /src/libwebp/src/dsp/lossless_enc_mips32.c:200,1
    - Dst: GetEntropyUnrefinedHelper
      Src: /src/libwebp/src/dsp/lossless_enc_mips32.c:203,1
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc_mips32.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - X
    - length
    - bit_entropy
    - stats
    argTypes:
    - uint32_t[]
    - int
    - VP8LBitEntropy*
    - VP8LStreaks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 206
    functionName: GetEntropyUnrefined_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_mips32.c
    functionUses: 0
    functionsReached:
    - VP8LFastSLog2
    - memset
    - VP8LBitEntropyInit
    - GetEntropyUnrefinedHelper
    linkageType: ''
    returnType: void
    signature: "void GetEntropyUnrefined_MIPS32(\n    const uint32_t X[], int length,\n
      \   VP8LBitEntropy* WEBP_RESTRICT const bit_entropy,\n    VP8LStreaks* WEBP_RESTRICT
      const stats)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/dsp/lossless_enc_mips32.c:216,1
    - Dst: VP8LBitEntropyInit
      Src: /src/libwebp/src/dsp/lossless_enc_mips32.c:217,1
    - Dst: GetEntropyUnrefinedHelper
      Src: /src/libwebp/src/dsp/lossless_enc_mips32.c:222,1
    - Dst: GetEntropyUnrefinedHelper
      Src: /src/libwebp/src/dsp/lossless_enc_mips32.c:225,1
    - Dst: VP8LFastSLog2
      Src: /src/libwebp/src/dsp/lossless_enc_mips32.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - X
    - Y
    - length
    - entropy
    - stats
    argTypes:
    - uint32_t[]
    - uint32_t[]
    - int
    - VP8LBitEntropy*
    - VP8LStreaks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 228
    functionName: GetCombinedEntropyUnrefined_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_mips32.c
    functionUses: 0
    functionsReached:
    - VP8LFastSLog2
    - memset
    - VP8LBitEntropyInit
    - GetEntropyUnrefinedHelper
    linkageType: ''
    returnType: void
    signature: "void GetCombinedEntropyUnrefined_MIPS32(\n    const uint32_t X[],
      const uint32_t Y[], int length,\n    VP8LBitEntropy* WEBP_RESTRICT const entropy,\n
      \   VP8LStreaks* WEBP_RESTRICT const stats)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - P0
    - ','
    - P1
    - ','
    - P2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 268
    functionName: ADD_TO_OUT
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_mips32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_TO_OUT(A, B, C, D, E, P0, P1, P2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - size
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 301
    functionName: AddVector_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_mips32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AddVector_MIPS32(const uint32_t* WEBP_RESTRICT pa,\n                             const
      uint32_t* WEBP_RESTRICT pb,\n                             uint32_t* WEBP_RESTRICT
      pout, int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - size
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 313
    functionName: AddVectorEq_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_mips32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AddVectorEq_MIPS32(const uint32_t* WEBP_RESTRICT pa,\n                               uint32_t*
      WEBP_RESTRICT pout, int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 335
    functionName: VP8LEncDspInitMIPS32
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_mips32.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8LEncDspInitMIPS32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:34,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:35,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:35,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:36,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:36,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:37,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:37,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:38,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:39,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:40,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c0
    - c1
    - c2
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: ClampedAddSubtractFull_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_cvtsi32_si128
    - _mm_setzero_si128
    - _mm_add_epi16
    - _mm_sub_epi16
    - _mm_packus_epi16
    - _mm_cvtsi128_si32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ClampedAddSubtractFull_SSE2(uint32_t c0,\n                                                        uint32_t
      c1,\n                                                        uint32_t c2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:47,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:48,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:48,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:49,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:49,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:50,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:50,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:51,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:52,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:53,1
    - Dst: _mm_cmpgt_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:54,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:55,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:56,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:57,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:58,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c0
    - c1
    - c2
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 60
    functionName: ClampedAddSubtractHalf_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_cmpgt_epi16
    - _mm_unpacklo_epi8
    - _mm_cvtsi32_si128
    - _mm_srli_epi16
    - _mm_setzero_si128
    - _mm_add_epi16
    - _mm_sub_epi16
    - _mm_srai_epi16
    - _mm_packus_epi16
    - _mm_cvtsi128_si32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ClampedAddSubtractHalf_SSE2(uint32_t c0,\n                                                        uint32_t
      c1,\n                                                        uint32_t c2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:63,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:64,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:65,1
    - Dst: _mm_sad_epu8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:66,1
    - Dst: _mm_sad_epu8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:67,1
    - Dst: _mm_cmpgt_epi32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:68,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: Select_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_cvtsi128_si32
    - _mm_sad_epu8
    - _mm_cvtsi32_si128
    - _mm_cmpgt_epi32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Select_SSE2(uint32_t a, uint32_t b, uint32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:77,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:78,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:79,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:79,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a0
    - a1
    - avg
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: Average2_m128i
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 2
    functionsReached:
    - _mm_avg_epu8
    - _mm_xor_si128
    - _mm_sub_epi8
    - _mm_and_si128
    - _mm_set1_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Average2_m128i(const __m128i* const a0,\n                                       const
      __m128i* const a1,\n                                       __m128i* const avg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:87,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:88,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:89,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:90,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:91,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:91,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a0
    - a1
    - avg
    argTypes:
    - uint32_t
    - uint32_t
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 93
    functionName: Average2_uint32_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_cvtsi32_si128
    - _mm_avg_epu8
    - _mm_xor_si128
    - _mm_sub_epi8
    - _mm_and_si128
    - _mm_set1_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Average2_uint32_SSE2(const uint32_t a0,\n                                             const
      uint32_t a1,\n                                             __m128i* const avg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:96,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:97,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:97,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:98,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:98,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:99,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a0
    - a1
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: Average2_uint32_16_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_cvtsi32_si128
    - _mm_srli_epi16
    - _mm_setzero_si128
    - _mm_add_epi16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Average2_uint32_16_SSE2(uint32_t a0, uint32_t a1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2_uint32_SSE2
      Src: /src/libwebp/src/dsp/lossless_sse2.c:105,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a0
    - a1
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: Average2_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_cvtsi128_si32
    - Average2_uint32_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Average2_SSE2(uint32_t a0, uint32_t a1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:111,1
    - Dst: Average2_uint32_16_SSE2
      Src: /src/libwebp/src/dsp/lossless_sse2.c:112,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:113,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:113,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:114,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:115,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:116,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a0
    - a1
    - a2
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: Average3_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_cvtsi32_si128
    - _mm_setzero_si128
    - _mm_srli_epi16
    - _mm_add_epi16
    - _mm_packus_epi16
    - _mm_cvtsi128_si32
    - Average2_uint32_16_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Average3_SSE2(uint32_t a0, uint32_t a1,\n                                          uint32_t
      a2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2_uint32_16_SSE2
      Src: /src/libwebp/src/dsp/lossless_sse2.c:122,1
    - Dst: Average2_uint32_16_SSE2
      Src: /src/libwebp/src/dsp/lossless_sse2.c:123,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:124,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:125,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:126,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a0
    - a1
    - a2
    - a3
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: Average4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_srli_epi16
    - _mm_add_epi16
    - _mm_packus_epi16
    - _mm_cvtsi128_si32
    - Average2_uint32_16_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Average4_SSE2(uint32_t a0, uint32_t a1, uint32_t a2,\n
      \                                         uint32_t a3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average3_SSE2
      Src: /src/libwebp/src/dsp/lossless_sse2.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: Predictor5_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - Average3_SSE2
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor5_SSE2(const uint32_t* const left,\n                                const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2_SSE2
      Src: /src/libwebp/src/dsp/lossless_sse2.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: Predictor6_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - Average2_SSE2
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor6_SSE2(const uint32_t* const left,\n                                const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2_SSE2
      Src: /src/libwebp/src/dsp/lossless_sse2.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: Predictor7_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - Average2_SSE2
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor7_SSE2(const uint32_t* const left,\n                                const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2_SSE2
      Src: /src/libwebp/src/dsp/lossless_sse2.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: Predictor8_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - Average2_SSE2
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor8_SSE2(const uint32_t* const left,\n                                const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2_SSE2
      Src: /src/libwebp/src/dsp/lossless_sse2.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: Predictor9_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - Average2_SSE2
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor9_SSE2(const uint32_t* const left,\n                                const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average4_SSE2
      Src: /src/libwebp/src/dsp/lossless_sse2.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: Predictor10_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - Average4_SSE2
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor10_SSE2(const uint32_t* const left,\n                                 const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Select_SSE2
      Src: /src/libwebp/src/dsp/lossless_sse2.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: Predictor11_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - Select_SSE2
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor11_SSE2(const uint32_t* const left,\n                                 const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClampedAddSubtractFull_SSE2
      Src: /src/libwebp/src/dsp/lossless_sse2.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: Predictor12_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - ClampedAddSubtractFull_SSE2
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor12_SSE2(const uint32_t* const left,\n                                 const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClampedAddSubtractHalf_SSE2
      Src: /src/libwebp/src/dsp/lossless_sse2.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: Predictor13_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - ClampedAddSubtractHalf_SSE2
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor13_SSE2(const uint32_t* const left,\n                                 const
      uint32_t* const top)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:184,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:186,1
    - Dst: _mm_add_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:187,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 194
    functionName: PredictorAdd0_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_storeu_si128
    - _mm_set1_epi32
    - _mm_loadu_si128
    - _mm_add_epi8
    linkageType: ''
    returnType: void
    signature: "void PredictorAdd0_SSE2(const uint32_t* in, const uint32_t* upper,\n
      \                              int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:200,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:203,1
    - Dst: _mm_slli_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:205,1
    - Dst: _mm_add_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:207,1
    - Dst: _mm_slli_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:209,1
    - Dst: _mm_add_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:211,1
    - Dst: _mm_add_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:212,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:213,1
    - Dst: _mm_shuffle_epi32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 220
    functionName: PredictorAdd1_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_storeu_si128
    - _mm_loadu_si128
    - _mm_slli_si128
    - _mm_add_epi8
    - _mm_shuffle_epi32
    linkageType: ''
    returnType: void
    signature: "void PredictorAdd1_SSE2(const uint32_t* in, const uint32_t* upper,\n
      \                              int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - IN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 239
    functionName: GENERATE_PREDICTOR_1
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_PREDICTOR_1(X, IN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - IN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 272
    functionName: GENERATE_PREDICTOR_2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_PREDICTOR_2(X, IN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OUT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 287
    functionName: DO_PRED10
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_PRED10(OUT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:299,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:301,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:302,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:303,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:304,1
    - Dst: Average2_m128i
      Src: /src/libwebp/src/dsp/lossless_sse2.c:306,1
    - Dst: DO_PRED10
      Src: /src/libwebp/src/dsp/lossless_sse2.c:307,1
    - Dst: DO_PRED10
      Src: /src/libwebp/src/dsp/lossless_sse2.c:309,1
    - Dst: DO_PRED10
      Src: /src/libwebp/src/dsp/lossless_sse2.c:311,1
    - Dst: DO_PRED10
      Src: /src/libwebp/src/dsp/lossless_sse2.c:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 318
    functionName: PredictorAdd10_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_cvtsi32_si128
    - _mm_loadu_si128
    - DO_PRED10
    - Average2_m128i
    linkageType: ''
    returnType: void
    signature: "void PredictorAdd10_SSE2(const uint32_t* in, const uint32_t* upper,\n
      \                               int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OUT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 327
    functionName: DO_PRED11
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_PRED11(OUT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:349,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:351,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:352,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:353,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:358,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:359,1
    - Dst: _mm_unpackhi_epi32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:360,1
    - Dst: _mm_unpackhi_epi32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:361,1
    - Dst: _mm_sad_epu8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:362,1
    - Dst: _mm_sad_epu8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:363,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:364,1
    - Dst: DO_PRED11
      Src: /src/libwebp/src/dsp/lossless_sse2.c:366,1
    - Dst: DO_PRED11
      Src: /src/libwebp/src/dsp/lossless_sse2.c:368,1
    - Dst: DO_PRED11
      Src: /src/libwebp/src/dsp/lossless_sse2.c:370,1
    - Dst: DO_PRED11
      Src: /src/libwebp/src/dsp/lossless_sse2.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 377
    functionName: PredictorAdd11_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_cvtsi32_si128
    - DO_PRED11
    - _mm_unpackhi_epi32
    - _mm_packs_epi32
    - _mm_unpacklo_epi32
    - _mm_sad_epu8
    - _mm_loadu_si128
    linkageType: ''
    returnType: void
    signature: "void PredictorAdd11_SSE2(const uint32_t* in, const uint32_t* upper,\n
      \                               int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - DIFF
    - ','
    - LANE
    - ','
    - OUT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 390
    functionName: DO_PRED12
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_PRED12(DIFF, LANE, OUT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:401,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:402,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:403,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:406,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:407,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:408,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:409,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:410,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:411,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:412,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:413,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:414,1
    - Dst: DO_PRED12
      Src: /src/libwebp/src/dsp/lossless_sse2.c:415,1
    - Dst: DO_PRED12_SHIFT
      Src: /src/libwebp/src/dsp/lossless_sse2.c:416,1
    - Dst: DO_PRED12
      Src: /src/libwebp/src/dsp/lossless_sse2.c:417,1
    - Dst: DO_PRED12_SHIFT
      Src: /src/libwebp/src/dsp/lossless_sse2.c:418,1
    - Dst: DO_PRED12
      Src: /src/libwebp/src/dsp/lossless_sse2.c:419,1
    - Dst: DO_PRED12_SHIFT
      Src: /src/libwebp/src/dsp/lossless_sse2.c:420,1
    - Dst: DO_PRED12
      Src: /src/libwebp/src/dsp/lossless_sse2.c:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 426
    functionName: PredictorAdd12_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - DO_PRED12_SHIFT
    - _mm_cvtsi32_si128
    - _mm_unpacklo_epi8
    - DO_PRED12
    - _mm_setzero_si128
    - _mm_sub_epi16
    - _mm_loadu_si128
    - _mm_unpackhi_epi8
    linkageType: ''
    returnType: void
    signature: "void PredictorAdd12_SSE2(const uint32_t* in, const uint32_t* upper,\n
      \                               int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:441,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:442,1
    - Dst: _mm_shufflelo_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:443,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/lossless_sse2.c:443,1
    - Dst: _mm_shufflehi_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:444,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/lossless_sse2.c:444,1
    - Dst: _mm_add_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:445,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:446,1
    - Dst: VP8LAddGreenToBlueAndRed_C
      Src: /src/libwebp/src/dsp/lossless_sse2.c:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - src
    - num_pixels
    - dst
    argTypes:
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 452
    functionName: AddGreenToBlueAndRed_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_shufflelo_epi16
    - _mm_srli_epi16
    - _mm_storeu_si128
    - _MM_SHUFFLE
    - _mm_loadu_si128
    - _mm_add_epi8
    - _mm_shufflehi_epi16
    - VP8LAddGreenToBlueAndRed_C
    linkageType: ''
    returnType: void
    signature: "void AddGreenToBlueAndRed_SSE2(const uint32_t* const src, int num_pixels,\n
      \                                     uint32_t* dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:464,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_sse2.c:464,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_sse2.c:464,1
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:465,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_sse2.c:465,1
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:468,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:471,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:472,1
    - Dst: _mm_shufflelo_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:473,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/lossless_sse2.c:473,1
    - Dst: _mm_shufflehi_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:474,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/lossless_sse2.c:474,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:475,1
    - Dst: _mm_add_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:476,1
    - Dst: _mm_slli_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:477,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:478,1
    - Dst: _mm_srli_epi32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:479,1
    - Dst: _mm_add_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:480,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:481,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:482,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:483,1
    - Dst: VP8LTransformColorInverse_C
      Src: /src/libwebp/src/dsp/lossless_sse2.c:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - m
    - src
    - num_pixels
    - dst
    argTypes:
    - VP8LMultipliers*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 489
    functionName: TransformColorInverse_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - VP8LTransformColorInverse_C
    - _mm_set1_epi32
    - CST
    - _mm_shufflelo_epi16
    - _mm_mulhi_epi16
    - _mm_srli_epi16
    - _mm_storeu_si128
    - _mm_srli_epi32
    - _MM_SHUFFLE
    - _mm_and_si128
    - _mm_loadu_si128
    - _mm_add_epi8
    - _mm_slli_epi16
    - _mm_shufflehi_epi16
    - MK_CST_16
    - _mm_or_si128
    linkageType: ''
    returnType: void
    signature: "void TransformColorInverse_SSE2(const VP8LMultipliers* const m,\n
      \                                      const uint32_t* const src,\n                                       int
      num_pixels, uint32_t* dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 462
    functionName: CST
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CST(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HI
    - ','
    - LO
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 464
    functionName: MK_CST_16
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MK_CST_16(HI, LO)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:501,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:502,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:503,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:504,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:505,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:506,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:507,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:508,1
    - Dst: VP8L32bToPlanar_SSE2
      Src: /src/libwebp/src/dsp/lossless_sse2.c:509,1
    - Dst: VP8L32bToPlanar_SSE2
      Src: /src/libwebp/src/dsp/lossless_sse2.c:510,1
    - Dst: VP8PlanarTo24b_SSE2
      Src: /src/libwebp/src/dsp/lossless_sse2.c:513,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:514,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:515,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:516,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:517,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:518,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:519,1
    - Dst: VP8LConvertBGRAToRGB_C
      Src: /src/libwebp/src/dsp/lossless_sse2.c:526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 528
    functionName: ConvertBGRAToRGB_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - VP8L32bToPlanar_SSE2
    - VP8PlanarTo24b_SSE2
    - _mm_storeu_si128
    - _mm_loadu_si128
    - VP8LConvertBGRAToRGB_C
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToRGB_SSE2(const uint32_t* WEBP_RESTRICT src,\n                                  int
      num_pixels, uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:532,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:536,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:537,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:538,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:539,1
    - Dst: _mm_andnot_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:540,1
    - Dst: _mm_andnot_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:541,1
    - Dst: _mm_shufflelo_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:542,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/lossless_sse2.c:542,1
    - Dst: _mm_shufflelo_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:543,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/lossless_sse2.c:543,1
    - Dst: _mm_shufflehi_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:544,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/lossless_sse2.c:544,1
    - Dst: _mm_shufflehi_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:545,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/lossless_sse2.c:545,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:546,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:547,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:548,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:549,1
    - Dst: VP8LConvertBGRAToRGBA_C
      Src: /src/libwebp/src/dsp/lossless_sse2.c:554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 556
    functionName: ConvertBGRAToRGBA_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_shufflelo_epi16
    - _mm_storeu_si128
    - _MM_SHUFFLE
    - _mm_and_si128
    - _mm_loadu_si128
    - _mm_andnot_si128
    - VP8LConvertBGRAToRGBA_C
    - _mm_shufflehi_epi16
    - _mm_or_si128
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToRGBA_SSE2(const uint32_t* WEBP_RESTRICT src,\n                                   int
      num_pixels, uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:561,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:562,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:566,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:567,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:568,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:569,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:570,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:571,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:572,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:573,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/lossless_sse2.c:574,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/lossless_sse2.c:575,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:576,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:577,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:578,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:579,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:580,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:582,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:584,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:586,1
    - Dst: VP8LConvertBGRAToRGBA4444_C
      Src: /src/libwebp/src/dsp/lossless_sse2.c:591,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 593
    functionName: ConvertBGRAToRGBA4444_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_srli_epi16
    - _mm_storeu_si128
    - _mm_unpackhi_epi64
    - _mm_and_si128
    - _mm_loadu_si128
    - VP8LConvertBGRAToRGBA4444_C
    - _mm_srli_si128
    - _mm_set1_epi8
    - _mm_unpackhi_epi8
    - _mm_unpacklo_epi64
    - _mm_or_si128
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToRGBA4444_SSE2(const uint32_t* WEBP_RESTRICT src,\n
      \                                      int num_pixels,\n                                       uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:598,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:599,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:600,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:604,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:605,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:606,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:607,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:608,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:609,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:610,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:611,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/lossless_sse2.c:612,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/lossless_sse2.c:613,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:614,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:615,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:616,1
    - Dst: _mm_slli_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:617,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:618,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:619,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:620,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/lossless_sse2.c:621,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:622,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:624,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/lossless_sse2.c:626,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:628,1
    - Dst: VP8LConvertBGRAToRGB565_C
      Src: /src/libwebp/src/dsp/lossless_sse2.c:633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 635
    functionName: ConvertBGRAToRGB565_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_srli_epi16
    - _mm_storeu_si128
    - _mm_unpackhi_epi64
    - VP8LConvertBGRAToRGB565_C
    - _mm_slli_epi16
    - _mm_and_si128
    - _mm_loadu_si128
    - _mm_srli_si128
    - _mm_set1_epi8
    - _mm_unpackhi_epi8
    - _mm_unpacklo_epi64
    - _mm_or_si128
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToRGB565_SSE2(const uint32_t* WEBP_RESTRICT src,\n
      \                                    int num_pixels,\n                                     uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set_epi32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:639,1
    - Dst: _mm_set_epi32
      Src: /src/libwebp/src/dsp/lossless_sse2.c:640,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:645,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:646,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:647,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:648,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:649,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:650,1
    - Dst: _mm_srli_epi64
      Src: /src/libwebp/src/dsp/lossless_sse2.c:651,1
    - Dst: _mm_srli_epi64
      Src: /src/libwebp/src/dsp/lossless_sse2.c:652,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:653,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:654,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:655,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/lossless_sse2.c:656,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/lossless_sse2.c:657,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/lossless_sse2.c:658,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/lossless_sse2.c:659,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/lossless_sse2.c:660,1
    - Dst: VP8LConvertBGRAToBGR_C
      Src: /src/libwebp/src/dsp/lossless_sse2.c:666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 668
    functionName: ConvertBGRAToBGR_SSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_srli_epi64
    - _mm_storel_epi64
    - _mm_set_epi32
    - _mm_and_si128
    - _mm_loadu_si128
    - _mm_srli_si128
    - VP8LConvertBGRAToBGR_C
    - _mm_or_si128
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToBGR_SSE2(const uint32_t* WEBP_RESTRICT src,\n                                  int
      num_pixels, uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libwebp/src/dsp/lossless_sse2.c:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 720
    functionName: VP8LDspInitSSE2
    functionSourceFile: /src/libwebp/src/dsp/lossless_sse2.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8LDspInitSSE2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 45
    functionName: IDCT_1D_W
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IDCT_1D_W(in0, in1, in2, in3, out0, out1, out2, out3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LD_SH2
      Src: /src/libwebp/src/dsp/enc_msa.c:55,1
    - Dst: UNPCK_SH_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:56,1
    - Dst: UNPCK_SH_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:57,1
    - Dst: IDCT_1D_W
      Src: /src/libwebp/src/dsp/enc_msa.c:58,1
    - Dst: TRANSPOSE4x4_SW_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:59,1
    - Dst: IDCT_1D_W
      Src: /src/libwebp/src/dsp/enc_msa.c:60,1
    - Dst: SRARI_W4_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:61,1
    - Dst: TRANSPOSE4x4_SW_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:62,1
    - Dst: LD_SB4
      Src: /src/libwebp/src/dsp/enc_msa.c:63,1
    - Dst: ILVR_B4_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:64,1
    - Dst: ILVR_H4_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:66,1
    - Dst: ADD4
      Src: /src/libwebp/src/dsp/enc_msa.c:68,1
    - Dst: CLIP_SW4_0_255
      Src: /src/libwebp/src/dsp/enc_msa.c:69,1
    - Dst: PCKEV_B2_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:70,1
    - Dst: __msa_pckev_b
      Src: /src/libwebp/src/dsp/enc_msa.c:71,1
    - Dst: ST4x4_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 73
    functionName: ITransformOne
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 2
    functionsReached:
    - ADD4
    - ILVR_B4_SW
    - IDCT_1D_W
    - CLIP_SW4_0_255
    - PCKEV_B2_SW
    - ST4x4_UB
    - SRARI_W4_SW
    - LD_SB4
    - LD_SH2
    - TRANSPOSE4x4_SW_SW
    - UNPCK_SH_SW
    - ILVR_H4_SW
    - __msa_pckev_b
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ITransformOne(const uint8_t* WEBP_RESTRICT ref,\n                                      const
      int16_t* WEBP_RESTRICT in,\n                                      uint8_t* WEBP_RESTRICT
      dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ITransformOne
      Src: /src/libwebp/src/dsp/enc_msa.c:78,1
    - Dst: ITransformOne
      Src: /src/libwebp/src/dsp/enc_msa.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - do_two
    argTypes:
    - uint8_t*
    - int16_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: ITransform_MSA
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - ITransformOne
    linkageType: ''
    returnType: void
    signature: "void ITransform_MSA(const uint8_t* WEBP_RESTRICT ref,\n                           const
      int16_t* WEBP_RESTRICT in,\n                           uint8_t* WEBP_RESTRICT
      dst, int do_two)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LW4
      Src: /src/libwebp/src/dsp/enc_msa.c:99,1
    - Dst: INSERT_W4_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:100,1
    - Dst: LW4
      Src: /src/libwebp/src/dsp/enc_msa.c:101,1
    - Dst: INSERT_W4_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:102,1
    - Dst: ILVRL_B2_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:103,1
    - Dst: HSUB_UB2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:104,1
    - Dst: VSHF_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:105,1
    - Dst: ADDSUB2
      Src: /src/libwebp/src/dsp/enc_msa.c:106,1
    - Dst: SRLI_H
      Src: /src/libwebp/src/dsp/enc_msa.c:107,1
    - Dst: VSHF_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:108,1
    - Dst: __msa_hadd_s_w
      Src: /src/libwebp/src/dsp/enc_msa.c:109,1
    - Dst: __msa_hsub_s_w
      Src: /src/libwebp/src/dsp/enc_msa.c:110,1
    - Dst: FILL_W2_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:111,1
    - Dst: DPADD_SH2_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:112,1
    - Dst: SRAI_W2_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:113,1
    - Dst: PCKEV_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:114,1
    - Dst: VSHF_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:115,1
    - Dst: ADDSUB2
      Src: /src/libwebp/src/dsp/enc_msa.c:116,1
    - Dst: VSHF_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:117,1
    - Dst: __msa_hadd_s_w
      Src: /src/libwebp/src/dsp/enc_msa.c:118,1
    - Dst: __msa_hsub_s_w
      Src: /src/libwebp/src/dsp/enc_msa.c:119,1
    - Dst: ADDVI_W2_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:120,1
    - Dst: SRAI_W2_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:121,1
    - Dst: FILL_W2_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:122,1
    - Dst: DPADD_SH2_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:123,1
    - Dst: SRAI_W2_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:124,1
    - Dst: UNPCK_R_SH_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:125,1
    - Dst: __msa_ceqi_w
      Src: /src/libwebp/src/dsp/enc_msa.c:126,1
    - Dst: __msa_nor_v
      Src: /src/libwebp/src/dsp/enc_msa.c:127,1
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/enc_msa.c:128,1
    - Dst: __msa_and_v
      Src: /src/libwebp/src/dsp/enc_msa.c:129,1
    - Dst: PCKEV_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:131,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/enc_msa.c:132,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/enc_msa.c:133,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/enc_msa.c:134,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/enc_msa.c:135,1
    - Dst: SD4
      Src: /src/libwebp/src/dsp/enc_msa.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 137
    functionName: FTransform_MSA
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - SD4
    - ADDSUB2
    - VSHF_H2_SH
    - SRLI_H
    - __msa_ceqi_w
    - SRAI_W2_SW
    - __msa_hsub_s_w
    - __msa_and_v
    - __msa_copy_s_d
    - DPADD_SH2_SW
    - __msa_hadd_s_w
    - UNPCK_R_SH_SW
    - __msa_nor_v
    - PCKEV_H2_SH
    - INSERT_W4_UB
    - ADDVI_W2_SW
    - __msa_fill_w
    - HSUB_UB2_SH
    - ILVRL_B2_UB
    - FILL_W2_SW
    - LW4
    linkageType: ''
    returnType: void
    signature: "void FTransform_MSA(const uint8_t* WEBP_RESTRICT src,\n                           const
      uint8_t* WEBP_RESTRICT ref,\n                           int16_t* WEBP_RESTRICT
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_insert_h
      Src: /src/libwebp/src/dsp/enc_msa.c:150,1
    - Dst: __msa_insert_h
      Src: /src/libwebp/src/dsp/enc_msa.c:151,1
    - Dst: __msa_insert_h
      Src: /src/libwebp/src/dsp/enc_msa.c:152,1
    - Dst: __msa_insert_h
      Src: /src/libwebp/src/dsp/enc_msa.c:153,1
    - Dst: __msa_insert_h
      Src: /src/libwebp/src/dsp/enc_msa.c:154,1
    - Dst: __msa_insert_h
      Src: /src/libwebp/src/dsp/enc_msa.c:155,1
    - Dst: __msa_insert_h
      Src: /src/libwebp/src/dsp/enc_msa.c:156,1
    - Dst: __msa_insert_h
      Src: /src/libwebp/src/dsp/enc_msa.c:157,1
    - Dst: __msa_insert_h
      Src: /src/libwebp/src/dsp/enc_msa.c:158,1
    - Dst: __msa_insert_h
      Src: /src/libwebp/src/dsp/enc_msa.c:159,1
    - Dst: __msa_insert_h
      Src: /src/libwebp/src/dsp/enc_msa.c:160,1
    - Dst: __msa_insert_h
      Src: /src/libwebp/src/dsp/enc_msa.c:161,1
    - Dst: __msa_insert_h
      Src: /src/libwebp/src/dsp/enc_msa.c:162,1
    - Dst: __msa_insert_h
      Src: /src/libwebp/src/dsp/enc_msa.c:163,1
    - Dst: __msa_insert_h
      Src: /src/libwebp/src/dsp/enc_msa.c:164,1
    - Dst: __msa_insert_h
      Src: /src/libwebp/src/dsp/enc_msa.c:165,1
    - Dst: ADDSUB2
      Src: /src/libwebp/src/dsp/enc_msa.c:166,1
    - Dst: VSHF_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:167,1
    - Dst: ADDSUB2
      Src: /src/libwebp/src/dsp/enc_msa.c:168,1
    - Dst: VSHF_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:169,1
    - Dst: ADDSUB2
      Src: /src/libwebp/src/dsp/enc_msa.c:170,1
    - Dst: VSHF_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:171,1
    - Dst: ADDSUB2
      Src: /src/libwebp/src/dsp/enc_msa.c:172,1
    - Dst: SRAI_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:173,1
    - Dst: ST_SH2
      Src: /src/libwebp/src/dsp/enc_msa.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 175
    functionName: FTransformWHT_MSA
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - ST_SH2
    - ADDSUB2
    - VSHF_H2_SH
    - SRAI_H2_SH
    - __msa_insert_h
    linkageType: ''
    returnType: void
    signature: "void FTransformWHT_MSA(const int16_t* WEBP_RESTRICT in,\n                              int16_t*
      WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LW4
      Src: /src/libwebp/src/dsp/enc_msa.c:190,1
    - Dst: INSERT_W4_SB
      Src: /src/libwebp/src/dsp/enc_msa.c:191,1
    - Dst: ILVRL_B2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:192,1
    - Dst: VSHF_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:193,1
    - Dst: ADDSUB2
      Src: /src/libwebp/src/dsp/enc_msa.c:194,1
    - Dst: VSHF_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:195,1
    - Dst: ADDSUB2
      Src: /src/libwebp/src/dsp/enc_msa.c:196,1
    - Dst: VSHF_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:197,1
    - Dst: ADDSUB2
      Src: /src/libwebp/src/dsp/enc_msa.c:198,1
    - Dst: VSHF_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:199,1
    - Dst: ADDSUB2
      Src: /src/libwebp/src/dsp/enc_msa.c:200,1
    - Dst: __msa_add_a_h
      Src: /src/libwebp/src/dsp/enc_msa.c:201,1
    - Dst: __msa_add_a_h
      Src: /src/libwebp/src/dsp/enc_msa.c:202,1
    - Dst: LD_SH2
      Src: /src/libwebp/src/dsp/enc_msa.c:203,1
    - Dst: DOTP_SH2_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:204,1
    - Dst: HADD_SW_S32
      Src: /src/libwebp/src/dsp/enc_msa.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 208
    functionName: TTransform_MSA
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - __msa_add_a_h
    - ADDSUB2
    - VSHF_H2_SH
    - DOTP_SH2_SW
    - LW4
    - ILVRL_B2_SH
    - HADD_SW_S32
    - LD_SH2
    - INSERT_W4_SB
    linkageType: ''
    returnType: int
    signature: "int TTransform_MSA(const uint8_t* WEBP_RESTRICT in,\n                          const
      uint16_t* WEBP_RESTRICT w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TTransform_MSA
      Src: /src/libwebp/src/dsp/enc_msa.c:213,1
    - Dst: TTransform_MSA
      Src: /src/libwebp/src/dsp/enc_msa.c:214,1
    - Dst: abs
      Src: /src/libwebp/src/dsp/enc_msa.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - w
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: Disto4x4_MSA
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - TTransform_MSA
    - abs
    linkageType: ''
    returnType: int
    signature: "int Disto4x4_MSA(const uint8_t* WEBP_RESTRICT const a,\n                        const
      uint8_t* WEBP_RESTRICT const b,\n                        const uint16_t* WEBP_RESTRICT
      const w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Disto4x4_MSA
      Src: /src/libwebp/src/dsp/enc_msa.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - a
    - b
    - w
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 229
    functionName: Disto16x16_MSA
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - Disto4x4_MSA
    linkageType: ''
    returnType: int
    signature: "int Disto16x16_MSA(const uint8_t* WEBP_RESTRICT const a,\n                          const
      uint8_t* WEBP_RESTRICT const b,\n                          const uint16_t* WEBP_RESTRICT
      const w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8FTransform
      Src: /src/libwebp/src/dsp/enc_msa.c:241,1
    - Dst: __msa_ldi_h
      Src: /src/libwebp/src/dsp/enc_msa.c:246,1
    - Dst: LD_SH2
      Src: /src/libwebp/src/dsp/enc_msa.c:247,1
    - Dst: __msa_add_a_h
      Src: /src/libwebp/src/dsp/enc_msa.c:248,1
    - Dst: __msa_add_a_h
      Src: /src/libwebp/src/dsp/enc_msa.c:249,1
    - Dst: SRAI_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:250,1
    - Dst: __msa_min_s_h
      Src: /src/libwebp/src/dsp/enc_msa.c:251,1
    - Dst: __msa_min_s_h
      Src: /src/libwebp/src/dsp/enc_msa.c:252,1
    - Dst: ST_SH2
      Src: /src/libwebp/src/dsp/enc_msa.c:253,1
    - Dst: VP8SetHistogramData
      Src: /src/libwebp/src/dsp/enc_msa.c:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - ref
    - pred
    - start_block
    - end_block
    - histo
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - VP8Histogram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 260
    functionName: CollectHistogram_MSA
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - VP8SetHistogramData
    - ST_SH2
    - __msa_add_a_h
    - VP8FTransform
    - __msa_ldi_h
    - LD_SH2
    - SRAI_H2_SH
    - __msa_min_s_h
    linkageType: ''
    returnType: void
    signature: "void CollectHistogram_MSA(const uint8_t* ref, const uint8_t* pred,\n
      \                                int start_block, int end_block,\n                                 VP8Histogram*
      const histo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 268
    functionName: DST
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DST(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 269
    functionName: AVG3
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AVG3(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    functionName: AVG2
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AVG2(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LD
      Src: /src/libwebp/src/dsp/enc_msa.c:275,1
    - Dst: __msa_insert_d
      Src: /src/libwebp/src/dsp/enc_msa.c:276,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:277,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:278,1
    - Dst: __msa_ave_u_b
      Src: /src/libwebp/src/dsp/enc_msa.c:279,1
    - Dst: __msa_ave_u_b
      Src: /src/libwebp/src/dsp/enc_msa.c:280,1
    - Dst: __msa_aver_u_b
      Src: /src/libwebp/src/dsp/enc_msa.c:281,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/enc_msa.c:282,1
    - Dst: SW4
      Src: /src/libwebp/src/dsp/enc_msa.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 284
    functionName: VE4
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 2
    functionsReached:
    - __msa_insert_d
    - __msa_ave_u_b
    - __msa_aver_u_b
    - LD
    - SW4
    - SLDI_UB
    - __msa_copy_s_w
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VE4(uint8_t* WEBP_RESTRICT dst,\n                            const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPUint32ToMem
      Src: /src/libwebp/src/dsp/enc_msa.c:294,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:294,1
    - Dst: WebPUint32ToMem
      Src: /src/libwebp/src/dsp/enc_msa.c:295,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:295,1
    - Dst: WebPUint32ToMem
      Src: /src/libwebp/src/dsp/enc_msa.c:296,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:296,1
    - Dst: WebPUint32ToMem
      Src: /src/libwebp/src/dsp/enc_msa.c:297,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 298
    functionName: HE4
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 2
    functionsReached:
    - WebPUint32ToMem
    - AVG3
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE HE4(uint8_t* WEBP_RESTRICT dst,\n                            const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SW4
      Src: /src/libwebp/src/dsp/enc_msa.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 308
    functionName: DC4
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 2
    functionsReached:
    - SW4
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DC4(uint8_t* WEBP_RESTRICT dst,\n                            const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LD
      Src: /src/libwebp/src/dsp/enc_msa.c:313,1
    - Dst: __msa_insert_d
      Src: /src/libwebp/src/dsp/enc_msa.c:314,1
    - Dst: __msa_insert_b
      Src: /src/libwebp/src/dsp/enc_msa.c:315,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:316,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:317,1
    - Dst: __msa_ave_u_b
      Src: /src/libwebp/src/dsp/enc_msa.c:318,1
    - Dst: __msa_ave_u_b
      Src: /src/libwebp/src/dsp/enc_msa.c:319,1
    - Dst: __msa_aver_u_b
      Src: /src/libwebp/src/dsp/enc_msa.c:320,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:321,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:322,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:323,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/enc_msa.c:324,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/enc_msa.c:325,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/enc_msa.c:326,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/enc_msa.c:327,1
    - Dst: SW4
      Src: /src/libwebp/src/dsp/enc_msa.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 329
    functionName: RD4
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 2
    functionsReached:
    - __msa_insert_b
    - __msa_insert_d
    - __msa_ave_u_b
    - __msa_aver_u_b
    - LD
    - SW4
    - SLDI_UB
    - __msa_copy_s_w
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE RD4(uint8_t* WEBP_RESTRICT dst,\n                            const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LD
      Src: /src/libwebp/src/dsp/enc_msa.c:334,1
    - Dst: __msa_insert_d
      Src: /src/libwebp/src/dsp/enc_msa.c:335,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:336,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:337,1
    - Dst: __msa_insert_b
      Src: /src/libwebp/src/dsp/enc_msa.c:338,1
    - Dst: __msa_ave_u_b
      Src: /src/libwebp/src/dsp/enc_msa.c:339,1
    - Dst: __msa_ave_u_b
      Src: /src/libwebp/src/dsp/enc_msa.c:340,1
    - Dst: __msa_aver_u_b
      Src: /src/libwebp/src/dsp/enc_msa.c:341,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:342,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:343,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:344,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/enc_msa.c:345,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/enc_msa.c:346,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/enc_msa.c:347,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/enc_msa.c:348,1
    - Dst: SW4
      Src: /src/libwebp/src/dsp/enc_msa.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 350
    functionName: LD4
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 2
    functionsReached:
    - __msa_insert_b
    - __msa_insert_d
    - __msa_ave_u_b
    - __msa_aver_u_b
    - LD
    - SW4
    - SLDI_UB
    - __msa_copy_s_w
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE LD4(uint8_t* WEBP_RESTRICT dst,\n                            const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:362,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:362,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_msa.c:362,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:363,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:363,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_msa.c:363,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:364,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:364,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_msa.c:364,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:365,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_msa.c:365,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:366,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:366,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:367,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:367,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:368,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:368,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:368,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:369,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:369,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:369,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:370,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:370,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:370,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:371,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 372
    functionName: VR4
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 2
    functionsReached:
    - AVG2
    - AVG3
    - DST
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VR4(uint8_t* WEBP_RESTRICT dst,\n                            const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:384,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_msa.c:384,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:385,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:385,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_msa.c:385,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:386,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:386,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_msa.c:386,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:387,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:387,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_msa.c:387,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:388,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:388,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:389,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:389,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:389,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:390,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:390,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:390,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:391,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:391,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:391,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:392,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:392,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:393,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 394
    functionName: VL4
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 2
    functionsReached:
    - AVG2
    - AVG3
    - DST
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VL4(uint8_t* WEBP_RESTRICT dst,\n                            const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:402,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_msa.c:402,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:403,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:403,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_msa.c:403,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:404,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:404,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_msa.c:404,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:405,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:405,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:406,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:406,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:406,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:407,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:407,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:407,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:408,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:408,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:408,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:408,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:408,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 409
    functionName: HU4
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 2
    functionsReached:
    - AVG2
    - AVG3
    - DST
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE HU4(uint8_t* WEBP_RESTRICT dst,\n                            const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:421,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:421,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_msa.c:421,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:422,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:422,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_msa.c:422,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:423,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:423,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_msa.c:423,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:424,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_msa.c:424,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:425,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:425,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:426,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:426,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:427,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:427,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:427,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:428,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:428,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:428,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:429,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:429,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:429,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_msa.c:430,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_msa.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 431
    functionName: HD4
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 2
    functionsReached:
    - AVG2
    - AVG3
    - DST
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE HD4(uint8_t* WEBP_RESTRICT dst,\n                            const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/enc_msa.c:436,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/enc_msa.c:437,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/enc_msa.c:438,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/enc_msa.c:439,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/enc_msa.c:440,1
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:441,1
    - Dst: __msa_ilvr_b
      Src: /src/libwebp/src/dsp/enc_msa.c:442,1
    - Dst: ADD4
      Src: /src/libwebp/src/dsp/enc_msa.c:445,1
    - Dst: CLIP_SH4_0_255
      Src: /src/libwebp/src/dsp/enc_msa.c:446,1
    - Dst: PCKEV_ST4x4_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 448
    functionName: TM4
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 2
    functionsReached:
    - ADD4
    - LD_UB
    - __msa_fill_h
    - __msa_ilvr_b
    - PCKEV_ST4x4_UB
    - CLIP_SH4_0_255
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE TM4(uint8_t* WEBP_RESTRICT dst,\n                            const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DC4
      Src: /src/libwebp/src/dsp/enc_msa.c:456,1
    - Dst: TM4
      Src: /src/libwebp/src/dsp/enc_msa.c:457,1
    - Dst: VE4
      Src: /src/libwebp/src/dsp/enc_msa.c:458,1
    - Dst: HE4
      Src: /src/libwebp/src/dsp/enc_msa.c:459,1
    - Dst: RD4
      Src: /src/libwebp/src/dsp/enc_msa.c:460,1
    - Dst: VR4
      Src: /src/libwebp/src/dsp/enc_msa.c:461,1
    - Dst: LD4
      Src: /src/libwebp/src/dsp/enc_msa.c:462,1
    - Dst: VL4
      Src: /src/libwebp/src/dsp/enc_msa.c:463,1
    - Dst: HD4
      Src: /src/libwebp/src/dsp/enc_msa.c:464,1
    - Dst: HU4
      Src: /src/libwebp/src/dsp/enc_msa.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 466
    functionName: Intra4Preds_MSA
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - RD4
    - VR4
    - LD4
    - VL4
    - DC4
    - HU4
    - HD4
    - VE4
    - HE4
    - TM4
    linkageType: ''
    returnType: void
    signature: "void Intra4Preds_MSA(uint8_t* WEBP_RESTRICT dst,\n                            const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - out
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 475
    functionName: STORE16x16
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE16x16(out, dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:479,1
    - Dst: STORE16x16
      Src: /src/libwebp/src/dsp/enc_msa.c:480,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/enc_msa.c:482,1
    - Dst: STORE16x16
      Src: /src/libwebp/src/dsp/enc_msa.c:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 485
    functionName: VerticalPred16x16
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - __msa_fill_b
    - STORE16x16
    - LD_UB
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VerticalPred16x16(uint8_t* WEBP_RESTRICT dst,\n                                          const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/enc_msa.c:492,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/enc_msa.c:493,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/enc_msa.c:494,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/enc_msa.c:495,1
    - Dst: ST_UB4
      Src: /src/libwebp/src/dsp/enc_msa.c:496,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/enc_msa.c:501,1
    - Dst: STORE16x16
      Src: /src/libwebp/src/dsp/enc_msa.c:502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 504
    functionName: HorizontalPred16x16
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - ST_UB4
    - STORE16x16
    - __msa_fill_b
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE HorizontalPred16x16(uint8_t* WEBP_RESTRICT dst,\n                                            const
      uint8_t* WEBP_RESTRICT left)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/enc_msa.c:514,1
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:515,1
    - Dst: ILVRL_B2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:516,1
    - Dst: SUB2
      Src: /src/libwebp/src/dsp/enc_msa.c:517,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/enc_msa.c:521,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/enc_msa.c:522,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/enc_msa.c:523,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/enc_msa.c:524,1
    - Dst: ADD4
      Src: /src/libwebp/src/dsp/enc_msa.c:525,1
    - Dst: ADD4
      Src: /src/libwebp/src/dsp/enc_msa.c:526,1
    - Dst: CLIP_SH4_0_255
      Src: /src/libwebp/src/dsp/enc_msa.c:527,1
    - Dst: CLIP_SH4_0_255
      Src: /src/libwebp/src/dsp/enc_msa.c:528,1
    - Dst: PCKEV_B4_SB
      Src: /src/libwebp/src/dsp/enc_msa.c:529,1
    - Dst: ST_SB4
      Src: /src/libwebp/src/dsp/enc_msa.c:530,1
    - Dst: HorizontalPred16x16
      Src: /src/libwebp/src/dsp/enc_msa.c:534,1
    - Dst: VerticalPred16x16
      Src: /src/libwebp/src/dsp/enc_msa.c:538,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/enc_msa.c:540,1
    - Dst: STORE16x16
      Src: /src/libwebp/src/dsp/enc_msa.c:541,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 506
    functionDepth: 2
    functionLinenumber: 506
    functionLinenumberEnd: 544
    functionName: TrueMotion16x16
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - ADD4
    - LD_UB
    - HorizontalPred16x16
    - __msa_fill_h
    - PCKEV_B4_SB
    - ILVRL_B2_SH
    - CLIP_SH4_0_255
    - SUB2
    - ST_SB4
    - VerticalPred16x16
    - STORE16x16
    - __msa_fill_b
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE TrueMotion16x16(uint8_t* WEBP_RESTRICT dst,\n                                        const
      uint8_t* WEBP_RESTRICT left,\n                                        const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:552,1
    - Dst: __msa_hadd_u_h
      Src: /src/libwebp/src/dsp/enc_msa.c:553,1
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:554,1
    - Dst: __msa_hadd_u_h
      Src: /src/libwebp/src/dsp/enc_msa.c:555,1
    - Dst: HADD_UH_U32
      Src: /src/libwebp/src/dsp/enc_msa.c:557,1
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:560,1
    - Dst: __msa_hadd_u_h
      Src: /src/libwebp/src/dsp/enc_msa.c:561,1
    - Dst: HADD_UH_U32
      Src: /src/libwebp/src/dsp/enc_msa.c:562,1
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:565,1
    - Dst: __msa_hadd_u_h
      Src: /src/libwebp/src/dsp/enc_msa.c:566,1
    - Dst: HADD_UH_U32
      Src: /src/libwebp/src/dsp/enc_msa.c:567,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/enc_msa.c:572,1
    - Dst: STORE16x16
      Src: /src/libwebp/src/dsp/enc_msa.c:573,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 574
    functionName: DCMode16x16
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - __msa_hadd_u_h
    - LD_UB
    - STORE16x16
    - HADD_UH_U32
    - __msa_fill_b
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DCMode16x16(uint8_t* WEBP_RESTRICT dst,\n                                    const
      uint8_t* WEBP_RESTRICT left,\n                                    const uint8_t*
      WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCMode16x16
      Src: /src/libwebp/src/dsp/enc_msa.c:579,1
    - Dst: VerticalPred16x16
      Src: /src/libwebp/src/dsp/enc_msa.c:580,1
    - Dst: HorizontalPred16x16
      Src: /src/libwebp/src/dsp/enc_msa.c:581,1
    - Dst: TrueMotion16x16
      Src: /src/libwebp/src/dsp/enc_msa.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 576
    functionDepth: 3
    functionLinenumber: 576
    functionLinenumberEnd: 583
    functionName: Intra16Preds_MSA
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - TrueMotion16x16
    - VerticalPred16x16
    - DCMode16x16
    - HorizontalPred16x16
    linkageType: ''
    returnType: void
    signature: "void Intra16Preds_MSA(uint8_t* WEBP_RESTRICT dst,\n                             const
      uint8_t* WEBP_RESTRICT left,\n                             const uint8_t* WEBP_RESTRICT
      top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - in
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 598
    functionName: CALC_DC8
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALC_DC8(in, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - out
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 604
    functionName: STORE8x8
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE8x8(out, dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LD
      Src: /src/libwebp/src/dsp/enc_msa.c:608,1
    - Dst: STORE8x8
      Src: /src/libwebp/src/dsp/enc_msa.c:609,1
    - Dst: STORE8x8
      Src: /src/libwebp/src/dsp/enc_msa.c:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 614
    functionName: VerticalPred8x8
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - STORE8x8
    - LD
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VerticalPred8x8(uint8_t* WEBP_RESTRICT dst,\n                                        const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/enc_msa.c:621,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/enc_msa.c:622,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/enc_msa.c:623,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/enc_msa.c:624,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/enc_msa.c:625,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/enc_msa.c:626,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/enc_msa.c:627,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/enc_msa.c:628,1
    - Dst: SD4
      Src: /src/libwebp/src/dsp/enc_msa.c:629,1
    - Dst: STORE8x8
      Src: /src/libwebp/src/dsp/enc_msa.c:635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 637
    functionName: HorizontalPred8x8
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - __msa_copy_s_d
    - SD4
    - __msa_fill_b
    - STORE8x8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE HorizontalPred8x8(uint8_t* WEBP_RESTRICT dst,\n                                          const
      uint8_t* WEBP_RESTRICT left)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/enc_msa.c:645,1
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:646,1
    - Dst: __msa_ilvr_b
      Src: /src/libwebp/src/dsp/enc_msa.c:648,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/enc_msa.c:653,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/enc_msa.c:654,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/enc_msa.c:655,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/enc_msa.c:656,1
    - Dst: ADD4
      Src: /src/libwebp/src/dsp/enc_msa.c:657,1
    - Dst: CLIP_SH4_0_255
      Src: /src/libwebp/src/dsp/enc_msa.c:658,1
    - Dst: PCKEV_B2_SB
      Src: /src/libwebp/src/dsp/enc_msa.c:659,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/enc_msa.c:660,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/enc_msa.c:661,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/enc_msa.c:662,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/enc_msa.c:663,1
    - Dst: SD4
      Src: /src/libwebp/src/dsp/enc_msa.c:664,1
    - Dst: HorizontalPred8x8
      Src: /src/libwebp/src/dsp/enc_msa.c:668,1
    - Dst: VerticalPred8x8
      Src: /src/libwebp/src/dsp/enc_msa.c:672,1
    - Dst: STORE8x8
      Src: /src/libwebp/src/dsp/enc_msa.c:675,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 639
    functionDepth: 2
    functionLinenumber: 639
    functionLinenumberEnd: 678
    functionName: TrueMotion8x8
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - VerticalPred8x8
    - ADD4
    - LD_UB
    - SD4
    - __msa_fill_h
    - __msa_ilvr_b
    - STORE8x8
    - CLIP_SH4_0_255
    - HorizontalPred8x8
    - __msa_copy_s_d
    - PCKEV_B2_SB
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE TrueMotion8x8(uint8_t* WEBP_RESTRICT dst,\n                                      const
      uint8_t* WEBP_RESTRICT left,\n                                      const uint8_t*
      WEBP_RESTRICT top)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LD
      Src: /src/libwebp/src/dsp/enc_msa.c:686,1
    - Dst: LD
      Src: /src/libwebp/src/dsp/enc_msa.c:687,1
    - Dst: INSERT_D2_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:688,1
    - Dst: CALC_DC8
      Src: /src/libwebp/src/dsp/enc_msa.c:689,1
    - Dst: LD
      Src: /src/libwebp/src/dsp/enc_msa.c:691,1
    - Dst: INSERT_D2_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:692,1
    - Dst: CALC_DC8
      Src: /src/libwebp/src/dsp/enc_msa.c:693,1
    - Dst: LD
      Src: /src/libwebp/src/dsp/enc_msa.c:695,1
    - Dst: INSERT_D2_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:696,1
    - Dst: CALC_DC8
      Src: /src/libwebp/src/dsp/enc_msa.c:697,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/enc_msa.c:699,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/enc_msa.c:700,1
    - Dst: STORE8x8
      Src: /src/libwebp/src/dsp/enc_msa.c:702,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 703
    functionName: DCMode8x8
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - CALC_DC8
    - LD
    - STORE8x8
    - __msa_copy_s_d
    - INSERT_D2_UB
    - __msa_fill_b
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DCMode8x8(uint8_t* WEBP_RESTRICT dst,\n                                  const
      uint8_t* WEBP_RESTRICT left,\n                                  const uint8_t*
      WEBP_RESTRICT top)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DCMode8x8
      Src: /src/libwebp/src/dsp/enc_msa.c:709,1
    - Dst: VerticalPred8x8
      Src: /src/libwebp/src/dsp/enc_msa.c:710,1
    - Dst: HorizontalPred8x8
      Src: /src/libwebp/src/dsp/enc_msa.c:711,1
    - Dst: TrueMotion8x8
      Src: /src/libwebp/src/dsp/enc_msa.c:712,1
    - Dst: DCMode8x8
      Src: /src/libwebp/src/dsp/enc_msa.c:717,1
    - Dst: VerticalPred8x8
      Src: /src/libwebp/src/dsp/enc_msa.c:718,1
    - Dst: HorizontalPred8x8
      Src: /src/libwebp/src/dsp/enc_msa.c:719,1
    - Dst: TrueMotion8x8
      Src: /src/libwebp/src/dsp/enc_msa.c:720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 705
    functionDepth: 3
    functionLinenumber: 705
    functionLinenumberEnd: 721
    functionName: IntraChromaPreds_MSA
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - DCMode8x8
    - VerticalPred8x8
    - HorizontalPred8x8
    - TrueMotion8x8
    linkageType: ''
    returnType: void
    signature: "void IntraChromaPreds_MSA(uint8_t* WEBP_RESTRICT dst,\n                                 const
      uint8_t* WEBP_RESTRICT left,\n                                 const uint8_t*
      WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 737
    functionName: PACK_DOTP_UB4_SW
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACK_DOTP_UB4_SW(in0, in1, in2, in3, out0, out1, out2, out3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 749
    functionName: PACK_DPADD_UB4_SW
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACK_DPADD_UB4_SW(in0, in1, in2, in3, out0, out1, out2, out3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/enc_msa.c:757,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/enc_msa.c:758,1
    - Dst: PACK_DOTP_UB4_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:759,1
    - Dst: PACK_DPADD_UB4_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:760,1
    - Dst: PACK_DPADD_UB4_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:761,1
    - Dst: PACK_DPADD_UB4_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:762,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/enc_msa.c:765,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/enc_msa.c:766,1
    - Dst: PACK_DPADD_UB4_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:767,1
    - Dst: PACK_DPADD_UB4_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:768,1
    - Dst: PACK_DPADD_UB4_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:769,1
    - Dst: PACK_DPADD_UB4_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:770,1
    - Dst: HADD_SW_S32
      Src: /src/libwebp/src/dsp/enc_msa.c:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 776
    functionName: SSE16x16_MSA
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - LD_UB8
    - HADD_SW_S32
    - PACK_DOTP_UB4_SW
    - PACK_DPADD_UB4_SW
    linkageType: ''
    returnType: int
    signature: "int SSE16x16_MSA(const uint8_t* WEBP_RESTRICT a,\n                        const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/enc_msa.c:785,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/enc_msa.c:786,1
    - Dst: PACK_DOTP_UB4_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:787,1
    - Dst: PACK_DPADD_UB4_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:788,1
    - Dst: PACK_DPADD_UB4_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:789,1
    - Dst: PACK_DPADD_UB4_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:790,1
    - Dst: HADD_SW_S32
      Src: /src/libwebp/src/dsp/enc_msa.c:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 796
    functionName: SSE16x8_MSA
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - LD_UB8
    - HADD_SW_S32
    - PACK_DOTP_UB4_SW
    - PACK_DPADD_UB4_SW
    linkageType: ''
    returnType: int
    signature: "int SSE16x8_MSA(const uint8_t* WEBP_RESTRICT a,\n                       const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/enc_msa.c:806,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/enc_msa.c:807,1
    - Dst: ILVR_B4_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:808,1
    - Dst: PACK_DOTP_UB4_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:809,1
    - Dst: ILVR_B4_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:810,1
    - Dst: PACK_DPADD_UB4_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:811,1
    - Dst: HADD_SW_S32
      Src: /src/libwebp/src/dsp/enc_msa.c:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 817
    functionName: SSE8x8_MSA
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - LD_UB8
    - ILVR_B4_UB
    - HADD_SW_S32
    - PACK_DOTP_UB4_SW
    - PACK_DPADD_UB4_SW
    linkageType: ''
    returnType: int
    signature: "int SSE8x8_MSA(const uint8_t* WEBP_RESTRICT a,\n                      const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LW4
      Src: /src/libwebp/src/dsp/enc_msa.c:827,1
    - Dst: LW4
      Src: /src/libwebp/src/dsp/enc_msa.c:828,1
    - Dst: INSERT_W4_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:829,1
    - Dst: INSERT_W4_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:830,1
    - Dst: ILVRL_B2_UB
      Src: /src/libwebp/src/dsp/enc_msa.c:831,1
    - Dst: HSUB_UB2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:832,1
    - Dst: DOTP_SH2_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:833,1
    - Dst: HADD_SW_S32
      Src: /src/libwebp/src/dsp/enc_msa.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 837
    functionName: SSE4x4_MSA
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - ILVRL_B2_UB
    - DOTP_SH2_SW
    - LW4
    - INSERT_W4_UB
    - HADD_SW_S32
    - HSUB_UB2_SH
    linkageType: ''
    returnType: int
    signature: "int SSE4x4_MSA(const uint8_t* WEBP_RESTRICT a,\n                      const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/enc_msa.c:851,1
    - Dst: LD_SH2
      Src: /src/libwebp/src/dsp/enc_msa.c:853,1
    - Dst: LD_SH2
      Src: /src/libwebp/src/dsp/enc_msa.c:854,1
    - Dst: __msa_add_a_h
      Src: /src/libwebp/src/dsp/enc_msa.c:855,1
    - Dst: __msa_add_a_h
      Src: /src/libwebp/src/dsp/enc_msa.c:856,1
    - Dst: ILVRL_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:857,1
    - Dst: ILVRL_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:858,1
    - Dst: HADD_SH4_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:859,1
    - Dst: LD_SH2
      Src: /src/libwebp/src/dsp/enc_msa.c:862,1
    - Dst: ILVRL_H2_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:863,1
    - Dst: ILVRL_H2_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:864,1
    - Dst: LD_SW4
      Src: /src/libwebp/src/dsp/enc_msa.c:865,1
    - Dst: MUL4
      Src: /src/libwebp/src/dsp/enc_msa.c:866,1
    - Dst: ADD4
      Src: /src/libwebp/src/dsp/enc_msa.c:867,1
    - Dst: SRAI_W4_SW
      Src: /src/libwebp/src/dsp/enc_msa.c:868,1
    - Dst: PCKEV_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:869,1
    - Dst: __msa_bmnz_v
      Src: /src/libwebp/src/dsp/enc_msa.c:872,1
    - Dst: __msa_bmnz_v
      Src: /src/libwebp/src/dsp/enc_msa.c:873,1
    - Dst: SUB2
      Src: /src/libwebp/src/dsp/enc_msa.c:874,1
    - Dst: __msa_bmnz_v
      Src: /src/libwebp/src/dsp/enc_msa.c:875,1
    - Dst: __msa_bmnz_v
      Src: /src/libwebp/src/dsp/enc_msa.c:876,1
    - Dst: LD_SW4
      Src: /src/libwebp/src/dsp/enc_msa.c:877,1
    - Dst: PCKEV_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:882,1
    - Dst: __msa_bmnz_v
      Src: /src/libwebp/src/dsp/enc_msa.c:883,1
    - Dst: __msa_bmnz_v
      Src: /src/libwebp/src/dsp/enc_msa.c:884,1
    - Dst: LD_SH2
      Src: /src/libwebp/src/dsp/enc_msa.c:885,1
    - Dst: MUL2
      Src: /src/libwebp/src/dsp/enc_msa.c:886,1
    - Dst: VSHF_H2_SH
      Src: /src/libwebp/src/dsp/enc_msa.c:887,1
    - Dst: ST_SH2
      Src: /src/libwebp/src/dsp/enc_msa.c:888,1
    - Dst: ST_SH2
      Src: /src/libwebp/src/dsp/enc_msa.c:889,1
    - Dst: __msa_add_a_h
      Src: /src/libwebp/src/dsp/enc_msa.c:890,1
    - Dst: HADD_SH_S32
      Src: /src/libwebp/src/dsp/enc_msa.c:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 3
    argNames:
    - in
    - out
    - mtx
    argTypes:
    - int16_t[]
    - int16_t[]
    - VP8Matrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 893
    functionName: QuantizeBlock_MSA
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - ILVRL_H2_SW
    - ST_SH2
    - ADD4
    - MUL4
    - __msa_add_a_h
    - HADD_SH_S32
    - __msa_fill_h
    - PCKEV_H2_SH
    - VSHF_H2_SH
    - ILVRL_H2_SH
    - LD_SH2
    - SUB2
    - HADD_SH4_SW
    - LD_SW4
    - SRAI_W4_SW
    - __msa_bmnz_v
    - MUL2
    linkageType: ''
    returnType: int
    signature: "int QuantizeBlock_MSA(int16_t in[16], int16_t out[16],\n                             const
      VP8Matrix* WEBP_RESTRICT const mtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8EncQuantizeBlock
      Src: /src/libwebp/src/dsp/enc_msa.c:898,1
    - Dst: VP8EncQuantizeBlock
      Src: /src/libwebp/src/dsp/enc_msa.c:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - in
    - out
    - mtx
    argTypes:
    - int16_t[]
    - int16_t[]
    - VP8Matrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 901
    functionName: Quantize2Blocks_MSA
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 0
    functionsReached:
    - VP8EncQuantizeBlock
    linkageType: ''
    returnType: int
    signature: "int Quantize2Blocks_MSA(int16_t in[32], int16_t out[32],\n                               const
      VP8Matrix* WEBP_RESTRICT const mtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 929
    functionName: VP8EncDspInitMSA
    functionSourceFile: /src/libwebp/src/dsp/enc_msa.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8EncDspInitMSA(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:54,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:55,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:63,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:64,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:65,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:66,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:72,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:73,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:74,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:75,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:76,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:77,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:78,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:79,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:91,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:92,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:94,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:95,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:96,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:97,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:98,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:100,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:101,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:102,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:103,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:104,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:107,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:108,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:109,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:110,1
    - Dst: VP8Transpose_2_4x4_16b
      Src: /src/libwebp/src/dsp/dec_sse2.c:113,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:120,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:121,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:122,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:123,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:125,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:126,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:127,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:128,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:129,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:131,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:132,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:133,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:134,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:135,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:138,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:139,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:140,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:141,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:142,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:143,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:144,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:145,1
    - Dst: VP8Transpose_2_4x4_16b
      Src: /src/libwebp/src/dsp/dec_sse2.c:148,1
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:154,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:159,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:160,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:161,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:162,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:165,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/dec_sse2.c:165,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:166,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/dec_sse2.c:166,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:167,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/dec_sse2.c:167,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:168,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/dec_sse2.c:168,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:171,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:172,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:173,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:174,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:176,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:177,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:178,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:179,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:181,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:182,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:183,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:184,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:188,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:189,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:190,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:191,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:194,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:194,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:195,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:195,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:196,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:196,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:197,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 51
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - do_two
    argTypes:
    - int16_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 200
    functionName: Transform_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_mulhi_epi16
    - _mm_cvtsi32_si128
    - _mm_unpacklo_epi8
    - _mm_set1_epi16
    - WebPInt32ToMem
    - _mm_setzero_si128
    - _mm_storel_epi64
    - _mm_add_epi16
    - _mm_sub_epi16
    - WebPMemToInt32
    - _mm_srai_epi16
    - _mm_loadl_epi64
    - _mm_packus_epi16
    - _mm_cvtsi128_si32
    - _mm_unpacklo_epi64
    - VP8Transpose_2_4x4_16b
    linkageType: ''
    returnType: void
    signature: "void Transform_SSE2(const int16_t* WEBP_RESTRICT in,\n                           uint8_t*
      WEBP_RESTRICT dst, int do_two)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:206,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:207,1
    - Dst: WEBP_TRANSFORM_AC3_MUL2
      Src: /src/libwebp/src/dsp/dec_sse2.c:207,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:208,1
    - Dst: WEBP_TRANSFORM_AC3_MUL1
      Src: /src/libwebp/src/dsp/dec_sse2.c:208,1
    - Dst: WEBP_TRANSFORM_AC3_MUL2
      Src: /src/libwebp/src/dsp/dec_sse2.c:209,1
    - Dst: WEBP_TRANSFORM_AC3_MUL1
      Src: /src/libwebp/src/dsp/dec_sse2.c:210,1
    - Dst: _mm_set_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:211,1
    - Dst: _mm_adds_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:212,1
    - Dst: _mm_adds_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:213,1
    - Dst: _mm_adds_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:214,1
    - Dst: _mm_subs_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:215,1
    - Dst: _mm_subs_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:216,1
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:217,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:219,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/dec_sse2.c:219,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:220,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/dec_sse2.c:220,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:221,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/dec_sse2.c:221,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:222,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/dec_sse2.c:222,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:224,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:225,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:226,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:227,1
    - Dst: _mm_adds_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:229,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:229,1
    - Dst: _mm_adds_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:230,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:230,1
    - Dst: _mm_adds_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:231,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:231,1
    - Dst: _mm_adds_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:232,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:232,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:234,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:235,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:236,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:237,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:239,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:239,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:240,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:240,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:241,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:241,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:242,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 243
    functionName: TransformAC3_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_cvtsi32_si128
    - _mm_unpacklo_epi8
    - WebPInt32ToMem
    - _mm_set1_epi16
    - _mm_setzero_si128
    - _mm_adds_epi16
    - WebPMemToInt32
    - _mm_srai_epi16
    - _mm_subs_epi16
    - _mm_set_epi16
    - _mm_packus_epi16
    - _mm_cvtsi128_si32
    - WEBP_TRANSFORM_AC3_MUL2
    - WEBP_TRANSFORM_AC3_MUL1
    linkageType: ''
    returnType: void
    signature: "void TransformAC3_SSE2(const int16_t* WEBP_RESTRICT in,\n                              uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - q
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: MM_ABS
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MM_ABS(p, q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:256,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:257,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:258,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:259,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:260,1
    - Dst: _mm_packs_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 262
    functionName: SignedShift8b_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_setzero_si128
    - _mm_srai_epi16
    - _mm_packs_epi16
    - _mm_unpackhi_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE SignedShift8b_SSE2(__m128i* const x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 269
    functionName: FLIP_SIGN_BIT2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLIP_SIGN_BIT2(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 275
    functionName: FLIP_SIGN_BIT4
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLIP_SIGN_BIT4(a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:282,1
    - Dst: MM_ABS
      Src: /src/libwebp/src/dsp/dec_sse2.c:283,1
    - Dst: MM_ABS
      Src: /src/libwebp/src/dsp/dec_sse2.c:284,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:286,1
    - Dst: _mm_max_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:287,1
    - Dst: _mm_subs_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:289,1
    - Dst: _mm_cmpeq_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - p1
    - p0
    - q0
    - q1
    - hev_thresh
    - not_hev
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - int
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 291
    functionName: GetNotHEV_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_subs_epu8
    - _mm_max_epu8
    - _mm_setzero_si128
    - MM_ABS
    - _mm_cmpeq_epi8
    - _mm_set1_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE GetNotHEV_SSE2(const __m128i* const p1,\n                                       const
      __m128i* const p0,\n                                       const __m128i* const
      q0,\n                                       const __m128i* const q1, int hev_thresh,\n
      \                                      __m128i* const not_hev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_subs_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:300,1
    - Dst: _mm_subs_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:301,1
    - Dst: _mm_adds_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:302,1
    - Dst: _mm_adds_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:303,1
    - Dst: _mm_adds_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p1
    - p0
    - q0
    - q1
    - delta
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 306
    functionName: GetBaseDelta_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_subs_epi8
    - _mm_adds_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE GetBaseDelta_SSE2(const __m128i* const p1,\n                                          const
      __m128i* const p0,\n                                          const __m128i*
      const q0,\n                                          const __m128i* const q1,\n
      \                                         __m128i* const delta)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:312,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:313,1
    - Dst: _mm_adds_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:314,1
    - Dst: _mm_adds_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:315,1
    - Dst: SignedShift8b_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:317,1
    - Dst: SignedShift8b_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:318,1
    - Dst: _mm_subs_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:319,1
    - Dst: _mm_adds_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - p0
    - q0
    - fl
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 321
    functionName: DoSimpleFilter_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi8
    - _mm_adds_epi8
    - _mm_subs_epi8
    - SignedShift8b_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoSimpleFilter_SSE2(__m128i* const p0,\n                                            __m128i*
      const q0,\n                                            const __m128i* const
      fl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:330,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:331,1
    - Dst: _mm_packs_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:332,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:333,1
    - Dst: _mm_adds_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:334,1
    - Dst: _mm_subs_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:335,1
    - Dst: FLIP_SIGN_BIT2
      Src: /src/libwebp/src/dsp/dec_sse2.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - pi
    - qi
    - a0_lo
    - a0_hi
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 337
    functionName: Update2Pixels_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_adds_epi8
    - _mm_srai_epi16
    - FLIP_SIGN_BIT2
    - _mm_packs_epi16
    - _mm_set1_epi8
    - _mm_subs_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Update2Pixels_SSE2(__m128i* const pi, __m128i* const qi,\n
      \                                          const __m128i* const a0_lo,\n                                           const
      __m128i* const a0_hi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:345,1
    - Dst: MM_ABS
      Src: /src/libwebp/src/dsp/dec_sse2.c:346,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:347,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:348,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:349,1
    - Dst: MM_ABS
      Src: /src/libwebp/src/dsp/dec_sse2.c:351,1
    - Dst: _mm_adds_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:352,1
    - Dst: _mm_adds_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:353,1
    - Dst: _mm_subs_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:355,1
    - Dst: _mm_cmpeq_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:356,1
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - p1
    - p0
    - q0
    - q1
    - thresh
    - mask
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - int
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 357
    functionName: NeedsFilter_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_subs_epu8
    - _mm_srli_epi16
    - _mm_setzero_si128
    - MM_ABS
    - _mm_and_si128
    - _mm_cmpeq_epi8
    - _mm_set1_epi8
    - _mm_adds_epu8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE NeedsFilter_SSE2(const __m128i* const p1,\n                                         const
      __m128i* const p0,\n                                         const __m128i*
      const q0,\n                                         const __m128i* const q1,
      int thresh,\n                                         __m128i* const mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:367,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:369,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:370,1
    - Dst: NeedsFilter_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:372,1
    - Dst: FLIP_SIGN_BIT2
      Src: /src/libwebp/src/dsp/dec_sse2.c:374,1
    - Dst: GetBaseDelta_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:375,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:376,1
    - Dst: DoSimpleFilter_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:377,1
    - Dst: FLIP_SIGN_BIT2
      Src: /src/libwebp/src/dsp/dec_sse2.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - p1
    - p0
    - q0
    - q1
    - thresh
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 379
    functionName: DoFilter2_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - GetBaseDelta_SSE2
    - NeedsFilter_SSE2
    - _mm_xor_si128
    - DoSimpleFilter_SSE2
    - _mm_and_si128
    - FLIP_SIGN_BIT2
    - _mm_set1_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoFilter2_SSE2(__m128i* const p1, __m128i* const p0,\n
      \                                      __m128i* const q0, __m128i* const q1,\n
      \                                      int thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:386,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:387,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:388,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:389,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:390,1
    - Dst: GetNotHEV_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:395,1
    - Dst: FLIP_SIGN_BIT4
      Src: /src/libwebp/src/dsp/dec_sse2.c:398,1
    - Dst: _mm_subs_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:400,1
    - Dst: _mm_andnot_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:401,1
    - Dst: _mm_subs_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:402,1
    - Dst: _mm_adds_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:403,1
    - Dst: _mm_adds_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:404,1
    - Dst: _mm_adds_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:405,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:406,1
    - Dst: _mm_adds_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:408,1
    - Dst: _mm_adds_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:409,1
    - Dst: SignedShift8b_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:410,1
    - Dst: SignedShift8b_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:411,1
    - Dst: _mm_adds_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:412,1
    - Dst: _mm_subs_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:413,1
    - Dst: FLIP_SIGN_BIT2
      Src: /src/libwebp/src/dsp/dec_sse2.c:414,1
    - Dst: _mm_add_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:417,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:418,1
    - Dst: _mm_sub_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:419,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:421,1
    - Dst: _mm_subs_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:422,1
    - Dst: _mm_adds_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:423,1
    - Dst: FLIP_SIGN_BIT2
      Src: /src/libwebp/src/dsp/dec_sse2.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 6
    argNames:
    - p1
    - p0
    - q0
    - q1
    - mask
    - hev_thresh
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 425
    functionName: DoFilter4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_avg_epu8
    - _mm_setzero_si128
    - _mm_adds_epi8
    - _mm_sub_epi8
    - GetNotHEV_SSE2
    - _mm_andnot_si128
    - _mm_and_si128
    - _mm_add_epi8
    - FLIP_SIGN_BIT2
    - SignedShift8b_SSE2
    - _mm_set1_epi8
    - _mm_subs_epi8
    - FLIP_SIGN_BIT4
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoFilter4_SSE2(__m128i* const p1, __m128i* const p0,\n
      \                                      __m128i* const q0, __m128i* const q1,\n
      \                                      const __m128i* const mask,\n                                       int
      hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:433,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:434,1
    - Dst: GetNotHEV_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:438,1
    - Dst: FLIP_SIGN_BIT4
      Src: /src/libwebp/src/dsp/dec_sse2.c:440,1
    - Dst: FLIP_SIGN_BIT2
      Src: /src/libwebp/src/dsp/dec_sse2.c:441,1
    - Dst: GetBaseDelta_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:442,1
    - Dst: _mm_andnot_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:445,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:446,1
    - Dst: DoSimpleFilter_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:447,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:451,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:452,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:454,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:455,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:457,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:458,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:460,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:461,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:463,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:464,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:466,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:467,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:469,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:470,1
    - Dst: Update2Pixels_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:472,1
    - Dst: Update2Pixels_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:473,1
    - Dst: Update2Pixels_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 8
    argNames:
    - p2
    - p1
    - p0
    - q0
    - q1
    - q2
    - mask
    - hev_thresh
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 476
    functionName: DoFilter6_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - GetBaseDelta_SSE2
    - _mm_mulhi_epi16
    - _mm_set1_epi16
    - _mm_setzero_si128
    - Update2Pixels_SSE2
    - DoSimpleFilter_SSE2
    - _mm_add_epi16
    - GetNotHEV_SSE2
    - _mm_andnot_si128
    - _mm_and_si128
    - FLIP_SIGN_BIT2
    - _mm_set1_epi8
    - _mm_unpackhi_epi8
    - FLIP_SIGN_BIT4
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoFilter6_SSE2(__m128i* const p2, __m128i* const p1,\n
      \                                      __m128i* const p0, __m128i* const q0,\n
      \                                      __m128i* const q1, __m128i* const q2,\n
      \                                      const __m128i* const mask,\n                                       int
      hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set_epi32
      Src: /src/libwebp/src/dsp/dec_sse2.c:483,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/dec_sse2.c:484,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/dec_sse2.c:484,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/dec_sse2.c:485,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/dec_sse2.c:485,1
    - Dst: _mm_set_epi32
      Src: /src/libwebp/src/dsp/dec_sse2.c:486,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/dec_sse2.c:487,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/dec_sse2.c:487,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/dec_sse2.c:488,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/dec_sse2.c:488,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:492,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:493,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:497,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:498,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/dec_sse2.c:502,1
    - Dst: _mm_unpackhi_epi32
      Src: /src/libwebp/src/dsp/dec_sse2.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - b
    - stride
    - p
    - q
    argTypes:
    - uint8_t*
    - int
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 504
    functionName: Load8x4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_unpackhi_epi32
    - _mm_unpacklo_epi32
    - WebPMemToInt32
    - _mm_set_epi32
    - _mm_unpackhi_epi16
    - _mm_unpacklo_epi16
    - _mm_unpackhi_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Load8x4_SSE2(const uint8_t* const b, int stride,\n                                     __m128i*
      const p, __m128i* const q)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load8x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:525,1
    - Dst: Load8x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:526,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:535,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:536,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:537,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 7
    argNames:
    - r0
    - r8
    - stride
    - p1
    - p0
    - q0
    - q1
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 506
    functionDepth: 2
    functionLinenumber: 506
    functionLinenumberEnd: 540
    functionName: Load16x4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpackhi_epi64
    - Load8x4_SSE2
    - _mm_unpacklo_epi64
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Load16x4_SSE2(const uint8_t* const r0,\n                                      const
      uint8_t* const r8, int stride,\n                                      __m128i*
      const p1, __m128i* const p0,\n                                      __m128i*
      const q0, __m128i* const q1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:546,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:546,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - x
    - dst
    - stride
    argTypes:
    - __m128i*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 549
    functionName: Store4x4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_cvtsi128_si32
    - WebPInt32ToMem
    - _mm_srli_si128
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Store4x4_SSE2(__m128i* const x, uint8_t* dst,\n                                      int
      stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:562,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:563,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:568,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:569,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:574,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:575,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:580,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:581,1
    - Dst: Store4x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:583,1
    - Dst: Store4x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:585,1
    - Dst: Store4x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:587,1
    - Dst: Store4x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 7
    argNames:
    - p1
    - p0
    - q0
    - q1
    - r0
    - r8
    - stride
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 590
    functionName: Store16x4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_unpackhi_epi8
    - _mm_unpackhi_epi16
    - _mm_unpacklo_epi16
    - Store4x4_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Store16x4_SSE2(const __m128i* const p1,\n                                       const
      __m128i* const p0,\n                                       const __m128i* const
      q0,\n                                       const __m128i* const q1, uint8_t*
      r0,\n                                       uint8_t* r8, int stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:597,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:598,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:599,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:600,1
    - Dst: DoFilter2_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:602,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:605,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p
    - stride
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 595
    functionDepth: 3
    functionLinenumber: 595
    functionLinenumberEnd: 607
    functionName: SimpleVFilter16_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_storeu_si128
    - _mm_loadu_si128
    - DoFilter2_SSE2
    linkageType: ''
    returnType: void
    signature: void SimpleVFilter16_SSE2(uint8_t* p, int stride, int thresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load16x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:614,1
    - Dst: DoFilter2_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:615,1
    - Dst: Store16x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - p
    - stride
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 609
    functionDepth: 3
    functionLinenumber: 609
    functionLinenumberEnd: 617
    functionName: SimpleHFilter16_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - Load16x4_SSE2
    - Store16x4_SSE2
    - DoFilter2_SSE2
    linkageType: ''
    returnType: void
    signature: void SimpleHFilter16_SSE2(uint8_t* p, int stride, int thresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleVFilter16_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - stride
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 619
    functionDepth: 4
    functionLinenumber: 619
    functionLinenumberEnd: 625
    functionName: SimpleVFilter16i_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - SimpleVFilter16_SSE2
    linkageType: ''
    returnType: void
    signature: void SimpleVFilter16i_SSE2(uint8_t* p, int stride, int thresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleHFilter16_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - stride
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 627
    functionDepth: 4
    functionLinenumber: 627
    functionLinenumberEnd: 633
    functionName: SimpleHFilter16i_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - SimpleHFilter16_SSE2
    linkageType: ''
    returnType: void
    signature: void SimpleHFilter16i_SSE2(uint8_t* p, int stride, int thresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - p3
    - ','
    - p2
    - ','
    - p1
    - ','
    - p0
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 644
    functionName: MAX_DIFF1
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX_DIFF1(p3, p2, p1, p0, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - p3
    - ','
    - p2
    - ','
    - p1
    - ','
    - p0
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 651
    functionName: MAX_DIFF2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX_DIFF2(p3, p2, p1, p0, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - p
    - ','
    - stride
    - ','
    - e1
    - ','
    - e2
    - ','
    - e3
    - ','
    - e4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 659
    functionName: LOAD_H_EDGES4
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_H_EDGES4(p, stride, e1, e2, e3, e4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - u
    - ','
    - v
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 666
    functionName: LOADUV_H_EDGE
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOADUV_H_EDGE(p, u, v, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - u
    - ','
    - v
    - ','
    - stride
    - ','
    - e1
    - ','
    - e2
    - ','
    - e3
    - ','
    - e4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 674
    functionName: LOADUV_H_EDGES4
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOADUV_H_EDGES4(u, v, stride, e1, e2, e3, e4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - u
    - ','
    - v
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 681
    functionName: STOREUV
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STOREUV(p, u, v, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:687,1
    - Dst: _mm_subs_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:688,1
    - Dst: _mm_cmpeq_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:689,1
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:689,1
    - Dst: NeedsFilter_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:691,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - p1
    - p0
    - q0
    - q1
    - thresh
    - ithresh
    - mask
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - int
    - int
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 693
    functionName: ComplexMask_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_subs_epu8
    - NeedsFilter_SSE2
    - _mm_setzero_si128
    - _mm_and_si128
    - _mm_cmpeq_epi8
    - _mm_set1_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ComplexMask_SSE2(const __m128i* const p1,\n                                         const
      __m128i* const p0,\n                                         const __m128i*
      const q0,\n                                         const __m128i* const q1,
      int thresh,\n                                         int ithresh, __m128i*
      const mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD_H_EDGES4
      Src: /src/libwebp/src/dsp/dec_sse2.c:703,1
    - Dst: MAX_DIFF1
      Src: /src/libwebp/src/dsp/dec_sse2.c:704,1
    - Dst: LOAD_H_EDGES4
      Src: /src/libwebp/src/dsp/dec_sse2.c:707,1
    - Dst: MAX_DIFF2
      Src: /src/libwebp/src/dsp/dec_sse2.c:708,1
    - Dst: ComplexMask_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:710,1
    - Dst: DoFilter6_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:711,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:714,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:715,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:716,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:717,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:718,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 696
    functionDepth: 3
    functionLinenumber: 696
    functionLinenumberEnd: 720
    functionName: VFilter16_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 1
    functionsReached:
    - MAX_DIFF2
    - MAX_DIFF1
    - _mm_storeu_si128
    - LOAD_H_EDGES4
    - ComplexMask_SSE2
    - DoFilter6_SSE2
    linkageType: ''
    returnType: void
    signature: "void VFilter16_SSE2(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                          int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load16x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:728,1
    - Dst: MAX_DIFF1
      Src: /src/libwebp/src/dsp/dec_sse2.c:729,1
    - Dst: Load16x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:731,1
    - Dst: MAX_DIFF2
      Src: /src/libwebp/src/dsp/dec_sse2.c:732,1
    - Dst: ComplexMask_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:734,1
    - Dst: DoFilter6_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:735,1
    - Dst: Store16x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:737,1
    - Dst: Store16x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 722
    functionDepth: 3
    functionLinenumber: 722
    functionLinenumberEnd: 739
    functionName: HFilter16_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 1
    functionsReached:
    - MAX_DIFF2
    - Load16x4_SSE2
    - Store16x4_SSE2
    - MAX_DIFF1
    - ComplexMask_SSE2
    - DoFilter6_SSE2
    linkageType: ''
    returnType: void
    signature: "void HFilter16_SSE2(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                          int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD_H_EDGES4
      Src: /src/libwebp/src/dsp/dec_sse2.c:747,1
    - Dst: MAX_DIFF1
      Src: /src/libwebp/src/dsp/dec_sse2.c:754,1
    - Dst: LOAD_H_EDGES4
      Src: /src/libwebp/src/dsp/dec_sse2.c:755,1
    - Dst: MAX_DIFF2
      Src: /src/libwebp/src/dsp/dec_sse2.c:756,1
    - Dst: ComplexMask_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:760,1
    - Dst: DoFilter4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:761,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:764,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:765,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:766,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:767,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 742
    functionDepth: 3
    functionLinenumber: 742
    functionLinenumberEnd: 773
    functionName: VFilter16i_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - MAX_DIFF2
    - MAX_DIFF1
    - _mm_storeu_si128
    - LOAD_H_EDGES4
    - DoFilter4_SSE2
    - ComplexMask_SSE2
    linkageType: ''
    returnType: void
    signature: "void VFilter16i_SSE2(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                           int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load16x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:780,1
    - Dst: MAX_DIFF1
      Src: /src/libwebp/src/dsp/dec_sse2.c:788,1
    - Dst: Load16x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:789,1
    - Dst: MAX_DIFF2
      Src: /src/libwebp/src/dsp/dec_sse2.c:790,1
    - Dst: ComplexMask_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:792,1
    - Dst: DoFilter4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:793,1
    - Dst: Store16x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 775
    functionDepth: 3
    functionLinenumber: 775
    functionLinenumberEnd: 801
    functionName: HFilter16i_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - MAX_DIFF2
    - Load16x4_SSE2
    - Store16x4_SSE2
    - MAX_DIFF1
    - DoFilter4_SSE2
    - ComplexMask_SSE2
    linkageType: ''
    returnType: void
    signature: "void HFilter16i_SSE2(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                           int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOADUV_H_EDGES4
      Src: /src/libwebp/src/dsp/dec_sse2.c:810,1
    - Dst: MAX_DIFF1
      Src: /src/libwebp/src/dsp/dec_sse2.c:811,1
    - Dst: LOADUV_H_EDGES4
      Src: /src/libwebp/src/dsp/dec_sse2.c:814,1
    - Dst: MAX_DIFF2
      Src: /src/libwebp/src/dsp/dec_sse2.c:815,1
    - Dst: ComplexMask_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:817,1
    - Dst: DoFilter6_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:818,1
    - Dst: STOREUV
      Src: /src/libwebp/src/dsp/dec_sse2.c:821,1
    - Dst: STOREUV
      Src: /src/libwebp/src/dsp/dec_sse2.c:822,1
    - Dst: STOREUV
      Src: /src/libwebp/src/dsp/dec_sse2.c:823,1
    - Dst: STOREUV
      Src: /src/libwebp/src/dsp/dec_sse2.c:824,1
    - Dst: STOREUV
      Src: /src/libwebp/src/dsp/dec_sse2.c:825,1
    - Dst: STOREUV
      Src: /src/libwebp/src/dsp/dec_sse2.c:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 804
    functionDepth: 3
    functionLinenumber: 804
    functionLinenumberEnd: 827
    functionName: VFilter8_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - MAX_DIFF2
    - MAX_DIFF1
    - LOADUV_H_EDGES4
    - ComplexMask_SSE2
    - DoFilter6_SSE2
    - STOREUV
    linkageType: ''
    returnType: void
    signature: "void VFilter8_SSE2(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT
      v,\n                          int stride, int thresh, int ithresh, int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load16x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:836,1
    - Dst: MAX_DIFF1
      Src: /src/libwebp/src/dsp/dec_sse2.c:837,1
    - Dst: Load16x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:839,1
    - Dst: MAX_DIFF2
      Src: /src/libwebp/src/dsp/dec_sse2.c:840,1
    - Dst: ComplexMask_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:842,1
    - Dst: DoFilter6_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:843,1
    - Dst: Store16x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:845,1
    - Dst: Store16x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 829
    functionDepth: 3
    functionLinenumber: 829
    functionLinenumberEnd: 847
    functionName: HFilter8_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - MAX_DIFF2
    - Load16x4_SSE2
    - Store16x4_SSE2
    - MAX_DIFF1
    - ComplexMask_SSE2
    - DoFilter6_SSE2
    linkageType: ''
    returnType: void
    signature: "void HFilter8_SSE2(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT
      v,\n                          int stride, int thresh, int ithresh, int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOADUV_H_EDGES4
      Src: /src/libwebp/src/dsp/dec_sse2.c:856,1
    - Dst: MAX_DIFF1
      Src: /src/libwebp/src/dsp/dec_sse2.c:857,1
    - Dst: LOADUV_H_EDGES4
      Src: /src/libwebp/src/dsp/dec_sse2.c:863,1
    - Dst: MAX_DIFF2
      Src: /src/libwebp/src/dsp/dec_sse2.c:864,1
    - Dst: ComplexMask_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:866,1
    - Dst: DoFilter4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:867,1
    - Dst: STOREUV
      Src: /src/libwebp/src/dsp/dec_sse2.c:870,1
    - Dst: STOREUV
      Src: /src/libwebp/src/dsp/dec_sse2.c:871,1
    - Dst: STOREUV
      Src: /src/libwebp/src/dsp/dec_sse2.c:872,1
    - Dst: STOREUV
      Src: /src/libwebp/src/dsp/dec_sse2.c:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 849
    functionDepth: 3
    functionLinenumber: 849
    functionLinenumberEnd: 874
    functionName: VFilter8i_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - MAX_DIFF2
    - MAX_DIFF1
    - LOADUV_H_EDGES4
    - DoFilter4_SSE2
    - ComplexMask_SSE2
    - STOREUV
    linkageType: ''
    returnType: void
    signature: "void VFilter8i_SSE2(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT
      v,\n                           int stride, int thresh, int ithresh,\n                           int
      hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load16x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:881,1
    - Dst: MAX_DIFF1
      Src: /src/libwebp/src/dsp/dec_sse2.c:882,1
    - Dst: Load16x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:886,1
    - Dst: MAX_DIFF2
      Src: /src/libwebp/src/dsp/dec_sse2.c:887,1
    - Dst: ComplexMask_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:889,1
    - Dst: DoFilter4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:890,1
    - Dst: Store16x4_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 876
    functionDepth: 3
    functionLinenumber: 876
    functionLinenumberEnd: 895
    functionName: HFilter8i_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - MAX_DIFF2
    - Load16x4_SSE2
    - Store16x4_SSE2
    - MAX_DIFF1
    - DoFilter4_SSE2
    - ComplexMask_SSE2
    linkageType: ''
    returnType: void
    signature: "void HFilter8i_SSE2(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT
      v,\n                           int stride, int thresh, int ithresh,\n                           int
      hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 901
    functionName: DST
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DST(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 902
    functionName: AVG3
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AVG3(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:912,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:913,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:914,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:915,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:916,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:917,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:917,1
    - Dst: _mm_subs_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:918,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:919,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:920,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 925
    functionName: VE4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_subs_epu8
    - WebPInt32ToMem
    - _mm_avg_epu8
    - _mm_xor_si128
    - _mm_and_si128
    - _mm_srli_si128
    - _mm_loadl_epi64
    - _mm_cvtsi128_si32
    - _mm_set1_epi8
    linkageType: ''
    returnType: void
    signature: void VE4_SSE2(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:928,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:929,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:930,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:931,1
    - Dst: _mm_insert_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:932,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:933,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:934,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:934,1
    - Dst: _mm_subs_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:935,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:936,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:937,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:937,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:938,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:938,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:938,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:939,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:939,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:939,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:940,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:940,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 941
    functionName: LD4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_subs_epu8
    - WebPInt32ToMem
    - _mm_avg_epu8
    - _mm_insert_epi16
    - _mm_xor_si128
    - _mm_and_si128
    - _mm_srli_si128
    - _mm_loadl_epi64
    - _mm_cvtsi128_si32
    - _mm_set1_epi8
    linkageType: ''
    returnType: void
    signature: void LD4_SSE2(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:944,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:949,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:950,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:951,1
    - Dst: _mm_slli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:952,1
    - Dst: _mm_insert_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:953,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:954,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:955,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:955,1
    - Dst: _mm_subs_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:956,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:957,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:958,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:958,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:959,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:959,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:960,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:960,1
    - Dst: _mm_slli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:960,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:961,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:961,1
    - Dst: _mm_slli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:961,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec_sse2.c:964,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec_sse2.c:964,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec_sse2.c:965,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/dec_sse2.c:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 966
    functionName: VR4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_subs_epu8
    - WebPInt32ToMem
    - _mm_avg_epu8
    - _mm_insert_epi16
    - _mm_xor_si128
    - _mm_and_si128
    - _mm_slli_si128
    - _mm_srli_si128
    - _mm_loadl_epi64
    - DST
    - _mm_cvtsi128_si32
    - _mm_set1_epi8
    - AVG3
    linkageType: ''
    returnType: void
    signature: void VR4_SSE2(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:969,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:970,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:971,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:972,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:973,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:974,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:975,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:976,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:976,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:977,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:978,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:979,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:980,1
    - Dst: _mm_subs_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:981,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:983,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:983,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:984,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:984,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:985,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:985,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:986,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:986,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:986,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:987,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:987,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:987,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec_sse2.c:990,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/dec_sse2.c:991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 992
    functionName: VL4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_subs_epu8
    - WebPInt32ToMem
    - _mm_avg_epu8
    - _mm_xor_si128
    - _mm_and_si128
    - _mm_srli_si128
    - _mm_loadl_epi64
    - DST
    - _mm_cvtsi128_si32
    - _mm_set1_epi8
    - _mm_or_si128
    linkageType: ''
    returnType: void
    signature: void VL4_SSE2(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:995,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:996,1
    - Dst: _mm_slli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:997,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1003,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1004,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1005,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1006,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:1007,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1008,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1008,1
    - Dst: _mm_subs_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:1009,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:1010,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:1011,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:1011,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:1012,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:1012,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1012,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:1013,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:1013,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1013,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:1014,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:1014,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1015
    functionName: RD4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_subs_epu8
    - _mm_cvtsi32_si128
    - _mm_avg_epu8
    - WebPInt32ToMem
    - _mm_xor_si128
    - _mm_and_si128
    - _mm_slli_si128
    - _mm_srli_si128
    - _mm_loadl_epi64
    - _mm_cvtsi128_si32
    - _mm_set1_epi8
    - _mm_or_si128
    linkageType: ''
    returnType: void
    signature: void RD4_SSE2(uint8_t* dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1025,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1028,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/dec_sse2.c:1028,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:1029,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:1032,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:1033,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:1033,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/dec_sse2.c:1034,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:1034,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:1037,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:1038,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:1041,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:1042,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:1042,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:1043,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1046,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:1047,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:1048,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:1051,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:1052,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:1053,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:1054,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1055,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - dst
    - size
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1023
    functionDepth: 1
    functionLinenumber: 1023
    functionLinenumberEnd: 1058
    functionName: TrueMotion_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_cvtsi32_si128
    - _mm_unpacklo_epi8
    - WebPInt32ToMem
    - _mm_set1_epi16
    - _mm_setzero_si128
    - _mm_storeu_si128
    - _mm_storel_epi64
    - WebPMemToInt32
    - _mm_add_epi16
    - _mm_loadu_si128
    - _mm_packus_epi16
    - _mm_loadl_epi64
    - _mm_cvtsi128_si32
    - _mm_unpackhi_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE TrueMotion_SSE2(uint8_t* dst, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrueMotion_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1060
    functionName: TM4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - TrueMotion_SSE2
    linkageType: ''
    returnType: void
    signature: void TM4_SSE2(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrueMotion_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:1061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1061
    functionDepth: 0
    functionLinenumber: 1061
    functionLinenumberEnd: 1061
    functionName: TM8uv_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - TrueMotion_SSE2
    linkageType: ''
    returnType: void
    signature: void TM8uv_SSE2(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrueMotion_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1062
    functionDepth: 0
    functionLinenumber: 1062
    functionLinenumberEnd: 1062
    functionName: TM16_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - TrueMotion_SSE2
    linkageType: ''
    returnType: void
    signature: void TM16_SSE2(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1065,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1070
    functionName: VE16_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_storeu_si128
    - _mm_loadu_si128
    linkageType: ''
    returnType: void
    signature: void VE16_SSE2(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:1075,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1079
    functionName: HE16_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi8
    - _mm_storeu_si128
    linkageType: ''
    returnType: void
    signature: void HE16_SSE2(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:1083,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - dst
    argTypes:
    - uint8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1087
    functionName: Put16_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi8
    - _mm_storeu_si128
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Put16_SSE2(uint8_t v, uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1090,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1091,1
    - Dst: _mm_sad_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:1092,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:1094,1
    - Dst: _mm_shuffle_epi32
      Src: /src/libwebp/src/dsp/dec_sse2.c:1094,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:1101,1
    - Dst: Put16_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:1102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1104
    functionName: DC16_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_setzero_si128
    - _mm_add_epi16
    - _mm_sad_epu8
    - _mm_loadu_si128
    - _mm_shuffle_epi32
    - Put16_SSE2
    - _mm_cvtsi128_si32
    linkageType: ''
    returnType: void
    signature: void DC16_SSE2(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Put16_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:1112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1113
    functionName: DC16NoTop_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - Put16_SSE2
    linkageType: ''
    returnType: void
    signature: void DC16NoTop_SSE2(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1116,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1117,1
    - Dst: _mm_sad_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:1118,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/dec_sse2.c:1120,1
    - Dst: _mm_shuffle_epi32
      Src: /src/libwebp/src/dsp/dec_sse2.c:1120,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:1121,1
    - Dst: Put16_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1123
    functionName: DC16NoLeft_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_setzero_si128
    - _mm_add_epi16
    - _mm_sad_epu8
    - _mm_loadu_si128
    - _mm_shuffle_epi32
    - Put16_SSE2
    - _mm_cvtsi128_si32
    linkageType: ''
    returnType: void
    signature: void DC16NoLeft_SSE2(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Put16_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:1126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1125
    functionDepth: 0
    functionLinenumber: 1125
    functionLinenumberEnd: 1127
    functionName: DC16NoTopLeft_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - Put16_SSE2
    linkageType: ''
    returnType: void
    signature: void DC16NoTopLeft_SSE2(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:1134,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:1136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1138
    functionName: VE8uv_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_storel_epi64
    - _mm_loadl_epi64
    linkageType: ''
    returnType: void
    signature: void VE8uv_SSE2(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/dec_sse2.c:1143,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:1145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - dst
    argTypes:
    - uint8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1141
    functionDepth: 0
    functionLinenumber: 1141
    functionLinenumberEnd: 1147
    functionName: Put8x8uv_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi8
    - _mm_storel_epi64
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Put8x8uv_SSE2(uint8_t v, uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1150,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:1151,1
    - Dst: _mm_sad_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:1152,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:1159,1
    - Dst: Put8x8uv_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:1160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1149
    functionDepth: 0
    functionLinenumber: 1149
    functionLinenumberEnd: 1162
    functionName: DC8uv_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_setzero_si128
    - Put8x8uv_SSE2
    - _mm_sad_epu8
    - _mm_loadl_epi64
    - _mm_cvtsi128_si32
    linkageType: ''
    returnType: void
    signature: void DC8uv_SSE2(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/dec_sse2.c:1165,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/dec_sse2.c:1166,1
    - Dst: _mm_sad_epu8
      Src: /src/libwebp/src/dsp/dec_sse2.c:1167,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/dec_sse2.c:1168,1
    - Dst: Put8x8uv_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:1169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1170
    functionName: DC8uvNoLeft_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_setzero_si128
    - Put8x8uv_SSE2
    - _mm_sad_epu8
    - _mm_loadl_epi64
    - _mm_cvtsi128_si32
    linkageType: ''
    returnType: void
    signature: void DC8uvNoLeft_SSE2(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Put8x8uv_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:1178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1179
    functionName: DC8uvNoTop_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - Put8x8uv_SSE2
    linkageType: ''
    returnType: void
    signature: void DC8uvNoTop_SSE2(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Put8x8uv_SSE2
      Src: /src/libwebp/src/dsp/dec_sse2.c:1182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1181
    functionDepth: 0
    functionLinenumber: 1181
    functionLinenumberEnd: 1183
    functionName: DC8uvNoTopLeft_SSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 0
    functionsReached:
    - Put8x8uv_SSE2
    linkageType: ''
    returnType: void
    signature: void DC8uvNoTopLeft_SSE2(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1190
    functionDepth: 0
    functionLinenumber: 1190
    functionLinenumberEnd: 1231
    functionName: VP8DspInitSSE2
    functionSourceFile: /src/libwebp/src/dsp/dec_sse2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8DspInitSSE2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:53,1
    - Dst: _mm_set_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:55,1
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:56,1
    - Dst: _mm_set_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:57,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:61,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:62,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:68,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:69,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:75,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:76,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:77,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:78,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:79,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:80,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:81,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:82,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:83,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:84,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:87,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:88,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:90,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:91,1
    - Dst: _mm_shuffle_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:92,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/enc_sse2.c:92,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:94,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:95,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:99,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:100,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:107,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:108,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:112,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:116,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:117,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:118,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:119,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:120,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:121,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:122,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:123,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:124,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:125,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:128,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:129,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:131,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:132,1
    - Dst: _mm_shuffle_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:133,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/enc_sse2.c:133,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:135,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:136,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:140,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:141,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:145,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:146,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:158,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/enc_sse2.c:158,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:159,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/enc_sse2.c:159,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:160,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/enc_sse2.c:160,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:161,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/enc_sse2.c:161,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:162,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:163,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:166,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:167,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:169,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:170,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:172,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:174,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:177,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:178,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:179,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 182
    functionName: ITransform_One_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - WebPInt32ToMem
    - _mm_loadu_si128
    - _mm_set_epi16
    - _mm_packus_epi16
    - _mm_setzero_si128
    - _mm_storeu_si128
    - WebPMemToInt32
    - _mm_unpackhi_epi16
    - _mm_unpacklo_epi64
    - _mm_mulhi_epi16
    - _mm_unpackhi_epi64
    - _mm_unpacklo_epi32
    - _mm_sub_epi16
    - _mm_shuffle_epi32
    - _mm_cvtsi32_si128
    - _mm_add_epi16
    - _MM_SHUFFLE
    - _mm_srai_epi16
    - _mm_unpacklo_epi16
    linkageType: ''
    returnType: void
    signature: "void ITransform_One_SSE2(const uint8_t* WEBP_RESTRICT ref,\n                                const
      int16_t* WEBP_RESTRICT in,\n                                uint8_t* WEBP_RESTRICT
      dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:204,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:205,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:212,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:213,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:214,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:215,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:216,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:217,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:218,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:219,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:230,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:231,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:233,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:234,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:235,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:236,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:237,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:239,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:240,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:241,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:242,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:243,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:246,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:247,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:248,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:249,1
    - Dst: VP8Transpose_2_4x4_16b
      Src: /src/libwebp/src/dsp/enc_sse2.c:252,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:259,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:260,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:261,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:262,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:264,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:265,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:266,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:267,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:268,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:270,1
    - Dst: _mm_mulhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:271,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:272,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:273,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:274,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:277,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:278,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:279,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:280,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:281,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:282,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:283,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:284,1
    - Dst: VP8Transpose_2_4x4_16b
      Src: /src/libwebp/src/dsp/enc_sse2.c:287,1
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:293,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:297,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:298,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:299,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:300,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:302,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:303,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:304,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:305,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:307,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:308,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:309,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:310,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:312,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:313,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:314,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:315,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:317,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:318,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:319,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 322
    functionName: ITransform_Two_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_mulhi_epi16
    - _mm_unpacklo_epi8
    - _mm_set1_epi16
    - _mm_setzero_si128
    - _mm_storel_epi64
    - _mm_unpackhi_epi64
    - _mm_add_epi16
    - _mm_sub_epi16
    - _mm_srai_epi16
    - _mm_loadu_si128
    - _mm_loadl_epi64
    - _mm_packus_epi16
    - _mm_unpacklo_epi64
    - VP8Transpose_2_4x4_16b
    linkageType: ''
    returnType: void
    signature: "void ITransform_Two_SSE2(const uint8_t* WEBP_RESTRICT ref,\n                                const
      int16_t* WEBP_RESTRICT in,\n                                uint8_t* WEBP_RESTRICT
      dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ITransform_Two_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:329,1
    - Dst: ITransform_One_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - do_two
    argTypes:
    - uint8_t*
    - int16_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 333
    functionName: ITransform_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - ITransform_Two_SSE2
    - ITransform_One_SSE2
    linkageType: ''
    returnType: void
    signature: "void ITransform_SSE2(const uint8_t* WEBP_RESTRICT ref,\n                            const
      int16_t* WEBP_RESTRICT in,\n                            uint8_t* WEBP_RESTRICT
      dst, int do_two)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:338,1
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:339,1
    - Dst: _mm_set_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:341,1
    - Dst: _mm_set_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:342,1
    - Dst: _mm_set_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:344,1
    - Dst: _mm_set_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:346,1
    - Dst: _mm_shufflehi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:350,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/enc_sse2.c:350,1
    - Dst: _mm_shufflehi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:351,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/enc_sse2.c:351,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:354,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:355,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:358,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:359,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:363,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:364,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:365,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:366,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:367,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:368,1
    - Dst: _mm_srai_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:369,1
    - Dst: _mm_srai_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:370,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:371,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:372,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:373,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:374,1
    - Dst: _mm_unpackhi_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:375,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:376,1
    - Dst: _mm_shuffle_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:377,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/enc_sse2.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - in01
    - in23
    - out01
    - out32
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 378
    functionName: FTransformPass1_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_madd_epi16
    - _mm_unpackhi_epi64
    - _mm_packs_epi32
    - _mm_unpackhi_epi32
    - _mm_add_epi16
    - _mm_sub_epi16
    - _mm_unpacklo_epi32
    - _MM_SHUFFLE
    - _mm_srai_epi32
    - _mm_shuffle_epi32
    - _mm_set_epi16
    - _mm_add_epi32
    - _mm_shufflehi_epi16
    - _mm_unpackhi_epi16
    - _mm_unpacklo_epi16
    - _mm_unpacklo_epi64
    linkageType: ''
    returnType: void
    signature: "void FTransformPass1_SSE2(const __m128i* const in01,\n                                 const
      __m128i* const in23,\n                                 __m128i* const out01,
      __m128i* const out32)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:383,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:384,1
    - Dst: _mm_set_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:386,1
    - Dst: _mm_set_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:388,1
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:389,1
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:390,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:395,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:396,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:398,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:399,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:400,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:401,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:402,1
    - Dst: _mm_srai_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:403,1
    - Dst: _mm_srai_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:404,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:407,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:408,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:413,1
    - Dst: _mm_cmpeq_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:413,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:417,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:418,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:419,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:420,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:421,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:424,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:425,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:427,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:428,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:429,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - v01
    - v32
    - WEBP_RESTRICT
    argTypes:
    - __m128i*
    - __m128i*
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 431
    functionName: FTransformPass2_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_set1_epi16
    - _mm_setzero_si128
    - _mm_storeu_si128
    - _mm_madd_epi16
    - _mm_unpackhi_epi64
    - _mm_packs_epi32
    - _mm_add_epi16
    - _mm_sub_epi16
    - _mm_srai_epi32
    - _mm_cmpeq_epi16
    - _mm_srai_epi16
    - _mm_set_epi16
    - _mm_add_epi32
    - _mm_unpacklo_epi16
    - _mm_unpacklo_epi64
    linkageType: ''
    returnType: void
    signature: "void FTransformPass2_SSE2(const __m128i* const v01,\n                                 const
      __m128i* const v32,\n                                 int16_t* WEBP_RESTRICT
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:436,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:438,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:439,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:440,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:441,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:447,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:448,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:453,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:454,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:455,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:456,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:457,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:458,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:461,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:462,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:463,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:464,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:467,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:468,1
    - Dst: FTransformPass1_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:472,1
    - Dst: FTransformPass2_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 476
    functionName: FTransform_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - FTransformPass2_SSE2
    - _mm_setzero_si128
    - _mm_sub_epi16
    - _mm_loadl_epi64
    - _mm_unpacklo_epi16
    - FTransformPass1_SSE2
    linkageType: ''
    returnType: void
    signature: "void FTransform_SSE2(const uint8_t* WEBP_RESTRICT src,\n                            const
      uint8_t* WEBP_RESTRICT ref,\n                            int16_t* WEBP_RESTRICT
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:481,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:484,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:485,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:486,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:487,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:488,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:489,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:490,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:491,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:493,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:494,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:495,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:496,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:497,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:498,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:499,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:500,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:502,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:503,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:504,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:505,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:512,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:513,1
    - Dst: _mm_unpackhi_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:514,1
    - Dst: _mm_unpackhi_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:515,1
    - Dst: FTransformPass1_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:520,1
    - Dst: FTransformPass1_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:521,1
    - Dst: FTransformPass2_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:524,1
    - Dst: FTransformPass2_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 526
    functionName: FTransform2_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - FTransformPass2_SSE2
    - _mm_setzero_si128
    - _mm_unpackhi_epi32
    - _mm_unpacklo_epi32
    - _mm_sub_epi16
    - _mm_loadl_epi64
    - FTransformPass1_SSE2
    linkageType: ''
    returnType: void
    signature: "void FTransform2_SSE2(const uint8_t* WEBP_RESTRICT src,\n                             const
      uint8_t* WEBP_RESTRICT ref,\n                             int16_t* WEBP_RESTRICT
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:530,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:531,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:532,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:533,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:534,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:535,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:536,1
    - Dst: _mm_adds_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:537,1
    - Dst: _mm_subs_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:538,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:539,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:540,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:541,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - int16_t*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 543
    functionName: FTransformWHTRow_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_adds_epi16
    - _mm_madd_epi16
    - _mm_unpacklo_epi32
    - _mm_subs_epi16
    - _mm_set_epi16
    - _mm_loadl_epi64
    - _mm_unpacklo_epi16
    - _mm_unpacklo_epi64
    linkageType: ''
    returnType: void
    signature: "void FTransformWHTRow_SSE2(const int16_t* WEBP_RESTRICT const in,\n
      \                                 __m128i* const out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FTransformWHTRow_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:550,1
    - Dst: FTransformWHTRow_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:551,1
    - Dst: FTransformWHTRow_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:552,1
    - Dst: FTransformWHTRow_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:553,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:557,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:558,1
    - Dst: _mm_sub_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:559,1
    - Dst: _mm_sub_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:560,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:561,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:562,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:565,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:566,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:567,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:568,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:570,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:570,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:571,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 573
    functionName: FTransformWHT_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_storeu_si128
    - _mm_unpackhi_epi64
    - _mm_packs_epi32
    - _mm_add_epi16
    - _mm_sub_epi16
    - _mm_srai_epi16
    - _mm_add_epi32
    - FTransformWHTRow_SSE2
    - _mm_unpacklo_epi64
    - _mm_sub_epi32
    linkageType: ''
    returnType: void
    signature: "void FTransformWHT_SSE2(const int16_t* WEBP_RESTRICT in,\n                               int16_t*
      WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:583,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:584,1
    - Dst: FTransform_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:591,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:596,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:597,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:598,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:599,1
    - Dst: _mm_max_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:600,1
    - Dst: _mm_max_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:601,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:603,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:604,1
    - Dst: _mm_min_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:606,1
    - Dst: _mm_min_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:607,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:609,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:610,1
    - Dst: VP8SetHistogramData
      Src: /src/libwebp/src/dsp/enc_sse2.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - start_block
    - end_block
    - histo
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - VP8Histogram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 619
    functionName: CollectHistogram_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - VP8SetHistogramData
    - _mm_set1_epi16
    - _mm_setzero_si128
    - FTransform_SSE2
    - _mm_max_epi16
    - _mm_storeu_si128
    - _mm_sub_epi16
    - _mm_srai_epi16
    - _mm_loadu_si128
    - _mm_min_epi16
    linkageType: ''
    returnType: void
    signature: "void CollectHistogram_SSE2(const uint8_t* WEBP_RESTRICT ref,\n                                  const
      uint8_t* WEBP_RESTRICT pred,\n                                  int start_block,
      int end_block,\n                                  VP8Histogram* WEBP_RESTRICT
      const histo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:627,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - dst
    argTypes:
    - uint8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 631
    functionName: Put8x8uv_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 4
    functionsReached:
    - _mm_set1_epi8
    - _mm_storel_epi64
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Put8x8uv_SSE2(uint8_t v, uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:635,1
    - Dst: _mm_store_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - dst
    argTypes:
    - uint8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 639
    functionName: Put16_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 4
    functionsReached:
    - _mm_set1_epi8
    - _mm_store_si128
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Put16_SSE2(uint8_t v, uint8_t* dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/src/dsp/enc_sse2.c:645,1
    - Dst: Put8x8uv_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:648,1
    - Dst: Put16_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:650,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - dst
    - value
    - size
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 652
    functionName: Fill_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - memset
    - Put16_SSE2
    - Put8x8uv_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Fill_SSE2(uint8_t* dst, int value, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:657,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 661
    functionName: VE8uv_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_storel_epi64
    - _mm_loadl_epi64
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VE8uv_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                   const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_load_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:665,1
    - Dst: _mm_store_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 670
    functionName: VE16_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_store_si128
    - _mm_load_si128
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VE16_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                  const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VE8uv_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:677,1
    - Dst: VE16_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:679,1
    - Dst: Fill_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:682,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - size
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 684
    functionName: VerticalPred_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - VE16_SSE2
    - VE8uv_SSE2
    - Fill_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VerticalPred_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                          const
      uint8_t* WEBP_RESTRICT top,\n                                          int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:690,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 694
    functionName: HE8uv_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi8
    - _mm_storel_epi64
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE HE8uv_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                   const
      uint8_t* WEBP_RESTRICT left)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:700,1
    - Dst: _mm_store_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 704
    functionName: HE16_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi8
    - _mm_store_si128
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE HE16_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                  const
      uint8_t* WEBP_RESTRICT left)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HE8uv_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:711,1
    - Dst: HE16_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:713,1
    - Dst: Fill_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - size
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 718
    functionName: HorizontalPred_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - HE16_SSE2
    - HE8uv_SSE2
    - Fill_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE HorizontalPred_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                            const
      uint8_t* WEBP_RESTRICT left,\n                                            int
      size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:723,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:726,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:727,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:730,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:731,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:731,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:732,1
    - Dst: _mm_load_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:735,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:736,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:737,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:740,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:741,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:742,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:743,1
    - Dst: _mm_store_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:744,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - size
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 747
    functionName: TM_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_set1_epi16
    - _mm_setzero_si128
    - _mm_store_si128
    - _mm_storel_epi64
    - _mm_add_epi16
    - _mm_loadl_epi64
    - _mm_packus_epi16
    - _mm_unpackhi_epi8
    - _mm_load_si128
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE TM_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                const
      uint8_t* WEBP_RESTRICT left,\n                                const uint8_t*
      WEBP_RESTRICT top, int size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TM_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:755,1
    - Dst: HorizontalPred_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:757,1
    - Dst: VerticalPred_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:765,1
    - Dst: Fill_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:767,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - size
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 770
    functionName: TrueMotion_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 3
    functionsReached:
    - TM_SSE2
    - HorizontalPred_SSE2
    - VerticalPred_SSE2
    - Fill_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE TrueMotion_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                        const
      uint8_t* WEBP_RESTRICT left,\n                                        const
      uint8_t* WEBP_RESTRICT top,\n                                        int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:775,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:776,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:777,1
    - Dst: VP8HorizontalAdd8b
      Src: /src/libwebp/src/dsp/enc_sse2.c:778,1
    - Dst: Put8x8uv_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 780
    functionName: DC8uv_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - VP8HorizontalAdd8b
    - _mm_unpacklo_epi64
    - _mm_loadl_epi64
    - Put8x8uv_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DC8uv_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                   const
      uint8_t* WEBP_RESTRICT left,\n                                   const uint8_t*
      WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:784,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:785,1
    - Dst: _mm_sad_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:786,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:787,1
    - Dst: Put8x8uv_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 789
    functionName: DC8uvNoLeft_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_setzero_si128
    - Put8x8uv_SSE2
    - _mm_sad_epu8
    - _mm_loadl_epi64
    - _mm_cvtsi128_si32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DC8uvNoLeft_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                         const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DC8uvNoLeft_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 795
    functionName: DC8uvNoTop_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - DC8uvNoLeft_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DC8uvNoTop_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                        const
      uint8_t* WEBP_RESTRICT left)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Put8x8uv_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 799
    functionName: DC8uvNoTopLeft_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - Put8x8uv_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE DC8uvNoTopLeft_SSE2(uint8_t* dst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DC8uv_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:806,1
    - Dst: DC8uvNoLeft_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:808,1
    - Dst: DC8uvNoTop_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:811,1
    - Dst: DC8uvNoTopLeft_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:813,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 815
    functionName: DC8uvMode_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - DC8uvNoTop_SSE2
    - DC8uv_SSE2
    - DC8uvNoTopLeft_SSE2
    - DC8uvNoLeft_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DC8uvMode_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                       const
      uint8_t* WEBP_RESTRICT left,\n                                       const uint8_t*
      WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_load_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:820,1
    - Dst: _mm_load_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:821,1
    - Dst: VP8HorizontalAdd8b
      Src: /src/libwebp/src/dsp/enc_sse2.c:823,1
    - Dst: VP8HorizontalAdd8b
      Src: /src/libwebp/src/dsp/enc_sse2.c:823,1
    - Dst: Put16_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 825
    functionName: DC16_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - VP8HorizontalAdd8b
    - _mm_load_si128
    - Put16_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DC16_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                  const
      uint8_t* WEBP_RESTRICT left,\n                                  const uint8_t*
      WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_load_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:829,1
    - Dst: VP8HorizontalAdd8b
      Src: /src/libwebp/src/dsp/enc_sse2.c:830,1
    - Dst: Put16_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 832
    functionName: DC16NoLeft_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - VP8HorizontalAdd8b
    - _mm_load_si128
    - Put16_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DC16NoLeft_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                        const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DC16NoLeft_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 838
    functionName: DC16NoTop_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - DC16NoLeft_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DC16NoTop_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                       const
      uint8_t* WEBP_RESTRICT left)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Put16_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 842
    functionName: DC16NoTopLeft_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - Put16_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE DC16NoTopLeft_SSE2(uint8_t* dst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DC16_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:849,1
    - Dst: DC16NoLeft_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:851,1
    - Dst: DC16NoTop_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:854,1
    - Dst: DC16NoTopLeft_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:856,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 858
    functionName: DC16Mode_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - DC16NoTopLeft_SSE2
    - DC16NoLeft_SSE2
    - DC16_SSE2
    - DC16NoTop_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DC16Mode_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                      const
      uint8_t* WEBP_RESTRICT left,\n                                      const uint8_t*
      WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 864
    functionName: DST
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DST(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 865
    functionName: AVG3
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AVG3(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 866
    functionName: AVG2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AVG2(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:878,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:879,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:880,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:881,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:882,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:883,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:883,1
    - Dst: _mm_subs_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:884,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:885,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:886,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 876
    functionDepth: 1
    functionLinenumber: 876
    functionLinenumberEnd: 891
    functionName: VE4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_subs_epu8
    - WebPInt32ToMem
    - _mm_avg_epu8
    - _mm_xor_si128
    - _mm_and_si128
    - _mm_srli_si128
    - _mm_loadl_epi64
    - _mm_cvtsi128_si32
    - _mm_set1_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VE4_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                 const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPUint32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:901,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_sse2.c:901,1
    - Dst: WebPUint32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:902,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_sse2.c:902,1
    - Dst: WebPUint32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:903,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_sse2.c:903,1
    - Dst: WebPUint32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:904,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_sse2.c:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 905
    functionName: HE4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - WebPUint32ToMem
    - AVG3
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE HE4_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                 const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fill_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 913
    functionName: DC4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - Fill_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DC4_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                 const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:918,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:919,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:920,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:921,1
    - Dst: _mm_insert_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:922,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:923,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:924,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:924,1
    - Dst: _mm_subs_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:925,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:926,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:927,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:927,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:928,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:928,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:928,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:929,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:929,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:929,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:930,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:930,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 931
    functionName: LD4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_subs_epu8
    - WebPInt32ToMem
    - _mm_avg_epu8
    - _mm_insert_epi16
    - _mm_xor_si128
    - _mm_and_si128
    - _mm_srli_si128
    - _mm_loadl_epi64
    - _mm_cvtsi128_si32
    - _mm_set1_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE LD4_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                 const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:936,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:941,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:942,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:943,1
    - Dst: _mm_slli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:944,1
    - Dst: _mm_insert_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:945,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:946,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:947,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:947,1
    - Dst: _mm_subs_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:948,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:949,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:950,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:950,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:951,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:951,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:952,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:952,1
    - Dst: _mm_slli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:952,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:953,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:953,1
    - Dst: _mm_slli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:953,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:956,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_sse2.c:956,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:957,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_sse2.c:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 958
    functionName: VR4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_subs_epu8
    - WebPInt32ToMem
    - _mm_avg_epu8
    - _mm_insert_epi16
    - _mm_xor_si128
    - _mm_and_si128
    - _mm_slli_si128
    - _mm_srli_si128
    - _mm_loadl_epi64
    - DST
    - _mm_cvtsi128_si32
    - _mm_set1_epi8
    - AVG3
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VR4_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                 const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:963,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:964,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:965,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:966,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:967,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:968,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:969,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:970,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:970,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:971,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:972,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:973,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:974,1
    - Dst: _mm_subs_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:975,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:977,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:977,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:978,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:978,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:979,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:979,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:980,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:980,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:980,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:981,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:981,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:981,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:984,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 986
    functionName: VL4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_subs_epu8
    - WebPInt32ToMem
    - _mm_avg_epu8
    - _mm_xor_si128
    - _mm_and_si128
    - _mm_srli_si128
    - _mm_loadl_epi64
    - DST
    - _mm_cvtsi128_si32
    - _mm_set1_epi8
    - _mm_or_si128
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VL4_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                 const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:991,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:992,1
    - Dst: _mm_insert_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:993,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:994,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:995,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:996,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:997,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:997,1
    - Dst: _mm_subs_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:998,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:999,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:1000,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1000,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:1001,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1001,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1001,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:1002,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1002,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1002,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:1003,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1003,1
    - Dst: _mm_srli_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 1004
    functionName: RD4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_subs_epu8
    - WebPInt32ToMem
    - _mm_avg_epu8
    - _mm_insert_epi16
    - _mm_xor_si128
    - _mm_and_si128
    - _mm_srli_si128
    - _mm_loadl_epi64
    - _mm_cvtsi128_si32
    - _mm_set1_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE RD4_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                 const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1012,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1012,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1013,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1013,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1013,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1014,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1014,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1014,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1015,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_sse2.c:1015,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1016,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1016,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_sse2.c:1016,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1017,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1017,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_sse2.c:1017,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1018,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1018,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1018,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1018,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1018,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1019
    functionName: HU4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - AVG2
    - AVG3
    - DST
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE HU4_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                 const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1032,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1032,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1032,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1033,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1033,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1033,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1034,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1034,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1034,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1035,1
    - Dst: AVG2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1035,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1037,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_sse2.c:1037,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1038,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_sse2.c:1038,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1039,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1039,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_sse2.c:1039,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1040,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1040,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_sse2.c:1040,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1041,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1041,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_sse2.c:1041,1
    - Dst: DST
      Src: /src/libwebp/src/dsp/enc_sse2.c:1042,1
    - Dst: AVG3
      Src: /src/libwebp/src/dsp/enc_sse2.c:1042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1043
    functionName: HD4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - AVG2
    - AVG3
    - DST
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE HD4_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                 const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1047,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1048,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1048,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:1049,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1053,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1054,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1054,1
    - Dst: WebPInt32ToMem
      Src: /src/libwebp/src/dsp/enc_sse2.c:1055,1
    - Dst: _mm_cvtsi128_si32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1057
    functionName: TM4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_cvtsi32_si128
    - _mm_unpacklo_epi8
    - WebPInt32ToMem
    - _mm_set1_epi16
    - _mm_setzero_si128
    - WebPMemToInt32
    - _mm_add_epi16
    - _mm_packus_epi16
    - _mm_cvtsi128_si32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE TM4_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                 const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DC4_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1070,1
    - Dst: TM4_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1071,1
    - Dst: VE4_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1072,1
    - Dst: HE4_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1073,1
    - Dst: RD4_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1074,1
    - Dst: VR4_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1075,1
    - Dst: LD4_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1076,1
    - Dst: VL4_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1077,1
    - Dst: HD4_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1078,1
    - Dst: HU4_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1068
    functionDepth: 2
    functionLinenumber: 1068
    functionLinenumberEnd: 1080
    functionName: Intra4Preds_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - HE4_SSE2
    - HD4_SSE2
    - RD4_SSE2
    - VE4_SSE2
    - VL4_SSE2
    - HU4_SSE2
    - TM4_SSE2
    - VR4_SSE2
    - LD4_SSE2
    - DC4_SSE2
    linkageType: ''
    returnType: void
    signature: "void Intra4Preds_SSE2(uint8_t* WEBP_RESTRICT dst,\n                             const
      uint8_t* WEBP_RESTRICT top)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DC8uvMode_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1089,1
    - Dst: VerticalPred_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1090,1
    - Dst: HorizontalPred_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1091,1
    - Dst: TrueMotion_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1092,1
    - Dst: DC8uvMode_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1097,1
    - Dst: VerticalPred_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1098,1
    - Dst: HorizontalPred_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1099,1
    - Dst: TrueMotion_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1085
    functionDepth: 2
    functionLinenumber: 1085
    functionLinenumberEnd: 1101
    functionName: IntraChromaPreds_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - HorizontalPred_SSE2
    - DC8uvMode_SSE2
    - VerticalPred_SSE2
    - TrueMotion_SSE2
    linkageType: ''
    returnType: void
    signature: "void IntraChromaPreds_SSE2(uint8_t* WEBP_RESTRICT dst,\n                                  const
      uint8_t* WEBP_RESTRICT left,\n                                  const uint8_t*
      WEBP_RESTRICT top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DC16Mode_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1109,1
    - Dst: VerticalPred_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1110,1
    - Dst: HorizontalPred_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1111,1
    - Dst: TrueMotion_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1106
    functionDepth: 2
    functionLinenumber: 1106
    functionLinenumberEnd: 1113
    functionName: Intra16Preds_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - HorizontalPred_SSE2
    - TrueMotion_SSE2
    - VerticalPred_SSE2
    - DC16Mode_SSE2
    linkageType: ''
    returnType: void
    signature: "void Intra16Preds_SSE2(uint8_t* WEBP_RESTRICT dst,\n                              const
      uint8_t* WEBP_RESTRICT left,\n                              const uint8_t* WEBP_RESTRICT
      top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_subs_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:1122,1
    - Dst: _mm_subs_epu8
      Src: /src/libwebp/src/dsp/enc_sse2.c:1123,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1124,1
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1126,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:1127,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:1128,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1130,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1131,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - sum
    argTypes:
    - __m128i
    - __m128i
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1118
    functionDepth: 0
    functionLinenumber: 1118
    functionLinenumberEnd: 1133
    functionName: SubtractAndAccumulate_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_subs_epu8
    - _mm_unpacklo_epi8
    - _mm_setzero_si128
    - _mm_madd_epi16
    - _mm_add_epi32
    - _mm_unpackhi_epi8
    - _mm_or_si128
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE SubtractAndAccumulate_SSE2(const __m128i a,\n                                                   const
      __m128i b,\n                                                   __m128i* const
      sum)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1138,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1143,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1144,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1145,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1146,1
    - Dst: SubtractAndAccumulate_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1148,1
    - Dst: SubtractAndAccumulate_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1149,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1150,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1150,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - num_pairs
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1135
    functionDepth: 1
    functionLinenumber: 1135
    functionLinenumberEnd: 1156
    functionName: SSE_16xN_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_setzero_si128
    - _mm_storeu_si128
    - SubtractAndAccumulate_SSE2
    - _mm_loadu_si128
    - _mm_add_epi32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE SSE_16xN_SSE2(const uint8_t* WEBP_RESTRICT a,\n                                     const
      uint8_t* WEBP_RESTRICT b,\n                                     int num_pairs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSE_16xN_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1158
    functionDepth: 2
    functionLinenumber: 1158
    functionLinenumberEnd: 1161
    functionName: SSE16x16_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - SSE_16xN_SSE2
    linkageType: ''
    returnType: int
    signature: "int SSE16x16_SSE2(const uint8_t* WEBP_RESTRICT a,\n                         const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSE_16xN_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1163
    functionDepth: 2
    functionLinenumber: 1163
    functionLinenumberEnd: 1166
    functionName: SSE16x8_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - SSE_16xN_SSE2
    linkageType: ''
    returnType: int
    signature: "int SSE16x8_SSE2(const uint8_t* WEBP_RESTRICT a,\n                        const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1168
    functionDepth: 0
    functionLinenumber: 1168
    functionLinenumberEnd: 1170
    functionName: LOAD_8x16b
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_8x16b(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1173,1
    - Dst: LOAD_8x16b
      Src: /src/libwebp/src/dsp/enc_sse2.c:1178,1
    - Dst: LOAD_8x16b
      Src: /src/libwebp/src/dsp/enc_sse2.c:1179,1
    - Dst: LOAD_8x16b
      Src: /src/libwebp/src/dsp/enc_sse2.c:1180,1
    - Dst: LOAD_8x16b
      Src: /src/libwebp/src/dsp/enc_sse2.c:1181,1
    - Dst: _mm_subs_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1183,1
    - Dst: _mm_subs_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1184,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1186,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1187,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1189,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1190,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1171
    functionDepth: 1
    functionLinenumber: 1171
    functionLinenumberEnd: 1196
    functionName: SSE8x8_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_setzero_si128
    - _mm_storeu_si128
    - _mm_madd_epi16
    - LOAD_8x16b
    - _mm_subs_epi16
    - _mm_add_epi32
    linkageType: ''
    returnType: int
    signature: "int SSE8x8_SSE2(const uint8_t* WEBP_RESTRICT a,\n                       const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1201,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1205,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1206,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1207,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1208,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1209,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1210,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1211,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1212,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1214,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1215,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1216,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1217,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:1219,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:1220,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:1221,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:1222,1
    - Dst: _mm_subs_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1224,1
    - Dst: _mm_subs_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1225,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1226,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1227,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1228,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1233
    functionName: SSE4x4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_setzero_si128
    - _mm_storeu_si128
    - _mm_madd_epi16
    - _mm_unpacklo_epi32
    - _mm_subs_epi16
    - _mm_add_epi32
    - _mm_loadl_epi64
    linkageType: ''
    returnType: int
    signature: "int SSE4x4_SSE2(const uint8_t* WEBP_RESTRICT a,\n                       const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1238,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1239,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1240,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1241,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1242,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1243,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1244,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1245,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1246,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1247,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1248,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1249,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1250,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1251,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1252,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1253,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1254,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1255,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1256,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1257,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - dc
    argTypes:
    - uint8_t*
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1237
    functionDepth: 0
    functionLinenumber: 1237
    functionLinenumberEnd: 1264
    functionName: Mean16x4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi16
    - _mm_srli_epi16
    - _mm_storeu_si128
    - _mm_and_si128
    - _mm_loadu_si128
    - _mm_add_epi32
    linkageType: ''
    returnType: void
    signature: void Mean16x4_SSE2(const uint8_t* WEBP_RESTRICT ref, uint32_t dc[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1280,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1284,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1285,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1286,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1287,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1288,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1289,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1290,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1291,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1294,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1295,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1296,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1297,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:1298,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:1299,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:1300,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:1301,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1312,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1313,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1314,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1315,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1316,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1317,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1318,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1319,1
    - Dst: VP8Transpose_2_4x4_16b
      Src: /src/libwebp/src/dsp/enc_sse2.c:1326,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1332,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1333,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1336,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1337,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1338,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1339,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1340,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1341,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1342,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1343,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1346,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1347,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1348,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/enc_sse2.c:1349,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1352,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1353,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1354,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1355,1
    - Dst: _mm_max_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1356,1
    - Dst: _mm_max_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1357,1
    - Dst: _mm_max_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1358,1
    - Dst: _mm_max_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1359,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1363,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1364,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1365,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1366,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1367,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1368,1
    - Dst: _mm_sub_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1371,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - w
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1275
    functionDepth: 1
    functionLinenumber: 1275
    functionLinenumberEnd: 1375
    functionName: TTransform_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_setzero_si128
    - _mm_max_epi16
    - _mm_madd_epi16
    - _mm_unpackhi_epi64
    - _mm_storeu_si128
    - _mm_unpacklo_epi32
    - _mm_add_epi16
    - _mm_sub_epi16
    - _mm_loadu_si128
    - _mm_add_epi32
    - _mm_loadl_epi64
    - _mm_unpacklo_epi64
    - VP8Transpose_2_4x4_16b
    - _mm_sub_epi32
    linkageType: ''
    returnType: int
    signature: "int TTransform_SSE2(const uint8_t* WEBP_RESTRICT inA,\n                           const
      uint8_t* WEBP_RESTRICT inB,\n                           const uint16_t* WEBP_RESTRICT
      const w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TTransform_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1380,1
    - Dst: abs
      Src: /src/libwebp/src/dsp/enc_sse2.c:1381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - w
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1377
    functionDepth: 2
    functionLinenumber: 1377
    functionLinenumberEnd: 1382
    functionName: Disto4x4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - abs
    - TTransform_SSE2
    linkageType: ''
    returnType: int
    signature: "int Disto4x4_SSE2(const uint8_t* WEBP_RESTRICT const a,\n                         const
      uint8_t* WEBP_RESTRICT const b,\n                         const uint16_t* WEBP_RESTRICT
      const w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Disto4x4_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - a
    - b
    - w
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1384
    functionDepth: 3
    functionLinenumber: 1384
    functionLinenumberEnd: 1395
    functionName: Disto16x16_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - Disto4x4_SSE2
    linkageType: ''
    returnType: int
    signature: "int Disto16x16_SSE2(const uint8_t* WEBP_RESTRICT const a,\n                           const
      uint8_t* WEBP_RESTRICT const b,\n                           const uint16_t*
      WEBP_RESTRICT const w)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1405,1
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1406,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1412,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1413,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1414,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1415,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1416,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1417,1
    - Dst: _mm_cmpgt_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1420,1
    - Dst: _mm_cmpgt_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1421,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1424,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1425,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1426,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1427,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1431,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1432,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1433,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1434,1
    - Dst: _mm_mulhi_epu16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1441,1
    - Dst: _mm_mullo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1442,1
    - Dst: _mm_mulhi_epu16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1443,1
    - Dst: _mm_mullo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1444,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1445,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1446,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1447,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1448,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1450,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1451,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1452,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1453,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1454,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1455,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1456,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1457,1
    - Dst: _mm_srai_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1459,1
    - Dst: _mm_srai_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1460,1
    - Dst: _mm_srai_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1461,1
    - Dst: _mm_srai_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1462,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1465,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1466,1
    - Dst: _mm_min_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1469,1
    - Dst: _mm_min_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1470,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1474,1
    - Dst: _mm_xor_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1475,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1476,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1477,1
    - Dst: _mm_mullo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1480,1
    - Dst: _mm_mullo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1481,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1483,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1484,1
    - Dst: _mm_shufflehi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1493,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/enc_sse2.c:1493,1
    - Dst: _mm_shuffle_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1494,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/enc_sse2.c:1494,1
    - Dst: _mm_shufflehi_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1495,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/enc_sse2.c:1495,1
    - Dst: _mm_shufflelo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1496,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/enc_sse2.c:1496,1
    - Dst: _mm_shuffle_epi32
      Src: /src/libwebp/src/dsp/enc_sse2.c:1497,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/enc_sse2.c:1497,1
    - Dst: _mm_shufflelo_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1498,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/enc_sse2.c:1498,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1499,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/enc_sse2.c:1500,1
    - Dst: _mm_packs_epi16
      Src: /src/libwebp/src/dsp/enc_sse2.c:1501,1
    - Dst: _mm_movemask_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:1511,1
    - Dst: _mm_cmpeq_epi8
      Src: /src/libwebp/src/dsp/enc_sse2.c:1511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 4
    argNames:
    - in
    - out
    - sharpen
    - mtx
    argTypes:
    - int16_t[]
    - int16_t[]
    - uint16_t*
    - VP8Matrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1401
    functionDepth: 0
    functionLinenumber: 1401
    functionLinenumberEnd: 1512
    functionName: DoQuantizeBlock_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi16
    - _mm_loadu_si128
    - _mm_add_epi32
    - _mm_shufflehi_epi16
    - _mm_packs_epi16
    - _mm_setzero_si128
    - _mm_storeu_si128
    - _mm_xor_si128
    - _mm_packs_epi32
    - _mm_mullo_epi16
    - _mm_unpackhi_epi16
    - _mm_sub_epi16
    - _mm_srai_epi32
    - _mm_movemask_epi8
    - _mm_shuffle_epi32
    - _mm_cmpeq_epi8
    - _mm_cmpgt_epi16
    - _mm_shufflelo_epi16
    - _mm_mulhi_epu16
    - _mm_add_epi16
    - _MM_SHUFFLE
    - _mm_unpacklo_epi16
    - _mm_min_epi16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoQuantizeBlock_SSE2(\n    int16_t in[16], int16_t out[16],\n
      \   const uint16_t* WEBP_RESTRICT const sharpen,\n    const VP8Matrix* WEBP_RESTRICT
      const mtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoQuantizeBlock_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out
    - mtx
    argTypes:
    - int16_t[]
    - int16_t[]
    - VP8Matrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1514
    functionDepth: 1
    functionLinenumber: 1514
    functionLinenumberEnd: 1517
    functionName: QuantizeBlock_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 1
    functionsReached:
    - DoQuantizeBlock_SSE2
    linkageType: ''
    returnType: int
    signature: "int QuantizeBlock_SSE2(int16_t in[16], int16_t out[16],\n                              const
      VP8Matrix* WEBP_RESTRICT const mtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoQuantizeBlock_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out
    - mtx
    argTypes:
    - int16_t[]
    - int16_t[]
    - VP8Matrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1519
    functionDepth: 1
    functionLinenumber: 1519
    functionLinenumberEnd: 1522
    functionName: QuantizeBlockWHT_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - DoQuantizeBlock_SSE2
    linkageType: ''
    returnType: int
    signature: "int QuantizeBlockWHT_SSE2(int16_t in[16], int16_t out[16],\n                                 const
      VP8Matrix* WEBP_RESTRICT const mtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoQuantizeBlock_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1528,1
    - Dst: DoQuantizeBlock_SSE2
      Src: /src/libwebp/src/dsp/enc_sse2.c:1529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - in
    - out
    - mtx
    argTypes:
    - int16_t[]
    - int16_t[]
    - VP8Matrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1524
    functionDepth: 1
    functionLinenumber: 1524
    functionLinenumberEnd: 1531
    functionName: Quantize2Blocks_SSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 0
    functionsReached:
    - DoQuantizeBlock_SSE2
    linkageType: ''
    returnType: int
    signature: "int Quantize2Blocks_SSE2(int16_t in[32], int16_t out[32],\n                                const
      VP8Matrix* WEBP_RESTRICT const mtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1557
    functionName: VP8EncDspInitSSE2
    functionSourceFile: /src/libwebp/src/dsp/enc_sse2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8EncDspInitSSE2(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/ssim.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - stats
    - N
    argTypes:
    - VP8DistoStats*
    - uint32_t
    assertStmts:
    - condition: (r >= 0. && r <= 1.0)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/libwebp/src/dsp/ssim.c
    constantsTouched: []
    func_position:
      end: 53
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 53
    functionName: SSIMCalculation
    functionSourceFile: /src/libwebp/src/dsp/ssim.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE SSIMCalculation(const VP8DistoStats* const stats,\n                                          uint32_t
      N /*num samples*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSIMCalculation
      Src: /src/libwebp/src/dsp/ssim.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stats
    argTypes:
    - VP8DistoStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: VP8SSIMFromStats
    functionSourceFile: /src/libwebp/src/dsp/ssim.c
    functionUses: 0
    functionsReached:
    - SSIMCalculation
    linkageType: ''
    returnType: double
    signature: double VP8SSIMFromStats(const VP8DistoStats* const stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSIMCalculation
      Src: /src/libwebp/src/dsp/ssim.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stats
    argTypes:
    - VP8DistoStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: VP8SSIMFromStatsClipped
    functionSourceFile: /src/libwebp/src/dsp/ssim.c
    functionUses: 0
    functionsReached:
    - SSIMCalculation
    linkageType: ''
    returnType: double
    signature: double VP8SSIMFromStatsClipped(const VP8DistoStats* const stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8SSIMFromStatsClipped
      Src: /src/libwebp/src/dsp/ssim.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 8
    argNames:
    - src1
    - stride1
    - src2
    - stride2
    - xo
    - yo
    - W
    - H
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 91
    functionName: SSIMGetClipped_C
    functionSourceFile: /src/libwebp/src/dsp/ssim.c
    functionUses: 0
    functionsReached:
    - VP8SSIMFromStatsClipped
    linkageType: ''
    returnType: double
    signature: "double SSIMGetClipped_C(const uint8_t* src1, int stride1,\n                               const
      uint8_t* src2, int stride2, int xo, int yo,\n                               int
      W, int H)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8SSIMFromStats
      Src: /src/libwebp/src/dsp/ssim.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - src1
    - stride1
    - src2
    - stride2
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 110
    functionName: SSIMGet_C
    functionSourceFile: /src/libwebp/src/dsp/ssim.c
    functionUses: 0
    functionsReached:
    - VP8SSIMFromStats
    linkageType: ''
    returnType: double
    signature: "double SSIMGet_C(const uint8_t* src1, int stride1, const uint8_t*
      src2,\n                        int stride2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/ssim.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - src1
    - src2
    - len
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    assertStmts:
    - condition: (len <= 65535)
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/libwebp/src/dsp/ssim.c
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: AccumulateSSE_C
    functionSourceFile: /src/libwebp/src/dsp/ssim.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t AccumulateSSE_C(const uint8_t* src1, const uint8_t* src2,\n
      \                               int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/ssim.c:155,1
    - Dst: VP8SSIMDspInitSSE2
      Src: /src/libwebp/src/dsp/ssim.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 160
    functionName: WEBP_DSP_INIT_FUNC
    functionSourceFile: /src/libwebp/src/dsp/ssim.c
    functionUses: 0
    functionsReached:
    - VP8SSIMDspInitSSE2
    - VP8GetCPUInfo
    linkageType: ''
    returnType: void
    signature: void WEBP_DSP_INIT_FUNC(VP8SSIMDspInit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ij
    - ','
    - in
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: GET_M
    functionSourceFile: /src/libwebp/src/dsp/upsampling_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_M(ij, in, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - da
    - ','
    - db
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: PACK_AND_STORE
    functionSourceFile: /src/libwebp/src/dsp/upsampling_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACK_AND_STORE(a, b, da, db, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r1
    - ','
    - r2
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: UPSAMPLE_32PIXELS
    functionSourceFile: /src/libwebp/src/dsp/upsampling_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPSAMPLE_32PIXELS(r1, r2, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - tb
    - ','
    - bb
    - ','
    - num_pixels
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: UPSAMPLE_LAST_BLOCK
    functionSourceFile: /src/libwebp/src/dsp/upsampling_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPSAMPLE_LAST_BLOCK(tb, bb, num_pixels, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - FUNC
    - ','
    - XSTEP
    - ','
    - top_y
    - ','
    - bottom_y
    - ','
    - top_dst
    - ','
    - bottom_dst
    - ','
    - cur_x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: CONVERT2RGB_32
    functionSourceFile: /src/libwebp/src/dsp/upsampling_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "CONVERT2RGB_32(FUNC, XSTEP, top_y, bottom_y, top_dst, bottom_dst,
      \     \\\n                       cur_x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FUNC_NAME
    - ','
    - FUNC
    - ','
    - XSTEP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: SSE2_UPSAMPLE_FUNC
    functionSourceFile: /src/libwebp/src/dsp/upsampling_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSE2_UPSAMPLE_FUNC(FUNC_NAME, FUNC, XSTEP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 225
    functionName: WebPInitUpsamplersSSE2
    functionSourceFile: /src/libwebp/src/dsp/upsampling_sse2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPInitUpsamplersSSE2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - FUNC_NAME
    - ','
    - CALL
    - ','
    - CALL_C
    - ','
    - XSTEP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 246
    functionName: YUV444_FUNC
    functionSourceFile: /src/libwebp/src/dsp/upsampling_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YUV444_FUNC(FUNC_NAME, CALL, CALL_C, XSTEP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 276
    functionName: WebPInitYUV444ConvertersSSE2
    functionSourceFile: /src/libwebp/src/dsp/upsampling_sse2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPInitYUV444ConvertersSSE2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r1
    - ','
    - r2
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: UPSAMPLE_16PIXELS
    functionSourceFile: /src/libwebp/src/dsp/upsampling_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPSAMPLE_16PIXELS(r1, r2, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - tb
    - ','
    - bb
    - ','
    - num_pixels
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: UPSAMPLE_LAST_BLOCK
    functionSourceFile: /src/libwebp/src/dsp/upsampling_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPSAMPLE_LAST_BLOCK(tb, bb, num_pixels, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - out
    - ','
    - r
    - ','
    - g
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: STORE_Rgb
    functionSourceFile: /src/libwebp/src/dsp/upsampling_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_Rgb(out, r, g, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - out
    - ','
    - r
    - ','
    - g
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: STORE_Bgr
    functionSourceFile: /src/libwebp/src/dsp/upsampling_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_Bgr(out, r, g, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - out
    - ','
    - r
    - ','
    - g
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: STORE_Rgba
    functionSourceFile: /src/libwebp/src/dsp/upsampling_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_Rgba(out, r, g, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - out
    - ','
    - r
    - ','
    - g
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: STORE_Bgra
    functionSourceFile: /src/libwebp/src/dsp/upsampling_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_Bgra(out, r, g, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - out
    - ','
    - r
    - ','
    - g
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: STORE_Argb
    functionSourceFile: /src/libwebp/src/dsp/upsampling_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_Argb(out, r, g, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lo
    - ','
    - hi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: ZIP_U8
    functionSourceFile: /src/libwebp/src/dsp/upsampling_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZIP_U8(lo, hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lo
    - ','
    - hi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: ZIP_U8
    functionSourceFile: /src/libwebp/src/dsp/upsampling_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZIP_U8(lo, hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - out
    - ','
    - r
    - ','
    - g
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: STORE_Rgba4444
    functionSourceFile: /src/libwebp/src/dsp/upsampling_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_Rgba4444(out, r, g, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - out
    - ','
    - r
    - ','
    - g
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: STORE_Rgb565
    functionSourceFile: /src/libwebp/src/dsp/upsampling_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_Rgb565(out, r, g, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - FMT
    - ','
    - XSTEP
    - ','
    - N
    - ','
    - src_y
    - ','
    - src_uv
    - ','
    - out
    - ','
    - cur_x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 176
    functionName: CONVERT8
    functionSourceFile: /src/libwebp/src/dsp/upsampling_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT8(FMT, XSTEP, N, src_y, src_uv, out, cur_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - FUNC
    - ','
    - XSTEP
    - ','
    - N
    - ','
    - src_y
    - ','
    - src_uv
    - ','
    - rgb
    - ','
    - cur_x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 188
    functionName: CONVERT1
    functionSourceFile: /src/libwebp/src/dsp/upsampling_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT1(FUNC, XSTEP, N, src_y, src_uv, rgb, cur_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - FMT
    - ','
    - XSTEP
    - ','
    - top_y
    - ','
    - bottom_y
    - ','
    - uv
    - ','
    - top_dst
    - ','
    - bottom_dst
    - ','
    - cur_x
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: CONVERT2RGB_8
    functionSourceFile: /src/libwebp/src/dsp/upsampling_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "CONVERT2RGB_8(FMT, XSTEP, top_y, bottom_y, uv, top_dst, bottom_dst,
      \\\n                      cur_x, len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - FUNC
    - ','
    - XSTEP
    - ','
    - top_y
    - ','
    - bottom_y
    - ','
    - uv
    - ','
    - top_dst
    - ','
    - bottom_dst
    - ','
    - cur_x
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 206
    functionName: CONVERT2RGB_1
    functionSourceFile: /src/libwebp/src/dsp/upsampling_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "CONVERT2RGB_1(FUNC, XSTEP, top_y, bottom_y, uv, top_dst, bottom_dst,
      \\\n                      cur_x, len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FUNC_NAME
    - ','
    - FMT
    - ','
    - XSTEP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: NEON_UPSAMPLE_FUNC
    functionSourceFile: /src/libwebp/src/dsp/upsampling_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEON_UPSAMPLE_FUNC(FUNC_NAME, FMT, XSTEP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 296
    functionName: WebPInitUpsamplersNEON
    functionSourceFile: /src/libwebp/src/dsp/upsampling_neon.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPInitUpsamplersNEON(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - src0
    - ','
    - src1
    - ','
    - dst0
    - ','
    - dst1
    - ','
    - c0
    - ','
    - c1
    - ','
    - mask0
    - ','
    - mask1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 37
    functionName: TRANSFORM_COLOR_8
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRANSFORM_COLOR_8(src0, src1, dst0, dst1, c0, c1, mask0, mask1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - src
    - ','
    - dst
    - ','
    - c0
    - ','
    - c1
    - ','
    - mask0
    - ','
    - mask1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: TRANSFORM_COLOR_4
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRANSFORM_COLOR_4(src, dst, c0, c1, mask0, mask1)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:57,1
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:58,1
    - Dst: LD_UB2
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:66,1
    - Dst: TRANSFORM_COLOR_8
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:67,1
    - Dst: ST_UB2
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:68,1
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:74,1
    - Dst: TRANSFORM_COLOR_4
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:75,1
    - Dst: ST_UB
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:76,1
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:81,1
    - Dst: TRANSFORM_COLOR_4
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:82,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:84,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:85,1
    - Dst: SD
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:86,1
    - Dst: SW
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:87,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:89,1
    - Dst: SD
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:90,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:92,1
    - Dst: SW
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - m
    - WEBP_RESTRICT
    - num_pixels
    argTypes:
    - VP8LMultipliers*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 97
    functionName: TransformColor_MSA
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_msa.c
    functionUses: 0
    functionsReached:
    - TRANSFORM_COLOR_4
    - SD
    - ST_UB2
    - LD_UB
    - ST_UB
    - TRANSFORM_COLOR_8
    - SW
    - __msa_fill_w
    - __msa_copy_s_w
    - __msa_copy_s_d
    - LD_UB2
    linkageType: ''
    returnType: void
    signature: "void TransformColor_MSA(const VP8LMultipliers* WEBP_RESTRICT const
      m,\n                               uint32_t* WEBP_RESTRICT data, int num_pixels)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LD_UB2
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:109,1
    - Dst: VSHF_B2_UB
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:110,1
    - Dst: SUB2
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:111,1
    - Dst: ST_UB2
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:112,1
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:118,1
    - Dst: VSHF_UB
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:119,1
    - Dst: ST_UB
      Src: /src/libwebp/src/dsp/lossless_enc_msa.c:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - argb_data
    - num_pixels
    argTypes:
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 134
    functionName: SubtractGreenFromBlueAndRed_MSA
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_msa.c
    functionUses: 0
    functionsReached:
    - VSHF_UB
    - ST_UB2
    - LD_UB
    - ST_UB
    - VSHF_B2_UB
    - SUB2
    - LD_UB2
    linkageType: ''
    returnType: void
    signature: "void SubtractGreenFromBlueAndRed_MSA(uint32_t* argb_data,\n                                            int
      num_pixels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: VP8LEncDspInitMSA
    functionSourceFile: /src/libwebp/src/dsp/lossless_enc_msa.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8LEncDspInitMSA(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:31,1
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:32,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:33,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:44,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:45,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:46,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:47,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:48,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:49,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:50,1
    - Dst: _mm_maskmoveu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:51,1
    - Dst: _mm_maskmoveu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:52,1
    - Dst: _mm_maskmoveu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:53,1
    - Dst: _mm_maskmoveu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:54,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:56,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:61,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:62,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:63,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:64,1
    - Dst: _mm_maskmoveu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:65,1
    - Dst: _mm_maskmoveu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:66,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:68,1
    - Dst: _mm_movemask_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:80,1
    - Dst: _mm_cmpeq_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:80,1
    - Dst: _mm_movemask_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:82,1
    - Dst: _mm_cmpeq_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:82,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - alpha_stride
    - width
    - height
    - WEBP_RESTRICT
    - dst_stride
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 83
    functionName: DispatchAlpha_SSE2
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_unpacklo_epi8
    - _mm_setzero_si128
    - _mm_and_si128
    - _mm_loadu_si128
    - _mm_movemask_epi8
    - _mm_loadl_epi64
    - _mm_unpackhi_epi16
    - _mm_maskmoveu_si128
    - _mm_set1_epi8
    - _mm_unpacklo_epi16
    - _mm_unpackhi_epi8
    - _mm_cmpeq_epi8
    linkageType: ''
    returnType: int
    signature: "int DispatchAlpha_SSE2(const uint8_t* WEBP_RESTRICT alpha,\n                              int
      alpha_stride, int width, int height,\n                              uint8_t*
      WEBP_RESTRICT dst, int dst_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:90,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:94,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:95,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:96,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:97,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:98,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:99,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:100,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:101,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:102,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:103,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - alpha_stride
    - width
    - height
    - WEBP_RESTRICT
    - dst_stride
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 110
    functionName: DispatchAlphaToGreen_SSE2
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_setzero_si128
    - _mm_storeu_si128
    - _mm_loadu_si128
    - _mm_unpackhi_epi16
    - _mm_unpacklo_epi16
    - _mm_unpackhi_epi8
    linkageType: ''
    returnType: void
    signature: "void DispatchAlphaToGreen_SSE2(const uint8_t* WEBP_RESTRICT alpha,\n
      \                                     int alpha_stride, int width, int height,\n
      \                                     uint32_t* WEBP_RESTRICT dst,\n                                      int
      dst_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:119,1
    - Dst: _mm_set_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:120,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:132,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:133,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:134,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:135,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:136,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:137,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:139,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:141,1
    - Dst: _mm_movemask_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:153,1
    - Dst: _mm_cmpeq_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - argb_stride
    - width
    - height
    - WEBP_RESTRICT
    - alpha_stride
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 155
    functionName: ExtractAlpha_SSE2
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_storel_epi64
    - _mm_packs_epi32
    - _mm_set_epi32
    - _mm_and_si128
    - _mm_loadu_si128
    - _mm_movemask_epi8
    - _mm_packus_epi16
    - _mm_cmpeq_epi8
    linkageType: ''
    returnType: int
    signature: "int ExtractAlpha_SSE2(const uint8_t* WEBP_RESTRICT argb, int argb_stride,\n
      \                            int width, int height,\n                             uint8_t*
      WEBP_RESTRICT alpha, int alpha_stride)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:160,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:164,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:165,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:166,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:167,1
    - Dst: _mm_srli_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:168,1
    - Dst: _mm_srli_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:169,1
    - Dst: _mm_srli_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:170,1
    - Dst: _mm_srli_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:171,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:172,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:173,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:174,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:175,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:176,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:177,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:178,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:180,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:183,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:184,1
    - Dst: _mm_srli_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:185,1
    - Dst: _mm_srli_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:186,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:187,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:188,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:189,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:190,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - size
    argTypes:
    - uint32_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 195
    functionName: ExtractGreen_SSE2
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_storeu_si128
    - _mm_storel_epi64
    - _mm_srli_epi32
    - _mm_packs_epi32
    - _mm_and_si128
    - _mm_loadu_si128
    - _mm_packus_epi16
    linkageType: ''
    returnType: void
    signature: "void ExtractGreen_SSE2(const uint32_t* WEBP_RESTRICT argb,\n                              uint8_t*
      WEBP_RESTRICT alpha, int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: MULTIPLIER
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_sse2.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULTIPLIER(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: PREMULTIPLY
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_sse2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREMULTIPLY(x, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - RGBX
    - ','
    - SHUFFLE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 218
    functionName: APPLY_ALPHA
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPLY_ALPHA(RGBX, SHUFFLE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:269,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:272,1
    - Dst: _mm_cmpeq_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:273,1
    - Dst: _mm_movemask_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - src
    - length
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 281
    functionName: HasAlpha8b_SSE2
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi8
    - _mm_movemask_epi8
    - _mm_loadu_si128
    - _mm_cmpeq_epi8
    linkageType: ''
    returnType: int
    signature: int HasAlpha8b_SSE2(const uint8_t* src, int length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:284,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:285,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:292,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:293,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:294,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:295,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:296,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:297,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:298,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:299,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:300,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:301,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:302,1
    - Dst: _mm_cmpeq_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:303,1
    - Dst: _mm_movemask_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:304,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:308,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:309,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:310,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:311,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:312,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:313,1
    - Dst: _mm_cmpeq_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:314,1
    - Dst: _mm_movemask_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:315,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - src
    - length
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 322
    functionName: HasAlpha32b_SSE2
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_packs_epi32
    - _mm_and_si128
    - _mm_loadu_si128
    - _mm_movemask_epi8
    - _mm_packus_epi16
    - _mm_cmpeq_epi8
    - _mm_set1_epi8
    linkageType: ''
    returnType: int
    signature: int HasAlpha32b_SSE2(const uint8_t* src, int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:325,1
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:326,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:329,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:330,1
    - Dst: _mm_srai_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:331,1
    - Dst: _mm_srai_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:332,1
    - Dst: _mm_cmpeq_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:333,1
    - Dst: _mm_cmpeq_epi32
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:334,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:335,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:336,1
    - Dst: _mm_andnot_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:337,1
    - Dst: _mm_andnot_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:338,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:339,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:339,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:340,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - src
    - length
    - color
    argTypes:
    - uint32_t*
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 345
    functionName: AlphaReplace_SSE2
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_setzero_si128
    - _mm_storeu_si128
    - _mm_cmpeq_epi32
    - _mm_srai_epi32
    - _mm_and_si128
    - _mm_loadu_si128
    - _mm_andnot_si128
    - _mm_or_si128
    linkageType: ''
    returnType: void
    signature: void AlphaReplace_SSE2(uint32_t* src, int length, uint32_t color)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:354,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:355,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:356,1
    - Dst: _mm_set_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:357,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:361,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:362,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:363,1
    - Dst: _mm_shufflelo_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:364,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:364,1
    - Dst: _mm_shufflehi_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:365,1
    - Dst: _MM_SHUFFLE
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:365,1
    - Dst: _mm_mullo_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:367,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:368,1
    - Dst: _mm_mulhi_epu16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:369,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:370,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:371,1
    - Dst: WebPMultARGBRow_C
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - width
    - inverse
    argTypes:
    - uint32_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 376
    functionName: MultARGBRow_SSE2
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_shufflelo_epi16
    - _mm_unpacklo_epi8
    - _mm_mulhi_epu16
    - _mm_set1_epi16
    - _mm_setzero_si128
    - _mm_storel_epi64
    - WebPMultARGBRow_C
    - _mm_add_epi16
    - _MM_SHUFFLE
    - _mm_set_epi16
    - _mm_loadl_epi64
    - _mm_shufflehi_epi16
    - _mm_mullo_epi16
    - _mm_packus_epi16
    - _mm_or_si128
    linkageType: ''
    returnType: void
    signature: void MultARGBRow_SSE2(uint32_t* const ptr, int width, int inverse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:383,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:384,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:385,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:387,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:388,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:389,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:390,1
    - Dst: _mm_mullo_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:391,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:392,1
    - Dst: _mm_mulhi_epu16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:393,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:394,1
    - Dst: _mm_storel_epi64
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:395,1
    - Dst: WebPMultRow_C
      Src: /src/libwebp/src/dsp/alpha_processing_sse2.c:399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - ptr
    - alpha
    - width
    - inverse
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 400
    functionName: MultRow_SSE2
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_mulhi_epu16
    - WebPMultRow_C
    - _mm_set1_epi16
    - _mm_setzero_si128
    - _mm_storel_epi64
    - _mm_add_epi16
    - _mm_mullo_epi16
    - _mm_loadl_epi64
    - _mm_packus_epi16
    linkageType: ''
    returnType: void
    signature: "void MultRow_SSE2(uint8_t* WEBP_RESTRICT const ptr,\n                         const
      uint8_t* WEBP_RESTRICT const alpha, int width,\n                         int
      inverse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 419
    functionName: WebPInitAlphaProcessingSSE2
    functionSourceFile: /src/libwebp/src/dsp/alpha_processing_sse2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPInitAlphaProcessingSSE2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld4q_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:34,1
    - Dst: vst4q_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:39,1
    - Dst: VP8LConvertBGRAToRGBA_C
      Src: /src/libwebp/src/dsp/lossless_neon.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 43
    functionName: ConvertBGRAToRGBA_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - VP8LConvertBGRAToRGBA_C
    - vld4q_u8
    - vst4q_u8
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToRGBA_NEON(const uint32_t* WEBP_RESTRICT src,\n                                   int
      num_pixels, uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld4q_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:49,1
    - Dst: vst3q_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:51,1
    - Dst: VP8LConvertBGRAToBGR_C
      Src: /src/libwebp/src/dsp/lossless_neon.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: ConvertBGRAToBGR_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - vst3q_u8
    - vld4q_u8
    - VP8LConvertBGRAToBGR_C
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToBGR_NEON(const uint32_t* WEBP_RESTRICT src,\n                                  int
      num_pixels, uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld4q_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:61,1
    - Dst: vst3q_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:63,1
    - Dst: VP8LConvertBGRAToRGB_C
      Src: /src/libwebp/src/dsp/lossless_neon.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 67
    functionName: ConvertBGRAToRGB_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - vst3q_u8
    - vld4q_u8
    - VP8LConvertBGRAToRGB_C
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToRGB_NEON(const uint32_t* WEBP_RESTRICT src,\n                                  int
      num_pixels, uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:78,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:80,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:81,1
    - Dst: vtbl1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:81,1
    - Dst: VP8LConvertBGRAToRGBA_C
      Src: /src/libwebp/src/dsp/lossless_neon.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 85
    functionName: ConvertBGRAToRGBA_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - vst1_u8
    - vld1_u8
    - VP8LConvertBGRAToRGBA_C
    - vtbl1_u8
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToRGBA_NEON(const uint32_t* WEBP_RESTRICT src,\n                                   int
      num_pixels, uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:94,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:95,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:96,1
    - Dst: INIT_VECTOR4
      Src: /src/libwebp/src/dsp/lossless_neon.c:99,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:99,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:100,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:101,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:102,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:103,1
    - Dst: vtbl4_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:103,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:104,1
    - Dst: vtbl4_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:104,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:105,1
    - Dst: vtbl4_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:105,1
    - Dst: VP8LConvertBGRAToBGR_C
      Src: /src/libwebp/src/dsp/lossless_neon.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 109
    functionName: ConvertBGRAToBGR_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - vst1_u8
    - INIT_VECTOR4
    - vld1_u8
    - VP8LConvertBGRAToBGR_C
    - vtbl4_u8
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToBGR_NEON(const uint32_t* WEBP_RESTRICT src,\n                                  int
      num_pixels, uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:118,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:119,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:120,1
    - Dst: INIT_VECTOR4
      Src: /src/libwebp/src/dsp/lossless_neon.c:123,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:123,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:124,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:125,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:126,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:127,1
    - Dst: vtbl4_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:127,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:128,1
    - Dst: vtbl4_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:128,1
    - Dst: vst1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:129,1
    - Dst: vtbl4_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:129,1
    - Dst: VP8LConvertBGRAToRGB_C
      Src: /src/libwebp/src/dsp/lossless_neon.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 133
    functionName: ConvertBGRAToRGB_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - vst1_u8
    - INIT_VECTOR4
    - vld1_u8
    - VP8LConvertBGRAToRGB_C
    - vtbl4_u8
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToRGB_NEON(const uint32_t* WEBP_RESTRICT src,\n                                  int
      num_pixels, uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - IN
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: LOAD_U32_AS_U8
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_U32_AS_U8(IN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - IN
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: LOAD_U32P_AS_U8
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_U32P_AS_U8(IN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - IN
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: LOADQ_U32_AS_U8
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOADQ_U32_AS_U8(IN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - IN
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: LOADQ_U32P_AS_U8
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOADQ_U32P_AS_U8(IN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - IN
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: GET_U8_AS_U32
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_U8_AS_U32(IN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - IN
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: GETQ_U8_AS_U32
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETQ_U8_AS_U32(IN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - OUT
    - ','
    - IN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: STOREQ_U8_AS_U32P
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STOREQ_U8_AS_U32P(OUT, IN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: ROTATE32_LEFT
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE32_LEFT(L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD_U32_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:150,1
    - Dst: LOAD_U32_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:151,1
    - Dst: vhadd_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a0
    - a1
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: Average2_u8_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - vhadd_u8
    - LOAD_U32_AS_U8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Average2_u8_NEON(uint32_t a0, uint32_t a1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2_u8_NEON
      Src: /src/libwebp/src/dsp/lossless_neon.c:158,1
    - Dst: LOAD_U32_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:160,1
    - Dst: vcgt_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:161,1
    - Dst: vadd_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:162,1
    - Dst: vreinterpret_s8_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:164,1
    - Dst: vhsub_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:164,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/src/dsp/lossless_neon.c:166,1
    - Dst: vmovl_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:166,1
    - Dst: vqmovun_s16
      Src: /src/libwebp/src/dsp/lossless_neon.c:167,1
    - Dst: vaddw_s8
      Src: /src/libwebp/src/dsp/lossless_neon.c:167,1
    - Dst: GET_U8_AS_U32
      Src: /src/libwebp/src/dsp/lossless_neon.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c0
    - c1
    - c2
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 170
    functionName: ClampedAddSubtractHalf_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - vreinterpret_s8_u8
    - vqmovun_s16
    - vaddw_s8
    - Average2_u8_NEON
    - vreinterpretq_s16_u16
    - GET_U8_AS_U32
    - vcgt_u8
    - vmovl_u8
    - LOAD_U32_AS_U8
    - vhsub_u8
    - vadd_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ClampedAddSubtractHalf_NEON(uint32_t c0,\n                                                        uint32_t
      c1,\n                                                        uint32_t c2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2_u8_NEON
      Src: /src/libwebp/src/dsp/lossless_neon.c:173,1
    - Dst: GET_U8_AS_U32
      Src: /src/libwebp/src/dsp/lossless_neon.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a0
    - a1
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: Average2_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - Average2_u8_NEON
    - GET_U8_AS_U32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Average2_NEON(uint32_t a0, uint32_t a1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2_u8_NEON
      Src: /src/libwebp/src/dsp/lossless_neon.c:180,1
    - Dst: LOAD_U32_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:181,1
    - Dst: GET_U8_AS_U32
      Src: /src/libwebp/src/dsp/lossless_neon.c:182,1
    - Dst: vhadd_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a0
    - a1
    - a2
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: Average3_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - Average2_u8_NEON
    - vhadd_u8
    - GET_U8_AS_U32
    - LOAD_U32_AS_U8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Average3_NEON(uint32_t a0, uint32_t a1,\n                                          uint32_t
      a2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average3_NEON
      Src: /src/libwebp/src/dsp/lossless_neon.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: Predictor5_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - Average3_NEON
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor5_NEON(const uint32_t* const left,\n                                const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2_NEON
      Src: /src/libwebp/src/dsp/lossless_neon.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: Predictor6_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - Average2_NEON
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor6_NEON(const uint32_t* const left,\n                                const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2_NEON
      Src: /src/libwebp/src/dsp/lossless_neon.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: Predictor7_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - Average2_NEON
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor7_NEON(const uint32_t* const left,\n                                const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClampedAddSubtractHalf_NEON
      Src: /src/libwebp/src/dsp/lossless_neon.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: Predictor13_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - ClampedAddSubtractHalf_NEON
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor13_NEON(const uint32_t* const left,\n                                 const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vreinterpretq_u8_u32
      Src: /src/libwebp/src/dsp/lossless_neon.c:209,1
    - Dst: vdupq_n_u32
      Src: /src/libwebp/src/dsp/lossless_neon.c:209,1
    - Dst: LOADQ_U32P_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:211,1
    - Dst: vaddq_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:212,1
    - Dst: STOREQ_U8_AS_U32P
      Src: /src/libwebp/src/dsp/lossless_neon.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 216
    functionName: PredictorAdd0_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - vreinterpretq_u8_u32
    - LOADQ_U32P_AS_U8
    - vdupq_n_u32
    - vaddq_u8
    - STOREQ_U8_AS_U32P
    linkageType: ''
    returnType: void
    signature: "void PredictorAdd0_NEON(const uint32_t* in, const uint32_t* upper,\n
      \                              int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOADQ_U32_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:222,1
    - Dst: LOADQ_U32P_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:225,1
    - Dst: vextq_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:227,1
    - Dst: vaddq_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:229,1
    - Dst: vextq_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:231,1
    - Dst: vaddq_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:233,1
    - Dst: LOADQ_U32_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:234,1
    - Dst: vaddq_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:235,1
    - Dst: STOREQ_U8_AS_U32P
      Src: /src/libwebp/src/dsp/lossless_neon.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 239
    functionName: PredictorAdd1_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - LOADQ_U32P_AS_U8
    - vaddq_u8
    - STOREQ_U8_AS_U32P
    - vextq_u8
    - LOADQ_U32_AS_U8
    linkageType: ''
    returnType: void
    signature: "void PredictorAdd1_NEON(const uint32_t* in, const uint32_t* upper,\n
      \                              int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - IN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 256
    functionName: GENERATE_PREDICTOR_1
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_PREDICTOR_1(X, IN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - LANE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 273
    functionName: DO_PRED5
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_PRED5(LANE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOADQ_U32_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:277,1
    - Dst: LOADQ_U32P_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:279,1
    - Dst: LOADQ_U32P_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:280,1
    - Dst: LOADQ_U32P_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:281,1
    - Dst: DO_PRED5
      Src: /src/libwebp/src/dsp/lossless_neon.c:282,1
    - Dst: DO_PRED5
      Src: /src/libwebp/src/dsp/lossless_neon.c:283,1
    - Dst: DO_PRED5
      Src: /src/libwebp/src/dsp/lossless_neon.c:284,1
    - Dst: DO_PRED5
      Src: /src/libwebp/src/dsp/lossless_neon.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 288
    functionName: PredictorAdd5_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - DO_PRED5
    - LOADQ_U32P_AS_U8
    - LOADQ_U32_AS_U8
    linkageType: ''
    returnType: void
    signature: "void PredictorAdd5_NEON(const uint32_t* in, const uint32_t* upper,\n
      \                              int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - LANE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: DO_PRED67
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_PRED67(LANE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOADQ_U32_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:303,1
    - Dst: LOADQ_U32P_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:305,1
    - Dst: LOADQ_U32P_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:306,1
    - Dst: DO_PRED67
      Src: /src/libwebp/src/dsp/lossless_neon.c:307,1
    - Dst: DO_PRED67
      Src: /src/libwebp/src/dsp/lossless_neon.c:308,1
    - Dst: DO_PRED67
      Src: /src/libwebp/src/dsp/lossless_neon.c:309,1
    - Dst: DO_PRED67
      Src: /src/libwebp/src/dsp/lossless_neon.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 313
    functionName: PredictorAdd6_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - DO_PRED67
    - LOADQ_U32P_AS_U8
    - LOADQ_U32_AS_U8
    linkageType: ''
    returnType: void
    signature: "void PredictorAdd6_NEON(const uint32_t* in, const uint32_t* upper,\n
      \                              int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOADQ_U32_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:319,1
    - Dst: LOADQ_U32P_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:321,1
    - Dst: LOADQ_U32P_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:322,1
    - Dst: DO_PRED67
      Src: /src/libwebp/src/dsp/lossless_neon.c:323,1
    - Dst: DO_PRED67
      Src: /src/libwebp/src/dsp/lossless_neon.c:324,1
    - Dst: DO_PRED67
      Src: /src/libwebp/src/dsp/lossless_neon.c:325,1
    - Dst: DO_PRED67
      Src: /src/libwebp/src/dsp/lossless_neon.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 329
    functionName: PredictorAdd7_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - DO_PRED67
    - LOADQ_U32P_AS_U8
    - LOADQ_U32_AS_U8
    linkageType: ''
    returnType: void
    signature: "void PredictorAdd7_NEON(const uint32_t* in, const uint32_t* upper,\n
      \                              int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - IN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 347
    functionName: GENERATE_PREDICTOR_2
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_PREDICTOR_2(X, IN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - LANE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 362
    functionName: DO_PRED10
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_PRED10(LANE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOADQ_U32_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:366,1
    - Dst: LOADQ_U32P_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:368,1
    - Dst: LOADQ_U32P_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:369,1
    - Dst: LOADQ_U32P_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:370,1
    - Dst: LOADQ_U32P_AS_U8
      Src: /src/libwebp/src/dsp/lossless_neon.c:371,1
    - Dst: vhaddq_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:372,1
    - Dst: DO_PRED10
      Src: /src/libwebp/src/dsp/lossless_neon.c:373,1
    - Dst: DO_PRED10
      Src: /src/libwebp/src/dsp/lossless_neon.c:374,1
    - Dst: DO_PRED10
      Src: /src/libwebp/src/dsp/lossless_neon.c:375,1
    - Dst: DO_PRED10
      Src: /src/libwebp/src/dsp/lossless_neon.c:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - in
    - upper
    - num_pixels
    - WEBP_RESTRICT
    argTypes:
    - uint32_t*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 379
    functionName: PredictorAdd10_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - DO_PRED10
    - LOADQ_U32P_AS_U8
    - vhaddq_u8
    - LOADQ_U32_AS_U8
    linkageType: ''
    returnType: void
    signature: "void PredictorAdd10_NEON(const uint32_t* in, const uint32_t* upper,\n
      \                               int num_pixels, uint32_t* WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - LANE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 385
    functionName: DO_PRED11
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_PRED11(LANE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DIFF
    - ','
    - LANE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 426
    functionName: DO_PRED12
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_PRED12(DIFF, LANE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - LANE
    - ','
    - LOW_OR_HI
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 460
    functionName: DO_PRED13
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_PRED13(LANE, LOW_OR_HI)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:515,1
    - Dst: vtbl1q_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:515,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:515,1
    - Dst: vtbl1q_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:516,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argb
    - shuffle
    argTypes:
    - uint8x16_t
    - uint8x16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 517
    functionName: DoGreenShuffle_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 2
    functionsReached:
    - vcombine_u8
    - vtbl1q_u8
    - vget_high_u8
    - vget_low_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoGreenShuffle_NEON(const uint8x16_t argb,\n                                                  const
      uint8x16_t shuffle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcombine_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:524,1
    - Dst: vtbl1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:524,1
    - Dst: vget_low_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:524,1
    - Dst: vtbl1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:525,1
    - Dst: vget_high_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argb
    - shuffle
    argTypes:
    - uint8x16_t
    - uint8x8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 526
    functionName: DoGreenShuffle_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 2
    functionsReached:
    - vcombine_u8
    - vget_high_u8
    - vget_low_u8
    - vtbl1_u8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE DoGreenShuffle_NEON(const uint8x16_t argb,\n                                                  const
      uint8x8_t shuffle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:533,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:535,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:538,1
    - Dst: DoGreenShuffle_NEON
      Src: /src/libwebp/src/dsp/lossless_neon.c:539,1
    - Dst: vst1q_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:540,1
    - Dst: vaddq_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:540,1
    - Dst: VP8LAddGreenToBlueAndRed_C
      Src: /src/libwebp/src/dsp/lossless_neon.c:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - src
    - num_pixels
    - dst
    argTypes:
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 544
    functionName: AddGreenToBlueAndRed_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - vaddq_u8
    - vst1q_u8
    - DoGreenShuffle_NEON
    - vld1_u8
    - vld1q_u8
    - VP8LAddGreenToBlueAndRed_C
    linkageType: ''
    returnType: void
    signature: "void AddGreenToBlueAndRed_NEON(const uint32_t* src, int num_pixels,\n
      \                                     uint32_t* dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_neon.c:554,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_neon.c:554,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_neon.c:555,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_neon.c:555,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_neon.c:556,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_neon.c:556,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_neon.c:557,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_neon.c:557,1
    - Dst: vld1q_s16
      Src: /src/libwebp/src/dsp/lossless_neon.c:558,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_neon.c:560,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_neon.c:560,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_neon.c:561,1
    - Dst: CST
      Src: /src/libwebp/src/dsp/lossless_neon.c:561,1
    - Dst: vld1q_s16
      Src: /src/libwebp/src/dsp/lossless_neon.c:563,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:568,1
    - Dst: vld1_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:571,1
    - Dst: vdupq_n_u32
      Src: /src/libwebp/src/dsp/lossless_neon.c:573,1
    - Dst: vld1q_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:576,1
    - Dst: vandq_u32
      Src: /src/libwebp/src/dsp/lossless_neon.c:577,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:577,1
    - Dst: DoGreenShuffle_NEON
      Src: /src/libwebp/src/dsp/lossless_neon.c:579,1
    - Dst: vqdmulhq_s16
      Src: /src/libwebp/src/dsp/lossless_neon.c:581,1
    - Dst: vreinterpretq_s16_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:581,1
    - Dst: vaddq_s8
      Src: /src/libwebp/src/dsp/lossless_neon.c:584,1
    - Dst: vreinterpretq_s8_u8
      Src: /src/libwebp/src/dsp/lossless_neon.c:584,1
    - Dst: vreinterpretq_s8_s16
      Src: /src/libwebp/src/dsp/lossless_neon.c:584,1
    - Dst: vshlq_n_s16
      Src: /src/libwebp/src/dsp/lossless_neon.c:586,1
    - Dst: vreinterpretq_s16_s8
      Src: /src/libwebp/src/dsp/lossless_neon.c:586,1
    - Dst: vqdmulhq_s16
      Src: /src/libwebp/src/dsp/lossless_neon.c:588,1
    - Dst: vshrq_n_u32
      Src: /src/libwebp/src/dsp/lossless_neon.c:590,1
    - Dst: vreinterpretq_u32_s16
      Src: /src/libwebp/src/dsp/lossless_neon.c:590,1
    - Dst: vaddq_s8
      Src: /src/libwebp/src/dsp/lossless_neon.c:593,1
    - Dst: vreinterpretq_s8_u32
      Src: /src/libwebp/src/dsp/lossless_neon.c:593,1
    - Dst: vreinterpretq_s8_s16
      Src: /src/libwebp/src/dsp/lossless_neon.c:593,1
    - Dst: vshrq_n_u16
      Src: /src/libwebp/src/dsp/lossless_neon.c:595,1
    - Dst: vreinterpretq_u16_s8
      Src: /src/libwebp/src/dsp/lossless_neon.c:595,1
    - Dst: vorrq_u32
      Src: /src/libwebp/src/dsp/lossless_neon.c:596,1
    - Dst: vreinterpretq_u32_u16
      Src: /src/libwebp/src/dsp/lossless_neon.c:596,1
    - Dst: vst1q_u32
      Src: /src/libwebp/src/dsp/lossless_neon.c:597,1
    - Dst: VP8LTransformColorInverse_C
      Src: /src/libwebp/src/dsp/lossless_neon.c:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - m
    - src
    - num_pixels
    - dst
    argTypes:
    - VP8LMultipliers*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 601
    functionName: TransformColorInverse_NEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 0
    functionsReached:
    - VP8LTransformColorInverse_C
    - vdupq_n_u32
    - vreinterpretq_s8_u8
    - vshrq_n_u32
    - vaddq_s8
    - vreinterpretq_s8_u32
    - vandq_u32
    - vreinterpretq_s16_s8
    - vshrq_n_u16
    - vreinterpretq_u16_s8
    - vld1q_s16
    - vshlq_n_s16
    - vqdmulhq_s16
    - CST
    - vreinterpretq_s16_u8
    - DoGreenShuffle_NEON
    - vreinterpretq_s8_s16
    - vreinterpretq_u32_u16
    - vorrq_u32
    - vld1_u8
    - vst1q_u32
    - vreinterpretq_u32_s16
    - vld1q_u8
    - vreinterpretq_u32_u8
    linkageType: ''
    returnType: void
    signature: "void TransformColorInverse_NEON(const VP8LMultipliers* const m,\n
      \                                      const uint32_t* const src,\n                                       int
      num_pixels, uint32_t* dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 554
    functionName: CST
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CST(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 637
    functionName: VP8LDspInitNEON
    functionSourceFile: /src/libwebp/src/dsp/lossless_neon.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8LDspInitNEON(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - FUNC_NAME
    - ','
    - TYPE
    - ','
    - GET_INDEX
    - ','
    - GET_VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 89
    functionName: MAP_COLOR_FUNCS
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAP_COLOR_FUNCS(FUNC_NAME, TYPE, GET_INDEX, GET_VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - c0
    - c1
    - c2
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 118
    functionName: ClampedAddSubtractFull
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ClampedAddSubtractFull(uint32_t c0, uint32_t c1,\n                                                   uint32_t
      c2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - c0
    - c1
    - c2
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 147
    functionName: ClampedAddSubtractHalf
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ClampedAddSubtractHalf(uint32_t c0, uint32_t c1,\n                                                   uint32_t
      c2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 170
    functionName: Select
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Select(uint32_t a, uint32_t b, uint32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a0
    - a1
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: Average2
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Average2(uint32_t a0, uint32_t a1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2
      Src: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c:180,1
    - Dst: Average2
      Src: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a0
    - a1
    - a2
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: Average3
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 1
    functionsReached:
    - Average2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Average3(uint32_t a0, uint32_t a1, uint32_t a2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2
      Src: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c:185,1
    - Dst: Average2
      Src: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c:185,1
    - Dst: Average2
      Src: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a0
    - a1
    - a2
    - a3
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: Average4
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 1
    functionsReached:
    - Average2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE Average4(uint32_t a0, uint32_t a1, uint32_t a2,\n                                     uint32_t
      a3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average3
      Src: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: Predictor5_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - Average3
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor5_MIPSdspR2(const uint32_t* const left,\n                                     const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2
      Src: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: Predictor6_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - Average2
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor6_MIPSdspR2(const uint32_t* const left,\n                                     const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2
      Src: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: Predictor7_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - Average2
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor7_MIPSdspR2(const uint32_t* const left,\n                                     const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2
      Src: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: Predictor8_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - Average2
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor8_MIPSdspR2(const uint32_t* const left,\n                                     const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average2
      Src: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: Predictor9_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - Average2
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor9_MIPSdspR2(const uint32_t* const left,\n                                     const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Average4
      Src: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: Predictor10_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - Average4
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor10_MIPSdspR2(const uint32_t* const left,\n                                      const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Select
      Src: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: Predictor11_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - Select
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor11_MIPSdspR2(const uint32_t* const left,\n                                      const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClampedAddSubtractFull
      Src: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: Predictor12_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - ClampedAddSubtractFull
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor12_MIPSdspR2(const uint32_t* const left,\n                                      const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClampedAddSubtractHalf
      Src: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - top
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: Predictor13_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - ClampedAddSubtractHalf
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Predictor13_MIPSdspR2(const uint32_t* const left,\n                                      const
      uint32_t* const top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src
    - num_pixels
    - dst
    argTypes:
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 291
    functionName: AddGreenToBlueAndRed_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AddGreenToBlueAndRed_MIPSdspR2(const uint32_t* src, int num_pixels,\n
      \                                          uint32_t* dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LTransformColorInverse_C
      Src: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - m
    - src
    - num_pixels
    - dst
    argTypes:
    - VP8LMultipliers*
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 361
    functionName: TransformColorInverse_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - VP8LTransformColorInverse_C
    linkageType: ''
    returnType: void
    signature: "void TransformColorInverse_MIPSdspR2(const VP8LMultipliers* const
      m,\n                                            const uint32_t* src, int num_pixels,\n
      \                                           uint32_t* dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src
    - num_pixels
    - dst
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 412
    functionName: ConvertBGRAToRGB_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToRGB_MIPSdspR2(const uint32_t* src, int num_pixels,\n
      \                                      uint8_t* dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src
    - num_pixels
    - dst
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 461
    functionName: ConvertBGRAToRGBA_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToRGBA_MIPSdspR2(const uint32_t* src, int num_pixels,\n
      \                                       uint8_t* dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - src
    - num_pixels
    - dst
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 534
    functionName: ConvertBGRAToRGBA4444_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToRGBA4444_MIPSdspR2(const uint32_t* src, int num_pixels,\n
      \                                           uint8_t* dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - src
    - num_pixels
    - dst
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 611
    functionName: ConvertBGRAToRGB565_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToRGB565_MIPSdspR2(const uint32_t* src, int num_pixels,\n
      \                                         uint8_t* dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src
    - num_pixels
    - dst
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 656
    functionName: ConvertBGRAToBGR_MIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRAToBGR_MIPSdspR2(const uint32_t* src, int num_pixels,\n
      \                                      uint8_t* dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 685
    functionName: VP8LDspInitMIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8LDspInitMIPSdspR2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STORE_SAT_SUM_X2
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 47
    functionName: TransformDC
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 2
    functionsReached:
    - STORE_SAT_SUM_X2
    linkageType: ''
    returnType: void
    signature: "void TransformDC(const int16_t* WEBP_RESTRICT in,\n                        uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_TRANSFORM_AC3_MUL2
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:52,1
    - Dst: WEBP_TRANSFORM_AC3_MUL1
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:53,1
    - Dst: WEBP_TRANSFORM_AC3_MUL2
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:54,1
    - Dst: WEBP_TRANSFORM_AC3_MUL1
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:55,1
    - Dst: SHIFT_R_SUM_X2
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:65,1
    - Dst: LOAD_WITH_OFFSET_X4
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:67,1
    - Dst: CONVERT_2_BYTES_TO_HALF
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:71,1
    - Dst: PACK_2_HALVES_TO_WORD
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:73,1
    - Dst: STORE_SAT_SUM_X2
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:75,1
    - Dst: OUTPUT_EARLY_CLOBBER_REGS_18
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 84
    functionName: TransformAC3
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 1
    functionsReached:
    - CONVERT_2_BYTES_TO_HALF
    - OUTPUT_EARLY_CLOBBER_REGS_18
    - PACK_2_HALVES_TO_WORD
    - STORE_SAT_SUM_X2
    - LOAD_WITH_OFFSET_X4
    - SHIFT_R_SUM_X2
    - WEBP_TRANSFORM_AC3_MUL2
    - WEBP_TRANSFORM_AC3_MUL1
    linkageType: ''
    returnType: void
    signature: "void TransformAC3(const int16_t* WEBP_RESTRICT in,\n                         uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_SUB_HALVES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:95,1
    - Dst: LOAD_IN_X2
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:96,1
    - Dst: MUL_SHIFT_SUM
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:97,1
    - Dst: INSERT_HALF_X2
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:100,1
    - Dst: ADD_SUB_HALVES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:104,1
    - Dst: ADD_SUB_HALVES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:105,1
    - Dst: LOAD_IN_X2
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:106,1
    - Dst: LOAD_IN_X2
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:107,1
    - Dst: MUL_SHIFT_SUM
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:108,1
    - Dst: INSERT_HALF_X2
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:111,1
    - Dst: ADD_SUB_HALVES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:112,1
    - Dst: ADD_SUB_HALVES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:113,1
    - Dst: SRA_16
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:116,1
    - Dst: INSERT_HALF_X2
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:117,1
    - Dst: SRA_16
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:118,1
    - Dst: INSERT_HALF_X2
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:120,1
    - Dst: ADD_SUB_HALVES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:124,1
    - Dst: MUL_SHIFT_SUM
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:125,1
    - Dst: MUL_SHIFT_SUM
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:128,1
    - Dst: INSERT_HALF_X2
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:131,1
    - Dst: INSERT_HALF_X2
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:132,1
    - Dst: SHIFT_R_SUM_X2
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:133,1
    - Dst: PACK_2_HALVES_TO_WORD
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:136,1
    - Dst: LOAD_WITH_OFFSET_X4
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:138,1
    - Dst: CONVERT_2_BYTES_TO_HALF
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:142,1
    - Dst: STORE_SAT_SUM_X2
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 152
    functionName: TransformOne
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 4
    functionsReached:
    - ADD_SUB_HALVES
    - LOAD_IN_X2
    - CONVERT_2_BYTES_TO_HALF
    - PACK_2_HALVES_TO_WORD
    - STORE_SAT_SUM_X2
    - SRA_16
    - LOAD_WITH_OFFSET_X4
    - MUL_SHIFT_SUM
    - SHIFT_R_SUM_X2
    - INSERT_HALF_X2
    linkageType: ''
    returnType: void
    signature: "void TransformOne(const int16_t* WEBP_RESTRICT in,\n                         uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TransformOne
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:156,1
    - Dst: TransformOne
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - do_two
    argTypes:
    - int16_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: TransformTwo
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - TransformOne
    linkageType: ''
    returnType: void
    signature: "void TransformTwo(const int16_t* WEBP_RESTRICT in,\n                         uint8_t*
      WEBP_RESTRICT dst, int do_two)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - p
    - hstride
    - vstride
    - size
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 297
    functionName: FilterLoop26
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE FilterLoop26(uint8_t* p, int hstride, int vstride,\n                                     int
      size, int thresh, int ithresh,\n                                     int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - p
    - hstride
    - vstride
    - size
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 425
    functionName: FilterLoop24
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE FilterLoop24(uint8_t* p, int hstride, int vstride,\n                                     int
      size, int thresh, int ithresh,\n                                     int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop26
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: VFilter16
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 2
    functionsReached:
    - FilterLoop26
    linkageType: ''
    returnType: void
    signature: "void VFilter16(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                     int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop26
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 436
    functionName: HFilter16
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 2
    functionsReached:
    - FilterLoop26
    linkageType: ''
    returnType: void
    signature: "void HFilter16(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                     int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop26
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:441,1
    - Dst: FilterLoop26
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: VFilter8
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 1
    functionsReached:
    - FilterLoop26
    linkageType: ''
    returnType: void
    signature: "void VFilter8(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT v,\n
      \                    int stride, int thresh, int ithresh, int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop26
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:447,1
    - Dst: FilterLoop26
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 449
    functionName: HFilter8
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 1
    functionsReached:
    - FilterLoop26
    linkageType: ''
    returnType: void
    signature: "void HFilter8(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT v,\n
      \                    int stride, int thresh, int ithresh, int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop24
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 459
    functionName: VFilter16i
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 2
    functionsReached:
    - FilterLoop24
    linkageType: ''
    returnType: void
    signature: "void VFilter16i(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                      int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop24
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - p
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 468
    functionName: HFilter16i
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 2
    functionsReached:
    - FilterLoop24
    linkageType: ''
    returnType: void
    signature: "void HFilter16i(uint8_t* p, int stride, int thresh, int ithresh,\n
      \                      int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop24
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:472,1
    - Dst: FilterLoop24
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: VFilter8i
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 2
    functionsReached:
    - FilterLoop24
    linkageType: ''
    returnType: void
    signature: "void VFilter8i(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT v,\n
      \                     int stride, int thresh, int ithresh, int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterLoop24
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:478,1
    - Dst: FilterLoop24
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - thresh
    - ithresh
    - hev_thresh
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 480
    functionName: HFilter8i
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 2
    functionsReached:
    - FilterLoop24
    linkageType: ''
    returnType: void
    signature: "void HFilter8i(uint8_t* WEBP_RESTRICT u, uint8_t* WEBP_RESTRICT v,\n
      \                     int stride, int thresh, int ithresh, int hev_thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - stride
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 540
    functionName: SimpleVFilter16
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SimpleVFilter16(uint8_t* p, int stride, int thresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 27
    argNames:
    - (
    - TEMP0
    - ','
    - TEMP1
    - ','
    - TEMP2
    - ','
    - TEMP3
    - ','
    - A
    - ','
    - A1
    - ','
    - B
    - ','
    - B1
    - ','
    - C
    - ','
    - C1
    - ','
    - D
    - ','
    - D1
    - ','
    - SRC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 553
    functionName: LOAD_4_BYTES
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "LOAD_4_BYTES(TEMP0, TEMP1, TEMP2, TEMP3,                               \\\n
      \                    A, A1, B, B1, C, C1, D, D1, SRC)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - stride
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 604
    functionName: SimpleHFilter16
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SimpleHFilter16(uint8_t* p, int stride, int thresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleVFilter16
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - stride
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 612
    functionName: SimpleVFilter16i
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 2
    functionsReached:
    - SimpleVFilter16
    linkageType: ''
    returnType: void
    signature: void SimpleVFilter16i(uint8_t* p, int stride, int thresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleHFilter16
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - stride
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 620
    functionName: SimpleHFilter16i
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 2
    functionsReached:
    - SimpleHFilter16
    linkageType: ''
    returnType: void
    signature: void SimpleHFilter16i(uint8_t* p, int stride, int thresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - TEMP0
    - ','
    - TEMP1
    - ','
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - DST
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 628
    functionName: STORE_8_BYTES
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_8_BYTES(TEMP0, TEMP1, A, B, C, DST)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 657
    functionName: VE4
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VE4(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD_4_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:663,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 679
    functionName: DC4
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 3
    functionsReached:
    - LOAD_4_BYTES
    - STORE_8_BYTES
    linkageType: ''
    returnType: void
    signature: void DC4(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSTR
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 723
    functionName: RD4
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 3
    functionsReached:
    - XSTR
    linkageType: ''
    returnType: void
    signature: void RD4(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - TEMP0
    - ','
    - TEMP1
    - ','
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - SRC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 731
    functionName: LOAD_8_BYTES
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_8_BYTES(TEMP0, TEMP1, A, B, C, SRC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 775
    functionName: LD4
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LD4(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD_4_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:785,1
    - Dst: LOAD_4_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:786,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:801,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:802,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:803,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:804,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:805,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:806,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 815
    functionName: DC8uv
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - LOAD_4_BYTES
    - STORE_8_BYTES
    linkageType: ''
    returnType: void
    signature: void DC8uv(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:827,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:828,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:829,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:830,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:831,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:832,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 838
    functionName: DC8uvNoLeft
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - STORE_8_BYTES
    linkageType: ''
    returnType: void
    signature: void DC8uvNoLeft(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD_4_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:845,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:856,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:857,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:858,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:859,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:860,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:861,1
    - Dst: STORE_8_BYTES
      Src: /src/libwebp/src/dsp/dec_mips_dsp_r2.c:862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 869
    functionName: DC8uvNoTop
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 0
    functionsReached:
    - LOAD_4_BYTES
    - STORE_8_BYTES
    linkageType: ''
    returnType: void
    signature: void DC8uvNoTop(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SIZE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 899
    functionName: CLIPPING
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLIPPING(SIZE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - DST
    - ','
    - TOP
    - ','
    - SIZE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 931
    functionName: CLIP_8B_TO_DST
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLIP_8B_TO_DST(DST, TOP, SIZE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DST
    - ','
    - SIZE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 943
    functionName: CLIP_TO_DST
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLIP_TO_DST(DST, SIZE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DST
    - ','
    - SIZE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 946
    functionName: TRUE_MOTION
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRUE_MOTION(DST, SIZE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 991
    functionName: VP8DspInitMIPSdspR2
    functionSourceFile: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8DspInitMIPSdspR2(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/filters_msa.c:27,1
    - Dst: LD_UB2
      Src: /src/libwebp/src/dsp/filters_msa.c:30,1
    - Dst: LD_UB2
      Src: /src/libwebp/src/dsp/filters_msa.c:31,1
    - Dst: SUB2
      Src: /src/libwebp/src/dsp/filters_msa.c:32,1
    - Dst: ST_UB2
      Src: /src/libwebp/src/dsp/filters_msa.c:33,1
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/filters_msa.c:42,1
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/filters_msa.c:43,1
    - Dst: ST_UB
      Src: /src/libwebp/src/dsp/filters_msa.c:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 4
    argNames:
    - src
    - pred
    - WEBP_RESTRICT
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts:
    - condition: (length >= 0)
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/libwebp/src/dsp/filters_msa.c
    constantsTouched: []
    func_position:
      end: 55
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 55
    functionName: PredictLineInverse0
    functionSourceFile: /src/libwebp/src/dsp/filters_msa.c
    functionUses: 0
    functionsReached:
    - ST_UB2
    - LD_UB
    - assert
    - ST_UB
    - SUB2
    - LD_UB2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PredictLineInverse0(const uint8_t* src,\n                                            const
      uint8_t* pred,\n                                            uint8_t* WEBP_RESTRICT
      dst,\n                                            int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - in
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 69
    functionName: DCHECK
    functionSourceFile: /src/libwebp/src/dsp/filters_msa.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DCHECK(in, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK
      Src: /src/libwebp/src/dsp/filters_msa.c:80,1
    - Dst: PredictLineInverse0
      Src: /src/libwebp/src/dsp/filters_msa.c:84,1
    - Dst: PredictLineInverse0
      Src: /src/libwebp/src/dsp/filters_msa.c:91,1
    - Dst: PredictLineInverse0
      Src: /src/libwebp/src/dsp/filters_msa.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT filtered_data
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 98
    functionName: HorizontalFilter_MSA
    functionSourceFile: /src/libwebp/src/dsp/filters_msa.c
    functionUses: 0
    functionsReached:
    - PredictLineInverse0
    - DCHECK
    linkageType: ''
    returnType: void
    signature: "void HorizontalFilter_MSA(const uint8_t* WEBP_RESTRICT data, int width,\n
      \                                int height, int stride,\n                                 uint8_t*
      WEBP_RESTRICT filtered_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/filters_msa.c:112,1
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/filters_msa.c:113,1
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/filters_msa.c:114,1
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/filters_msa.c:115,1
    - Dst: ILVRL_B2_SH
      Src: /src/libwebp/src/dsp/filters_msa.c:116,1
    - Dst: ILVRL_B2_SH
      Src: /src/libwebp/src/dsp/filters_msa.c:117,1
    - Dst: ILVRL_B2_SH
      Src: /src/libwebp/src/dsp/filters_msa.c:118,1
    - Dst: ADD2
      Src: /src/libwebp/src/dsp/filters_msa.c:119,1
    - Dst: SUB2
      Src: /src/libwebp/src/dsp/filters_msa.c:120,1
    - Dst: CLIP_SH2_0_255
      Src: /src/libwebp/src/dsp/filters_msa.c:121,1
    - Dst: __msa_pckev_b
      Src: /src/libwebp/src/dsp/filters_msa.c:122,1
    - Dst: ST_UB
      Src: /src/libwebp/src/dsp/filters_msa.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 5
    argNames:
    - pinput
    - ppred
    - WEBP_RESTRICT
    - stride
    - size
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 134
    functionName: PredictLineGradient
    functionSourceFile: /src/libwebp/src/dsp/filters_msa.c
    functionUses: 0
    functionsReached:
    - LD_UB
    - CLIP_SH2_0_255
    - ST_UB
    - ILVRL_B2_SH
    - ADD2
    - SUB2
    - __msa_pckev_b
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PredictLineGradient(const uint8_t* pinput,\n                                            const
      uint8_t* ppred,\n                                            uint8_t* WEBP_RESTRICT
      poutput,\n                                            int stride, int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK
      Src: /src/libwebp/src/dsp/filters_msa.c:143,1
    - Dst: PredictLineInverse0
      Src: /src/libwebp/src/dsp/filters_msa.c:147,1
    - Dst: PredictLineGradient
      Src: /src/libwebp/src/dsp/filters_msa.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT filtered_data
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 160
    functionName: GradientFilter_MSA
    functionSourceFile: /src/libwebp/src/dsp/filters_msa.c
    functionUses: 0
    functionsReached:
    - PredictLineGradient
    - PredictLineInverse0
    - DCHECK
    linkageType: ''
    returnType: void
    signature: "void GradientFilter_MSA(const uint8_t* WEBP_RESTRICT data, int width,\n
      \                              int height, int stride,\n                               uint8_t*
      WEBP_RESTRICT filtered_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK
      Src: /src/libwebp/src/dsp/filters_msa.c:172,1
    - Dst: PredictLineInverse0
      Src: /src/libwebp/src/dsp/filters_msa.c:177,1
    - Dst: PredictLineInverse0
      Src: /src/libwebp/src/dsp/filters_msa.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - width
    - height
    - stride
    - WEBP_RESTRICT filtered_data
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 189
    functionName: VerticalFilter_MSA
    functionSourceFile: /src/libwebp/src/dsp/filters_msa.c
    functionUses: 0
    functionsReached:
    - PredictLineInverse0
    - DCHECK
    linkageType: ''
    returnType: void
    signature: "void VerticalFilter_MSA(const uint8_t* WEBP_RESTRICT data, int width,\n
      \                              int height, int stride,\n                               uint8_t*
      WEBP_RESTRICT filtered_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: VP8FiltersInitMSA
    functionSourceFile: /src/libwebp/src/dsp/filters_msa.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8FiltersInitMSA(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - TEMP4
    - ','
    - TEMP0
    - ','
    - TEMP1
    - ','
    - TEMP2
    - ','
    - TEMP3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 53
    functionName: VERTICAL_PASS
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERTICAL_PASS(A, B, C, D, TEMP4, TEMP0, TEMP1, TEMP2, TEMP3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - A
    - ','
    - TEMP0
    - ','
    - TEMP4
    - ','
    - TEMP8
    - ','
    - TEMP12
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 111
    functionName: HORIZONTAL_PASS
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HORIZONTAL_PASS(A, TEMP0, TEMP4, TEMP8, TEMP12)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VERTICAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:125,1
    - Dst: VERTICAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:126,1
    - Dst: VERTICAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:127,1
    - Dst: HORIZONTAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:129,1
    - Dst: HORIZONTAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:130,1
    - Dst: HORIZONTAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:131,1
    - Dst: HORIZONTAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:132,1
    - Dst: ITransform_MIPS32
      Src: /src/libwebp/src/dsp/enc_mips32.c:145,1
    - Dst: ITransformOne_MIPS32
      Src: /src/libwebp/src/dsp/enc_mips32.c:148,1
    - Dst: ITransformOne_MIPS32
      Src: /src/libwebp/src/dsp/enc_mips32.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 152
    functionName: ITransformOne_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 1
    functionsReached:
    - VERTICAL_PASS
    - HORIZONTAL_PASS
    - ITransform_MIPS32
    - ITransformOne_MIPS32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ITransformOne_MIPS32(const uint8_t* WEBP_RESTRICT ref,\n
      \                                            const int16_t* WEBP_RESTRICT in,\n
      \                                            uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - J
    - ','
    - K
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 189
    functionName: QUANTIZE_ONE
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUANTIZE_ONE(J, K, N)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips32.c:207,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips32.c:208,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips32.c:209,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips32.c:210,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips32.c:211,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips32.c:212,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips32.c:213,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips32.c:214,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips32.c:215,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips32.c:216,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips32.c:217,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips32.c:218,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips32.c:219,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips32.c:220,1
    - Dst: QUANTIZE_ONE
      Src: /src/libwebp/src/dsp/enc_mips32.c:221,1
    - Dst: for
      Src: /src/libwebp/src/dsp/enc_mips32.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - in
    - out
    - mtx
    argTypes:
    - int16_t[]
    - int16_t[]
    - VP8Matrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 236
    functionName: QuantizeBlock_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 0
    functionsReached:
    - for
    - QUANTIZE_ONE
    linkageType: ''
    returnType: int
    signature: "int QuantizeBlock_MIPS32(int16_t in[16], int16_t out[16],\n                                const
      VP8Matrix* const mtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QuantizeBlock_MIPS32
      Src: /src/libwebp/src/dsp/enc_mips32.c:241,1
    - Dst: QuantizeBlock_MIPS32
      Src: /src/libwebp/src/dsp/enc_mips32.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - in
    - out
    - mtx
    argTypes:
    - int16_t[]
    - int16_t[]
    - VP8Matrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: Quantize2Blocks_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 0
    functionsReached:
    - QuantizeBlock_MIPS32
    linkageType: ''
    returnType: int
    signature: "int Quantize2Blocks_MIPS32(int16_t in[32], int16_t out[32],\n                                  const
      VP8Matrix* WEBP_RESTRICT const mtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - A
    - ','
    - E
    - ','
    - F
    - ','
    - G
    - ','
    - H
    - ','
    - E1
    - ','
    - F1
    - ','
    - G1
    - ','
    - H1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 287
    functionName: HORIZONTAL_PASS
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HORIZONTAL_PASS(A, E, F, G, H, E1, F1, G1, H1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - A1
    - ','
    - B1
    - ','
    - C1
    - ','
    - D1
    - ','
    - E
    - ','
    - F
    - ','
    - G
    - ','
    - H
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 361
    functionName: VERTICAL_PASS
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERTICAL_PASS(A, B, C, D, A1, B1, C1, D1, E, F, G, H)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HORIZONTAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:371,1
    - Dst: HORIZONTAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:372,1
    - Dst: HORIZONTAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:373,1
    - Dst: VERTICAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:377,1
    - Dst: VERTICAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:378,1
    - Dst: VERTICAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - a
    - b
    - w
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 393
    functionName: Disto4x4_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 0
    functionsReached:
    - VERTICAL_PASS
    - HORIZONTAL_PASS
    linkageType: ''
    returnType: int
    signature: "int Disto4x4_MIPS32(const uint8_t* WEBP_RESTRICT const a,\n                           const
      uint8_t* WEBP_RESTRICT const b,\n                           const uint16_t*
      WEBP_RESTRICT const w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Disto4x4_MIPS32
      Src: /src/libwebp/src/dsp/enc_mips32.c:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - a
    - b
    - w
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 409
    functionName: Disto16x16_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 0
    functionsReached:
    - Disto4x4_MIPS32
    linkageType: ''
    returnType: int
    signature: "int Disto16x16_MIPS32(const uint8_t* WEBP_RESTRICT const a,\n                             const
      uint8_t* WEBP_RESTRICT const b,\n                             const uint16_t*
      WEBP_RESTRICT const w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - A
    - ','
    - TEMP0
    - ','
    - TEMP1
    - ','
    - TEMP2
    - ','
    - TEMP3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 449
    functionName: HORIZONTAL_PASS
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HORIZONTAL_PASS(A, TEMP0, TEMP1, TEMP2, TEMP3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - TEMP0
    - ','
    - TEMP4
    - ','
    - TEMP8
    - ','
    - TEMP12
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 481
    functionName: VERTICAL_PASS
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERTICAL_PASS(A, B, C, D, TEMP0, TEMP4, TEMP8, TEMP12)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HORIZONTAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:496,1
    - Dst: HORIZONTAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:497,1
    - Dst: HORIZONTAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:498,1
    - Dst: VERTICAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:500,1
    - Dst: VERTICAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:501,1
    - Dst: VERTICAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:502,1
    - Dst: VERTICAL_PASS
      Src: /src/libwebp/src/dsp/enc_mips32.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 515
    functionName: FTransform_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 0
    functionsReached:
    - VERTICAL_PASS
    - HORIZONTAL_PASS
    linkageType: ''
    returnType: void
    signature: "void FTransform_MIPS32(const uint8_t* WEBP_RESTRICT src,\n                              const
      uint8_t* WEBP_RESTRICT ref,\n                              int16_t* WEBP_RESTRICT
      out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 540
    functionName: GET_SSE_INNER
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SSE_INNER(A, B, C, D)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: GET_SSE
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SSE(A, B, C, D)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:557,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:558,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:559,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:560,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:561,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:562,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:563,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:564,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:565,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:566,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:567,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:568,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:569,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:570,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 580
    functionName: SSE16x16_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 0
    functionsReached:
    - GET_SSE
    linkageType: ''
    returnType: int
    signature: "int SSE16x16_MIPS32(const uint8_t* WEBP_RESTRICT a,\n                           const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:591,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:592,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:593,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:594,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:595,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:596,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 606
    functionName: SSE16x8_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 0
    functionsReached:
    - GET_SSE
    linkageType: ''
    returnType: int
    signature: "int SSE16x8_MIPS32(const uint8_t* WEBP_RESTRICT a,\n                          const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:617,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:618,1
    - Dst: GET_SSE
      Src: /src/libwebp/src/dsp/enc_mips32.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 628
    functionName: SSE8x8_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 0
    functionsReached:
    - GET_SSE
    linkageType: ''
    returnType: int
    signature: "int SSE8x8_MIPS32(const uint8_t* WEBP_RESTRICT a,\n                         const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 647
    functionName: SSE4x4_MIPS32
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SSE4x4_MIPS32(const uint8_t* WEBP_RESTRICT a,\n                         const
      uint8_t* WEBP_RESTRICT b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 675
    functionName: VP8EncDspInitMIPS32
    functionSourceFile: /src/libwebp/src/dsp/enc_mips32.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8EncDspInitMIPS32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 40
    functionName: IDCT_1D_W
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IDCT_1D_W(in0, in1, in2, in3, out0, out1, out2, out3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LD_SH2
      Src: /src/libwebp/src/dsp/dec_msa.c:49,1
    - Dst: UNPCK_SH_SW
      Src: /src/libwebp/src/dsp/dec_msa.c:50,1
    - Dst: UNPCK_SH_SW
      Src: /src/libwebp/src/dsp/dec_msa.c:51,1
    - Dst: IDCT_1D_W
      Src: /src/libwebp/src/dsp/dec_msa.c:52,1
    - Dst: TRANSPOSE4x4_SW_SW
      Src: /src/libwebp/src/dsp/dec_msa.c:53,1
    - Dst: IDCT_1D_W
      Src: /src/libwebp/src/dsp/dec_msa.c:54,1
    - Dst: SRARI_W4_SW
      Src: /src/libwebp/src/dsp/dec_msa.c:55,1
    - Dst: TRANSPOSE4x4_SW_SW
      Src: /src/libwebp/src/dsp/dec_msa.c:56,1
    - Dst: LD_SB4
      Src: /src/libwebp/src/dsp/dec_msa.c:57,1
    - Dst: ILVR_B4_SW
      Src: /src/libwebp/src/dsp/dec_msa.c:58,1
    - Dst: ILVR_H4_SW
      Src: /src/libwebp/src/dsp/dec_msa.c:60,1
    - Dst: ADD4
      Src: /src/libwebp/src/dsp/dec_msa.c:62,1
    - Dst: CLIP_SW4_0_255
      Src: /src/libwebp/src/dsp/dec_msa.c:63,1
    - Dst: PCKEV_B2_SW
      Src: /src/libwebp/src/dsp/dec_msa.c:64,1
    - Dst: __msa_pckev_b
      Src: /src/libwebp/src/dsp/dec_msa.c:65,1
    - Dst: ST4x4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 67
    functionName: TransformOne
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 5
    functionsReached:
    - ADD4
    - ILVR_B4_SW
    - IDCT_1D_W
    - CLIP_SW4_0_255
    - PCKEV_B2_SW
    - ST4x4_UB
    - SRARI_W4_SW
    - LD_SB4
    - LD_SH2
    - TRANSPOSE4x4_SW_SW
    - UNPCK_SH_SW
    - ILVR_H4_SW
    - __msa_pckev_b
    linkageType: ''
    returnType: void
    signature: "void TransformOne(const int16_t* WEBP_RESTRICT in,\n                         uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TransformOne
      Src: /src/libwebp/src/dsp/dec_msa.c:71,1
    - Dst: TransformOne
      Src: /src/libwebp/src/dsp/dec_msa.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - do_two
    argTypes:
    - int16_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: TransformTwo
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached:
    - TransformOne
    linkageType: ''
    returnType: void
    signature: "void TransformTwo(const int16_t* WEBP_RESTRICT in,\n                         uint8_t*
      WEBP_RESTRICT dst, int do_two)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LD_SH2
      Src: /src/libwebp/src/dsp/dec_msa.c:87,1
    - Dst: SLDI_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:88,1
    - Dst: VSHF_H2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:91,1
    - Dst: VSHF_H2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:94,1
    - Dst: VSHF_H2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:97,1
    - Dst: ADDVI_H2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:100,1
    - Dst: SRAI_H2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:101,1
    - Dst: __msa_copy_s_h
      Src: /src/libwebp/src/dsp/dec_msa.c:102,1
    - Dst: __msa_copy_s_h
      Src: /src/libwebp/src/dsp/dec_msa.c:103,1
    - Dst: __msa_copy_s_h
      Src: /src/libwebp/src/dsp/dec_msa.c:104,1
    - Dst: __msa_copy_s_h
      Src: /src/libwebp/src/dsp/dec_msa.c:105,1
    - Dst: __msa_copy_s_h
      Src: /src/libwebp/src/dsp/dec_msa.c:106,1
    - Dst: __msa_copy_s_h
      Src: /src/libwebp/src/dsp/dec_msa.c:107,1
    - Dst: __msa_copy_s_h
      Src: /src/libwebp/src/dsp/dec_msa.c:108,1
    - Dst: __msa_copy_s_h
      Src: /src/libwebp/src/dsp/dec_msa.c:109,1
    - Dst: __msa_copy_s_h
      Src: /src/libwebp/src/dsp/dec_msa.c:110,1
    - Dst: __msa_copy_s_h
      Src: /src/libwebp/src/dsp/dec_msa.c:111,1
    - Dst: __msa_copy_s_h
      Src: /src/libwebp/src/dsp/dec_msa.c:112,1
    - Dst: __msa_copy_s_h
      Src: /src/libwebp/src/dsp/dec_msa.c:113,1
    - Dst: __msa_copy_s_h
      Src: /src/libwebp/src/dsp/dec_msa.c:114,1
    - Dst: __msa_copy_s_h
      Src: /src/libwebp/src/dsp/dec_msa.c:115,1
    - Dst: __msa_copy_s_h
      Src: /src/libwebp/src/dsp/dec_msa.c:116,1
    - Dst: __msa_copy_s_h
      Src: /src/libwebp/src/dsp/dec_msa.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 118
    functionName: TransformWHT
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 1
    functionsReached:
    - __msa_copy_s_h
    - VSHF_H2_SH
    - ADDVI_H2_SH
    - SRAI_H2_SH
    - LD_SH2
    - SLDI_SH
    linkageType: ''
    returnType: void
    signature: "void TransformWHT(const int16_t* WEBP_RESTRICT in,\n                         int16_t*
      WEBP_RESTRICT out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/dec_msa.c:123,1
    - Dst: ADDBLK_ST4x4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: TransformDC
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 2
    functionsReached:
    - ADDBLK_ST4x4_UB
    - __msa_fill_h
    linkageType: ''
    returnType: void
    signature: "void TransformDC(const int16_t* WEBP_RESTRICT in,\n                        uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_TRANSFORM_AC3_MUL2
      Src: /src/libwebp/src/dsp/dec_msa.c:130,1
    - Dst: WEBP_TRANSFORM_AC3_MUL1
      Src: /src/libwebp/src/dsp/dec_msa.c:131,1
    - Dst: WEBP_TRANSFORM_AC3_MUL2
      Src: /src/libwebp/src/dsp/dec_msa.c:132,1
    - Dst: WEBP_TRANSFORM_AC3_MUL1
      Src: /src/libwebp/src/dsp/dec_msa.c:133,1
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/dec_msa.c:135,1
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/dec_msa.c:136,1
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/dec_msa.c:137,1
    - Dst: __msa_fill_w
      Src: /src/libwebp/src/dsp/dec_msa.c:138,1
    - Dst: INSERT_W4_SW
      Src: /src/libwebp/src/dsp/dec_msa.c:143,1
    - Dst: ADD4
      Src: /src/libwebp/src/dsp/dec_msa.c:144,1
    - Dst: SRAI_W4_SW
      Src: /src/libwebp/src/dsp/dec_msa.c:145,1
    - Dst: LD_UB4
      Src: /src/libwebp/src/dsp/dec_msa.c:146,1
    - Dst: ILVR_B4_SW
      Src: /src/libwebp/src/dsp/dec_msa.c:147,1
    - Dst: ILVR_H4_SW
      Src: /src/libwebp/src/dsp/dec_msa.c:149,1
    - Dst: ADD4
      Src: /src/libwebp/src/dsp/dec_msa.c:151,1
    - Dst: CLIP_SW4_0_255
      Src: /src/libwebp/src/dsp/dec_msa.c:152,1
    - Dst: PCKEV_B2_SW
      Src: /src/libwebp/src/dsp/dec_msa.c:153,1
    - Dst: __msa_pckev_b
      Src: /src/libwebp/src/dsp/dec_msa.c:154,1
    - Dst: ST4x4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - int16_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 156
    functionName: TransformAC3
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 1
    functionsReached:
    - ADD4
    - ILVR_B4_SW
    - CLIP_SW4_0_255
    - PCKEV_B2_SW
    - ST4x4_UB
    - ILVR_H4_SW
    - __msa_fill_w
    - INSERT_W4_SW
    - SRAI_W4_SW
    - LD_UB4
    - __msa_pckev_b
    - WEBP_TRANSFORM_AC3_MUL2
    - WEBP_TRANSFORM_AC3_MUL1
    linkageType: ''
    returnType: void
    signature: "void TransformAC3(const int16_t* WEBP_RESTRICT in,\n                         uint8_t*
      WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - out0
    - ','
    - out1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: FLIP_SIGN2
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLIP_SIGN2(in0, in1, out0, out1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - in0
    - ','
    - in1
    - ','
    - in2
    - ','
    - in3
    - ','
    - out0
    - ','
    - out1
    - ','
    - out2
    - ','
    - out3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: FLIP_SIGN4
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLIP_SIGN4(in0, in1, in2, in3, out0, out1, out2, out3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - q0_m
    - ','
    - p0_m
    - ','
    - mask
    - ','
    - filt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 182
    functionName: FILT_VAL
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILT_VAL(q0_m, p0_m, mask, filt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - q_m
    - ','
    - p_m
    - ','
    - q
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 195
    functionName: FILT2
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILT2(q_m, p_m, q, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - p1
    - ','
    - p0
    - ','
    - q0
    - ','
    - q1
    - ','
    - mask
    - ','
    - hev
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 223
    functionName: LPF_FILTER4_4W
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LPF_FILTER4_4W(p1, p0, q0, q1, mask, hev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - p2
    - ','
    - p1
    - ','
    - p0
    - ','
    - q0
    - ','
    - q1
    - ','
    - q2
    - ','
    - mask
    - ','
    - hev
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 240
    functionName: LPF_MBFILTER
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LPF_MBFILTER(p2, p1, p0, q0, q1, q2, mask, hev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 27
    argNames:
    - (
    - p3_in
    - ','
    - p2_in
    - ','
    - p1_in
    - ','
    - p0_in
    - ','
    - q0_in
    - ','
    - q1_in
    - ','
    - q2_in
    - ','
    - q3_in
    - ','
    - limit_in
    - ','
    - b_limit_in
    - ','
    - thresh_in
    - ','
    - hev_out
    - ','
    - mask_out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 274
    functionName: LPF_MASK_HEV
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "LPF_MASK_HEV(p3_in, p2_in, p1_in, p0_in, q0_in, q1_in, q2_in, q3_in,
      \\\n                     limit_in, b_limit_in, thresh_in, hev_out, mask_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - in0
    - ','
    - in0_idx
    - ','
    - in1
    - ','
    - in1_idx
    - ','
    - pdst
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 307
    functionName: ST6x1_UB
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST6x1_UB(in0, in0_idx, in1, in1_idx, pdst, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - in0
    - ','
    - start_in0_idx
    - ','
    - in1
    - ','
    - start_in1_idx
    - ','
    - pdst
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 319
    functionName: ST6x4_UB
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST6x4_UB(in0, start_in0_idx, in1, start_in1_idx, pdst, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - p1_in
    - ','
    - p0_in
    - ','
    - q0_in
    - ','
    - q1_in
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 338
    functionName: LPF_SIMPLE_FILT
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LPF_SIMPLE_FILT(p1_in, p0_in, q0_in, q1_in, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - p1
    - ','
    - p0
    - ','
    - q0
    - ','
    - q1
    - ','
    - b_limit
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 350
    functionName: LPF_SIMPLE_MASK
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LPF_SIMPLE_MASK(p1, p0, q0, q1, b_limit, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:356,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:357,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:358,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:360,1
    - Dst: LPF_MASK_HEV
      Src: /src/libwebp/src/dsp/dec_msa.c:361,1
    - Dst: LPF_MBFILTER
      Src: /src/libwebp/src/dsp/dec_msa.c:363,1
    - Dst: ST_UB4
      Src: /src/libwebp/src/dsp/dec_msa.c:365,1
    - Dst: ST_UB2
      Src: /src/libwebp/src/dsp/dec_msa.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - src
    - stride
    - b_limit_in
    - limit_in
    - thresh_in
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 368
    functionName: VFilter16
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 3
    functionsReached:
    - LD_UB8
    - LPF_MBFILTER
    - ST_UB2
    - ST_UB4
    - LPF_MASK_HEV
    - __msa_fill_b
    linkageType: ''
    returnType: void
    signature: "void VFilter16(uint8_t* src, int stride, int b_limit_in, int limit_in,\n
      \                     int thresh_in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:378,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:379,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:380,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:382,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:384,1
    - Dst: TRANSPOSE16x8_UB_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:385,1
    - Dst: LPF_MASK_HEV
      Src: /src/libwebp/src/dsp/dec_msa.c:388,1
    - Dst: LPF_MBFILTER
      Src: /src/libwebp/src/dsp/dec_msa.c:390,1
    - Dst: ILVR_B2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:391,1
    - Dst: ILVRL_H2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:392,1
    - Dst: ILVL_B2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:393,1
    - Dst: ILVRL_H2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:394,1
    - Dst: ILVRL_B2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:395,1
    - Dst: ST6x1_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:397,1
    - Dst: ST6x1_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:399,1
    - Dst: ST6x1_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:401,1
    - Dst: ST6x1_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:403,1
    - Dst: ST6x1_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:405,1
    - Dst: ST6x1_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:407,1
    - Dst: ST6x1_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:409,1
    - Dst: ST6x1_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:411,1
    - Dst: ST6x1_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:413,1
    - Dst: ST6x1_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:415,1
    - Dst: ST6x1_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:417,1
    - Dst: ST6x1_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:419,1
    - Dst: ST6x1_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:421,1
    - Dst: ST6x1_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:423,1
    - Dst: ST6x1_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:425,1
    - Dst: ST6x1_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 5
    argNames:
    - src
    - stride
    - b_limit_in
    - limit_in
    - thresh_in
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 428
    functionName: HFilter16
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 3
    functionsReached:
    - ST6x1_UB
    - LD_UB8
    - LPF_MBFILTER
    - ILVR_B2_SH
    - ILVL_B2_SH
    - ILVRL_H2_SH
    - ILVRL_B2_SH
    - TRANSPOSE16x8_UB_UB
    - LPF_MASK_HEV
    - __msa_fill_b
    linkageType: ''
    returnType: void
    signature: "void HFilter16(uint8_t* src, int stride, int b_limit_in, int limit_in,\n
      \                     int thresh_in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:435,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:436,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:437,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:439,1
    - Dst: LPF_MASK_HEV
      Src: /src/libwebp/src/dsp/dec_msa.c:440,1
    - Dst: LPF_FILTER4_4W
      Src: /src/libwebp/src/dsp/dec_msa.c:442,1
    - Dst: ST_UB4
      Src: /src/libwebp/src/dsp/dec_msa.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - src
    - stride
    - b_limit
    - limit
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 444
    functionName: VFilterHorEdge16i
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached:
    - LD_UB8
    - LPF_FILTER4_4W
    - ST_UB4
    - LPF_MASK_HEV
    - __msa_fill_b
    linkageType: ''
    returnType: void
    signature: "void VFilterHorEdge16i(uint8_t* src, int stride, int b_limit, int
      limit,\n                              int thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VFilterHorEdge16i
      Src: /src/libwebp/src/dsp/dec_msa.c:448,1
    - Dst: VFilterHorEdge16i
      Src: /src/libwebp/src/dsp/dec_msa.c:449,1
    - Dst: VFilterHorEdge16i
      Src: /src/libwebp/src/dsp/dec_msa.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - src_y
    - stride
    - b_limit
    - limit
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 451
    functionName: VFilter16i
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 2
    functionsReached:
    - VFilterHorEdge16i
    linkageType: ''
    returnType: void
    signature: "void VFilter16i(uint8_t* src_y, int stride, int b_limit, int limit,\n
      \                      int thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:460,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:461,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:462,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:464,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:465,1
    - Dst: TRANSPOSE16x8_UB_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:467,1
    - Dst: LPF_MASK_HEV
      Src: /src/libwebp/src/dsp/dec_msa.c:470,1
    - Dst: LPF_FILTER4_4W
      Src: /src/libwebp/src/dsp/dec_msa.c:472,1
    - Dst: ILVR_B2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:473,1
    - Dst: ILVRL_H2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:474,1
    - Dst: ILVL_B2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:475,1
    - Dst: ILVRL_H2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:476,1
    - Dst: ST4x8_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:478,1
    - Dst: ST4x8_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - src
    - stride
    - b_limit
    - limit
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 481
    functionName: HFilterVertEdge16i
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached:
    - LD_UB8
    - ST4x8_UB
    - LPF_FILTER4_4W
    - ILVR_B2_SH
    - ILVL_B2_SH
    - ILVRL_H2_SH
    - TRANSPOSE16x8_UB_UB
    - LPF_MASK_HEV
    - __msa_fill_b
    linkageType: ''
    returnType: void
    signature: "void HFilterVertEdge16i(uint8_t* src, int stride, int b_limit, int
      limit,\n                               int thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HFilterVertEdge16i
      Src: /src/libwebp/src/dsp/dec_msa.c:485,1
    - Dst: HFilterVertEdge16i
      Src: /src/libwebp/src/dsp/dec_msa.c:486,1
    - Dst: HFilterVertEdge16i
      Src: /src/libwebp/src/dsp/dec_msa.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - src_y
    - stride
    - b_limit
    - limit
    - thresh
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 488
    functionName: HFilter16i
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 2
    functionsReached:
    - HFilterVertEdge16i
    linkageType: ''
    returnType: void
    signature: "void HFilter16i(uint8_t* src_y, int stride, int b_limit, int limit,\n
      \                      int thresh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:499,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:500,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:501,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:503,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:504,1
    - Dst: ILVR_D4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:505,1
    - Dst: ILVR_D4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:506,1
    - Dst: LPF_MASK_HEV
      Src: /src/libwebp/src/dsp/dec_msa.c:507,1
    - Dst: LPF_MBFILTER
      Src: /src/libwebp/src/dsp/dec_msa.c:509,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:510,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:511,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:512,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:513,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:514,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:515,1
    - Dst: SD4
      Src: /src/libwebp/src/dsp/dec_msa.c:517,1
    - Dst: SD
      Src: /src/libwebp/src/dsp/dec_msa.c:519,1
    - Dst: SD
      Src: /src/libwebp/src/dsp/dec_msa.c:521,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:522,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:523,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:524,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:525,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:526,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:527,1
    - Dst: SD4
      Src: /src/libwebp/src/dsp/dec_msa.c:529,1
    - Dst: SD
      Src: /src/libwebp/src/dsp/dec_msa.c:531,1
    - Dst: SD
      Src: /src/libwebp/src/dsp/dec_msa.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - b_limit_in
    - limit_in
    - thresh_in
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 534
    functionName: VFilter8
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 1
    functionsReached:
    - ILVR_D4_UB
    - LD_UB8
    - LPF_MBFILTER
    - SD
    - SD4
    - __msa_copy_s_d
    - LPF_MASK_HEV
    - __msa_fill_b
    linkageType: ''
    returnType: void
    signature: "void VFilter8(uint8_t* WEBP_RESTRICT src_u, uint8_t* WEBP_RESTRICT
      src_v,\n                     int stride, int b_limit_in, int limit_in, int thresh_in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:544,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:545,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:546,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:548,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:549,1
    - Dst: TRANSPOSE16x8_UB_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:551,1
    - Dst: LPF_MASK_HEV
      Src: /src/libwebp/src/dsp/dec_msa.c:554,1
    - Dst: LPF_MBFILTER
      Src: /src/libwebp/src/dsp/dec_msa.c:556,1
    - Dst: ILVR_B2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:557,1
    - Dst: ILVRL_H2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:558,1
    - Dst: ILVL_B2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:559,1
    - Dst: ILVRL_H2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:560,1
    - Dst: ILVRL_B2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:561,1
    - Dst: ST6x4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:563,1
    - Dst: ST6x4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:565,1
    - Dst: ST6x4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:567,1
    - Dst: ST6x4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - b_limit_in
    - limit_in
    - thresh_in
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 570
    functionName: HFilter8
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 1
    functionsReached:
    - LD_UB8
    - LPF_MBFILTER
    - ILVR_B2_SH
    - ILVL_B2_SH
    - ILVRL_H2_SH
    - ILVRL_B2_SH
    - TRANSPOSE16x8_UB_UB
    - LPF_MASK_HEV
    - __msa_fill_b
    - ST6x4_UB
    linkageType: ''
    returnType: void
    signature: "void HFilter8(uint8_t* WEBP_RESTRICT src_u, uint8_t* WEBP_RESTRICT
      src_v,\n                     int stride, int b_limit_in, int limit_in, int thresh_in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:579,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:580,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:581,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:583,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:585,1
    - Dst: ILVR_D4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:587,1
    - Dst: ILVR_D4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:588,1
    - Dst: LPF_MASK_HEV
      Src: /src/libwebp/src/dsp/dec_msa.c:589,1
    - Dst: LPF_FILTER4_4W
      Src: /src/libwebp/src/dsp/dec_msa.c:591,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:592,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:593,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:594,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:595,1
    - Dst: SD4
      Src: /src/libwebp/src/dsp/dec_msa.c:596,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:597,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:598,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:599,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:600,1
    - Dst: SD4
      Src: /src/libwebp/src/dsp/dec_msa.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - b_limit_in
    - limit_in
    - thresh_in
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 602
    functionName: VFilter8i
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 2
    functionsReached:
    - ILVR_D4_UB
    - LD_UB8
    - LPF_FILTER4_4W
    - SD4
    - __msa_copy_s_d
    - LPF_MASK_HEV
    - __msa_fill_b
    linkageType: ''
    returnType: void
    signature: "void VFilter8i(uint8_t* WEBP_RESTRICT src_u,\n                      uint8_t*
      WEBP_RESTRICT src_v, int stride, int b_limit_in,\n                      int
      limit_in, int thresh_in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:611,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:612,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:613,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:615,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:616,1
    - Dst: TRANSPOSE16x8_UB_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:617,1
    - Dst: LPF_MASK_HEV
      Src: /src/libwebp/src/dsp/dec_msa.c:620,1
    - Dst: LPF_FILTER4_4W
      Src: /src/libwebp/src/dsp/dec_msa.c:622,1
    - Dst: ILVR_B2_SW
      Src: /src/libwebp/src/dsp/dec_msa.c:623,1
    - Dst: ILVRL_H2_SW
      Src: /src/libwebp/src/dsp/dec_msa.c:624,1
    - Dst: ILVL_B2_SW
      Src: /src/libwebp/src/dsp/dec_msa.c:625,1
    - Dst: ILVRL_H2_SW
      Src: /src/libwebp/src/dsp/dec_msa.c:626,1
    - Dst: ST4x4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:628,1
    - Dst: ST4x4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:630,1
    - Dst: ST4x4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:632,1
    - Dst: ST4x4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 6
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - stride
    - b_limit_in
    - limit_in
    - thresh_in
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 635
    functionName: HFilter8i
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 2
    functionsReached:
    - LD_UB8
    - ILVR_B2_SW
    - ILVRL_H2_SW
    - LPF_FILTER4_4W
    - ST4x4_UB
    - TRANSPOSE16x8_UB_UB
    - ILVL_B2_SW
    - LPF_MASK_HEV
    - __msa_fill_b
    linkageType: ''
    returnType: void
    signature: "void HFilter8i(uint8_t* WEBP_RESTRICT src_u,\n                      uint8_t*
      WEBP_RESTRICT src_v, int stride, int b_limit_in,\n                      int
      limit_in, int thresh_in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:639,1
    - Dst: LD_UB4
      Src: /src/libwebp/src/dsp/dec_msa.c:641,1
    - Dst: LPF_SIMPLE_MASK
      Src: /src/libwebp/src/dsp/dec_msa.c:642,1
    - Dst: LPF_SIMPLE_FILT
      Src: /src/libwebp/src/dsp/dec_msa.c:643,1
    - Dst: ST_UB2
      Src: /src/libwebp/src/dsp/dec_msa.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - src
    - stride
    - b_limit_in
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 645
    functionName: SimpleVFilter16
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 3
    functionsReached:
    - ST_UB2
    - LD_UB4
    - LPF_SIMPLE_FILT
    - __msa_fill_b
    - LPF_SIMPLE_MASK
    linkageType: ''
    returnType: void
    signature: void SimpleVFilter16(uint8_t* src, int stride, int b_limit_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:651,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:654,1
    - Dst: LD_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:655,1
    - Dst: TRANSPOSE16x4_UB_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:657,1
    - Dst: LPF_SIMPLE_MASK
      Src: /src/libwebp/src/dsp/dec_msa.c:660,1
    - Dst: LPF_SIMPLE_FILT
      Src: /src/libwebp/src/dsp/dec_msa.c:661,1
    - Dst: ILVRL_B2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:662,1
    - Dst: ST2x4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:664,1
    - Dst: ST2x4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:666,1
    - Dst: ST2x4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:668,1
    - Dst: ST2x4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - src
    - stride
    - b_limit_in
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 672
    functionName: SimpleHFilter16
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 3
    functionsReached:
    - LD_UB8
    - ST2x4_UB
    - TRANSPOSE16x4_UB_UB
    - ILVRL_B2_SH
    - LPF_SIMPLE_FILT
    - __msa_fill_b
    - LPF_SIMPLE_MASK
    linkageType: ''
    returnType: void
    signature: void SimpleHFilter16(uint8_t* src, int stride, int b_limit_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleVFilter16
      Src: /src/libwebp/src/dsp/dec_msa.c:675,1
    - Dst: SimpleVFilter16
      Src: /src/libwebp/src/dsp/dec_msa.c:676,1
    - Dst: SimpleVFilter16
      Src: /src/libwebp/src/dsp/dec_msa.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - src_y
    - stride
    - b_limit_in
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 678
    functionName: SimpleVFilter16i
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 2
    functionsReached:
    - SimpleVFilter16
    linkageType: ''
    returnType: void
    signature: void SimpleVFilter16i(uint8_t* src_y, int stride, int b_limit_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleHFilter16
      Src: /src/libwebp/src/dsp/dec_msa.c:681,1
    - Dst: SimpleHFilter16
      Src: /src/libwebp/src/dsp/dec_msa.c:682,1
    - Dst: SimpleHFilter16
      Src: /src/libwebp/src/dsp/dec_msa.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - src_y
    - stride
    - b_limit_in
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 684
    functionName: SimpleHFilter16i
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 2
    functionsReached:
    - SimpleHFilter16
    linkageType: ''
    returnType: void
    signature: void SimpleHFilter16i(uint8_t* src_y, int stride, int b_limit_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SW4
      Src: /src/libwebp/src/dsp/dec_msa.c:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 699
    functionName: DC4
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 3
    functionsReached:
    - SW4
    linkageType: ''
    returnType: void
    signature: void DC4(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/dec_msa.c:705,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/dec_msa.c:706,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/dec_msa.c:707,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/dec_msa.c:708,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/dec_msa.c:709,1
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:710,1
    - Dst: __msa_ilvr_b
      Src: /src/libwebp/src/dsp/dec_msa.c:712,1
    - Dst: ADD4
      Src: /src/libwebp/src/dsp/dec_msa.c:714,1
    - Dst: CLIP_SH4_0_255
      Src: /src/libwebp/src/dsp/dec_msa.c:715,1
    - Dst: PCKEV_ST4x4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 717
    functionName: TM4
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 3
    functionsReached:
    - ADD4
    - LD_UB
    - __msa_fill_h
    - __msa_ilvr_b
    - PCKEV_ST4x4_UB
    - CLIP_SH4_0_255
    linkageType: ''
    returnType: void
    signature: void TM4(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LW
      Src: /src/libwebp/src/dsp/dec_msa.c:721,1
    - Dst: LW
      Src: /src/libwebp/src/dsp/dec_msa.c:722,1
    - Dst: INSERT_W2_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:726,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:727,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:728,1
    - Dst: __msa_ave_u_b
      Src: /src/libwebp/src/dsp/dec_msa.c:729,1
    - Dst: __msa_ave_u_b
      Src: /src/libwebp/src/dsp/dec_msa.c:730,1
    - Dst: __msa_aver_u_b
      Src: /src/libwebp/src/dsp/dec_msa.c:731,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/dec_msa.c:732,1
    - Dst: SW4
      Src: /src/libwebp/src/dsp/dec_msa.c:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 734
    functionName: VE4
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 3
    functionsReached:
    - INSERT_W2_UB
    - __msa_ave_u_b
    - __msa_aver_u_b
    - SW4
    - SLDI_UB
    - __msa_copy_s_w
    - LW
    linkageType: ''
    returnType: void
    signature: void VE4(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LW
      Src: /src/libwebp/src/dsp/dec_msa.c:738,1
    - Dst: LW
      Src: /src/libwebp/src/dsp/dec_msa.c:739,1
    - Dst: INSERT_W2_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:743,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:744,1
    - Dst: __msa_insert_b
      Src: /src/libwebp/src/dsp/dec_msa.c:745,1
    - Dst: __msa_insert_b
      Src: /src/libwebp/src/dsp/dec_msa.c:746,1
    - Dst: __msa_insert_b
      Src: /src/libwebp/src/dsp/dec_msa.c:747,1
    - Dst: __msa_insert_b
      Src: /src/libwebp/src/dsp/dec_msa.c:748,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:749,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:750,1
    - Dst: __msa_ave_u_b
      Src: /src/libwebp/src/dsp/dec_msa.c:751,1
    - Dst: __msa_ave_u_b
      Src: /src/libwebp/src/dsp/dec_msa.c:752,1
    - Dst: __msa_aver_u_b
      Src: /src/libwebp/src/dsp/dec_msa.c:753,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/dec_msa.c:754,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:755,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/dec_msa.c:756,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:757,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/dec_msa.c:758,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:759,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/dec_msa.c:760,1
    - Dst: SW4
      Src: /src/libwebp/src/dsp/dec_msa.c:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 762
    functionName: RD4
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 3
    functionsReached:
    - INSERT_W2_UB
    - __msa_insert_b
    - __msa_ave_u_b
    - __msa_aver_u_b
    - SW4
    - SLDI_UB
    - __msa_copy_s_w
    - LW
    linkageType: ''
    returnType: void
    signature: void RD4(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LW
      Src: /src/libwebp/src/dsp/dec_msa.c:766,1
    - Dst: LW
      Src: /src/libwebp/src/dsp/dec_msa.c:767,1
    - Dst: INSERT_W2_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:771,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:772,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:773,1
    - Dst: __msa_insert_b
      Src: /src/libwebp/src/dsp/dec_msa.c:774,1
    - Dst: __msa_ave_u_b
      Src: /src/libwebp/src/dsp/dec_msa.c:775,1
    - Dst: __msa_ave_u_b
      Src: /src/libwebp/src/dsp/dec_msa.c:776,1
    - Dst: __msa_aver_u_b
      Src: /src/libwebp/src/dsp/dec_msa.c:777,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/dec_msa.c:778,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:779,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/dec_msa.c:780,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:781,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/dec_msa.c:782,1
    - Dst: SLDI_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:783,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/dec_msa.c:784,1
    - Dst: SW4
      Src: /src/libwebp/src/dsp/dec_msa.c:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 786
    functionName: LD4
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 3
    functionsReached:
    - INSERT_W2_UB
    - __msa_insert_b
    - __msa_ave_u_b
    - __msa_aver_u_b
    - SW4
    - SLDI_UB
    - __msa_copy_s_w
    - LW
    linkageType: ''
    returnType: void
    signature: void LD4(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:793,1
    - Dst: __msa_hadd_u_h
      Src: /src/libwebp/src/dsp/dec_msa.c:794,1
    - Dst: HADD_UH_U32
      Src: /src/libwebp/src/dsp/dec_msa.c:800,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:801,1
    - Dst: ST_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:802,1
    - Dst: ST_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 804
    functionName: DC16
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached:
    - __msa_hadd_u_h
    - LD_UB
    - HADD_UH_U32
    - ST_UB8
    - __msa_fill_b
    linkageType: ''
    returnType: void
    signature: void DC16(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/dec_msa.c:810,1
    - Dst: LD_SB
      Src: /src/libwebp/src/dsp/dec_msa.c:811,1
    - Dst: ILVRL_B2_SH
      Src: /src/libwebp/src/dsp/dec_msa.c:813,1
    - Dst: SUB2
      Src: /src/libwebp/src/dsp/dec_msa.c:814,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/dec_msa.c:818,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/dec_msa.c:819,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/dec_msa.c:820,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/dec_msa.c:821,1
    - Dst: ADD4
      Src: /src/libwebp/src/dsp/dec_msa.c:822,1
    - Dst: ADD4
      Src: /src/libwebp/src/dsp/dec_msa.c:823,1
    - Dst: CLIP_SH4_0_255
      Src: /src/libwebp/src/dsp/dec_msa.c:824,1
    - Dst: CLIP_SH4_0_255
      Src: /src/libwebp/src/dsp/dec_msa.c:825,1
    - Dst: PCKEV_B4_SB
      Src: /src/libwebp/src/dsp/dec_msa.c:826,1
    - Dst: ST_SB4
      Src: /src/libwebp/src/dsp/dec_msa.c:827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 830
    functionName: TM16
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached:
    - ADD4
    - __msa_fill_h
    - PCKEV_B4_SB
    - ILVRL_B2_SH
    - CLIP_SH4_0_255
    - SUB2
    - ST_SB4
    - LD_SB
    linkageType: ''
    returnType: void
    signature: void TM16(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:833,1
    - Dst: ST_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:834,1
    - Dst: ST_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 836
    functionName: VE16
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached:
    - ST_UB8
    - LD_UB
    linkageType: ''
    returnType: void
    signature: void VE16(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:841,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:842,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:843,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:844,1
    - Dst: ST_UB4
      Src: /src/libwebp/src/dsp/dec_msa.c:845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 848
    functionName: HE16
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached:
    - ST_UB4
    - __msa_fill_b
    linkageType: ''
    returnType: void
    signature: void HE16(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:858,1
    - Dst: ST_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:859,1
    - Dst: ST_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 861
    functionName: DC16NoTop
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached:
    - ST_UB8
    - __msa_fill_b
    linkageType: ''
    returnType: void
    signature: void DC16NoTop(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:865,1
    - Dst: __msa_hadd_u_h
      Src: /src/libwebp/src/dsp/dec_msa.c:866,1
    - Dst: HADD_UH_U32
      Src: /src/libwebp/src/dsp/dec_msa.c:869,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:870,1
    - Dst: ST_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:871,1
    - Dst: ST_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 873
    functionName: DC16NoLeft
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached:
    - __msa_hadd_u_h
    - LD_UB
    - HADD_UH_U32
    - ST_UB8
    - __msa_fill_b
    linkageType: ''
    returnType: void
    signature: void DC16NoLeft(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:876,1
    - Dst: ST_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:877,1
    - Dst: ST_UB8
      Src: /src/libwebp/src/dsp/dec_msa.c:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 875
    functionDepth: 1
    functionLinenumber: 875
    functionLinenumberEnd: 879
    functionName: DC16NoTopLeft
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached:
    - ST_UB8
    - __msa_fill_b
    linkageType: ''
    returnType: void
    signature: void DC16NoTopLeft(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - out
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 888
    functionName: STORE8x8
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE8x8(out, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:893,1
    - Dst: __msa_hadd_u_h
      Src: /src/libwebp/src/dsp/dec_msa.c:894,1
    - Dst: __msa_hadd_u_w
      Src: /src/libwebp/src/dsp/dec_msa.c:895,1
    - Dst: __msa_hadd_u_d
      Src: /src/libwebp/src/dsp/dec_msa.c:896,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/dec_msa.c:902,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:903,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:904,1
    - Dst: STORE8x8
      Src: /src/libwebp/src/dsp/dec_msa.c:905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 906
    functionName: DC8uv
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached:
    - __msa_hadd_u_h
    - LD_UB
    - __msa_hadd_u_d
    - STORE8x8
    - __msa_copy_s_w
    - __msa_copy_s_d
    - __msa_hadd_u_w
    - __msa_fill_b
    linkageType: ''
    returnType: void
    signature: void DC8uv(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LD_SB
      Src: /src/libwebp/src/dsp/dec_msa.c:910,1
    - Dst: __msa_ilvr_b
      Src: /src/libwebp/src/dsp/dec_msa.c:912,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/dec_msa.c:913,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/dec_msa.c:918,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/dec_msa.c:919,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/dec_msa.c:920,1
    - Dst: __msa_fill_h
      Src: /src/libwebp/src/dsp/dec_msa.c:921,1
    - Dst: ADD4
      Src: /src/libwebp/src/dsp/dec_msa.c:922,1
    - Dst: CLIP_SH4_0_255
      Src: /src/libwebp/src/dsp/dec_msa.c:923,1
    - Dst: PCKEV_B2_SB
      Src: /src/libwebp/src/dsp/dec_msa.c:924,1
    - Dst: ST4x4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:925,1
    - Dst: ST4x4_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 929
    functionName: TM8uv
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached:
    - ADD4
    - __msa_fill_h
    - __msa_ilvr_b
    - ST4x4_UB
    - CLIP_SH4_0_255
    - PCKEV_B2_SB
    - LD_SB
    linkageType: ''
    returnType: void
    signature: void TM8uv(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:932,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:933,1
    - Dst: STORE8x8
      Src: /src/libwebp/src/dsp/dec_msa.c:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 935
    functionName: VE8uv
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached:
    - __msa_copy_s_d
    - LD_UB
    - STORE8x8
    linkageType: ''
    returnType: void
    signature: void VE8uv(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:940,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:941,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:942,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:943,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:944,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:945,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:946,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:947,1
    - Dst: SD4
      Src: /src/libwebp/src/dsp/dec_msa.c:948,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 951
    functionName: HE8uv
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached:
    - __msa_copy_s_d
    - SD4
    - __msa_fill_b
    linkageType: ''
    returnType: void
    signature: void HE8uv(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LD_UB
      Src: /src/libwebp/src/dsp/dec_msa.c:955,1
    - Dst: __msa_hadd_u_h
      Src: /src/libwebp/src/dsp/dec_msa.c:956,1
    - Dst: __msa_hadd_u_w
      Src: /src/libwebp/src/dsp/dec_msa.c:957,1
    - Dst: __msa_hadd_u_d
      Src: /src/libwebp/src/dsp/dec_msa.c:958,1
    - Dst: __msa_copy_s_w
      Src: /src/libwebp/src/dsp/dec_msa.c:959,1
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:960,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:961,1
    - Dst: STORE8x8
      Src: /src/libwebp/src/dsp/dec_msa.c:962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 963
    functionName: DC8uvNoLeft
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached:
    - __msa_hadd_u_h
    - LD_UB
    - __msa_hadd_u_d
    - STORE8x8
    - __msa_copy_s_w
    - __msa_copy_s_d
    - __msa_hadd_u_w
    - __msa_fill_b
    linkageType: ''
    returnType: void
    signature: void DC8uvNoLeft(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msa_fill_b
      Src: /src/libwebp/src/dsp/dec_msa.c:974,1
    - Dst: __msa_copy_s_d
      Src: /src/libwebp/src/dsp/dec_msa.c:975,1
    - Dst: STORE8x8
      Src: /src/libwebp/src/dsp/dec_msa.c:976,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 977
    functionName: DC8uvNoTop
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached:
    - __msa_copy_s_d
    - __msa_fill_b
    - STORE8x8
    linkageType: ''
    returnType: void
    signature: void DC8uvNoTop(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STORE8x8
      Src: /src/libwebp/src/dsp/dec_msa.c:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 982
    functionName: DC8uvNoTopLeft
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 0
    functionsReached:
    - STORE8x8
    linkageType: ''
    returnType: void
    signature: void DC8uvNoTopLeft(uint8_t* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 989
    functionDepth: 0
    functionLinenumber: 989
    functionLinenumberEnd: 1027
    functionName: VP8DspInitMSA
    functionSourceFile: /src/libwebp/src/dsp/dec_msa.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION VP8DspInitMSA(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: WEBP_DSP_INIT_STUB
    functionSourceFile: /src/libwebp/src/dsp/dsp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_DSP_INIT_STUB(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: WEBP_TRANSFORM_AC3_MUL1
    functionSourceFile: /src/libwebp/src/dsp/dsp.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_TRANSFORM_AC3_MUL1(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 230
    functionName: WEBP_TRANSFORM_AC3_MUL2
    functionSourceFile: /src/libwebp/src/dsp/dsp.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_TRANSFORM_AC3_MUL2(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: MULT_FIX
    functionSourceFile: /src/libwebp/src/dsp/rescaler.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULT_FIX(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: MULT_FIX_FLOOR
    functionSourceFile: /src/libwebp/src/dsp/rescaler.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULT_FIX_FLOOR(x, y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler.c:107,1
    - Dst: WebPRescalerOutputDone
      Src: /src/libwebp/src/dsp/rescaler.c:107,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler.c:108,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler.c:109,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler.c:110,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler.c:114,1
    - Dst: WEBP_RESCALER_FRAC
      Src: /src/libwebp/src/dsp/rescaler.c:118,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler.c:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - wrk
    argTypes:
    - WebPRescaler*
    assertStmts:
    - condition: (!WebPRescalerOutputDone(wrk))
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/libwebp/src/dsp/rescaler.c
    - condition: (wrk->y_accum <= 0)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/libwebp/src/dsp/rescaler.c
    - condition: (wrk->y_sub != 0)
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/libwebp/src/dsp/rescaler.c
    - condition: (wrk->y_expand)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/libwebp/src/dsp/rescaler.c
    constantsTouched: []
    func_position:
      end: 127
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 127
    functionName: WebPRescalerExportRowExpand_C
    functionSourceFile: /src/libwebp/src/dsp/rescaler.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPRescalerOutputDone
    - MULT_FIX
    - WEBP_RESCALER_FRAC
    linkageType: ''
    returnType: void
    signature: void WebPRescalerExportRowExpand_C(WebPRescaler* const wrk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler.c:136,1
    - Dst: WebPRescalerOutputDone
      Src: /src/libwebp/src/dsp/rescaler.c:136,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler.c:137,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler.c:138,1
    - Dst: MULT_FIX_FLOOR
      Src: /src/libwebp/src/dsp/rescaler.c:141,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler.c:142,1
    - Dst: MULT_FIX
      Src: /src/libwebp/src/dsp/rescaler.c:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - wrk
    argTypes:
    - WebPRescaler*
    assertStmts:
    - condition: (!WebPRescalerOutputDone(wrk))
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/libwebp/src/dsp/rescaler.c
    - condition: (!wrk->y_expand)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/libwebp/src/dsp/rescaler.c
    - condition: (wrk->y_accum <= 0)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/libwebp/src/dsp/rescaler.c
    constantsTouched: []
    func_position:
      end: 153
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 153
    functionName: WebPRescalerExportRowShrink_C
    functionSourceFile: /src/libwebp/src/dsp/rescaler.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPRescalerOutputDone
    - MULT_FIX_FLOOR
    - MULT_FIX
    linkageType: ''
    returnType: void
    signature: void WebPRescalerExportRowShrink_C(WebPRescaler* const wrk)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler.c:174,1
    - Dst: WebPRescalerOutputDone
      Src: /src/libwebp/src/dsp/rescaler.c:174,1
    - Dst: WebPRescalerExportRowExpand
      Src: /src/libwebp/src/dsp/rescaler.c:176,1
    - Dst: WebPRescalerExportRowShrink
      Src: /src/libwebp/src/dsp/rescaler.c:178,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler.c:181,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler.c:182,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - wrk
    argTypes:
    - WebPRescaler*
    assertStmts:
    - condition: (!WebPRescalerOutputDone(wrk))
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/libwebp/src/dsp/rescaler.c
    - condition: (wrk->src_height == wrk->dst_height && wrk->x_add == 1)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/libwebp/src/dsp/rescaler.c
    - condition: (wrk->src_width == 1 && wrk->dst_width <= 2)
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/libwebp/src/dsp/rescaler.c
    constantsTouched: []
    func_position:
      end: 192
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 192
    functionName: WebPRescalerExportRow
    functionSourceFile: /src/libwebp/src/dsp/rescaler.c
    functionUses: 5
    functionsReached:
    - assert
    - WebPRescalerExportRowShrink
    - WebPRescalerOutputDone
    - WebPRescalerExportRowExpand
    linkageType: ''
    returnType: void
    signature: void WebPRescalerExportRow(WebPRescaler* const wrk)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/rescaler.c:221,1
    - Dst: WebPRescalerDspInitSSE2
      Src: /src/libwebp/src/dsp/rescaler.c:222,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/rescaler.c:226,1
    - Dst: WebPRescalerDspInitMIPS32
      Src: /src/libwebp/src/dsp/rescaler.c:227,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/rescaler.c:231,1
    - Dst: WebPRescalerDspInitMIPSdspR2
      Src: /src/libwebp/src/dsp/rescaler.c:232,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/rescaler.c:236,1
    - Dst: WebPRescalerDspInitMSA
      Src: /src/libwebp/src/dsp/rescaler.c:237,1
    - Dst: VP8GetCPUInfo
      Src: /src/libwebp/src/dsp/rescaler.c:244,1
    - Dst: WebPRescalerDspInitNEON
      Src: /src/libwebp/src/dsp/rescaler.c:245,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler.c:249,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler.c:250,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler.c:251,1
    - Dst: assert
      Src: /src/libwebp/src/dsp/rescaler.c:252,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WebPRescalerImportRowShrink != NULL)
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/libwebp/src/dsp/rescaler.c
    - condition: (WebPRescalerImportRowExpand != NULL)
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/libwebp/src/dsp/rescaler.c
    - condition: (WebPRescalerExportRowShrink != NULL)
      pos:
        line_end: 249
        line_start: 249
        source_file: /src/libwebp/src/dsp/rescaler.c
    - condition: (WebPRescalerExportRowExpand != NULL)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/libwebp/src/dsp/rescaler.c
    constantsTouched: []
    func_position:
      end: 254
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 254
    functionName: WEBP_DSP_INIT_FUNC
    functionSourceFile: /src/libwebp/src/dsp/rescaler.c
    functionUses: 0
    functionsReached:
    - WebPRescalerDspInitMIPSdspR2
    - VP8GetCPUInfo
    - WebPRescalerDspInitSSE2
    - WebPRescalerDspInitMIPS32
    - assert
    - WebPRescalerDspInitMSA
    - WebPRescalerDspInitNEON
    linkageType: ''
    returnType: void
    signature: void WEBP_DSP_INIT_FUNC(WebPRescalerDspInit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:38,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:39,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:40,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:42,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:43,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:44,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:45,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:46,1
    - Dst: _mm_mulhi_epu16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:48,1
    - Dst: _mm_mulhi_epu16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:50,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:51,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:52,1
    - Dst: _mm_mulhi_epu16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:54,1
    - Dst: _mm_mulhi_epu16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:55,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:56,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:57,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:58,1
    - Dst: _mm_mulhi_epu16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:61,1
    - Dst: _mm_adds_epu16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:62,1
    - Dst: _mm_subs_epu16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:63,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:66,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:67,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - Y0
    - U0
    - V0
    - R
    - G
    - B
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 69
    functionName: ConvertYUV444ToRGB_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_mulhi_epu16
    - _mm_set1_epi16
    - _mm_subs_epu16
    - _mm_srli_epi16
    - _mm_add_epi16
    - _mm_sub_epi16
    - _mm_srai_epi16
    - _mm_adds_epu16
    linkageType: ''
    returnType: void
    signature: "void ConvertYUV444ToRGB_SSE2(const __m128i* const Y0,\n                                    const
      __m128i* const U0,\n                                    const __m128i* const
      V0, __m128i* const R,\n                                    __m128i* const G,
      __m128i* const B)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:73,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:74,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/src/dsp/yuv_sse2.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: Load_HI_16_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_loadl_epi64
    - _mm_setzero_si128
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Load_HI_16_SSE2(const uint8_t* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:79,1
    - Dst: _mm_cvtsi32_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:80,1
    - Dst: WebPMemToInt32
      Src: /src/libwebp/src/dsp/yuv_sse2.c:80,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:81,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: Load_UV_HI_8_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_cvtsi32_si128
    - _mm_unpacklo_epi8
    - _mm_setzero_si128
    - WebPMemToInt32
    - _mm_unpacklo_epi16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Load_UV_HI_8_SSE2(const uint8_t* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load_HI_16_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:91,1
    - Dst: Load_HI_16_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:91,1
    - Dst: Load_HI_16_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:92,1
    - Dst: ConvertYUV444ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - y
    - u
    - v
    - R
    - G
    - B
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: YUV444ToRGB_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 1
    functionsReached:
    - Load_HI_16_SSE2
    - ConvertYUV444ToRGB_SSE2
    linkageType: ''
    returnType: void
    signature: "void YUV444ToRGB_SSE2(const uint8_t* WEBP_RESTRICT const y,\n                             const
      uint8_t* WEBP_RESTRICT const u,\n                             const uint8_t*
      WEBP_RESTRICT const v,\n                             __m128i* const R, __m128i*
      const G,\n                             __m128i* const B)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Load_HI_16_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:102,1
    - Dst: Load_UV_HI_8_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:102,1
    - Dst: Load_UV_HI_8_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:103,1
    - Dst: ConvertYUV444ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - y
    - u
    - v
    - R
    - G
    - B
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: YUV420ToRGB_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - Load_HI_16_SSE2
    - ConvertYUV444ToRGB_SSE2
    - Load_UV_HI_8_SSE2
    linkageType: ''
    returnType: void
    signature: "void YUV420ToRGB_SSE2(const uint8_t* WEBP_RESTRICT const y,\n                             const
      uint8_t* WEBP_RESTRICT const u,\n                             const uint8_t*
      WEBP_RESTRICT const v,\n                             __m128i* const R, __m128i*
      const G,\n                             __m128i* const B)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:113,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:114,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:115,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:116,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:117,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:118,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:119,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - R
    - G
    - B
    - A
    - dst
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 121
    functionName: PackAndStore4_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_storeu_si128
    - _mm_packus_epi16
    - _mm_unpackhi_epi16
    - _mm_unpacklo_epi16
    - _mm_unpackhi_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PackAndStore4_SSE2(const __m128i* const R,\n                                           const
      __m128i* const G,\n                                           const __m128i*
      const B,\n                                           const __m128i* const A,\n
      \                                          uint8_t* WEBP_RESTRICT const dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:128,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:129,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:131,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:132,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:134,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:135,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:136,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:137,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:138,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:138,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:139,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - R
    - G
    - B
    - A
    - dst
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 141
    functionName: PackAndStore4444_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_srli_epi16
    - _mm_storeu_si128
    - _mm_and_si128
    - _mm_packus_epi16
    - _mm_set1_epi8
    - _mm_unpackhi_epi8
    - _mm_or_si128
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PackAndStore4444_SSE2(\n    const __m128i* const R, const
      __m128i* const G, const __m128i* const B,\n    const __m128i* const A, uint8_t*
      WEBP_RESTRICT const dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:148,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:149,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:150,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:151,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:151,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:152,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:152,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:152,1
    - Dst: _mm_srli_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:154,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:154,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:154,1
    - Dst: _mm_slli_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:155,1
    - Dst: _mm_and_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:155,1
    - Dst: _mm_set1_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:155,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:156,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:157,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:159,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:161,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - R
    - G
    - B
    - dst
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 164
    functionName: PackAndStore565_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_srli_epi16
    - _mm_storeu_si128
    - _mm_slli_epi16
    - _mm_and_si128
    - _mm_packus_epi16
    - _mm_set1_epi8
    - _mm_or_si128
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PackAndStore565_SSE2(const __m128i* const R,\n                                             const
      __m128i* const G,\n                                             const __m128i*
      const B,\n                                             uint8_t* WEBP_RESTRICT
      const dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8PlanarTo24b_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:185,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:187,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:188,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:189,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:190,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:191,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 7
    argNames:
    - in0
    - in1
    - in2
    - in3
    - in4
    - in5
    - rgb
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 193
    functionName: PlanarTo24b_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 2
    functionsReached:
    - _mm_storeu_si128
    - VP8PlanarTo24b_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PlanarTo24b_SSE2(__m128i* const in0, __m128i* const in1,\n
      \                                        __m128i* const in2, __m128i* const
      in3,\n                                         __m128i* const in4, __m128i*
      const in5,\n                                         uint8_t* WEBP_RESTRICT
      const rgb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:199,1
    - Dst: YUV444ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:203,1
    - Dst: PackAndStore4_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 206
    functionName: VP8YuvToRgba32_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - PackAndStore4_SSE2
    - _mm_set1_epi16
    - YUV444ToRGB_SSE2
    linkageType: ''
    returnType: void
    signature: "void VP8YuvToRgba32_SSE2(const uint8_t* WEBP_RESTRICT y,\n                         const
      uint8_t* WEBP_RESTRICT u,\n                         const uint8_t* WEBP_RESTRICT
      v,\n                         uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:212,1
    - Dst: YUV444ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:216,1
    - Dst: PackAndStore4_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 219
    functionName: VP8YuvToBgra32_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - PackAndStore4_SSE2
    - _mm_set1_epi16
    - YUV444ToRGB_SSE2
    linkageType: ''
    returnType: void
    signature: "void VP8YuvToBgra32_SSE2(const uint8_t* WEBP_RESTRICT y,\n                         const
      uint8_t* WEBP_RESTRICT u,\n                         const uint8_t* WEBP_RESTRICT
      v,\n                         uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:225,1
    - Dst: YUV444ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:229,1
    - Dst: PackAndStore4_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 232
    functionName: VP8YuvToArgb32_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - PackAndStore4_SSE2
    - _mm_set1_epi16
    - YUV444ToRGB_SSE2
    linkageType: ''
    returnType: void
    signature: "void VP8YuvToArgb32_SSE2(const uint8_t* WEBP_RESTRICT y,\n                         const
      uint8_t* WEBP_RESTRICT u,\n                         const uint8_t* WEBP_RESTRICT
      v,\n                         uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:238,1
    - Dst: YUV444ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:242,1
    - Dst: PackAndStore4444_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 245
    functionName: VP8YuvToRgba444432_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - PackAndStore4444_SSE2
    - _mm_set1_epi16
    - YUV444ToRGB_SSE2
    linkageType: ''
    returnType: void
    signature: "void VP8YuvToRgba444432_SSE2(const uint8_t* WEBP_RESTRICT y,\n                             const
      uint8_t* WEBP_RESTRICT u,\n                             const uint8_t* WEBP_RESTRICT
      v,\n                             uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YUV444ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:254,1
    - Dst: PackAndStore565_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 257
    functionName: VP8YuvToRgb56532_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - PackAndStore565_SSE2
    - YUV444ToRGB_SSE2
    linkageType: ''
    returnType: void
    signature: "void VP8YuvToRgb56532_SSE2(const uint8_t* WEBP_RESTRICT y,\n                           const
      uint8_t* WEBP_RESTRICT u,\n                           const uint8_t* WEBP_RESTRICT
      v,\n                           uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YUV444ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:266,1
    - Dst: YUV444ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:267,1
    - Dst: YUV444ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:268,1
    - Dst: YUV444ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:269,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:272,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:273,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:274,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:275,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:276,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:277,1
    - Dst: PlanarTo24b_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 281
    functionName: VP8YuvToRgb32_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - PlanarTo24b_SSE2
    - _mm_packus_epi16
    - YUV444ToRGB_SSE2
    linkageType: ''
    returnType: void
    signature: "void VP8YuvToRgb32_SSE2(const uint8_t* WEBP_RESTRICT y,\n                        const
      uint8_t* WEBP_RESTRICT u,\n                        const uint8_t* WEBP_RESTRICT
      v,\n                        uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YUV444ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:290,1
    - Dst: YUV444ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:291,1
    - Dst: YUV444ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:292,1
    - Dst: YUV444ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:293,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:296,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:297,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:298,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:299,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:300,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:301,1
    - Dst: PlanarTo24b_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 305
    functionName: VP8YuvToBgr32_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - PlanarTo24b_SSE2
    - _mm_packus_epi16
    - YUV444ToRGB_SSE2
    linkageType: ''
    returnType: void
    signature: "void VP8YuvToBgr32_SSE2(const uint8_t* WEBP_RESTRICT y,\n                        const
      uint8_t* WEBP_RESTRICT u,\n                        const uint8_t* WEBP_RESTRICT
      v,\n                        uint8_t* WEBP_RESTRICT dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:314,1
    - Dst: YUV420ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:318,1
    - Dst: PackAndStore4_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:319,1
    - Dst: VP8YuvToRgba
      Src: /src/libwebp/src/dsp/yuv_sse2.c:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 310
    functionDepth: 4
    functionLinenumber: 310
    functionLinenumberEnd: 331
    functionName: YuvToRgbaRow_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - VP8YuvToRgba
    - YUV420ToRGB_SSE2
    - _mm_set1_epi16
    - PackAndStore4_SSE2
    linkageType: ''
    returnType: void
    signature: "void YuvToRgbaRow_SSE2(const uint8_t* WEBP_RESTRICT y,\n                              const
      uint8_t* WEBP_RESTRICT u,\n                              const uint8_t* WEBP_RESTRICT
      v,\n                              uint8_t* WEBP_RESTRICT dst, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:337,1
    - Dst: YUV420ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:341,1
    - Dst: PackAndStore4_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:342,1
    - Dst: VP8YuvToBgra
      Src: /src/libwebp/src/dsp/yuv_sse2.c:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 333
    functionDepth: 4
    functionLinenumber: 333
    functionLinenumberEnd: 354
    functionName: YuvToBgraRow_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - VP8YuvToBgra
    - YUV420ToRGB_SSE2
    - _mm_set1_epi16
    - PackAndStore4_SSE2
    linkageType: ''
    returnType: void
    signature: "void YuvToBgraRow_SSE2(const uint8_t* WEBP_RESTRICT y,\n                              const
      uint8_t* WEBP_RESTRICT u,\n                              const uint8_t* WEBP_RESTRICT
      v,\n                              uint8_t* WEBP_RESTRICT dst, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:360,1
    - Dst: YUV420ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:364,1
    - Dst: PackAndStore4_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:365,1
    - Dst: VP8YuvToArgb
      Src: /src/libwebp/src/dsp/yuv_sse2.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 356
    functionDepth: 4
    functionLinenumber: 356
    functionLinenumberEnd: 377
    functionName: YuvToArgbRow_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - YUV420ToRGB_SSE2
    - _mm_set1_epi16
    - PackAndStore4_SSE2
    - VP8YuvToArgb
    linkageType: ''
    returnType: void
    signature: "void YuvToArgbRow_SSE2(const uint8_t* WEBP_RESTRICT y,\n                              const
      uint8_t* WEBP_RESTRICT u,\n                              const uint8_t* WEBP_RESTRICT
      v,\n                              uint8_t* WEBP_RESTRICT dst, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YUV420ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:388,1
    - Dst: YUV420ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:389,1
    - Dst: YUV420ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:390,1
    - Dst: YUV420ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:391,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:394,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:395,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:396,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:397,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:398,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:399,1
    - Dst: PlanarTo24b_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:402,1
    - Dst: VP8YuvToRgb
      Src: /src/libwebp/src/dsp/yuv_sse2.c:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 415
    functionName: YuvToRgbRow_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - PlanarTo24b_SSE2
    - YUV420ToRGB_SSE2
    - VP8YuvToRgb
    - _mm_packus_epi16
    linkageType: ''
    returnType: void
    signature: "void YuvToRgbRow_SSE2(const uint8_t* WEBP_RESTRICT y,\n                             const
      uint8_t* WEBP_RESTRICT u,\n                             const uint8_t* WEBP_RESTRICT
      v,\n                             uint8_t* WEBP_RESTRICT dst, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YUV420ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:426,1
    - Dst: YUV420ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:427,1
    - Dst: YUV420ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:428,1
    - Dst: YUV420ToRGB_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:429,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:432,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:433,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:434,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:435,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:436,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:437,1
    - Dst: PlanarTo24b_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:440,1
    - Dst: VP8YuvToBgr
      Src: /src/libwebp/src/dsp/yuv_sse2.c:447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 453
    functionName: YuvToBgrRow_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - PlanarTo24b_SSE2
    - VP8YuvToBgr
    - YUV420ToRGB_SSE2
    - _mm_packus_epi16
    linkageType: ''
    returnType: void
    signature: "void YuvToBgrRow_SSE2(const uint8_t* WEBP_RESTRICT y,\n                             const
      uint8_t* WEBP_RESTRICT u,\n                             const uint8_t* WEBP_RESTRICT
      v,\n                             uint8_t* WEBP_RESTRICT dst, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 466
    functionName: WebPInitSamplersSSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPInitSamplersSSE2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 473
    functionName: LOAD_16
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_16(src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - V
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 475
    functionName: STORE_16
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_16(V, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:480,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:481,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:482,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:483,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:484,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 486
    functionName: RGB24PackedToPlanarHelper_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - _mm_unpackhi_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE RGB24PackedToPlanarHelper_SSE2(\n    const __m128i* const
      in /*in[6]*/, __m128i* const out /*out[6]*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:494,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:495,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:496,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:497,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:498,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:499,1
    - Dst: RGB24PackedToPlanarHelper_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:501,1
    - Dst: RGB24PackedToPlanarHelper_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:502,1
    - Dst: RGB24PackedToPlanarHelper_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:503,1
    - Dst: RGB24PackedToPlanarHelper_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:504,1
    - Dst: RGB24PackedToPlanarHelper_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - rgb
    - out
    argTypes:
    - uint8_t*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 506
    functionName: RGBPackedToPlanar_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_loadu_si128
    - RGB24PackedToPlanarHelper_SSE2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE RGBPackedToPlanar_SSE2(\n    const uint8_t* WEBP_RESTRICT
      const rgb, __m128i* const out /*out[6]*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:512,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:513,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:514,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:515,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:516,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:517,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:518,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:519,1
    - Dst: VP8L32bToPlanar_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:520,1
    - Dst: VP8L32bToPlanar_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - rgba
    - rgb
    argTypes:
    - uint8_t*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 528
    functionName: RGBAPackedToRGBPlanar_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - VP8L32bToPlanar_SSE2
    - _mm_loadu_si128
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE RGBAPackedToRGBPlanar_SSE2(\n    const uint8_t* WEBP_RESTRICT
      const rgba, __m128i* const rgb /*in[6]*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:534,1
    - Dst: LOAD_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:535,1
    - Dst: LOAD_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:536,1
    - Dst: LOAD_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:537,1
    - Dst: LOAD_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:538,1
    - Dst: VP8L32bToPlanar_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:539,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:540,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:541,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:542,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:543,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:544,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argb
    - rgb
    argTypes:
    - uint32_t*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 546
    functionName: RGB32PackedToPlanar16_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - VP8L32bToPlanar_SSE2
    - _mm_unpacklo_epi8
    - _mm_setzero_si128
    - LOAD_16
    - _mm_unpackhi_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE RGB32PackedToPlanar16_SSE2(\n    const uint32_t* WEBP_RESTRICT
      const argb, __m128i* const rgb /*in[6]*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - RG_LO
    - ','
    - RG_HI
    - ','
    - GB_LO
    - ','
    - GB_HI
    - ','
    - MULT_RG
    - ','
    - MULT_GB
    - ','
    - ROUNDER
    - ','
    - DESCALE_FIX
    - ','
    - OUT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 566
    functionName: TRANSFORM
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TRANSFORM(RG_LO, RG_HI, GB_LO, GB_HI, MULT_RG, MULT_GB, ROUNDER, \\\n
      \                 DESCALE_FIX, OUT)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 568
    functionName: MK_CST_16
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MK_CST_16(A, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:572,1
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:573,1
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/yuv_sse2.c:574,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:576,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:577,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:578,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:579,1
    - Dst: TRANSFORM
      Src: /src/libwebp/src/dsp/yuv_sse2.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - R
    - G
    - B
    - Y
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 581
    functionName: ConvertRGBToYImpl_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_unpacklo_epi16
    - _mm_unpackhi_epi16
    - TRANSFORM
    - MK_CST_16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ConvertRGBToYImpl_SSE2(const __m128i* const R,\n                                               const
      __m128i* const G,\n                                               const __m128i*
      const B,\n                                               __m128i* const Y)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:588,1
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:589,1
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:590,1
    - Dst: MK_CST_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:591,1
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/src/dsp/yuv_sse2.c:592,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:594,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:595,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:596,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:597,1
    - Dst: TRANSFORM
      Src: /src/libwebp/src/dsp/yuv_sse2.c:598,1
    - Dst: TRANSFORM
      Src: /src/libwebp/src/dsp/yuv_sse2.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - R
    - G
    - B
    - U
    - V
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 602
    functionName: ConvertRGBToUV_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_unpacklo_epi16
    - _mm_unpackhi_epi16
    - TRANSFORM
    - MK_CST_16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ConvertRGBToUV_SSE2(const __m128i* const R,\n                                            const
      __m128i* const G,\n                                            const __m128i*
      const B,\n                                            __m128i* const U,\n                                            __m128i*
      const V)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/src/dsp/yuv_sse2.c:613,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:617,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:618,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:619,1
    - Dst: ConvertRGBToYImpl_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:620,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:623,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:624,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:625,1
    - Dst: ConvertRGBToYImpl_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:626,1
    - Dst: STORE_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:629,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - rgb_plane
    - swap_rb
    - i
    - WEBP_RESTRICT
    argTypes:
    - __m128i*
    - int
    - int*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 631
    functionName: ConvertRGBToYHelper_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpacklo_epi8
    - ConvertRGBToYImpl_SSE2
    - _mm_setzero_si128
    - STORE_16
    - _mm_packus_epi16
    - _mm_unpackhi_epi8
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE ConvertRGBToYHelper_SSE2(\n    const __m128i* const rgb_plane
      /*in[6]*/, int swap_rb, int* i,\n    uint8_t* WEBP_RESTRICT y)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RGBPackedToPlanar_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:640,1
    - Dst: ConvertRGBToYHelper_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:641,1
    - Dst: RGBAPackedToRGBPlanar_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:645,1
    - Dst: ConvertRGBToYHelper_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:646,1
    - Dst: VP8RGBToY
      Src: /src/libwebp/src/dsp/yuv_sse2.c:650,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - width
    - step
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 652
    functionName: ConvertRGBToY_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - RGBAPackedToRGBPlanar_SSE2
    - VP8RGBToY
    - RGBPackedToPlanar_SSE2
    - ConvertRGBToYHelper_SSE2
    linkageType: ''
    returnType: void
    signature: "void ConvertRGBToY_SSE2(const uint8_t* WEBP_RESTRICT rgb,\n                               uint8_t*
      WEBP_RESTRICT y, int width, int step)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RGBPackedToPlanar_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:661,1
    - Dst: ConvertRGBToYHelper_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:662,1
    - Dst: RGBAPackedToRGBPlanar_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:666,1
    - Dst: ConvertRGBToYHelper_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:667,1
    - Dst: VP8RGBToY
      Src: /src/libwebp/src/dsp/yuv_sse2.c:671,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - width
    - step
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 673
    functionName: ConvertBGRToY_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - RGBAPackedToRGBPlanar_SSE2
    - VP8RGBToY
    - RGBPackedToPlanar_SSE2
    - ConvertRGBToYHelper_SSE2
    linkageType: ''
    returnType: void
    signature: "void ConvertBGRToY_SSE2(const uint8_t* WEBP_RESTRICT bgr,\n                               uint8_t*
      WEBP_RESTRICT y, int width, int step)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RGB32PackedToPlanar16_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:681,1
    - Dst: ConvertRGBToYImpl_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:682,1
    - Dst: ConvertRGBToYImpl_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:683,1
    - Dst: STORE_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:684,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:684,1
    - Dst: VP8RGBToY
      Src: /src/libwebp/src/dsp/yuv_sse2.c:689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - width
    argTypes:
    - uint32_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 691
    functionName: ConvertARGBToY_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - ConvertRGBToYImpl_SSE2
    - STORE_16
    - RGB32PackedToPlanar16_SSE2
    - _mm_packus_epi16
    - VP8RGBToY
    linkageType: ''
    returnType: void
    signature: "void ConvertARGBToY_SSE2(const uint32_t* WEBP_RESTRICT argb,\n                                uint8_t*
      WEBP_RESTRICT y, int width)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:697,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:698,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:699,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/src/dsp/yuv_sse2.c:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - A
    - B
    - out
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 701
    functionName: HorizontalAddPack_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_madd_epi16
    - _mm_packs_epi32
    - _mm_set1_epi16
    linkageType: ''
    returnType: void
    signature: "void HorizontalAddPack_SSE2(const __m128i* const A,\n                                   const
      __m128i* const B, __m128i* const out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RGB32PackedToPlanar16_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:711,1
    - Dst: HorizontalAddPack_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:712,1
    - Dst: HorizontalAddPack_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:713,1
    - Dst: HorizontalAddPack_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:714,1
    - Dst: ConvertRGBToUV_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:715,1
    - Dst: RGB32PackedToPlanar16_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:717,1
    - Dst: HorizontalAddPack_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:718,1
    - Dst: HorizontalAddPack_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:719,1
    - Dst: HorizontalAddPack_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:720,1
    - Dst: ConvertRGBToUV_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:721,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:723,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:724,1
    - Dst: LOAD_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:726,1
    - Dst: LOAD_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:727,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:728,1
    - Dst: _mm_avg_epu8
      Src: /src/libwebp/src/dsp/yuv_sse2.c:729,1
    - Dst: STORE_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:731,1
    - Dst: STORE_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:732,1
    - Dst: WebPConvertARGBToUV_C
      Src: /src/libwebp/src/dsp/yuv_sse2.c:735,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 5
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - src_width
    - do_store
    argTypes:
    - uint32_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 703
    functionDepth: 3
    functionLinenumber: 703
    functionLinenumberEnd: 737
    functionName: ConvertARGBToUV_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_avg_epu8
    - STORE_16
    - LOAD_16
    - RGB32PackedToPlanar16_SSE2
    - WebPConvertARGBToUV_C
    - HorizontalAddPack_SSE2
    - _mm_packus_epi16
    - ConvertRGBToUV_SSE2
    linkageType: ''
    returnType: void
    signature: "void ConvertARGBToUV_SSE2(const uint32_t* WEBP_RESTRICT argb,\n                                 uint8_t*
      WEBP_RESTRICT u,\n                                 uint8_t* WEBP_RESTRICT v,
      int src_width,\n                                 int do_store)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:743,1
    - Dst: LOAD_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:744,1
    - Dst: LOAD_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:745,1
    - Dst: LOAD_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:746,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:748,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:749,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:750,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:751,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:752,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:753,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:754,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:755,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/yuv_sse2.c:756,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/libwebp/src/dsp/yuv_sse2.c:757,1
    - Dst: _mm_unpacklo_epi64
      Src: /src/libwebp/src/dsp/yuv_sse2.c:758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - rgbx
    - r
    - g
    - b
    argTypes:
    - uint16_t*
    - __m128i*
    - __m128i*
    - __m128i*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 759
    functionName: RGBA32PackedToPlanar_16b_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_unpackhi_epi64
    - LOAD_16
    - _mm_unpackhi_epi16
    - _mm_unpacklo_epi16
    - _mm_unpacklo_epi64
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE RGBA32PackedToPlanar_16b_SSE2(\n    const uint16_t* WEBP_RESTRICT
      const rgbx, __m128i* const r,\n    __m128i* const g, __m128i* const b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RGBA32PackedToPlanar_16b_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:768,1
    - Dst: ConvertRGBToUV_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:769,1
    - Dst: RGBA32PackedToPlanar_16b_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:770,1
    - Dst: ConvertRGBToUV_SSE2
      Src: /src/libwebp/src/dsp/yuv_sse2.c:771,1
    - Dst: STORE_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:772,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:772,1
    - Dst: STORE_16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:773,1
    - Dst: _mm_packus_epi16
      Src: /src/libwebp/src/dsp/yuv_sse2.c:773,1
    - Dst: WebPConvertRGBA32ToUV_C
      Src: /src/libwebp/src/dsp/yuv_sse2.c:779,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - WEBP_RESTRICT
    - width
    argTypes:
    - uint16_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 761
    functionDepth: 3
    functionLinenumber: 761
    functionLinenumberEnd: 781
    functionName: ConvertRGBA32ToUV_SSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 0
    functionsReached:
    - ConvertRGBToUV_SSE2
    - STORE_16
    - WebPConvertRGBA32ToUV_C
    - _mm_packus_epi16
    - RGBA32PackedToPlanar_16b_SSE2
    linkageType: ''
    returnType: void
    signature: "void ConvertRGBA32ToUV_SSE2(const uint16_t* WEBP_RESTRICT rgb,\n                                   uint8_t*
      WEBP_RESTRICT u,\n                                   uint8_t* WEBP_RESTRICT
      v, int width)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 795
    functionName: WebPInitConvertARGBToYUVSSE2
    functionSourceFile: /src/libwebp/src/dsp/yuv_sse2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION WebPInitConvertARGBToYUVSSE2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - WEBP_CSP_MODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: WebPIsPremultipliedMode
    functionSourceFile: /src/libwebp/src/webp/decode.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE WebPIsPremultipliedMode(WEBP_CSP_MODE mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPIsPremultipliedMode
      Src: /src/libwebp/src/webp/decode.h:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - WEBP_CSP_MODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: WebPIsAlphaMode
    functionSourceFile: /src/libwebp/src/webp/decode.h
    functionUses: 5
    functionsReached:
    - WebPIsPremultipliedMode
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE WebPIsAlphaMode(WEBP_CSP_MODE mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - WEBP_CSP_MODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: WebPIsRGBMode
    functionSourceFile: /src/libwebp/src/webp/decode.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE WebPIsRGBMode(WEBP_CSP_MODE mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPInitDecBufferInternal
      Src: /src/libwebp/src/webp/decode.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: WebPInitDecBuffer
    functionSourceFile: /src/libwebp/src/webp/decode.h
    functionUses: 6
    functionsReached:
    - WebPInitDecBufferInternal
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: WEBP_NODISCARD WebPInitDecBuffer(WebPDecBuffer* buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPIDecGetYUVA
      Src: /src/libwebp/src/webp/decode.h:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - idec
    - last_y
    - u
    - v
    - width
    - height
    - stride
    - uv_stride
    argTypes:
    - WebPIDecoder*
    - int*
    - uint8_t**
    - uint8_t**
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 403
    functionName: WebPIDecGetYUV
    functionSourceFile: /src/libwebp/src/webp/decode.h
    functionUses: 0
    functionsReached:
    - WebPIDecGetYUVA
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD * WebPIDecGetYUV(\n    const WebPIDecoder* idec, int*
      last_y, uint8_t** u, uint8_t** v, int* width,\n    int* height, int* stride,
      int* uv_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPGetFeaturesInternal
      Src: /src/libwebp/src/webp/decode.h:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - WEBP_COUNTED_BY(data_size)
    - data_size
    - features
    argTypes:
    - uint8_t*
    - size_t
    - WebPBitstreamFeatures*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 474
    functionDepth: 5
    functionLinenumber: 474
    functionLinenumberEnd: 479
    functionName: VP8StatusCode::WebPGetFeatures
    functionSourceFile: /src/libwebp/src/webp/decode.h
    functionUses: 0
    functionsReached:
    - WebPGetFeaturesInternal
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8StatusCode\nWebPGetFeatures(const uint8_t* WEBP_COUNTED_BY(data_size)
      data,\n                size_t data_size, WebPBitstreamFeatures* features)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPInitDecoderConfigInternal
      Src: /src/libwebp/src/webp/decode.h:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - WebPDecoderConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 3
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: WebPInitDecoderConfig
    functionSourceFile: /src/libwebp/src/webp/decode.h
    functionUses: 12
    functionsReached:
    - WebPInitDecoderConfigInternal
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD WebPInitDecoderConfig(\n    WebPDecoderConfig* config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPConfigInitInternal
      Src: /src/libwebp/src/webp/encode.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - WebPConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: WebPConfigInit
    functionSourceFile: /src/libwebp/src/webp/encode.h
    functionUses: 4
    functionsReached:
    - WebPConfigInitInternal
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: WEBP_NODISCARD WebPConfigInit(WebPConfig* config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPConfigInitInternal
      Src: /src/libwebp/src/webp/encode.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - config
    - preset
    - quality
    argTypes:
    - WebPConfig*
    - WebPPreset
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: WebPConfigPreset
    functionSourceFile: /src/libwebp/src/webp/encode.h
    functionUses: 1
    functionsReached:
    - WebPConfigInitInternal
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD WebPConfigPreset(WebPConfig* config,\n                                                       WebPPreset
      preset,\n                                                       float quality)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureInitInternal
      Src: /src/libwebp/src/webp/encode.h:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - picture
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: WebPPictureInit
    functionSourceFile: /src/libwebp/src/webp/encode.h
    functionUses: 16
    functionsReached:
    - WebPPictureInitInternal
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: WEBP_NODISCARD WebPPictureInit(WebPPicture* picture)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: MKFOURCC
    functionSourceFile: /src/libwebp/src/webp/format_constants.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MKFOURCC(a, b, c, d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/webp/mux_types.h:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - webp_data
    argTypes:
    - WebPData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: WebPDataInit
    functionSourceFile: /src/libwebp/src/webp/mux_types.h
    functionUses: 9
    functionsReached:
    - WEBP_UNSAFE_MEMSET
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE WebPDataInit(WebPData* webp_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPFree
      Src: /src/libwebp/src/webp/mux_types.h:76,1
    - Dst: WebPDataInit
      Src: /src/libwebp/src/webp/mux_types.h:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - webp_data
    argTypes:
    - WebPData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: WebPDataClear
    functionSourceFile: /src/libwebp/src/webp/mux_types.h
    functionUses: 8
    functionsReached:
    - WebPDataInit
    - WebPFree
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE WebPDataClear(WebPData* webp_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WebPDataInit
      Src: /src/libwebp/src/webp/mux_types.h:86,1
    - Dst: WebPMalloc
      Src: /src/libwebp/src/webp/mux_types.h:88,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/webp/mux_types.h:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - WebPData*
    - WebPData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: WebPDataCopy
    functionSourceFile: /src/libwebp/src/webp/mux_types.h
    functionUses: 2
    functionsReached:
    - WEBP_UNSAFE_MEMCPY
    - WebPMalloc
    - WebPDataInit
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD WebPDataCopy(const WebPData* src,\n                                                   WebPData*
      dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPDemuxInternal
      Src: /src/libwebp/src/webp/demux.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - WebPData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: WebPDemux
    functionSourceFile: /src/libwebp/src/webp/demux.h
    functionUses: 5
    functionsReached:
    - WebPDemuxInternal
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: WEBP_NODISCARD * WebPDemux(const WebPData* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPDemuxInternal
      Src: /src/libwebp/src/webp/demux.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - state
    argTypes:
    - WebPData*
    - WebPDemuxState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: WebPDemuxPartial
    functionSourceFile: /src/libwebp/src/webp/demux.h
    functionUses: 2
    functionsReached:
    - WebPDemuxInternal
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD * WebPDemuxPartial(\n    const WebPData* data, WebPDemuxState*
      state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPAnimDecoderOptionsInitInternal
      Src: /src/libwebp/src/webp/demux.h:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec_options
    argTypes:
    - WebPAnimDecoderOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: WebPAnimDecoderOptionsInit
    functionSourceFile: /src/libwebp/src/webp/demux.h
    functionUses: 2
    functionsReached:
    - WebPAnimDecoderOptionsInitInternal
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD WebPAnimDecoderOptionsInit(\n    WebPAnimDecoderOptions*
      dec_options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPAnimDecoderNewInternal
      Src: /src/libwebp/src/webp/demux.h:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - webp_data
    - dec_options
    argTypes:
    - WebPData*
    - WebPAnimDecoderOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 296
    functionName: WebPAnimDecoderNew
    functionSourceFile: /src/libwebp/src/webp/demux.h
    functionUses: 4
    functionsReached:
    - WebPAnimDecoderNewInternal
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD * WebPAnimDecoderNew(\n    const WebPData* webp_data,
      const WebPAnimDecoderOptions* dec_options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: WEBP_ABI_IS_INCOMPATIBLE
    functionSourceFile: /src/libwebp/src/webp/types.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_ABI_IS_INCOMPATIBLE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: WEBP_COUNTED_BY
    functionSourceFile: /src/libwebp/src/webp/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_COUNTED_BY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: WEBP_COUNTED_BY_OR_NULL
    functionSourceFile: /src/libwebp/src/webp/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_COUNTED_BY_OR_NULL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: WEBP_SIZED_BY
    functionSourceFile: /src/libwebp/src/webp/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_SIZED_BY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: WEBP_SIZED_BY_OR_NULL
    functionSourceFile: /src/libwebp/src/webp/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_SIZED_BY_OR_NULL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: WEBP_ENDED_BY
    functionSourceFile: /src/libwebp/src/webp/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_ENDED_BY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - typ
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: WEBP_UNSAFE_FORGE_SINGLE
    functionSourceFile: /src/libwebp/src/webp/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_UNSAFE_FORGE_SINGLE(typ, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - typ
    - ','
    - ptr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    functionSourceFile: /src/libwebp/src/webp/types.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE(typ, ptr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: WEBP_UNSAFE_MEMCPY
    functionSourceFile: /src/libwebp/src/webp/types.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_UNSAFE_MEMCPY(dst, src, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - c
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: WEBP_UNSAFE_MEMSET
    functionSourceFile: /src/libwebp/src/webp/types.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_UNSAFE_MEMSET(dst, c, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: WEBP_UNSAFE_MEMMOVE
    functionSourceFile: /src/libwebp/src/webp/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_UNSAFE_MEMMOVE(dst, src, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s1
    - ','
    - s2
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: WEBP_UNSAFE_MEMCMP
    functionSourceFile: /src/libwebp/src/webp/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_UNSAFE_MEMCMP(s1, s2, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: WEBP_UNSAFE_MEMCPY
    functionSourceFile: /src/libwebp/src/webp/types.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_UNSAFE_MEMCPY(dst, src, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - c
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: WEBP_UNSAFE_MEMSET
    functionSourceFile: /src/libwebp/src/webp/types.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_UNSAFE_MEMSET(dst, c, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: WEBP_UNSAFE_MEMMOVE
    functionSourceFile: /src/libwebp/src/webp/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_UNSAFE_MEMMOVE(dst, src, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s1
    - ','
    - s2
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 178
    functionName: WEBP_UNSAFE_MEMCMP
    functionSourceFile: /src/libwebp/src/webp/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_UNSAFE_MEMCMP(s1, s2, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - typ
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: WEBP_UNSAFE_FORGE_SINGLE
    functionSourceFile: /src/libwebp/src/webp/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_UNSAFE_FORGE_SINGLE(typ, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - typ
    - ','
    - ptr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    functionSourceFile: /src/libwebp/src/webp/types.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE(typ, ptr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: WEBP_SELF_ASSIGN
    functionSourceFile: /src/libwebp/src/webp/types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_SELF_ASSIGN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPNewInternal
      Src: /src/libwebp/src/webp/mux.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: WebPMuxNew
    functionSourceFile: /src/libwebp/src/webp/mux.h
    functionUses: 2
    functionsReached:
    - WebPNewInternal
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: WEBP_NODISCARD * WebPMuxNew(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPMuxCreateInternal
      Src: /src/libwebp/src/webp/mux.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitstream
    - copy_data
    argTypes:
    - WebPData*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: WebPMuxCreate
    functionSourceFile: /src/libwebp/src/webp/mux.h
    functionUses: 4
    functionsReached:
    - WebPMuxCreateInternal
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD * WebPMuxCreate(\n    const WebPData* bitstream, int
      copy_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPAnimEncoderOptionsInitInternal
      Src: /src/libwebp/src/webp/mux.h:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enc_options
    argTypes:
    - WebPAnimEncoderOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 3
    functionLinenumber: 469
    functionLinenumberEnd: 472
    functionName: WebPAnimEncoderOptionsInit
    functionSourceFile: /src/libwebp/src/webp/mux.h
    functionUses: 2
    functionsReached:
    - WebPAnimEncoderOptionsInitInternal
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD WebPAnimEncoderOptionsInit(\n    WebPAnimEncoderOptions*
      enc_options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPAnimEncoderNewInternal
      Src: /src/libwebp/src/webp/mux.h:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 486
    functionDepth: 3
    functionLinenumber: 486
    functionLinenumberEnd: 490
    functionName: "WebPAnimEncoder* WebPAnimEncoderNew(\n    int width, int height,
      const WebPAnimEncoderOptions* enc_options)"
    functionSourceFile: /src/libwebp/src/webp/mux.h
    functionUses: 0
    functionsReached:
    - WebPAnimEncoderNewInternal
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE WebPAnimEncoder* WebPAnimEncoderNew(\n    int width, int
      height, const WebPAnimEncoderOptions* enc_options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_reader_utils.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - br
    - WEBP_COUNTED_BY(size)
    - size
    argTypes:
    - VP8BitReader*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (start != NULL)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/libwebp/src/utils/bit_reader_utils.c
    constantsTouched: []
    func_position:
      end: 42
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 42
    functionName: VP8BitReaderSetBuffer
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI
    signature: "WEBP_ASSUME_UNSAFE_INDEXABLE_ABI VP8BitReaderSetBuffer(VP8BitReader*
      const br,\n                           const uint8_t* const WEBP_COUNTED_BY(size)
      start,\n                           size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_reader_utils.c:47,1
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_reader_utils.c:48,1
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_reader_utils.c:49,1
    - Dst: VP8BitReaderSetBuffer
      Src: /src/libwebp/src/utils/bit_reader_utils.c:54,1
    - Dst: VP8LoadNewBytes
      Src: /src/libwebp/src/utils/bit_reader_utils.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - br
    - WEBP_COUNTED_BY(size)
    - size
    argTypes:
    - VP8BitReader*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (br != NULL)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/libwebp/src/utils/bit_reader_utils.c
    - condition: (size < (1u << 31))
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/libwebp/src/utils/bit_reader_utils.c
    - condition: (start != NULL)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/libwebp/src/utils/bit_reader_utils.c
    constantsTouched: []
    func_position:
      end: 56
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 56
    functionName: VP8InitBitReader
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.c
    functionUses: 2
    functionsReached:
    - assert
    - VP8BitReaderSetBuffer
    - VP8LoadNewBytes
    linkageType: ''
    returnType: void
    signature: "void VP8InitBitReader(VP8BitReader* const br,\n                      const
      uint8_t* const WEBP_COUNTED_BY(size) start,\n                      size_t size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - br
    - offset
    argTypes:
    - VP8BitReader*
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: VP8RemapBitReader
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VP8RemapBitReader(VP8BitReader* const br, ptrdiff_t offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_reader_utils.c:87,1
    - Dst: WEBP_SELF_ASSIGN
      Src: /src/libwebp/src/utils/bit_reader_utils.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - br
    argTypes:
    - VP8BitReader*
    assertStmts:
    - condition: (br != NULL && br->buf != NULL)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/libwebp/src/utils/bit_reader_utils.c
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: VP8LoadFinalBytes
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.c
    functionUses: 0
    functionsReached:
    - assert
    - WEBP_SELF_ASSIGN
    linkageType: ''
    returnType: void
    signature: void VP8LoadFinalBytes(VP8BitReader* const br)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8GetBit
      Src: /src/libwebp/src/utils/bit_reader_utils.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - br
    - bits
    - label
    argTypes:
    - VP8BitReader*
    - int
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: VP8GetValue
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.c
    functionUses: 5
    functionsReached:
    - VP8GetBit
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t VP8GetValue(VP8BitReader* const br, int bits, const char label[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8GetValue
      Src: /src/libwebp/src/utils/bit_reader_utils.c:115,1
    - Dst: VP8Get
      Src: /src/libwebp/src/utils/bit_reader_utils.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - br
    - bits
    - label
    argTypes:
    - VP8BitReader*
    - int
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: VP8GetSignedValue
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.c
    functionUses: 3
    functionsReached:
    - VP8Get
    - VP8GetValue
    linkageType: ''
    returnType: int32_t
    signature: "int32_t VP8GetSignedValue(VP8BitReader* const br, int bits,\n                          const
      char label[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_reader_utils.c:141,1
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_reader_utils.c:142,1
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_reader_utils.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - br
    - WEBP_COUNTED_BY(length)
    - length
    argTypes:
    - VP8LBitReader*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (br != NULL)
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/libwebp/src/utils/bit_reader_utils.c
    - condition: (start != NULL)
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/libwebp/src/utils/bit_reader_utils.c
    - condition: (length < 0xfffffff8u)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/libwebp/src/utils/bit_reader_utils.c
    constantsTouched: []
    func_position:
      end: 158
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 158
    functionName: VP8LInitBitReader
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.c
    functionUses: 5
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void VP8LInitBitReader(VP8LBitReader* const br,\n                       const
      uint8_t* const WEBP_COUNTED_BY(length) start,\n                       size_t
      length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_reader_utils.c:163,1
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_reader_utils.c:164,1
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_reader_utils.c:165,1
    - Dst: VP8LIsEndOfStream
      Src: /src/libwebp/src/utils/bit_reader_utils.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - br
    - WEBP_COUNTED_BY(len)
    - len
    argTypes:
    - VP8LBitReader*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (br != NULL)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/libwebp/src/utils/bit_reader_utils.c
    - condition: (len < 0xfffffff8u)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/libwebp/src/utils/bit_reader_utils.c
    - condition: (buf != NULL)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/libwebp/src/utils/bit_reader_utils.c
    constantsTouched: []
    func_position:
      end: 170
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 170
    functionName: VP8LBitReaderSetBuffer
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.c
    functionUses: 1
    functionsReached:
    - assert
    - VP8LIsEndOfStream
    linkageType: ''
    returnType: void
    signature: "void VP8LBitReaderSetBuffer(VP8LBitReader* const br,\n                            const
      uint8_t* const WEBP_COUNTED_BY(len) buf,\n                            size_t
      len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - br
    argTypes:
    - VP8LBitReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: VP8LSetEndOfStream
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VP8LSetEndOfStream(VP8LBitReader* const br)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LIsEndOfStream
      Src: /src/libwebp/src/utils/bit_reader_utils.c:185,1
    - Dst: VP8LSetEndOfStream
      Src: /src/libwebp/src/utils/bit_reader_utils.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - br
    argTypes:
    - VP8LBitReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 188
    functionName: ShiftBytes
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.c
    functionUses: 0
    functionsReached:
    - VP8LSetEndOfStream
    - VP8LIsEndOfStream
    linkageType: ''
    returnType: void
    signature: void ShiftBytes(VP8LBitReader* const br)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_reader_utils.c:191,1
    - Dst: HToLE32
      Src: /src/libwebp/src/utils/bit_reader_utils.c:196,1
    - Dst: WebPMemToUint32
      Src: /src/libwebp/src/utils/bit_reader_utils.c:196,1
    - Dst: ShiftBytes
      Src: /src/libwebp/src/utils/bit_reader_utils.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - br
    argTypes:
    - VP8LBitReader*
    assertStmts:
    - condition: (br->bit_pos >= VP8L_WBITS)
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/libwebp/src/utils/bit_reader_utils.c
    constantsTouched: []
    func_position:
      end: 203
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 203
    functionName: VP8LDoFillBitWindow
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPMemToUint32
    - HToLE32
    - ShiftBytes
    linkageType: ''
    returnType: void
    signature: void VP8LDoFillBitWindow(VP8LBitReader* const br)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_reader_utils.c:206,1
    - Dst: VP8LPrefetchBits
      Src: /src/libwebp/src/utils/bit_reader_utils.c:209,1
    - Dst: ShiftBytes
      Src: /src/libwebp/src/utils/bit_reader_utils.c:212,1
    - Dst: VP8LSetEndOfStream
      Src: /src/libwebp/src/utils/bit_reader_utils.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - br
    - n_bits
    argTypes:
    - VP8LBitReader*
    - int
    assertStmts:
    - condition: (n_bits >= 0)
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/libwebp/src/utils/bit_reader_utils.c
    constantsTouched: []
    func_position:
      end: 218
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 218
    functionName: VP8LReadBits
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.c
    functionUses: 9
    functionsReached:
    - assert
    - VP8LSetEndOfStream
    - ShiftBytes
    - VP8LPrefetchBits
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t VP8LReadBits(VP8LBitReader* const br, int n_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libwebp/src/utils/bit_reader_utils.c:252,1
    - Dst: strlen
      Src: /src/libwebp/src/utils/bit_reader_utils.c:254,1
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_reader_utils.c:256,1
    - Dst: printf
      Src: /src/libwebp/src/utils/bit_reader_utils.c:257,1
    - Dst: printf
      Src: /src/libwebp/src/utils/bit_reader_utils.c:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (skip > 0)
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/libwebp/src/utils/bit_reader_utils.c
    constantsTouched: []
    func_position:
      end: 263
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 263
    functionName: PrintBitTraces
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.c
    functionUses: 0
    functionsReached:
    - printf
    - assert
    - strlen
    linkageType: ''
    returnType: void
    signature: void PrintBitTraces(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/utils/bit_reader_utils.c:268,1
    - Dst: atexit
      Src: /src/libwebp/src/utils/bit_reader_utils.c:269,1
    - Dst: abs
      Src: /src/libwebp/src/utils/bit_reader_utils.c:275,1
    - Dst: strcmp
      Src: /src/libwebp/src/utils/bit_reader_utils.c:282,1
    - Dst: abort
      Src: /src/libwebp/src/utils/bit_reader_utils.c:284,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - br
    - label
    argTypes:
    - struct VP8BitReader*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 290
    functionName: BitTrace
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.c
    functionUses: 0
    functionsReached:
    - atexit
    - abort
    - WEBP_UNSAFE_MEMSET
    - strcmp
    - abs
    linkageType: ''
    returnType: void
    signature: void BitTrace(const struct VP8BitReader* const br, const char label[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/utils/huffman_utils.c:33,1
    - Dst: assert
      Src: /src/libwebp/src/utils/huffman_utils.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - num_htree_groups
    argTypes:
    - int
    assertStmts:
    - condition: (num_htree_groups <= MAX_HTREE_GROUPS)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/libwebp/src/utils/huffman_utils.c
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: VP8LHtreeGroupsNew
    functionSourceFile: /src/libwebp/src/utils/huffman_utils.c
    functionUses: 1
    functionsReached:
    - assert
    - WebPSafeMalloc
    linkageType: ''
    returnType: HTreeGroup
    signature: HTreeGroup * VP8LHtreeGroupsNew(int num_htree_groups)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/huffman_utils.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - htree_groups
    argTypes:
    - HTreeGroup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: VP8LHtreeGroupsFree
    functionSourceFile: /src/libwebp/src/utils/huffman_utils.c
    functionUses: 5
    functionsReached:
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void VP8LHtreeGroupsFree(HTreeGroup* const htree_groups)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - key
    - len
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: GetNextKey
    functionSourceFile: /src/libwebp/src/utils/huffman_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GetNextKey(uint32_t key, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - WEBP_COUNTED_BY(MAX_ALLOWED_CODE_LENGTH + 1)
    - len
    - root_bits
    argTypes:
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: NextTableBitSize
    functionSourceFile: /src/libwebp/src/utils/huffman_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE NextTableBitSize(\n    const int* const WEBP_COUNTED_BY(MAX_ALLOWED_CODE_LENGTH
      + 1) count,\n    int len, int root_bits)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/huffman_utils.c:103,1
    - Dst: assert
      Src: /src/libwebp/src/utils/huffman_utils.c:104,1
    - Dst: assert
      Src: /src/libwebp/src/utils/huffman_utils.c:105,1
    - Dst: assert
      Src: /src/libwebp/src/utils/huffman_utils.c:107,1
    - Dst: assert
      Src: /src/libwebp/src/utils/huffman_utils.c:136,1
    - Dst: ReplicateValue
      Src: /src/libwebp/src/utils/huffman_utils.c:156,1
    - Dst: ReplicateValue
      Src: /src/libwebp/src/utils/huffman_utils.c:184,1
    - Dst: GetNextKey
      Src: /src/libwebp/src/utils/huffman_utils.c:185,1
    - Dst: NextTableBitSize
      Src: /src/libwebp/src/utils/huffman_utils.c:202,1
    - Dst: ReplicateValue
      Src: /src/libwebp/src/utils/huffman_utils.c:214,1
    - Dst: GetNextKey
      Src: /src/libwebp/src/utils/huffman_utils.c:216,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 93
    argCount: 5
    argNames:
    - WEBP_BIDI_INDEXABLE
    - root_bits
    - code_lengths
    - code_lengths_size
    - sorted
    argTypes:
    - HuffmanCode*
    - int
    - int[]
    - int
    - uint16_t[]
    assertStmts:
    - condition: (code_lengths_size != 0)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/libwebp/src/utils/huffman_utils.c
    - condition: (root_bits > 0)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/libwebp/src/utils/huffman_utils.c
    - condition: (code_lengths != NULL)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/libwebp/src/utils/huffman_utils.c
    - condition: "((root_table != NULL && sorted != NULL) ||\n         (root_table
        == NULL && sorted == NULL))"
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libwebp/src/utils/huffman_utils.c
    - condition: (offset[symbol_code_length] < code_lengths_size)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/libwebp/src/utils/huffman_utils.c
    constantsTouched: []
    func_position:
      end: 227
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 227
    functionName: BuildHuffmanTable
    functionSourceFile: /src/libwebp/src/utils/huffman_utils.c
    functionUses: 2
    functionsReached:
    - assert
    - ReplicateValue
    - NextTableBitSize
    - GetNextKey
    linkageType: ''
    returnType: int
    signature: "int BuildHuffmanTable(HuffmanCode* const WEBP_BIDI_INDEXABLE root_table,\n
      \                            int root_bits, const int code_lengths[],\n                             int
      code_lengths_size,\n                             uint16_t WEBP_COUNTED_BY_OR_NULL(code_lengths_size)\n
      \                                sorted[])"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BuildHuffmanTable
      Src: /src/libwebp/src/utils/huffman_utils.c:240,1
    - Dst: assert
      Src: /src/libwebp/src/utils/huffman_utils.c:241,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/utils/huffman_utils.c:251,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/utils/huffman_utils.c:261,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/huffman_utils.c:263,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/utils/huffman_utils.c:285,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/huffman_utils.c:294,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/utils/huffman_utils.c:307,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/huffman_utils.c:326,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/huffman_utils.c:334,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/huffman_utils.c:335,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 4
    argNames:
    - root_table
    - root_bits
    - code_lengths
    - code_lengths_size
    argTypes:
    - HuffmanTables*
    - int
    - int[]
    - int
    assertStmts:
    - condition: (code_lengths_size <= MAX_CODE_LENGTHS_SIZE)
      pos:
        line_end: 240
        line_start: 240
        source_file: /src/libwebp/src/utils/huffman_utils.c
    constantsTouched: []
    func_position:
      end: 338
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 338
    functionName: VP8LBuildHuffmanTable
    functionSourceFile: /src/libwebp/src/utils/huffman_utils.c
    functionUses: 2
    functionsReached:
    - assert
    - WebPSafeMalloc
    - BuildHuffmanTable
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: "int VP8LBuildHuffmanTable(HuffmanTables* const root_table, int root_bits,\n
      \                         const int WEBP_COUNTED_BY(code_lengths_size)\n                              code_lengths[],\n
      \                         int code_lengths_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/utils/huffman_utils.c:285,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/huffman_utils.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 295
    functionName: BuildHuffmanTable
    functionSourceFile: /src/libwebp/src/utils/huffman_utils.c
    functionUses: 3
    functionsReached:
    - WebPSafeMalloc
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: "void BuildHuffmanTable(\n        WEBP_UNSAFE_FORGE_BIDI_INDEXABLE(\n
      \           HuffmanCode*, root_table->curr_segment->curr_table,\n            total_size
      * sizeof(*root_table->curr_segment->curr_table)),\n        root_bits, code_lengths,
      code_lengths_size, sorted)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/utils/huffman_utils.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - size
    - huffman_tables
    argTypes:
    - int
    - HuffmanTables*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 318
    functionName: VP8LHuffmanTablesAllocate
    functionSourceFile: /src/libwebp/src/utils/huffman_utils.c
    functionUses: 2
    functionsReached:
    - WebPSafeMalloc
    linkageType: ''
    returnType: int
    signature: int VP8LHuffmanTablesAllocate(int size, HuffmanTables* huffman_tables)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/huffman_utils.c:326,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/huffman_utils.c:334,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/huffman_utils.c:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - huffman_tables
    argTypes:
    - HuffmanTables*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 338
    functionName: VP8LHuffmanTablesDeallocate
    functionSourceFile: /src/libwebp/src/utils/huffman_utils.c
    functionUses: 6
    functionsReached:
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void VP8LHuffmanTablesDeallocate(HuffmanTables* const huffman_tables)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CheckSizeOverflow
      Src: /src/libwebp/src/utils/rescaler_utils.c:38,1
    - Dst: memset
      Src: /src/libwebp/src/utils/rescaler_utils.c:53,1
    - Dst: WEBP_RESCALER_FRAC
      Src: /src/libwebp/src/utils/rescaler_utils.c:59,1
    - Dst: WEBP_RESCALER_FRAC
      Src: /src/libwebp/src/utils/rescaler_utils.c:81,1
    - Dst: WEBP_RESCALER_FRAC
      Src: /src/libwebp/src/utils/rescaler_utils.c:83,1
    - Dst: WebPRescalerDspInit
      Src: /src/libwebp/src/utils/rescaler_utils.c:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 9
    argNames:
    - rescaler
    - src_width
    - src_height
    - dst
    - dst_width
    - dst_height
    - dst_stride
    - num_channels
    - "WEBP_COUNTED_BY(2ULL * dst_width *\n                                                       num_channels)"
    argTypes:
    - WebPRescaler*
    - int
    - int
    - uint8_t*
    - int
    - int
    - int
    - int
    - rescaler_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 89
    functionName: WebPRescalerInit
    functionSourceFile: /src/libwebp/src/utils/rescaler_utils.c
    functionUses: 4
    functionsReached:
    - WebPRescalerDspInit
    - memset
    - CheckSizeOverflow
    - WEBP_RESCALER_FRAC
    linkageType: ''
    returnType: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI
    signature: "WEBP_ASSUME_UNSAFE_INDEXABLE_ABI WebPRescalerInit(WebPRescaler* const
      rescaler, int src_width,\n                     int src_height, uint8_t* const
      dst, int dst_width,\n                     int dst_height, int dst_stride, int
      num_channels,\n                     rescaler_t* const WEBP_COUNTED_BY(2ULL *
      dst_width *\n                                                       num_channels)
      work)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/rescaler_utils.c:94,1
    - Dst: assert
      Src: /src/libwebp/src/utils/rescaler_utils.c:95,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 4
    argNames:
    - src_width
    - src_height
    - scaled_width
    - scaled_height
    argTypes:
    - int
    - int
    - int*
    - int*
    assertStmts:
    - condition: (scaled_width != NULL)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/libwebp/src/utils/rescaler_utils.c
    - condition: (scaled_height != NULL)
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/libwebp/src/utils/rescaler_utils.c
    constantsTouched: []
    func_position:
      end: 124
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 124
    functionName: WebPRescalerGetScaledDimensions
    functionSourceFile: /src/libwebp/src/utils/rescaler_utils.c
    functionUses: 8
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int WebPRescalerGetScaledDimensions(int src_width, int src_height,\n
      \                                   int* const scaled_width,\n                                    int*
      const scaled_height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rescaler
    - max_num_lines
    argTypes:
    - WebPRescaler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: WebPRescaleNeededLines
    functionSourceFile: /src/libwebp/src/utils/rescaler_utils.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int WebPRescaleNeededLines(const WebPRescaler* const rescaler,\n                           int
      max_num_lines)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPRescalerHasPendingOutput
      Src: /src/libwebp/src/utils/rescaler_utils.c:140,1
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/utils/rescaler_utils.c:144,1
    - Dst: WEBP_SELF_ASSIGN
      Src: /src/libwebp/src/utils/rescaler_utils.c:147,1
    - Dst: WEBP_SELF_ASSIGN
      Src: /src/libwebp/src/utils/rescaler_utils.c:148,1
    - Dst: WebPRescalerImportRow
      Src: /src/libwebp/src/utils/rescaler_utils.c:150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - rescaler
    - num_lines
    - src
    - src_stride
    argTypes:
    - WebPRescaler*
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 163
    functionName: WebPRescalerImport
    functionSourceFile: /src/libwebp/src/utils/rescaler_utils.c
    functionUses: 6
    functionsReached:
    - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    - WebPRescalerHasPendingOutput
    - WebPRescalerImportRow
    - WEBP_SELF_ASSIGN
    linkageType: ''
    returnType: int
    signature: "int WebPRescalerImport(WebPRescaler* const rescaler, int num_lines,\n
      \                      const uint8_t* src, int src_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPRescalerHasPendingOutput
      Src: /src/libwebp/src/utils/rescaler_utils.c:167,1
    - Dst: WebPRescalerExportRow
      Src: /src/libwebp/src/utils/rescaler_utils.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - rescaler
    argTypes:
    - WebPRescaler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 172
    functionName: WebPRescalerExport
    functionSourceFile: /src/libwebp/src/utils/rescaler_utils.c
    functionUses: 2
    functionsReached:
    - WebPRescalerHasPendingOutput
    - WebPRescalerExportRow
    linkageType: ''
    returnType: int
    signature: int WebPRescalerExport(WebPRescaler* const rescaler)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argb
    - shift
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: VP8LHashPix
    functionSourceFile: /src/libwebp/src/utils/color_cache_utils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_UBSAN_IGNORE_UNSIGNED_OVERFLOW
    signature: "WEBP_UBSAN_IGNORE_UNSIGNED_OVERFLOW VP8LHashPix(\n    uint32_t argb,
      int shift)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/color_cache_utils.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cc
    - key
    argTypes:
    - VP8LColorCache*
    - uint32_t
    assertStmts:
    - condition: ((key >> cc->hash_bits) == 0u)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/libwebp/src/utils/color_cache_utils.h
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: VP8LColorCacheLookup
    functionSourceFile: /src/libwebp/src/utils/color_cache_utils.h
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8LColorCacheLookup(const VP8LColorCache* const cc,\n
      \                                                uint32_t key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/color_cache_utils.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cc
    - key
    - argb
    argTypes:
    - VP8LColorCache*
    - uint32_t
    - uint32_t
    assertStmts:
    - condition: ((key >> cc->hash_bits) == 0u)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/libwebp/src/utils/color_cache_utils.h
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: VP8LColorCacheSet
    functionSourceFile: /src/libwebp/src/utils/color_cache_utils.h
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8LColorCacheSet(const VP8LColorCache* const cc,\n                                          uint32_t
      key, uint32_t argb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LHashPix
      Src: /src/libwebp/src/utils/color_cache_utils.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cc
    - argb
    argTypes:
    - VP8LColorCache*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: VP8LColorCacheInsert
    functionSourceFile: /src/libwebp/src/utils/color_cache_utils.h
    functionUses: 6
    functionsReached:
    - VP8LHashPix
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8LColorCacheInsert(const VP8LColorCache* const cc,\n
      \                                            uint32_t argb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LHashPix
      Src: /src/libwebp/src/utils/color_cache_utils.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cc
    - argb
    argTypes:
    - VP8LColorCache*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: VP8LColorCacheGetIndex
    functionSourceFile: /src/libwebp/src/utils/color_cache_utils.h
    functionUses: 1
    functionsReached:
    - VP8LHashPix
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8LColorCacheGetIndex(const VP8LColorCache* const cc,\n
      \                                             uint32_t argb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LHashPix
      Src: /src/libwebp/src/utils/color_cache_utils.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cc
    - argb
    argTypes:
    - VP8LColorCache*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: VP8LColorCacheContains
    functionSourceFile: /src/libwebp/src/utils/color_cache_utils.h
    functionUses: 3
    functionsReached:
    - VP8LHashPix
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8LColorCacheContains(const VP8LColorCache* const cc,\n
      \                                             uint32_t argb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: CheckSizeOverflow
    functionSourceFile: /src/libwebp/src/utils/utils.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE CheckSizeOverflow(uint64_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - PTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: WEBP_ALIGN
    functionSourceFile: /src/libwebp/src/utils/utils.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_ALIGN(PTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/utils/utils.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: WebPMemToUint32
    functionSourceFile: /src/libwebp/src/utils/utils.h
    functionUses: 1
    functionsReached:
    - WEBP_UNSAFE_MEMCPY
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE WebPMemToUint32(const uint8_t* const ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPMemToUint32
      Src: /src/libwebp/src/utils/utils.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: WebPMemToInt32
    functionSourceFile: /src/libwebp/src/utils/utils.h
    functionUses: 9
    functionsReached:
    - WebPMemToUint32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE WebPMemToInt32(const uint8_t* const ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/utils/utils.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - val
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: WebPUint32ToMem
    functionSourceFile: /src/libwebp/src/utils/utils.h
    functionUses: 5
    functionsReached:
    - WEBP_UNSAFE_MEMCPY
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE WebPUint32ToMem(uint8_t* const ptr, uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPUint32ToMem
      Src: /src/libwebp/src/utils/utils.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - val
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: WebPInt32ToMem
    functionSourceFile: /src/libwebp/src/utils/utils.h
    functionUses: 16
    functionsReached:
    - WebPUint32ToMem
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE WebPInt32ToMem(uint8_t* const ptr, int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - WEBP_COUNTED_BY(2)
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: GetLE16
    functionSourceFile: /src/libwebp/src/utils/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GetLE16(const uint8_t* const WEBP_COUNTED_BY(2) data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLE16
      Src: /src/libwebp/src/utils/utils.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - WEBP_COUNTED_BY(3)
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: GetLE24
    functionSourceFile: /src/libwebp/src/utils/utils.h
    functionUses: 6
    functionsReached:
    - GetLE16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GetLE24(const uint8_t* const WEBP_COUNTED_BY(3) data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLE16
      Src: /src/libwebp/src/utils/utils.h:108,1
    - Dst: GetLE16
      Src: /src/libwebp/src/utils/utils.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - WEBP_COUNTED_BY(4)
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: GetLE32
    functionSourceFile: /src/libwebp/src/utils/utils.h
    functionUses: 10
    functionsReached:
    - GetLE16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE GetLE32(const uint8_t* const WEBP_COUNTED_BY(4)\n                                        data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/utils.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - WEBP_COUNTED_BY(2)
    - val
    argTypes:
    - uint8_t*
    - int
    assertStmts:
    - condition: (val < (1 << 16))
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/libwebp/src/utils/utils.h
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: PutLE16
    functionSourceFile: /src/libwebp/src/utils/utils.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PutLE16(uint8_t* const WEBP_COUNTED_BY(2) data,\n                                int
      val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/utils.h:121,1
    - Dst: PutLE16
      Src: /src/libwebp/src/utils/utils.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - WEBP_COUNTED_BY(3)
    - val
    argTypes:
    - uint8_t*
    - int
    assertStmts:
    - condition: (val < (1 << 24))
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/libwebp/src/utils/utils.h
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: PutLE24
    functionSourceFile: /src/libwebp/src/utils/utils.h
    functionUses: 4
    functionsReached:
    - assert
    - PutLE16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PutLE24(uint8_t* const WEBP_COUNTED_BY(3) data,\n                                int
      val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PutLE16
      Src: /src/libwebp/src/utils/utils.h:128,1
    - Dst: PutLE16
      Src: /src/libwebp/src/utils/utils.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - WEBP_COUNTED_BY(4)
    - val
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: PutLE32
    functionSourceFile: /src/libwebp/src/utils/utils.h
    functionUses: 11
    functionsReached:
    - PutLE16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PutLE32(uint8_t* const WEBP_COUNTED_BY(4) data,\n                                uint32_t
      val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_clz
      Src: /src/libwebp/src/utils/utils.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: BitsLog2Floor
    functionSourceFile: /src/libwebp/src/utils/utils.h
    functionUses: 7
    functionsReached:
    - __builtin_clz
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE BitsLog2Floor(uint32_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_ctz
      Src: /src/libwebp/src/utils/utils.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: BitsCtz
    functionSourceFile: /src/libwebp/src/utils/utils.h
    functionUses: 2
    functionsReached:
    - __builtin_ctz
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE BitsCtz(uint32_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanReverse
      Src: /src/libwebp/src/utils/utils.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: BitsLog2Floor
    functionSourceFile: /src/libwebp/src/utils/utils.h
    functionUses: 7
    functionsReached:
    - _BitScanReverse
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE BitsLog2Floor(uint32_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanForward
      Src: /src/libwebp/src/utils/utils.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: BitsCtz
    functionSourceFile: /src/libwebp/src/utils/utils.h
    functionUses: 2
    functionsReached:
    - _BitScanForward
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE BitsCtz(uint32_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 170
    functionName: WebPLog2FloorC
    functionSourceFile: /src/libwebp/src/utils/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE WebPLog2FloorC(uint32_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPLog2FloorC
      Src: /src/libwebp/src/utils/utils.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: BitsLog2Floor
    functionSourceFile: /src/libwebp/src/utils/utils.h
    functionUses: 7
    functionsReached:
    - WebPLog2FloorC
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE BitsLog2Floor(uint32_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: BitsCtz
    functionSourceFile: /src/libwebp/src/utils/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE BitsCtz(uint32_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: HToLE32
    functionSourceFile: /src/libwebp/src/utils/endian_inl_utils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HToLE32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: HToLE16
    functionSourceFile: /src/libwebp/src/utils/endian_inl_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HToLE16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_bswap16
      Src: /src/libwebp/src/utils/endian_inl_utils.h:47,1
    - Dst: _byteswap_ushort
      Src: /src/libwebp/src/utils/endian_inl_utils.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: BSwap16
    functionSourceFile: /src/libwebp/src/utils/endian_inl_utils.h
    functionUses: 0
    functionsReached:
    - _byteswap_ushort
    - __builtin_bswap16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE BSwap16(uint16_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_bswap32
      Src: /src/libwebp/src/utils/endian_inl_utils.h:66,1
    - Dst: _byteswap_ulong
      Src: /src/libwebp/src/utils/endian_inl_utils.h:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 76
    functionName: BSwap32
    functionSourceFile: /src/libwebp/src/utils/endian_inl_utils.h
    functionUses: 1
    functionsReached:
    - _byteswap_ulong
    - __builtin_bswap32
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE BSwap32(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_bswap64
      Src: /src/libwebp/src/utils/endian_inl_utils.h:80,1
    - Dst: _byteswap_uint64
      Src: /src/libwebp/src/utils/endian_inl_utils.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: BSwap64
    functionSourceFile: /src/libwebp/src/utils/endian_inl_utils.h
    functionUses: 0
    functionsReached:
    - _byteswap_uint64
    - __builtin_bswap64
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE BSwap64(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPMemToUint32
      Src: /src/libwebp/src/utils/palette.c:35,1
    - Dst: WebPMemToUint32
      Src: /src/libwebp/src/utils/palette.c:36,1
    - Dst: assert
      Src: /src/libwebp/src/utils/palette.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts:
    - condition: (a != b)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/libwebp/src/utils/palette.c
    constantsTouched: []
    func_position:
      end: 39
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 39
    functionName: PaletteCompareColorsForQsort
    functionSourceFile: /src/libwebp/src/utils/palette.c
    functionUses: 0
    functionsReached:
    - WebPMemToUint32
    - assert
    linkageType: ''
    returnType: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI
    signature: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI PaletteCompareColorsForQsort(const
      void* p1, const void* p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: PaletteComponentDistance
    functionSourceFile: /src/libwebp/src/utils/palette.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE PaletteComponentDistance(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8LSubPixels
      Src: /src/libwebp/src/utils/palette.c:51,1
    - Dst: PaletteComponentDistance
      Src: /src/libwebp/src/utils/palette.c:54,1
    - Dst: PaletteComponentDistance
      Src: /src/libwebp/src/utils/palette.c:55,1
    - Dst: PaletteComponentDistance
      Src: /src/libwebp/src/utils/palette.c:56,1
    - Dst: PaletteComponentDistance
      Src: /src/libwebp/src/utils/palette.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - col1
    - col2
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: PaletteColorDistance
    functionSourceFile: /src/libwebp/src/utils/palette.c
    functionUses: 0
    functionsReached:
    - VP8LSubPixels
    - PaletteComponentDistance
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE PaletteColorDistance(uint32_t col1, uint32_t col2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - col1
    - col2
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: SwapColor
    functionSourceFile: /src/libwebp/src/utils/palette.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE SwapColor(uint32_t* const col1, uint32_t* const col2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/palette.c:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - sorted
    - color
    - num_colors
    argTypes:
    - uint32_t[]
    - uint32_t
    - int
    assertStmts:
    - condition: (0)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/libwebp/src/utils/palette.c
    constantsTouched: []
    func_position:
      end: 84
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 84
    functionName: SearchColorNoIdx
    functionSourceFile: /src/libwebp/src/utils/palette.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int SearchColorNoIdx(const uint32_t WEBP_COUNTED_BY(num_colors) sorted[],\n
      \                    uint32_t color, int num_colors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libwebp/src/utils/palette.c:91,1
    - Dst: qsort
      Src: /src/libwebp/src/utils/palette.c:92,1
    - Dst: SearchColorNoIdx
      Src: /src/libwebp/src/utils/palette.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - palette
    - num_colors
    - sorted
    - idx_map
    argTypes:
    - uint32_t[]
    - uint32_t
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 96
    functionName: PrepareMapToPalette
    functionSourceFile: /src/libwebp/src/utils/palette.c
    functionUses: 1
    functionsReached:
    - memcpy
    - SearchColorNoIdx
    - qsort
    linkageType: ''
    returnType: void
    signature: "void PrepareMapToPalette(const uint32_t WEBP_COUNTED_BY(num_colors)
      palette[],\n                         uint32_t num_colors,\n                         uint32_t
      WEBP_COUNTED_BY(num_colors) sorted[],\n                         uint32_t WEBP_COUNTED_BY(num_colors)
      idx_map[])"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/palette.c:115,1
    - Dst: assert
      Src: /src/libwebp/src/utils/palette.c:116,1
    - Dst: VP8LHashPix
      Src: /src/libwebp/src/utils/palette.c:125,1
    - Dst: qsort
      Src: /src/libwebp/src/utils/palette.c:155,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - pic
    - WEBP_COUNTED_BY_OR_NULL(MAX_PALETTE_SIZE)
    argTypes:
    - WebPPicture*
    - uint32_t*
    assertStmts:
    - condition: (pic != NULL)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/libwebp/src/utils/palette.c
    - condition: (pic->use_argb)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/libwebp/src/utils/palette.c
    constantsTouched: []
    func_position:
      end: 158
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 158
    functionName: GetColorPalette
    functionSourceFile: /src/libwebp/src/utils/palette.c
    functionUses: 2
    functionsReached:
    - assert
    - qsort
    - VP8LHashPix
    linkageType: ''
    returnType: int
    signature: "int GetColorPalette(const WebPPicture* const pic,\n                    uint32_t*
      const WEBP_COUNTED_BY_OR_NULL(MAX_PALETTE_SIZE)\n                        palette)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VP8LSubPixels
      Src: /src/libwebp/src/utils/palette.c:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - WEBP_COUNTED_BY(num_colors)
    - num_colors
    argTypes:
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 193
    functionName: PaletteHasNonMonotonousDeltas
    functionSourceFile: /src/libwebp/src/utils/palette.c
    functionUses: 0
    functionsReached:
    - VP8LSubPixels
    linkageType: ''
    returnType: int
    signature: "int PaletteHasNonMonotonousDeltas(\n    const uint32_t* const WEBP_COUNTED_BY(num_colors)
      palette, int num_colors)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libwebp/src/utils/palette.c:200,1
    - Dst: PaletteHasNonMonotonousDeltas
      Src: /src/libwebp/src/utils/palette.c:201,1
    - Dst: SwapColor
      Src: /src/libwebp/src/utils/palette.c:208,1
    - Dst: PaletteColorDistance
      Src: /src/libwebp/src/utils/palette.c:215,1
    - Dst: SwapColor
      Src: /src/libwebp/src/utils/palette.c:221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - WEBP_COUNTED_BY(num_colors)
    - num_colors
    - WEBP_COUNTED_BY(num_colors)
    argTypes:
    - uint32_t*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 224
    functionName: PaletteSortMinimizeDeltas
    functionSourceFile: /src/libwebp/src/utils/palette.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PaletteColorDistance
    - SwapColor
    - PaletteHasNonMonotonousDeltas
    linkageType: ''
    returnType: void
    signature: "void PaletteSortMinimizeDeltas(\n    const uint32_t* const WEBP_COUNTED_BY(num_colors)
      palette_sorted,\n    int num_colors, uint32_t* const WEBP_COUNTED_BY(num_colors)
      palette)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/palette.c:257,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - WEBP_COUNTED_BY(num_colors* num_colors)
    - num_colors
    - c1
    - c2
    argTypes:
    - uint32_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    assertStmts:
    - condition: (*c1 != *c2)
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/libwebp/src/utils/palette.c
    constantsTouched: []
    func_position:
      end: 258
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 258
    functionName: CoOccurrenceFindMax
    functionSourceFile: /src/libwebp/src/utils/palette.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void CoOccurrenceFindMax(\n    const uint32_t* const WEBP_COUNTED_BY(num_colors*
      num_colors) cooccurrence,\n    uint32_t num_colors, uint8_t* const c1, uint8_t*
      const c2)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/utils/palette.c:274,1
    - Dst: PrepareMapToPalette
      Src: /src/libwebp/src/utils/palette.c:280,1
    - Dst: SearchColorNoIdx
      Src: /src/libwebp/src/utils/palette.c:285,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/palette.c:307,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - pic
    - WEBP_COUNTED_BY(num_colors)
    - num_colors
    - WEBP_COUNTED_BY(num_colors* num_colors)
    argTypes:
    - WebPPicture*
    - uint32_t*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 309
    functionName: CoOccurrenceBuild
    functionSourceFile: /src/libwebp/src/utils/palette.c
    functionUses: 0
    functionsReached:
    - PrepareMapToPalette
    - WebPSafeMalloc
    - SearchColorNoIdx
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: "int CoOccurrenceBuild(const WebPPicture* const pic,\n                             const
      uint32_t* const WEBP_COUNTED_BY(num_colors)\n                                 palette,\n
      \                            uint32_t num_colors,\n                             uint32_t*
      WEBP_COUNTED_BY(num_colors* num_colors)\n                                 cooccurrence)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/utils/palette.c:330,1
    - Dst: CoOccurrenceBuild
      Src: /src/libwebp/src/utils/palette.c:334,1
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/utils/palette.c:335,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/palette.c:338,1
    - Dst: assert
      Src: /src/libwebp/src/utils/palette.c:396,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/palette.c:397,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 4
    argNames:
    - pic
    - WEBP_COUNTED_BY(num_colors)
    - num_colors
    - WEBP_COUNTED_BY(num_colors)
    argTypes:
    - WebPPicture*
    - uint32_t*
    - uint32_t
    - uint32_t*
    assertStmts:
    - condition: ((last + 1) % num_colors == first)
      pos:
        line_end: 395
        line_start: 395
        source_file: /src/libwebp/src/utils/palette.c
    constantsTouched: []
    func_position:
      end: 404
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 404
    functionName: PaletteSortModifiedZeng
    functionSourceFile: /src/libwebp/src/utils/palette.c
    functionUses: 0
    functionsReached:
    - assert
    - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    - WebPSafeCalloc
    - CoOccurrenceBuild
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: "int PaletteSortModifiedZeng(\n    const WebPPicture* const pic,\n
      \   const uint32_t* const WEBP_COUNTED_BY(num_colors) palette_in,\n    uint32_t
      num_colors, uint32_t* const WEBP_COUNTED_BY(num_colors) palette)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libwebp/src/utils/palette.c:416,1
    - Dst: memcpy
      Src: /src/libwebp/src/utils/palette.c:420,1
    - Dst: PaletteSortMinimizeDeltas
      Src: /src/libwebp/src/utils/palette.c:424,1
    - Dst: PaletteSortModifiedZeng
      Src: /src/libwebp/src/utils/palette.c:427,1
    - Dst: assert
      Src: /src/libwebp/src/utils/palette.c:433,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - method
    - pic
    - WEBP_COUNTED_BY(num_colors)
    - num_colors
    - WEBP_COUNTED_BY(num_colors)
    argTypes:
    - PaletteSorting
    - struct WebPPicture*
    - uint32_t*
    - uint32_t
    - uint32_t*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 432
        line_start: 432
        source_file: /src/libwebp/src/utils/palette.c
    constantsTouched: []
    func_position:
      end: 435
      start: 408
    functionDepth: 4
    functionLinenumber: 408
    functionLinenumberEnd: 435
    functionName: PaletteSort
    functionSourceFile: /src/libwebp/src/utils/palette.c
    functionUses: 1
    functionsReached:
    - assert
    - memcpy
    - PaletteSortModifiedZeng
    - PaletteSortMinimizeDeltas
    linkageType: ''
    returnType: int
    signature: "int PaletteSort(PaletteSorting method, const struct WebPPicture* const
      pic,\n                const uint32_t* const WEBP_COUNTED_BY(num_colors)\n                    palette_sorted,\n
      \               uint32_t num_colors,\n                uint32_t* const WEBP_COUNTED_BY(num_colors)
      palette)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: WEBP_RESCALER_FRAC
    functionSourceFile: /src/libwebp/src/utils/rescaler_utils.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_RESCALER_FRAC(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rescaler
    argTypes:
    - WebPRescaler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: WebPRescalerInputDone
    functionSourceFile: /src/libwebp/src/utils/rescaler_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE WebPRescalerInputDone(\n    const WebPRescaler* const
      rescaler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rescaler
    argTypes:
    - WebPRescaler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: WebPRescalerOutputDone
    functionSourceFile: /src/libwebp/src/utils/rescaler_utils.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE WebPRescalerOutputDone(\n    const WebPRescaler* const
      rescaler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPRescalerOutputDone
      Src: /src/libwebp/src/utils/rescaler_utils.h:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - rescaler
    argTypes:
    - WebPRescaler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: WebPRescalerHasPendingOutput
    functionSourceFile: /src/libwebp/src/utils/rescaler_utils.h
    functionUses: 7
    functionsReached:
    - WebPRescalerOutputDone
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE WebPRescalerHasPendingOutput(\n    const WebPRescaler*
      const rescaler)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/random_utils.h:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - rg
    - num_bits
    - amp
    argTypes:
    - VP8Random*
    - int
    - int
    assertStmts:
    - condition: (num_bits + VP8_RANDOM_DITHER_FIX <= 31)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/libwebp/src/utils/random_utils.h
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: VP8RandomBits2
    functionSourceFile: /src/libwebp/src/utils/random_utils.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: WEBP_UBSAN_IGNORE_UNSIGNED_OVERFLOW
    signature: "WEBP_UBSAN_IGNORE_UNSIGNED_OVERFLOW VP8RandomBits2(\n    VP8Random*
      const rg, int num_bits, int amp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8RandomBits2
      Src: /src/libwebp/src/utils/random_utils.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rg
    - num_bits
    argTypes:
    - VP8Random*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: VP8RandomBits
    functionSourceFile: /src/libwebp/src/utils/random_utils.h
    functionUses: 2
    functionsReached:
    - VP8RandomBits2
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8RandomBits(VP8Random* const rg, int num_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/src/utils/utils.c:82,1
    - Dst: fprintf
      Src: /src/libwebp/src/utils/utils.c:83,1
    - Dst: fprintf
      Src: /src/libwebp/src/utils/utils.c:84,1
    - Dst: fprintf
      Src: /src/libwebp/src/utils/utils.c:85,1
    - Dst: fprintf
      Src: /src/libwebp/src/utils/utils.c:86,1
    - Dst: fprintf
      Src: /src/libwebp/src/utils/utils.c:87,1
    - Dst: fprintf
      Src: /src/libwebp/src/utils/utils.c:88,1
    - Dst: free
      Src: /src/libwebp/src/utils/utils.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: PrintMemInfo
    functionSourceFile: /src/libwebp/src/utils/utils.c
    functionUses: 0
    functionsReached:
    - free
    - fprintf
    linkageType: ''
    returnType: void
    signature: void PrintMemInfo(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/libwebp/src/utils/utils.c:100,1
    - Dst: atoi
      Src: /src/libwebp/src/utils/utils.c:102,1
    - Dst: getenv
      Src: /src/libwebp/src/utils/utils.c:108,1
    - Dst: atoi
      Src: /src/libwebp/src/utils/utils.c:113,1
    - Dst: atexit
      Src: /src/libwebp/src/utils/utils.c:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 123
    functionName: Increment
    functionSourceFile: /src/libwebp/src/utils/utils.c
    functionUses: 0
    functionsReached:
    - atoi
    - getenv
    - atexit
    linkageType: ''
    returnType: void
    signature: void Increment(int* const v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libwebp/src/utils/utils.c:127,1
    - Dst: abort
      Src: /src/libwebp/src/utils/utils.c:128,1
    - Dst: fprintf
      Src: /src/libwebp/src/utils/utils.c:137,1
    - Dst: fprintf
      Src: /src/libwebp/src/utils/utils.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 145
    functionName: AddMem
    functionSourceFile: /src/libwebp/src/utils/utils.c
    functionUses: 0
    functionsReached:
    - malloc
    - abort
    - fprintf
    linkageType: ''
    returnType: void
    signature: void AddMem(void* ptr, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/src/utils/utils.c:153,1
    - Dst: abort
      Src: /src/libwebp/src/utils/utils.c:154,1
    - Dst: fprintf
      Src: /src/libwebp/src/utils/utils.c:161,1
    - Dst: free
      Src: /src/libwebp/src/utils/utils.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 167
    functionName: SubMem
    functionSourceFile: /src/libwebp/src/utils/utils.c
    functionUses: 0
    functionsReached:
    - free
    - abort
    - fprintf
    linkageType: ''
    returnType: void
    signature: void SubMem(void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: Increment
    functionSourceFile: /src/libwebp/src/utils/utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Increment(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: AddMem
    functionSourceFile: /src/libwebp/src/utils/utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AddMem(p, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: SubMem
    functionSourceFile: /src/libwebp/src/utils/utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SubMem(p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CheckSizeOverflow
      Src: /src/libwebp/src/utils/utils.c:186,1
    - Dst: CheckSizeOverflow
      Src: /src/libwebp/src/utils/utils.c:195,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 202
    functionName: CheckSizeArgumentsOverflow
    functionSourceFile: /src/libwebp/src/utils/utils.c
    functionUses: 2
    functionsReached:
    - CheckSizeOverflow
    linkageType: ''
    returnType: int
    signature: int CheckSizeArgumentsOverflow(uint64_t nmemb, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Increment
      Src: /src/libwebp/src/utils/utils.c:207,1
    - Dst: CheckSizeArgumentsOverflow
      Src: /src/libwebp/src/utils/utils.c:208,1
    - Dst: assert
      Src: /src/libwebp/src/utils/utils.c:209,1
    - Dst: malloc
      Src: /src/libwebp/src/utils/utils.c:210,1
    - Dst: AddMem
      Src: /src/libwebp/src/utils/utils.c:211,1
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/utils/utils.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - uint64_t
    - size_t
    assertStmts:
    - condition: (nmemb * size > 0)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/libwebp/src/utils/utils.c
    constantsTouched: []
    func_position:
      end: 213
      start: 205
    functionDepth: 4
    functionLinenumber: 205
    functionLinenumberEnd: 213
    functionName: WebPSafeMalloc
    functionSourceFile: /src/libwebp/src/utils/utils.c
    functionUses: 55
    functionsReached:
    - malloc
    - assert
    - AddMem
    - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    - CheckSizeArgumentsOverflow
    - Increment
    linkageType: ''
    returnType: void
    signature: void WebPSafeMalloc(uint64_t nmemb, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Increment
      Src: /src/libwebp/src/utils/utils.c:218,1
    - Dst: CheckSizeArgumentsOverflow
      Src: /src/libwebp/src/utils/utils.c:219,1
    - Dst: assert
      Src: /src/libwebp/src/utils/utils.c:220,1
    - Dst: calloc
      Src: /src/libwebp/src/utils/utils.c:221,1
    - Dst: AddMem
      Src: /src/libwebp/src/utils/utils.c:222,1
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/utils/utils.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - uint64_t
    - size_t
    assertStmts:
    - condition: (nmemb * size > 0)
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/libwebp/src/utils/utils.c
    constantsTouched: []
    func_position:
      end: 224
      start: 216
    functionDepth: 4
    functionLinenumber: 216
    functionLinenumberEnd: 224
    functionName: WebPSafeCalloc
    functionSourceFile: /src/libwebp/src/utils/utils.c
    functionUses: 19
    functionsReached:
    - calloc
    - assert
    - AddMem
    - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    - CheckSizeArgumentsOverflow
    - Increment
    linkageType: ''
    returnType: void
    signature: void WebPSafeCalloc(uint64_t nmemb, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Increment
      Src: /src/libwebp/src/utils/utils.c:228,1
    - Dst: SubMem
      Src: /src/libwebp/src/utils/utils.c:229,1
    - Dst: free
      Src: /src/libwebp/src/utils/utils.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 232
    functionName: WebPSafeFree
    functionSourceFile: /src/libwebp/src/utils/utils.c
    functionUses: 75
    functionsReached:
    - free
    - Increment
    - SubMem
    linkageType: ''
    returnType: void
    signature: void WebPSafeFree(void* const ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_FORGE_SINGLE
      Src: /src/libwebp/src/utils/utils.c:247,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/utils/utils.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 236
    functionDepth: 5
    functionLinenumber: 236
    functionLinenumberEnd: 248
    functionName: WEBP_SINGLE::WebPMalloc
    functionSourceFile: /src/libwebp/src/utils/utils.c
    functionUses: 0
    functionsReached:
    - WebPSafeMalloc
    - WEBP_UNSAFE_FORGE_SINGLE
    linkageType: ''
    returnType: void
    signature: void * WEBP_SINGLE WebPMalloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/utils.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - WEBP_SINGLE
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 250
    functionName: WebPFree
    functionSourceFile: /src/libwebp/src/utils/utils.c
    functionUses: 5
    functionsReached:
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void WebPFree(void* WEBP_SINGLE ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/utils.c:256,1
    - Dst: assert
      Src: /src/libwebp/src/utils/utils.c:257,1
    - Dst: abs
      Src: /src/libwebp/src/utils/utils.c:257,1
    - Dst: abs
      Src: /src/libwebp/src/utils/utils.c:257,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/utils/utils.c:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - src
    - src_stride
    - dst
    - dst_stride
    - width
    - height
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int
    - int
    assertStmts:
    - condition: (src != NULL && dst != NULL)
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/libwebp/src/utils/utils.c
    - condition: (abs(src_stride) >= width && abs(dst_stride) >= width)
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/libwebp/src/utils/utils.c
    constantsTouched: []
    func_position:
      end: 263
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 263
    functionName: WebPCopyPlane
    functionSourceFile: /src/libwebp/src/utils/utils.c
    functionUses: 5
    functionsReached:
    - assert
    - abs
    - WEBP_UNSAFE_MEMCPY
    linkageType: ''
    returnType: void
    signature: "void WebPCopyPlane(const uint8_t* src, int src_stride, uint8_t* dst,\n
      \                  int dst_stride, int width, int height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/utils.c:266,1
    - Dst: assert
      Src: /src/libwebp/src/utils/utils.c:267,1
    - Dst: assert
      Src: /src/libwebp/src/utils/utils.c:268,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/src/utils/utils.c:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - WebPPicture*
    - WebPPicture*
    assertStmts:
    - condition: (src != NULL && dst != NULL)
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/libwebp/src/utils/utils.c
    - condition: (src->width == dst->width && src->height == dst->height)
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/libwebp/src/utils/utils.c
    - condition: (src->use_argb && dst->use_argb)
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/libwebp/src/utils/utils.c
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: WebPCopyPixels
    functionSourceFile: /src/libwebp/src/utils/utils.c
    functionUses: 3
    functionsReached:
    - assert
    - WebPCopyPlane
    linkageType: ''
    returnType: void
    signature: void WebPCopyPixels(const WebPPicture* const src, WebPPicture* const
      dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetColorPalette
      Src: /src/libwebp/src/utils/utils.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pic
    - WEBP_COUNTED_BY_OR_NULL(MAX_PALETTE_SIZE)
    argTypes:
    - WebPPicture*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: WebPGetColorPalette
    functionSourceFile: /src/libwebp/src/utils/utils.c
    functionUses: 1
    functionsReached:
    - GetColorPalette
    linkageType: ''
    returnType: int
    signature: "int WebPGetColorPalette(\n    const WebPPicture* const pic,\n    uint32_t*
      const WEBP_COUNTED_BY_OR_NULL(MAX_PALETTE_SIZE) palette)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: clip_8b
    functionSourceFile: /src/libwebp/src/utils/quant_levels_dec_utils.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE clip_8b(int v)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - SmoothParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 111
    functionName: VFilter
    functionSourceFile: /src/libwebp/src/utils/quant_levels_dec_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VFilter(SmoothParams* const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - SmoothParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 136
    functionName: HFilter
    functionSourceFile: /src/libwebp/src/utils/quant_levels_dec_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HFilter(SmoothParams* const p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clip_8b
      Src: /src/libwebp/src/utils/quant_levels_dec_utils.c:156,1
    - Dst: clip_8b
      Src: /src/libwebp/src/utils/quant_levels_dec_utils.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - SmoothParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 163
    functionName: ApplyFilter
    functionSourceFile: /src/libwebp/src/utils/quant_levels_dec_utils.c
    functionUses: 2
    functionsReached:
    - clip_8b
    linkageType: ''
    returnType: void
    signature: void ApplyFilter(SmoothParams* const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - WEBP_COUNTED_BY(CORRECTION_LUT_SIZE)
    - min_dist
    argTypes:
    - int16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 193
    functionName: InitCorrectionLUT
    functionSourceFile: /src/libwebp/src/utils/quant_levels_dec_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void InitCorrectionLUT(\n    int16_t* const WEBP_COUNTED_BY(CORRECTION_LUT_SIZE)
      lut_ptr, int min_dist)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - SmoothParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 225
    functionName: CountLevels
    functionSourceFile: /src/libwebp/src/utils/quant_levels_dec_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CountLevels(SmoothParams* const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/quant_levels_dec_utils.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - SmoothParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: CleanupParams
    functionSourceFile: /src/libwebp/src/utils/quant_levels_dec_utils.c
    functionUses: 0
    functionsReached:
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void CleanupParams(SmoothParams* const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bw
    argTypes:
    - VP8BitWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: VP8BitWriterPos
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8BitWriterPos(const VP8BitWriter* const bw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bw
    argTypes:
    - VP8BitWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: VP8BitWriterBuf
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE * VP8BitWriterBuf(const VP8BitWriter* const bw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bw
    argTypes:
    - VP8BitWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: VP8BitWriterSize
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8BitWriterSize(const VP8BitWriter* const bw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bw
    argTypes:
    - VP8LBitWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: VP8LBitWriterNumBytes
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8LBitWriterNumBytes(const VP8LBitWriter* const bw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8LPutBitsFlushBits
      Src: /src/libwebp/src/utils/bit_writer_utils.h:150,1
    - Dst: VP8LPutBitsInternal
      Src: /src/libwebp/src/utils/bit_writer_utils.h:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bw
    - bits
    - n_bits
    argTypes:
    - VP8LBitWriter*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 157
    functionName: VP8LPutBits
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.h
    functionUses: 16
    functionsReached:
    - VP8LPutBitsInternal
    - VP8LPutBitsFlushBits
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE VP8LPutBits(VP8LBitWriter* const bw, uint32_t bits,\n
      \                                   int n_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - br
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: BT_TRACK
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BT_TRACK(br)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - BR
    - ','
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: VP8Get
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VP8Get(BR, L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - BR
    - ','
    - N
    - ','
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: VP8GetValue
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VP8GetValue(BR, N, L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - BR
    - ','
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: VP8Get
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VP8Get(BR, L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - BR
    - ','
    - N
    - ','
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: VP8GetSignedValue
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VP8GetSignedValue(BR, N, L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - BR
    - ','
    - P
    - ','
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: VP8GetBit
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VP8GetBit(BR, P, L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - BR
    - ','
    - P
    - ','
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: VP8GetBitAlt
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VP8GetBitAlt(BR, P, L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - BR
    - ','
    - V
    - ','
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: VP8GetSigned
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VP8GetSigned(BR, V, L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - br
    argTypes:
    - VP8LBitReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: VP8LPrefetchBits
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8LPrefetchBits(VP8LBitReader* const br)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_reader_utils.h:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - br
    argTypes:
    - VP8LBitReader*
    assertStmts:
    - condition: (br->pos <= br->len)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/libwebp/src/utils/bit_reader_utils.h
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: VP8LIsEndOfStream
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.h
    functionUses: 4
    functionsReached:
    - assert
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8LIsEndOfStream(const VP8LBitReader* const br)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - br
    - val
    argTypes:
    - VP8LBitReader*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: VP8LSetBitPos
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8LSetBitPos(VP8LBitReader* const br, int val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LDoFillBitWindow
      Src: /src/libwebp/src/utils/bit_reader_utils.h:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - br
    argTypes:
    - VP8LBitReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: VP8LFillBitWindow
    functionSourceFile: /src/libwebp/src/utils/bit_reader_utils.h
    functionUses: 3
    functionsReached:
    - VP8LDoFillBitWindow
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE VP8LFillBitWindow(VP8LBitReader* const br)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/utils/bit_writer_utils.c:45,1
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_writer_utils.c:51,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/utils/bit_writer_utils.c:52,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/bit_writer_utils.c:54,1
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/utils/bit_writer_utils.c:55,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - bw
    - extra_size
    argTypes:
    - VP8BitWriter*
    - size_t
    assertStmts:
    - condition: (bw->buf != NULL)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/libwebp/src/utils/bit_writer_utils.c
    constantsTouched: []
    func_position:
      end: 58
      start: 26
    functionDepth: 5
    functionLinenumber: 26
    functionLinenumberEnd: 58
    functionName: BitWriterResize
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.c
    functionUses: 0
    functionsReached:
    - assert
    - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    - WebPSafeMalloc
    - WEBP_UNSAFE_MEMCPY
    - WebPSafeFree
    linkageType: ''
    returnType: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI
    signature: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI BitWriterResize(VP8BitWriter* const
      bw, size_t extra_size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_writer_utils.c:63,1
    - Dst: BitWriterResize
      Src: /src/libwebp/src/utils/bit_writer_utils.c:68,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - bw
    argTypes:
    - VP8BitWriter*
    assertStmts:
    - condition: (bw->nb_bits >= 0)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/libwebp/src/utils/bit_writer_utils.c
    constantsTouched: []
    func_position:
      end: 83
      start: 60
    functionDepth: 6
    functionLinenumber: 60
    functionLinenumberEnd: 83
    functionName: Flush
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.c
    functionUses: 0
    functionsReached:
    - assert
    - BitWriterResize
    linkageType: ''
    returnType: void
    signature: void Flush(VP8BitWriter* const bw)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Flush
      Src: /src/libwebp/src/utils/bit_writer_utils.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - bw
    - bit
    - prob
    argTypes:
    - VP8BitWriter*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 108
    functionDepth: 7
    functionLinenumber: 108
    functionLinenumberEnd: 124
    functionName: VP8PutBit
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.c
    functionUses: 8
    functionsReached:
    - Flush
    linkageType: ''
    returnType: int
    signature: int VP8PutBit(VP8BitWriter* const bw, int bit, int prob)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Flush
      Src: /src/libwebp/src/utils/bit_writer_utils.c:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - bw
    - bit
    argTypes:
    - VP8BitWriter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 126
    functionDepth: 7
    functionLinenumber: 126
    functionLinenumberEnd: 141
    functionName: VP8PutBitUniform
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.c
    functionUses: 5
    functionsReached:
    - Flush
    linkageType: ''
    returnType: int
    signature: int VP8PutBitUniform(VP8BitWriter* const bw, int bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_writer_utils.c:145,1
    - Dst: VP8PutBitUniform
      Src: /src/libwebp/src/utils/bit_writer_utils.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - bw
    - value
    - nb_bits
    argTypes:
    - VP8BitWriter*
    - uint32_t
    - int
    assertStmts:
    - condition: (nb_bits > 0 && nb_bits < 32)
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/libwebp/src/utils/bit_writer_utils.c
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 8
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: VP8PutBits
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.c
    functionUses: 5
    functionsReached:
    - assert
    - VP8PutBitUniform
    linkageType: ''
    returnType: void
    signature: void VP8PutBits(VP8BitWriter* const bw, uint32_t value, int nb_bits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VP8PutBitUniform
      Src: /src/libwebp/src/utils/bit_writer_utils.c:152,1
    - Dst: VP8PutBits
      Src: /src/libwebp/src/utils/bit_writer_utils.c:154,1
    - Dst: VP8PutBits
      Src: /src/libwebp/src/utils/bit_writer_utils.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - bw
    - value
    - nb_bits
    argTypes:
    - VP8BitWriter*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 151
    functionDepth: 9
    functionLinenumber: 151
    functionLinenumberEnd: 158
    functionName: VP8PutSignedBits
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.c
    functionUses: 3
    functionsReached:
    - VP8PutBitUniform
    - VP8PutBits
    linkageType: ''
    returnType: void
    signature: void VP8PutSignedBits(VP8BitWriter* const bw, int value, int nb_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BitWriterResize
      Src: /src/libwebp/src/utils/bit_writer_utils.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - bw
    - expected_size
    argTypes:
    - VP8BitWriter*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 162
    functionDepth: 6
    functionLinenumber: 162
    functionLinenumberEnd: 172
    functionName: VP8BitWriterInit
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.c
    functionUses: 4
    functionsReached:
    - BitWriterResize
    linkageType: ''
    returnType: int
    signature: int VP8BitWriterInit(VP8BitWriter* const bw, size_t expected_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VP8PutBits
      Src: /src/libwebp/src/utils/bit_writer_utils.c:175,1
    - Dst: Flush
      Src: /src/libwebp/src/utils/bit_writer_utils.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bw
    argTypes:
    - VP8BitWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 9
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: VP8BitWriterFinish
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.c
    functionUses: 2
    functionsReached:
    - Flush
    - VP8PutBits
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * VP8BitWriterFinish(VP8BitWriter* const bw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_writer_utils.c:183,1
    - Dst: BitWriterResize
      Src: /src/libwebp/src/utils/bit_writer_utils.c:185,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/utils/bit_writer_utils.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bw
    - data
    - size
    argTypes:
    - VP8BitWriter*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/libwebp/src/utils/bit_writer_utils.c
    constantsTouched: []
    func_position:
      end: 189
      start: 181
    functionDepth: 6
    functionLinenumber: 181
    functionLinenumberEnd: 189
    functionName: VP8BitWriterAppend
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.c
    functionUses: 1
    functionsReached:
    - assert
    - BitWriterResize
    - WEBP_UNSAFE_MEMCPY
    linkageType: ''
    returnType: int
    signature: "int VP8BitWriterAppend(VP8BitWriter* const bw, const uint8_t* data,\n
      \                      size_t size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/bit_writer_utils.c:193,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/utils/bit_writer_utils.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bw
    argTypes:
    - VP8BitWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: VP8BitWriterWipeOut
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.c
    functionUses: 3
    functionsReached:
    - WEBP_UNSAFE_MEMSET
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void VP8BitWriterWipeOut(VP8BitWriter* const bw)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/utils/bit_writer_utils.c:222,1
    - Dst: WebPSafeMalloc
      Src: /src/libwebp/src/utils/bit_writer_utils.c:223,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/utils/bit_writer_utils.c:229,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/bit_writer_utils.c:231,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - bw
    - extra_size
    argTypes:
    - VP8LBitWriter*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 206
    functionDepth: 5
    functionLinenumber: 206
    functionLinenumberEnd: 236
    functionName: VP8LBitWriterResize
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.c
    functionUses: 0
    functionsReached:
    - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    - WebPSafeMalloc
    - WEBP_UNSAFE_MEMCPY
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: int VP8LBitWriterResize(VP8LBitWriter* const bw, size_t extra_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/utils/bit_writer_utils.c:239,1
    - Dst: VP8LBitWriterResize
      Src: /src/libwebp/src/utils/bit_writer_utils.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bw
    - expected_size
    argTypes:
    - VP8LBitWriter*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 6
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: VP8LBitWriterInit
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.c
    functionUses: 5
    functionsReached:
    - VP8LBitWriterResize
    - WEBP_UNSAFE_MEMSET
    linkageType: ''
    returnType: int
    signature: int VP8LBitWriterInit(VP8LBitWriter* const bw, size_t expected_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_writer_utils.c:246,1
    - Dst: VP8LBitWriterResize
      Src: /src/libwebp/src/utils/bit_writer_utils.c:247,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/utils/bit_writer_utils.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - VP8LBitWriter*
    - VP8LBitWriter*
    assertStmts:
    - condition: (src->cur >= src->buf && src->cur <= src->end)
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/libwebp/src/utils/bit_writer_utils.c
    constantsTouched: []
    func_position:
      end: 254
      start: 243
    functionDepth: 6
    functionLinenumber: 243
    functionLinenumberEnd: 254
    functionName: VP8LBitWriterClone
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.c
    functionUses: 3
    functionsReached:
    - assert
    - VP8LBitWriterResize
    - WEBP_UNSAFE_MEMCPY
    linkageType: ''
    returnType: int
    signature: "int VP8LBitWriterClone(const VP8LBitWriter* const src,\n                       VP8LBitWriter*
      const dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/bit_writer_utils.c:258,1
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/utils/bit_writer_utils.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bw
    argTypes:
    - VP8LBitWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 261
    functionName: VP8LBitWriterWipeOut
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.c
    functionUses: 6
    functionsReached:
    - WEBP_UNSAFE_MEMSET
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void VP8LBitWriterWipeOut(VP8LBitWriter* const bw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_writer_utils.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - bw_init
    - bw
    argTypes:
    - VP8LBitWriter*
    - VP8LBitWriter*
    assertStmts:
    - condition: (bw->cur <= bw->end)
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/libwebp/src/utils/bit_writer_utils.c
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: VP8LBitWriterReset
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void VP8LBitWriterReset(const VP8LBitWriter* const bw_init,\n                        VP8LBitWriter*
      const bw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - VP8LBitWriter*
    - VP8LBitWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: VP8LBitWriterSwap
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VP8LBitWriterSwap(VP8LBitWriter* const src, VP8LBitWriter* const
      dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CheckSizeOverflow
      Src: /src/libwebp/src/utils/bit_writer_utils.c:283,1
    - Dst: VP8LBitWriterResize
      Src: /src/libwebp/src/utils/bit_writer_utils.c:284,1
    - Dst: WSWAP
      Src: /src/libwebp/src/utils/bit_writer_utils.c:290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - bw
    - used
    - bits
    argTypes:
    - VP8LBitWriter*
    - int*
    - vp8l_atype_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 278
    functionDepth: 6
    functionLinenumber: 278
    functionLinenumberEnd: 294
    functionName: VP8LPutBitsFlushBits
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.c
    functionUses: 1
    functionsReached:
    - VP8LBitWriterResize
    - WSWAP
    - CheckSizeOverflow
    linkageType: ''
    returnType: void
    signature: "void VP8LPutBitsFlushBits(VP8LBitWriter* const bw, int* used,\n                          vp8l_atype_t*
      bits)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_writer_utils.c:300,1
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_writer_utils.c:311,1
    - Dst: assert
      Src: /src/libwebp/src/utils/bit_writer_utils.c:316,1
    - Dst: VP8LPutBitsFlushBits
      Src: /src/libwebp/src/utils/bit_writer_utils.c:320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - bw
    - bits
    - n_bits
    argTypes:
    - VP8LBitWriter*
    - uint32_t
    - int
    assertStmts:
    - condition: (n_bits <= VP8L_WRITER_MAX_BITS)
      pos:
        line_end: 299
        line_start: 299
        source_file: /src/libwebp/src/utils/bit_writer_utils.c
    - condition: (n_bits <= VP8L_WRITER_MAX_BITS)
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/libwebp/src/utils/bit_writer_utils.c
    - condition: (shift == (int)sizeof(bits) * 8)
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/libwebp/src/utils/bit_writer_utils.c
    constantsTouched: []
    func_position:
      end: 324
      start: 297
    functionDepth: 7
    functionLinenumber: 297
    functionLinenumberEnd: 324
    functionName: VP8LPutBitsInternal
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.c
    functionUses: 1
    functionsReached:
    - assert
    - VP8LPutBitsFlushBits
    linkageType: ''
    returnType: void
    signature: void VP8LPutBitsInternal(VP8LBitWriter* const bw, uint32_t bits, int
      n_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VP8LBitWriterResize
      Src: /src/libwebp/src/utils/bit_writer_utils.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - bw
    argTypes:
    - VP8LBitWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 327
    functionDepth: 6
    functionLinenumber: 327
    functionLinenumberEnd: 338
    functionName: VP8LBitWriterFinish
    functionSourceFile: /src/libwebp/src/utils/bit_writer_utils.c
    functionUses: 2
    functionsReached:
    - VP8LBitWriterResize
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * VP8LBitWriterFinish(VP8LBitWriter* const bw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/utils/random_utils.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - rg
    - dithering
    argTypes:
    - VP8Random*
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: VP8InitRandom
    functionSourceFile: /src/libwebp/src/utils/random_utils.c
    functionUses: 2
    functionsReached:
    - WEBP_UNSAFE_MEMCPY
    linkageType: ''
    returnType: void
    signature: void VP8InitRandom(VP8Random* const rg, float dithering)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: WINAPI_FAMILY_PARTITION
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WINAPI_FAMILY_PARTITION(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: THREAD_RETURN
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_RETURN(val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CreateThread
      Src: /src/libwebp/src/utils/thread_utils.c:73,1
    - Dst: _beginthreadex
      Src: /src/libwebp/src/utils/thread_utils.c:78,1
    - Dst: SetThreadPriority
      Src: /src/libwebp/src/utils/thread_utils.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - thread
    - attr
    - arg
    argTypes:
    - pthread_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 85
    functionName: pthread_create
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 0
    functionsReached:
    - CreateThread
    - SetThreadPriority
    - _beginthreadex
    linkageType: ''
    returnType: int
    signature: "int pthread_create(pthread_t* const thread, const void* attr,\n                          unsigned
      int(__stdcall* start)(void*), void* arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObject
      Src: /src/libwebp/src/utils/thread_utils.c:89,1
    - Dst: CloseHandle
      Src: /src/libwebp/src/utils/thread_utils.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - thread
    - value_ptr
    argTypes:
    - pthread_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: pthread_join
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 0
    functionsReached:
    - WaitForSingleObject
    - CloseHandle
    linkageType: ''
    returnType: int
    signature: int pthread_join(pthread_t thread, void** value_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializeSRWLock
      Src: /src/libwebp/src/utils/thread_utils.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mutex
    - mutexattr
    argTypes:
    - pthread_mutex_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: pthread_mutex_init
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 0
    functionsReached:
    - InitializeSRWLock
    linkageType: ''
    returnType: int
    signature: int pthread_mutex_init(pthread_mutex_t* const mutex, void* mutexattr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AcquireSRWLockExclusive
      Src: /src/libwebp/src/utils/thread_utils.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: pthread_mutex_lock
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 0
    functionsReached:
    - AcquireSRWLockExclusive
    linkageType: ''
    returnType: int
    signature: int pthread_mutex_lock(pthread_mutex_t* const mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReleaseSRWLockExclusive
      Src: /src/libwebp/src/utils/thread_utils.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: pthread_mutex_unlock
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 0
    functionsReached:
    - ReleaseSRWLockExclusive
    linkageType: ''
    returnType: int
    signature: int pthread_mutex_unlock(pthread_mutex_t* const mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: pthread_mutex_destroy
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_mutex_destroy(pthread_mutex_t* const mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - condition
    argTypes:
    - pthread_cond_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: pthread_cond_destroy
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_cond_destroy(pthread_cond_t* const condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializeConditionVariable
      Src: /src/libwebp/src/utils/thread_utils.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - condition
    - cond_attr
    argTypes:
    - pthread_cond_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: pthread_cond_init
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 0
    functionsReached:
    - InitializeConditionVariable
    linkageType: ''
    returnType: int
    signature: int pthread_cond_init(pthread_cond_t* const condition, void* cond_attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WakeConditionVariable
      Src: /src/libwebp/src/utils/thread_utils.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - condition
    argTypes:
    - pthread_cond_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: pthread_cond_signal
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 0
    functionsReached:
    - WakeConditionVariable
    linkageType: ''
    returnType: int
    signature: int pthread_cond_signal(pthread_cond_t* const condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SleepConditionVariableSRW
      Src: /src/libwebp/src/utils/thread_utils.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - condition
    - mutex
    argTypes:
    - pthread_cond_t*
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: pthread_cond_wait
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 0
    functionsReached:
    - SleepConditionVariableSRW
    linkageType: ''
    returnType: int
    signature: "int pthread_cond_wait(pthread_cond_t* const condition,\n                             pthread_mutex_t*
      const mutex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: THREAD_RETURN
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_RETURN(val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/libwebp/src/utils/thread_utils.c:150,1
    - Dst: pthread_cond_wait
      Src: /src/libwebp/src/utils/thread_utils.c:152,1
    - Dst: WebPGetWorkerInterface
      Src: /src/libwebp/src/utils/thread_utils.c:155,1
    - Dst: pthread_mutex_unlock
      Src: /src/libwebp/src/utils/thread_utils.c:165,1
    - Dst: pthread_cond_signal
      Src: /src/libwebp/src/utils/thread_utils.c:166,1
    - Dst: THREAD_RETURN
      Src: /src/libwebp/src/utils/thread_utils.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 169
    functionName: ThreadLoop
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 0
    functionsReached:
    - pthread_cond_signal
    - pthread_mutex_lock
    - pthread_cond_wait
    - THREAD_RETURN
    - WebPGetWorkerInterface
    - pthread_mutex_unlock
    linkageType: ''
    returnType: THREADFN
    signature: THREADFN ThreadLoop(void* ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/libwebp/src/utils/thread_utils.c:179,1
    - Dst: pthread_cond_wait
      Src: /src/libwebp/src/utils/thread_utils.c:183,1
    - Dst: pthread_mutex_unlock
      Src: /src/libwebp/src/utils/thread_utils.c:192,1
    - Dst: pthread_cond_signal
      Src: /src/libwebp/src/utils/thread_utils.c:193,1
    - Dst: pthread_mutex_unlock
      Src: /src/libwebp/src/utils/thread_utils.c:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - worker
    - new_status
    argTypes:
    - WebPWorker*
    - WebPWorkerStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 198
    functionName: ChangeState
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - pthread_cond_wait
    - pthread_mutex_lock
    - pthread_cond_signal
    linkageType: ''
    returnType: void
    signature: void ChangeState(WebPWorker* const worker, WebPWorkerStatus new_status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_MEMSET
      Src: /src/libwebp/src/utils/thread_utils.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - worker
    argTypes:
    - WebPWorker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: Init
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 110
    functionsReached:
    - WEBP_UNSAFE_MEMSET
    linkageType: ''
    returnType: void
    signature: void Init(WebPWorker* const worker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChangeState
      Src: /src/libwebp/src/utils/thread_utils.c:211,1
    - Dst: assert
      Src: /src/libwebp/src/utils/thread_utils.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - worker
    argTypes:
    - WebPWorker*
    assertStmts:
    - condition: (worker->status <= OK)
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/libwebp/src/utils/thread_utils.c
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: Sync
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 2
    functionsReached:
    - assert
    - ChangeState
    linkageType: ''
    returnType: int
    signature: int Sync(WebPWorker* const worker)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/utils/thread_utils.c:223,1
    - Dst: pthread_mutex_init
      Src: /src/libwebp/src/utils/thread_utils.c:228,1
    - Dst: pthread_cond_init
      Src: /src/libwebp/src/utils/thread_utils.c:231,1
    - Dst: pthread_mutex_destroy
      Src: /src/libwebp/src/utils/thread_utils.c:232,1
    - Dst: pthread_mutex_lock
      Src: /src/libwebp/src/utils/thread_utils.c:235,1
    - Dst: pthread_create
      Src: /src/libwebp/src/utils/thread_utils.c:236,1
    - Dst: pthread_mutex_unlock
      Src: /src/libwebp/src/utils/thread_utils.c:238,1
    - Dst: pthread_mutex_destroy
      Src: /src/libwebp/src/utils/thread_utils.c:240,1
    - Dst: pthread_cond_destroy
      Src: /src/libwebp/src/utils/thread_utils.c:241,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/thread_utils.c:243,1
    - Dst: Sync
      Src: /src/libwebp/src/utils/thread_utils.c:251,1
    - Dst: assert
      Src: /src/libwebp/src/utils/thread_utils.c:253,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - worker
    argTypes:
    - WebPWorker*
    assertStmts:
    - condition: (!ok || (worker->status == OK))
      pos:
        line_end: 252
        line_start: 252
        source_file: /src/libwebp/src/utils/thread_utils.c
    constantsTouched: []
    func_position:
      end: 255
      start: 217
    functionDepth: 5
    functionLinenumber: 217
    functionLinenumberEnd: 255
    functionName: Reset
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 6
    functionsReached:
    - pthread_mutex_lock
    - assert
    - pthread_cond_init
    - Sync
    - WebPSafeCalloc
    - pthread_mutex_init
    - pthread_mutex_destroy
    - pthread_create
    - pthread_mutex_unlock
    - pthread_cond_destroy
    - WebPSafeFree
    linkageType: ''
    returnType: int
    signature: int Reset(WebPWorker* const worker)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPWorker*::hook
      Src: /src/libwebp/src/utils/thread_utils.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - worker
    argTypes:
    - WebPWorker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 261
    functionName: Execute
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 2
    functionsReached:
    - WebPWorker*::hook
    linkageType: ''
    returnType: void
    signature: void Execute(WebPWorker* const worker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChangeState
      Src: /src/libwebp/src/utils/thread_utils.c:265,1
    - Dst: Execute
      Src: /src/libwebp/src/utils/thread_utils.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - worker
    argTypes:
    - WebPWorker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 269
    functionName: Launch
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 2
    functionsReached:
    - Execute
    - ChangeState
    linkageType: ''
    returnType: void
    signature: void Launch(WebPWorker* const worker)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ChangeState
      Src: /src/libwebp/src/utils/thread_utils.c:275,1
    - Dst: pthread_join
      Src: /src/libwebp/src/utils/thread_utils.c:276,1
    - Dst: pthread_mutex_destroy
      Src: /src/libwebp/src/utils/thread_utils.c:277,1
    - Dst: pthread_cond_destroy
      Src: /src/libwebp/src/utils/thread_utils.c:278,1
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/thread_utils.c:279,1
    - Dst: assert
      Src: /src/libwebp/src/utils/thread_utils.c:284,1
    - Dst: assert
      Src: /src/libwebp/src/utils/thread_utils.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - worker
    argTypes:
    - WebPWorker*
    assertStmts:
    - condition: (worker->impl == NULL)
      pos:
        line_end: 283
        line_start: 283
        source_file: /src/libwebp/src/utils/thread_utils.c
    - condition: (worker->status == NOT_OK)
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/libwebp/src/utils/thread_utils.c
    constantsTouched: []
    func_position:
      end: 287
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 287
    functionName: End
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 2
    functionsReached:
    - ChangeState
    - assert
    - pthread_mutex_destroy
    - pthread_join
    - pthread_cond_destroy
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void End(WebPWorker* const worker)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - winterface
    argTypes:
    - WebPWorkerInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 303
    functionName: WebPSetWorkerInterface
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int WebPSetWorkerInterface(const WebPWorkerInterface* const winterface)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    functionName: WebPGetWorkerInterface
    functionSourceFile: /src/libwebp/src/utils/thread_utils.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: WebPWorkerInterface
    signature: WebPWorkerInterface * WebPGetWorkerInterface(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: SDIFF
    functionSourceFile: /src/libwebp/src/utils/filters_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SDIFF(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: GradientPredictor
    functionSourceFile: /src/libwebp/src/utils/filters_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GradientPredictor(uint8_t a, uint8_t b, uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: ValuesShouldBeCollapsedToStrideAverage
    functionSourceFile: /src/libwebp/src/utils/huffman_encode_utils.c
    functionUses: 0
    functionsReached:
    - abs
    linkageType: ''
    returnType: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI
    signature: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI ValuesShouldBeCollapsedToStrideAverage(int
      a, int b)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ValuesShouldBeCollapsedToStrideAverage
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:85,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 58
    argCount: 3
    argNames:
    - length
    - WEBP_COUNTED_BY(length)
    - WEBP_COUNTED_BY(length)
    argTypes:
    - int
    - uint8_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 126
    functionName: OptimizeHuffmanForRle
    functionSourceFile: /src/libwebp/src/utils/huffman_encode_utils.c
    functionUses: 0
    functionsReached:
    - ValuesShouldBeCollapsedToStrideAverage
    linkageType: ''
    returnType: void
    signature: "void OptimizeHuffmanForRle(int length,\n                                  uint8_t*
      const WEBP_COUNTED_BY(length)\n                                      good_for_rle,\n
      \                                 uint32_t* const WEBP_COUNTED_BY(length)\n
      \                                     counts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ptr1
    - ptr2
    argTypes:
    - void*
    - void*
    assertStmts:
    - condition: (t1->value != t2->value)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/libwebp/src/utils/huffman_encode_utils.c
    constantsTouched: []
    func_position:
      end: 141
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 141
    functionName: CompareHuffmanTrees
    functionSourceFile: /src/libwebp/src/utils/huffman_encode_utils.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int CompareHuffmanTrees(const void* ptr1, const void* ptr2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetBitDepths
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:147,1
    - Dst: SetBitDepths
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - tree
    - pool
    - bit_depths
    - level
    argTypes:
    - HuffmanTree*
    - HuffmanTree*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: SetBitDepths
    functionSourceFile: /src/libwebp/src/utils/huffman_encode_utils.c
    functionUses: 1
    functionsReached:
    - SetBitDepths
    linkageType: ''
    returnType: void
    signature: "void SetBitDepths(const HuffmanTree* const tree,\n                         const
      HuffmanTree* WEBP_BIDI_INDEXABLE const pool,\n                         uint8_t*
      WEBP_INDEXABLE const bit_depths, int level)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:199,1
    - Dst: qsort
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:219,1
    - Dst: memmove
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:238,1
    - Dst: SetBitDepths
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:247,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 5
    argNames:
    - WEBP_COUNTED_BY(histogram_size)
    - histogram_size
    - WEBP_BIDI_INDEXABLE
    - tree_depth_limit
    - WEBP_COUNTED_BY(histogram_size) const
    argTypes:
    - uint32_t*
    - int
    - HuffmanTree*
    - int
    - uint8_t*
    assertStmts:
    - condition: (tree_size_orig <= (1 << (tree_depth_limit - 1)))
      pos:
        line_end: 198
        line_start: 198
        source_file: /src/libwebp/src/utils/huffman_encode_utils.c
    constantsTouched: []
    func_position:
      end: 265
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 265
    functionName: GenerateOptimalTree
    functionSourceFile: /src/libwebp/src/utils/huffman_encode_utils.c
    functionUses: 0
    functionsReached:
    - assert
    - qsort
    - memmove
    - SetBitDepths
    linkageType: ''
    returnType: void
    signature: "void GenerateOptimalTree(\n    const uint32_t* const WEBP_COUNTED_BY(histogram_size)
      histogram,\n    int histogram_size, HuffmanTree* WEBP_BIDI_INDEXABLE tree,\n
      \   int tree_depth_limit,\n    uint8_t* WEBP_COUNTED_BY(histogram_size) const
      bit_depths)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:273,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - repetitions
    - WEBP_INDEXABLE
    - value
    - prev_value
    argTypes:
    - int
    - HuffmanTreeToken*
    - int
    - int
    assertStmts:
    - condition: (value <= MAX_ALLOWED_CODE_LENGTH)
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/libwebp/src/utils/huffman_encode_utils.c
    constantsTouched: []
    func_position:
      end: 302
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 302
    functionName: WEBP_INDEXABLE::CodeRepeatedValues
    functionSourceFile: /src/libwebp/src/utils/huffman_encode_utils.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: HuffmanTreeToken
    signature: "HuffmanTreeToken * WEBP_INDEXABLE\nCodeRepeatedValues(int repetitions,
      HuffmanTreeToken* WEBP_INDEXABLE tokens,\n                   int value, int
      prev_value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - repetitions
    - WEBP_INDEXABLE
    argTypes:
    - int
    - HuffmanTreeToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 333
    functionName: WEBP_INDEXABLE::CodeRepeatedZeros
    functionSourceFile: /src/libwebp/src/utils/huffman_encode_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HuffmanTreeToken
    signature: 'HuffmanTreeToken * WEBP_INDEXABLE

      CodeRepeatedZeros(int repetitions, HuffmanTreeToken* WEBP_INDEXABLE tokens)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:344,1
    - Dst: CodeRepeatedZeros
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:352,1
    - Dst: CodeRepeatedValues
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:355,1
    - Dst: assert
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:359,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - tree
    - WEBP_COUNTED_BY(max_tokens)
    - max_tokens
    argTypes:
    - HuffmanTreeCode*
    - HuffmanTreeToken*
    - int
    assertStmts:
    - condition: (tokens != NULL)
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/libwebp/src/utils/huffman_encode_utils.c
    - condition: (current_token <= ending_token)
      pos:
        line_end: 358
        line_start: 358
        source_file: /src/libwebp/src/utils/huffman_encode_utils.c
    constantsTouched: []
    func_position:
      end: 363
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 363
    functionName: VP8LCreateCompressedHuffmanTree
    functionSourceFile: /src/libwebp/src/utils/huffman_encode_utils.c
    functionUses: 1
    functionsReached:
    - assert
    - CodeRepeatedValues
    - CodeRepeatedZeros
    linkageType: ''
    returnType: int
    signature: "int VP8LCreateCompressedHuffmanTree(\n    const HuffmanTreeCode* const
      tree,\n    HuffmanTreeToken* WEBP_COUNTED_BY(max_tokens) tokens, int max_tokens)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - num_bits
    - bits
    argTypes:
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 382
    functionName: ReverseBits
    functionSourceFile: /src/libwebp/src/utils/huffman_encode_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ReverseBits(int num_bits, uint32_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:392,1
    - Dst: assert
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:396,1
    - Dst: ReverseBits
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - tree
    argTypes:
    - HuffmanTreeCode*
    assertStmts:
    - condition: (tree != NULL)
      pos:
        line_end: 391
        line_start: 391
        source_file: /src/libwebp/src/utils/huffman_encode_utils.c
    - condition: (code_length <= MAX_ALLOWED_CODE_LENGTH)
      pos:
        line_end: 395
        line_start: 395
        source_file: /src/libwebp/src/utils/huffman_encode_utils.c
    constantsTouched: []
    func_position:
      end: 412
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 412
    functionName: ConvertBitDepthsToSymbols
    functionSourceFile: /src/libwebp/src/utils/huffman_encode_utils.c
    functionUses: 0
    functionsReached:
    - assert
    - ReverseBits
    linkageType: ''
    returnType: void
    signature: void ConvertBitDepthsToSymbols(HuffmanTreeCode* const tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:422,1
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:425,1
    - Dst: memset
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:428,1
    - Dst: OptimizeHuffmanForRle
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:429,1
    - Dst: ConvertBitDepthsToSymbols
      Src: /src/libwebp/src/utils/huffman_encode_utils.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - histogram
    - tree_depth_limit
    - buf_rle
    - huff_tree
    - huff_code
    argTypes:
    - uint32_t*
    - int
    - uint8_t*
    - HuffmanTree*
    - HuffmanTreeCode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 437
    functionName: VP8LCreateHuffmanTree
    functionSourceFile: /src/libwebp/src/utils/huffman_encode_utils.c
    functionUses: 2
    functionsReached:
    - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    - memset
    - OptimizeHuffmanForRle
    - ConvertBitDepthsToSymbols
    linkageType: ''
    returnType: void
    signature: "void VP8LCreateHuffmanTree(uint32_t* const histogram, int tree_depth_limit,\n
      \                          uint8_t* const buf_rle, HuffmanTree* const huff_tree,\n
      \                          HuffmanTreeCode* const huff_code)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeCalloc
      Src: /src/libwebp/src/utils/color_cache_utils.c:31,1
    - Dst: assert
      Src: /src/libwebp/src/utils/color_cache_utils.c:33,1
    - Dst: assert
      Src: /src/libwebp/src/utils/color_cache_utils.c:34,1
    - Dst: WEBP_SELF_ASSIGN
      Src: /src/libwebp/src/utils/color_cache_utils.c:37,1
    - Dst: WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
      Src: /src/libwebp/src/utils/color_cache_utils.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - color_cache
    - hash_bits
    argTypes:
    - VP8LColorCache*
    - int
    assertStmts:
    - condition: (hash_bits > 0)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/libwebp/src/utils/color_cache_utils.c
    - condition: (color_cache != NULL)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/libwebp/src/utils/color_cache_utils.c
    constantsTouched: []
    func_position:
      end: 45
      start: 24
    functionDepth: 5
    functionLinenumber: 24
    functionLinenumberEnd: 45
    functionName: VP8LColorCacheInit
    functionSourceFile: /src/libwebp/src/utils/color_cache_utils.c
    functionUses: 8
    functionsReached:
    - assert
    - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
    - WEBP_SELF_ASSIGN
    - WebPSafeCalloc
    linkageType: ''
    returnType: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI
    signature: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI VP8LColorCacheInit(VP8LColorCache*
      const color_cache, int hash_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPSafeFree
      Src: /src/libwebp/src/utils/color_cache_utils.c:49,1
    - Dst: WEBP_SELF_ASSIGN
      Src: /src/libwebp/src/utils/color_cache_utils.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - color_cache
    argTypes:
    - VP8LColorCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: VP8LColorCacheClear
    functionSourceFile: /src/libwebp/src/utils/color_cache_utils.c
    functionUses: 7
    functionsReached:
    - WEBP_SELF_ASSIGN
    - WebPSafeFree
    linkageType: ''
    returnType: void
    signature: void VP8LColorCacheClear(VP8LColorCache* const color_cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/src/utils/color_cache_utils.c:57,1
    - Dst: assert
      Src: /src/libwebp/src/utils/color_cache_utils.c:58,1
    - Dst: assert
      Src: /src/libwebp/src/utils/color_cache_utils.c:59,1
    - Dst: WEBP_UNSAFE_MEMCPY
      Src: /src/libwebp/src/utils/color_cache_utils.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - VP8LColorCache*
    - VP8LColorCache*
    assertStmts:
    - condition: (src != NULL)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/libwebp/src/utils/color_cache_utils.c
    - condition: (dst != NULL)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/libwebp/src/utils/color_cache_utils.c
    - condition: (src->hash_bits == dst->hash_bits)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/libwebp/src/utils/color_cache_utils.c
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: VP8LColorCacheCopy
    functionSourceFile: /src/libwebp/src/utils/color_cache_utils.c
    functionUses: 2
    functionsReached:
    - assert
    - WEBP_UNSAFE_MEMCPY
    linkageType: ''
    returnType: void
    signature: "void VP8LColorCacheCopy(const VP8LColorCache* const src,\n                        VP8LColorCache*
      const dst)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:35,1
    - Dst: pow
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:51,1
    - Dst: pow
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (GAMMA_TO_LINEAR_BITS <= 16)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    constantsTouched: []
    func_position:
      end: 78
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 78
    functionName: SharpYuvInitGammaTables
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - assert
    - pow
    linkageType: ''
    returnType: void
    signature: void SharpYuvInitGammaTables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - shift
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Shift
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Shift(int v, int shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Shift
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:87,1
    - Dst: Shift
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:91,1
    - Dst: Shift
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - v
    - tab
    - tab_pos_shift_right
    - tab_value_shift
    argTypes:
    - int
    - uint32_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 99
    functionName: FixedPointInterpolation
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Shift
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE FixedPointInterpolation(int v, uint32_t* tab,\n                                                    int
      tab_pos_shift_right,\n                                                    int
      tab_value_shift)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:103,1
    - Dst: FixedPointInterpolation
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - v
    - bit_depth
    argTypes:
    - uint16_t
    - int
    assertStmts:
    - condition: (v <= ((1 << bit_depth) - 1))
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: ToLinearSrgb
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - assert
    - FixedPointInterpolation
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ToLinearSrgb(uint16_t v, int bit_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:111,1
    - Dst: FixedPointInterpolation
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - bit_depth
    argTypes:
    - uint32_t
    - int
    assertStmts:
    - condition: (value <= (1 << GAMMA_TO_LINEAR_BITS))
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: FromLinearSrgb
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - assert
    - FixedPointInterpolation
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t FromLinearSrgb(uint32_t value, int bit_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - low
    - ','
    - high
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: CLAMP
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLAMP(x, low, high)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: MIN
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: MAX
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(a, b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ceil
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:127,1
    - Dst: floor
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: Roundf
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - ceil
    - floor
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Roundf(float x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pow
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - base
    - exp
    argTypes:
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: Powf
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - pow
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Powf(float base, float exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log10
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Log10f
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - log10
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Log10f(float x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - gamma
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: ToLinear709
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    linkageType: ''
    returnType: float
    signature: float ToLinear709(float gamma)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - linear
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: FromLinear709
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    linkageType: ''
    returnType: float
    signature: float FromLinear709(float linear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:162,1
    - Dst: CLAMP
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gamma
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: ToLinear470M
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    - CLAMP
    linkageType: ''
    returnType: float
    signature: float ToLinear470M(float gamma)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:166,1
    - Dst: CLAMP
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - linear
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: FromLinear470M
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    - CLAMP
    linkageType: ''
    returnType: float
    signature: float FromLinear470M(float linear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:170,1
    - Dst: CLAMP
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gamma
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: ToLinear470Bg
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    - CLAMP
    linkageType: ''
    returnType: float
    signature: float ToLinear470Bg(float gamma)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:174,1
    - Dst: CLAMP
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - linear
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: FromLinear470Bg
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    - CLAMP
    linkageType: ''
    returnType: float
    signature: float FromLinear470Bg(float linear)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - gamma
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: ToLinearSmpte240
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    linkageType: ''
    returnType: float
    signature: float ToLinearSmpte240(float gamma)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - linear
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 197
    functionName: FromLinearSmpte240
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    linkageType: ''
    returnType: float
    signature: float FromLinearSmpte240(float linear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:203,1
    - Dst: MIN
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gamma
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: ToLinearLog100
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    - MIN
    linkageType: ''
    returnType: float
    signature: float ToLinearLog100(float gamma)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log10f
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:207,1
    - Dst: MIN
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - linear
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: FromLinearLog100
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Log10f
    - MIN
    linkageType: ''
    returnType: float
    signature: float FromLinearLog100(float linear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:214,1
    - Dst: MIN
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gamma
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: ToLinearLog100Sqrt10
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    - MIN
    linkageType: ''
    returnType: float
    signature: float ToLinearLog100Sqrt10(float gamma)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log10f
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:219,1
    - Dst: MIN
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - linear
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: FromLinearLog100Sqrt10
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Log10f
    - MIN
    linkageType: ''
    returnType: float
    signature: float FromLinearLog100Sqrt10(float linear)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:224,1
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - gamma
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 229
    functionName: ToLinearIec61966
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    linkageType: ''
    returnType: float
    signature: float ToLinearIec61966(float gamma)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:233,1
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - linear
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: FromLinearIec61966
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    linkageType: ''
    returnType: float
    signature: float FromLinearIec61966(float linear)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:244,1
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:249,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - gamma
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 252
    functionName: ToLinearBt1361
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    linkageType: ''
    returnType: float
    signature: float ToLinearBt1361(float gamma)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:258,1
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - linear
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 265
    functionName: FromLinearBt1361
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    linkageType: ''
    returnType: float
    signature: float FromLinearBt1361(float linear)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:269,1
    - Dst: MAX
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:270,1
    - Dst: MAX
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:271,1
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - gamma
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 275
    functionName: ToLinearPq
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    - MAX
    linkageType: ''
    returnType: float
    signature: float ToLinearPq(float gamma)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:279,1
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - linear
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 285
    functionName: FromLinearPq
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    linkageType: ''
    returnType: float
    signature: float FromLinearPq(float linear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:288,1
    - Dst: MAX
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gamma
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: ToLinearSmpte428
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    - MAX
    linkageType: ''
    returnType: float
    signature: float ToLinearSmpte428(float gamma)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:292,1
    - Dst: MAX
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - linear
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: FromLinearSmpte428
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    - MAX
    linkageType: ''
    returnType: float
    signature: float FromLinearSmpte428(float linear)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:300,1
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:302,1
    - Dst: expf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - gamma
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 304
    functionName: ToLinearHlg
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    - expf
    linkageType: ''
    returnType: float
    signature: float ToLinearHlg(float gamma)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Powf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:307,1
    - Dst: sqrtf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:311,1
    - Dst: logf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - linear
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 314
    functionName: FromLinearHlg
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - Powf
    - sqrtf
    - logf
    linkageType: ''
    returnType: float
    signature: float FromLinearHlg(float linear)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ToLinearSrgb
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:320,1
    - Dst: ToLinear709
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:328,1
    - Dst: ToLinear470M
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:331,1
    - Dst: ToLinear470Bg
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:334,1
    - Dst: ToLinearSmpte240
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:337,1
    - Dst: ToLinearLog100
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:342,1
    - Dst: ToLinearLog100Sqrt10
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:345,1
    - Dst: ToLinearIec61966
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:348,1
    - Dst: ToLinearBt1361
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:351,1
    - Dst: ToLinearPq
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:354,1
    - Dst: ToLinearSmpte428
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:357,1
    - Dst: ToLinearHlg
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:360,1
    - Dst: assert
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:363,1
    - Dst: Roundf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:367,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 3
    argNames:
    - v
    - bit_depth
    - transfer_type
    argTypes:
    - uint16_t
    - int
    - SharpYuvTransferFunctionType
    assertStmts:
    - condition: (0)
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    constantsTouched: []
    func_position:
      end: 368
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 368
    functionName: SharpYuvGammaToLinear
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - ToLinear709
    - ToLinear470Bg
    - ToLinearSmpte240
    - ToLinearSmpte428
    - ToLinearHlg
    - assert
    - ToLinearIec61966
    - ToLinearLog100
    - ToLinearSrgb
    - ToLinearLog100Sqrt10
    - ToLinearPq
    - Roundf
    - ToLinearBt1361
    - ToLinear470M
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t SharpYuvGammaToLinear(uint16_t v, int bit_depth,\n                               SharpYuvTransferFunctionType
      transfer_type)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FromLinearSrgb
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:374,1
    - Dst: FromLinear709
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:382,1
    - Dst: FromLinear470M
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:385,1
    - Dst: FromLinear470Bg
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:388,1
    - Dst: FromLinearSmpte240
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:391,1
    - Dst: FromLinearLog100
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:396,1
    - Dst: FromLinearLog100Sqrt10
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:399,1
    - Dst: FromLinearIec61966
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:402,1
    - Dst: FromLinearBt1361
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:405,1
    - Dst: FromLinearPq
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:408,1
    - Dst: FromLinearSmpte428
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:411,1
    - Dst: FromLinearHlg
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:414,1
    - Dst: assert
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:417,1
    - Dst: Roundf
      Src: /src/libwebp/sharpyuv/sharpyuv_gamma.c:421,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 3
    argNames:
    - v
    - bit_depth
    - transfer_type
    argTypes:
    - uint32_t
    - int
    - SharpYuvTransferFunctionType
    assertStmts:
    - condition: (0)
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    constantsTouched: []
    func_position:
      end: 422
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 422
    functionName: SharpYuvLinearToGamma
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_gamma.c
    functionUses: 0
    functionsReached:
    - FromLinearPq
    - FromLinearSmpte240
    - FromLinearSmpte428
    - assert
    - FromLinearIec61966
    - FromLinearBt1361
    - FromLinearHlg
    - FromLinear709
    - FromLinearSrgb
    - FromLinear470M
    - Roundf
    - FromLinearLog100Sqrt10
    - FromLinear470Bg
    - FromLinearLog100
    linkageType: ''
    returnType: uint16_t
    signature: "uint16_t SharpYuvLinearToGamma(uint32_t v, int bit_depth,\n                               SharpYuvTransferFunctionType
      transfer_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - max
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: clip
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_dsp.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t clip(int v, int max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clip
      Src: /src/libwebp/sharpyuv/sharpyuv_dsp.c:38,1
    - Dst: abs
      Src: /src/libwebp/sharpyuv/sharpyuv_dsp.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ref
    - src
    - dst
    - len
    - bit_depth
    argTypes:
    - uint16_t*
    - uint16_t*
    - uint16_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: SharpYuvUpdateY_C
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_dsp.c
    functionUses: 0
    functionsReached:
    - clip
    - abs
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t SharpYuvUpdateY_C(const uint16_t* ref, const uint16_t* src,\n
      \                                 uint16_t* dst, int len, int bit_depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ref
    - src
    - dst
    - len
    argTypes:
    - int16_t*
    - int16_t*
    - int16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: SharpYuvUpdateRGB_C
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_dsp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SharpYuvUpdateRGB_C(const int16_t* ref, const int16_t* src,\n
      \                               int16_t* dst, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clip
      Src: /src/libwebp/sharpyuv/sharpyuv_dsp.c:61,1
    - Dst: clip
      Src: /src/libwebp/sharpyuv/sharpyuv_dsp.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - A
    - B
    - len
    - best_y
    - out
    - bit_depth
    argTypes:
    - int16_t*
    - int16_t*
    - int
    - uint16_t*
    - uint16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: SharpYuvFilterRow_C
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_dsp.c
    functionUses: 0
    functionsReached:
    - clip
    linkageType: ''
    returnType: void
    signature: "void SharpYuvFilterRow_C(const int16_t* A, const int16_t* B, int len,\n
      \                               const uint16_t* best_y, uint16_t* out,\n                                int
      bit_depth)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SharpYuvGetCPUInfo
      Src: /src/libwebp/sharpyuv/sharpyuv_dsp.c:89,1
    - Dst: InitSharpYuvSSE2
      Src: /src/libwebp/sharpyuv/sharpyuv_dsp.c:90,1
    - Dst: SharpYuvGetCPUInfo
      Src: /src/libwebp/sharpyuv/sharpyuv_dsp.c:97,1
    - Dst: InitSharpYuvNEON
      Src: /src/libwebp/sharpyuv/sharpyuv_dsp.c:98,1
    - Dst: assert
      Src: /src/libwebp/sharpyuv/sharpyuv_dsp.c:102,1
    - Dst: assert
      Src: /src/libwebp/sharpyuv/sharpyuv_dsp.c:103,1
    - Dst: assert
      Src: /src/libwebp/sharpyuv/sharpyuv_dsp.c:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (SharpYuvUpdateY != NULL)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/libwebp/sharpyuv/sharpyuv_dsp.c
    - condition: (SharpYuvUpdateRGB != NULL)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/libwebp/sharpyuv/sharpyuv_dsp.c
    - condition: (SharpYuvFilterRow != NULL)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/libwebp/sharpyuv/sharpyuv_dsp.c
    constantsTouched: []
    func_position:
      end: 105
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 105
    functionName: SharpYuvInitDsp
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_dsp.c
    functionUses: 0
    functionsReached:
    - InitSharpYuvSSE2
    - assert
    - InitSharpYuvNEON
    - SharpYuvGetCPUInfo
    linkageType: ''
    returnType: void
    signature: void SharpYuvInitDsp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: SharpYuvGetVersion
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SharpYuvGetVersion(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rgb_bit_depth
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: GetPrecisionShift
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetPrecisionShift(int rgb_bit_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - fixed_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: clip_8b
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t clip_8b(fixed_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - max
    argTypes:
    - fixed_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: clip
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t clip(fixed_t v, int max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - y
    - bit_depth
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: clip_bit_depth
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fixed_y_t
    signature: fixed_y_t clip_bit_depth(int y, int bit_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - g
    - b
    argTypes:
    - int64_t
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: RGBToGray
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RGBToGray(int64_t r, int64_t g, int64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SharpYuvGammaToLinear
      Src: /src/libwebp/sharpyuv/sharpyuv.c:78,1
    - Dst: SharpYuvGammaToLinear
      Src: /src/libwebp/sharpyuv/sharpyuv.c:79,1
    - Dst: SharpYuvGammaToLinear
      Src: /src/libwebp/sharpyuv/sharpyuv.c:80,1
    - Dst: SharpYuvGammaToLinear
      Src: /src/libwebp/sharpyuv/sharpyuv.c:81,1
    - Dst: SharpYuvLinearToGamma
      Src: /src/libwebp/sharpyuv/sharpyuv.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - a
    - b
    - c
    - d
    - bit_depth
    - transfer_type
    argTypes:
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - int
    - SharpYuvTransferFunctionType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: ScaleDown
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 0
    functionsReached:
    - SharpYuvGammaToLinear
    - SharpYuvLinearToGamma
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t ScaleDown(uint16_t a, uint16_t b, uint16_t c, uint16_t d,\n
      \                         int bit_depth,\n                          SharpYuvTransferFunctionType
      transfer_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SharpYuvGammaToLinear
      Src: /src/libwebp/sharpyuv/sharpyuv.c:92,1
    - Dst: SharpYuvGammaToLinear
      Src: /src/libwebp/sharpyuv/sharpyuv.c:94,1
    - Dst: SharpYuvGammaToLinear
      Src: /src/libwebp/sharpyuv/sharpyuv.c:96,1
    - Dst: RGBToGray
      Src: /src/libwebp/sharpyuv/sharpyuv.c:97,1
    - Dst: SharpYuvLinearToGamma
      Src: /src/libwebp/sharpyuv/sharpyuv.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - src
    - dst
    - w
    - bit_depth
    - transfer_type
    argTypes:
    - fixed_y_t*
    - fixed_y_t*
    - int
    - int
    - SharpYuvTransferFunctionType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: UpdateW
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 0
    functionsReached:
    - SharpYuvGammaToLinear
    - SharpYuvLinearToGamma
    - RGBToGray
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE UpdateW(const fixed_y_t* src, fixed_y_t* dst, int w,\n
      \                               int bit_depth,\n                                SharpYuvTransferFunctionType
      transfer_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ScaleDown
      Src: /src/libwebp/sharpyuv/sharpyuv.c:108,1
    - Dst: ScaleDown
      Src: /src/libwebp/sharpyuv/sharpyuv.c:111,1
    - Dst: ScaleDown
      Src: /src/libwebp/sharpyuv/sharpyuv.c:114,1
    - Dst: RGBToGray
      Src: /src/libwebp/sharpyuv/sharpyuv.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - src1
    - src2
    - dst
    - uv_w
    - bit_depth
    - transfer_type
    argTypes:
    - fixed_y_t*
    - fixed_y_t*
    - fixed_t*
    - int
    - int
    - SharpYuvTransferFunctionType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 102
    functionDepth: 4
    functionLinenumber: 102
    functionLinenumberEnd: 124
    functionName: UpdateChroma
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 0
    functionsReached:
    - ScaleDown
    - RGBToGray
    linkageType: ''
    returnType: void
    signature: "void UpdateChroma(const fixed_y_t* src1, const fixed_y_t* src2,\n
      \                        fixed_t* dst, int uv_w, int bit_depth,\n                         SharpYuvTransferFunctionType
      transfer_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/sharpyuv/sharpyuv.c:128,1
    - Dst: RGBToGray
      Src: /src/libwebp/sharpyuv/sharpyuv.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - rgb
    - y
    - w
    argTypes:
    - fixed_y_t*
    - fixed_y_t*
    - int
    assertStmts:
    - condition: (w > 0)
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/libwebp/sharpyuv/sharpyuv.c
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: StoreGray
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 0
    functionsReached:
    - assert
    - RGBToGray
    linkageType: ''
    returnType: void
    signature: void StoreGray(const fixed_y_t* rgb, fixed_y_t* y, int w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clip_bit_depth
      Src: /src/libwebp/sharpyuv/sharpyuv.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - A
    - B
    - W0
    - bit_depth
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: Filter2
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 0
    functionsReached:
    - clip_bit_depth
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Filter2(int A, int B, int W0, int bit_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - shift
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: Shift
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE Shift(int v, int shift)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetPrecisionShift
      Src: /src/libwebp/sharpyuv/sharpyuv.c:155,1
    - Dst: Shift
      Src: /src/libwebp/sharpyuv/sharpyuv.c:162,1
    - Dst: Shift
      Src: /src/libwebp/sharpyuv/sharpyuv.c:163,1
    - Dst: Shift
      Src: /src/libwebp/sharpyuv/sharpyuv.c:164,1
    - Dst: Shift
      Src: /src/libwebp/sharpyuv/sharpyuv.c:172,1
    - Dst: Shift
      Src: /src/libwebp/sharpyuv/sharpyuv.c:173,1
    - Dst: Shift
      Src: /src/libwebp/sharpyuv/sharpyuv.c:174,1
    - Dst: Shift
      Src: /src/libwebp/sharpyuv/sharpyuv.c:182,1
    - Dst: Shift
      Src: /src/libwebp/sharpyuv/sharpyuv.c:183,1
    - Dst: Shift
      Src: /src/libwebp/sharpyuv/sharpyuv.c:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 7
    argNames:
    - r_ptr
    - g_ptr
    - b_ptr
    - rgb_step
    - rgb_bit_depth
    - pic_width
    - dst
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - fixed_y_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 193
    functionName: ImportOneRow
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 0
    functionsReached:
    - GetPrecisionShift
    - Shift
    linkageType: ''
    returnType: void
    signature: "void ImportOneRow(const uint8_t* const r_ptr, const uint8_t* const
      g_ptr,\n                         const uint8_t* const b_ptr, int rgb_step,\n
      \                        int rgb_bit_depth, int pic_width,\n                         fixed_y_t*
      const dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Filter2
      Src: /src/libwebp/sharpyuv/sharpyuv.c:204,1
    - Dst: Filter2
      Src: /src/libwebp/sharpyuv/sharpyuv.c:205,1
    - Dst: SharpYuvFilterRow
      Src: /src/libwebp/sharpyuv/sharpyuv.c:207,1
    - Dst: SharpYuvFilterRow
      Src: /src/libwebp/sharpyuv/sharpyuv.c:209,1
    - Dst: Filter2
      Src: /src/libwebp/sharpyuv/sharpyuv.c:214,1
    - Dst: Filter2
      Src: /src/libwebp/sharpyuv/sharpyuv.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 8
    argNames:
    - best_y
    - prev_uv
    - cur_uv
    - next_uv
    - w
    - out1
    - out2
    - bit_depth
    argTypes:
    - fixed_y_t*
    - fixed_t*
    - fixed_t*
    - fixed_t*
    - int
    - fixed_y_t*
    - fixed_y_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 225
    functionName: InterpolateTwoRows
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 0
    functionsReached:
    - SharpYuvFilterRow
    - Filter2
    linkageType: ''
    returnType: void
    signature: "void InterpolateTwoRows(const fixed_y_t* const best_y,\n                               const
      fixed_t* prev_uv, const fixed_t* cur_uv,\n                               const
      fixed_t* next_uv, int w, fixed_y_t* out1,\n                               fixed_y_t*
      out2, int bit_depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - r
    - g
    - b
    - coeffs
    - sfix
    argTypes:
    - int
    - int
    - int
    - int[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 233
    functionName: RGBToYUVComponent
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE RGBToYUVComponent(int r, int g, int b,\n                                         const
      int coeffs[4], int sfix)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetPrecisionShift
      Src: /src/libwebp/sharpyuv/sharpyuv.c:247,1
    - Dst: RGBToYUVComponent
      Src: /src/libwebp/sharpyuv/sharpyuv.c:260,1
    - Dst: clip_8b
      Src: /src/libwebp/sharpyuv/sharpyuv.c:262,1
    - Dst: clip
      Src: /src/libwebp/sharpyuv/sharpyuv.c:264,1
    - Dst: RGBToYUVComponent
      Src: /src/libwebp/sharpyuv/sharpyuv.c:282,1
    - Dst: RGBToYUVComponent
      Src: /src/libwebp/sharpyuv/sharpyuv.c:283,1
    - Dst: clip_8b
      Src: /src/libwebp/sharpyuv/sharpyuv.c:285,1
    - Dst: clip_8b
      Src: /src/libwebp/sharpyuv/sharpyuv.c:286,1
    - Dst: clip
      Src: /src/libwebp/sharpyuv/sharpyuv.c:288,1
    - Dst: clip
      Src: /src/libwebp/sharpyuv/sharpyuv.c:289,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 13
    argNames:
    - best_y
    - best_uv
    - y_ptr
    - y_stride
    - u_ptr
    - u_stride
    - v_ptr
    - v_stride
    - rgb_bit_depth
    - yuv_bit_depth
    - width
    - height
    - yuv_matrix
    argTypes:
    - fixed_y_t*
    - fixed_t*
    - uint8_t*
    - int
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    - SharpYuvConversionMatrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 297
    functionName: ConvertWRGBToYUV
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 0
    functionsReached:
    - RGBToYUVComponent
    - clip
    - GetPrecisionShift
    - clip_8b
    linkageType: ''
    returnType: int
    signature: "int ConvertWRGBToYUV(const fixed_y_t* best_y, const fixed_t* best_uv,\n
      \                           uint8_t* y_ptr, int y_stride, uint8_t* u_ptr,\n
      \                           int u_stride, uint8_t* v_ptr, int v_stride,\n                            int
      rgb_bit_depth, int yuv_bit_depth, int width,\n                            int
      height,\n                            const SharpYuvConversionMatrix* yuv_matrix)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libwebp/sharpyuv/sharpyuv.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 306
    functionName: SafeMalloc
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 58
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void * SafeMalloc(uint64_t nmemb, size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GetPrecisionShift
      Src: /src/libwebp/sharpyuv/sharpyuv.c:321,1
    - Dst: SafeMalloc
      Src: /src/libwebp/sharpyuv/sharpyuv.c:332,1
    - Dst: assert
      Src: /src/libwebp/sharpyuv/sharpyuv.c:343,1
    - Dst: assert
      Src: /src/libwebp/sharpyuv/sharpyuv.c:344,1
    - Dst: assert
      Src: /src/libwebp/sharpyuv/sharpyuv.c:345,1
    - Dst: ImportOneRow
      Src: /src/libwebp/sharpyuv/sharpyuv.c:369,1
    - Dst: ImportOneRow
      Src: /src/libwebp/sharpyuv/sharpyuv.c:371,1
    - Dst: memcpy
      Src: /src/libwebp/sharpyuv/sharpyuv.c:374,1
    - Dst: StoreGray
      Src: /src/libwebp/sharpyuv/sharpyuv.c:376,1
    - Dst: StoreGray
      Src: /src/libwebp/sharpyuv/sharpyuv.c:377,1
    - Dst: UpdateW
      Src: /src/libwebp/sharpyuv/sharpyuv.c:379,1
    - Dst: UpdateW
      Src: /src/libwebp/sharpyuv/sharpyuv.c:380,1
    - Dst: UpdateChroma
      Src: /src/libwebp/sharpyuv/sharpyuv.c:381,1
    - Dst: memcpy
      Src: /src/libwebp/sharpyuv/sharpyuv.c:382,1
    - Dst: InterpolateTwoRows
      Src: /src/libwebp/sharpyuv/sharpyuv.c:408,1
    - Dst: UpdateW
      Src: /src/libwebp/sharpyuv/sharpyuv.c:414,1
    - Dst: UpdateW
      Src: /src/libwebp/sharpyuv/sharpyuv.c:415,1
    - Dst: UpdateChroma
      Src: /src/libwebp/sharpyuv/sharpyuv.c:416,1
    - Dst: SharpYuvUpdateY
      Src: /src/libwebp/sharpyuv/sharpyuv.c:420,1
    - Dst: SharpYuvUpdateRGB
      Src: /src/libwebp/sharpyuv/sharpyuv.c:421,1
    - Dst: ConvertWRGBToYUV
      Src: /src/libwebp/sharpyuv/sharpyuv.c:438,1
    - Dst: free
      Src: /src/libwebp/sharpyuv/sharpyuv.c:443,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 75
    argCount: 17
    argNames:
    - r_ptr
    - g_ptr
    - b_ptr
    - rgb_step
    - rgb_stride
    - rgb_bit_depth
    - y_ptr
    - y_stride
    - u_ptr
    - u_stride
    - v_ptr
    - v_stride
    - yuv_bit_depth
    - width
    - height
    - yuv_matrix
    - transfer_type
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - uint8_t*
    - int
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int
    - int
    - int
    - SharpYuvConversionMatrix*
    - SharpYuvTransferFunctionType
    assertStmts:
    - condition: (w > 0)
      pos:
        line_end: 342
        line_start: 342
        source_file: /src/libwebp/sharpyuv/sharpyuv.c
    - condition: (h > 0)
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/libwebp/sharpyuv/sharpyuv.c
    - condition: (sizeof(fixed_y_t) == sizeof(fixed_t))
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/libwebp/sharpyuv/sharpyuv.c
    constantsTouched: []
    func_position:
      end: 445
      start: 308
    functionDepth: 5
    functionLinenumber: 308
    functionLinenumberEnd: 445
    functionName: DoSharpArgbToYuv
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 0
    functionsReached:
    - StoreGray
    - ConvertWRGBToYUV
    - SharpYuvUpdateRGB
    - assert
    - SafeMalloc
    - memcpy
    - SharpYuvUpdateY
    - InterpolateTwoRows
    - ImportOneRow
    - free
    - UpdateW
    - UpdateChroma
    - GetPrecisionShift
    linkageType: ''
    returnType: int
    signature: "int DoSharpArgbToYuv(const uint8_t* r_ptr, const uint8_t* g_ptr,\n
      \                           const uint8_t* b_ptr, int rgb_step, int rgb_stride,\n
      \                           int rgb_bit_depth, uint8_t* y_ptr, int y_stride,\n
      \                           uint8_t* u_ptr, int u_stride, uint8_t* v_ptr,\n
      \                           int v_stride, int yuv_bit_depth, int width,\n                            int
      height,\n                            const SharpYuvConversionMatrix* yuv_matrix,\n
      \                           SharpYuvTransferFunctionType transfer_type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SharpYuvInitDsp
      Src: /src/libwebp/sharpyuv/sharpyuv.c:484,1
    - Dst: SharpYuvInitGammaTables
      Src: /src/libwebp/sharpyuv/sharpyuv.c:485,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - cpu_info_func
    argTypes:
    - VP8CPUInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 489
    functionName: SharpYuvInit
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 1
    functionsReached:
    - SharpYuvInitGammaTables
    - SharpYuvInitDsp
    linkageType: ''
    returnType: void
    signature: void SharpYuvInit(VP8CPUInfo cpu_info_func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SharpYuvConvertWithOptions
      Src: /src/libwebp/sharpyuv/sharpyuv.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 16
    argNames:
    - r_ptr
    - g_ptr
    - b_ptr
    - rgb_step
    - rgb_stride
    - rgb_bit_depth
    - y_ptr
    - y_stride
    - u_ptr
    - u_stride
    - v_ptr
    - v_stride
    - yuv_bit_depth
    - width
    - height
    - yuv_matrix
    argTypes:
    - void*
    - void*
    - void*
    - int
    - int
    - int
    - void*
    - int
    - void*
    - int
    - void*
    - int
    - int
    - int
    - int
    - SharpYuvConversionMatrix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 502
    functionName: SharpYuvConvert
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 1
    functionsReached:
    - SharpYuvConvertWithOptions
    linkageType: ''
    returnType: int
    signature: "int SharpYuvConvert(const void* r_ptr, const void* g_ptr, const void*
      b_ptr,\n                    int rgb_step, int rgb_stride, int rgb_bit_depth,\n
      \                   void* y_ptr, int y_stride, void* u_ptr, int u_stride,\n
      \                   void* v_ptr, int v_stride, int yuv_bit_depth, int width,\n
      \                   int height, const SharpYuvConversionMatrix* yuv_matrix)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 3
    argNames:
    - yuv_matrix
    - options
    - version
    argTypes:
    - SharpYuvConversionMatrix*
    - SharpYuvOptions*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 517
    functionName: SharpYuvOptionsInitInternal
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SharpYuvOptionsInitInternal(const SharpYuvConversionMatrix* yuv_matrix,\n
      \                               SharpYuvOptions* options, int version)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GetPrecisionShift
      Src: /src/libwebp/sharpyuv/sharpyuv.c:531,1
    - Dst: SharpYuvInit
      Src: /src/libwebp/sharpyuv/sharpyuv.c:584,1
    - Dst: memcpy
      Src: /src/libwebp/sharpyuv/sharpyuv.c:589,1
    - Dst: Shift
      Src: /src/libwebp/sharpyuv/sharpyuv.c:602,1
    - Dst: Shift
      Src: /src/libwebp/sharpyuv/sharpyuv.c:603,1
    - Dst: Shift
      Src: /src/libwebp/sharpyuv/sharpyuv.c:604,1
    - Dst: DoSharpArgbToYuv
      Src: /src/libwebp/sharpyuv/sharpyuv.c:606,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 40
    argCount: 16
    argNames:
    - r_ptr
    - g_ptr
    - b_ptr
    - rgb_step
    - rgb_stride
    - rgb_bit_depth
    - y_ptr
    - y_stride
    - u_ptr
    - u_stride
    - v_ptr
    - v_stride
    - yuv_bit_depth
    - width
    - height
    - options
    argTypes:
    - void*
    - void*
    - void*
    - int
    - int
    - int
    - void*
    - int
    - void*
    - int
    - void*
    - int
    - int
    - int
    - int
    - SharpYuvOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 519
    functionDepth: 6
    functionLinenumber: 519
    functionLinenumberEnd: 611
    functionName: SharpYuvConvertWithOptions
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.c
    functionUses: 5
    functionsReached:
    - memcpy
    - SharpYuvInit
    - DoSharpArgbToYuv
    - GetPrecisionShift
    - Shift
    linkageType: ''
    returnType: int
    signature: "int SharpYuvConvertWithOptions(const void* r_ptr, const void* g_ptr,\n
      \                              const void* b_ptr, int rgb_step, int rgb_stride,\n
      \                              int rgb_bit_depth, void* y_ptr, int y_stride,\n
      \                              void* u_ptr, int u_stride, void* v_ptr,\n                               int
      v_stride, int yuv_bit_depth, int width,\n                               int
      height, const SharpYuvOptions* options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - max
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: clip_SSE2
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_sse2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t clip_SSE2(int v, int max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:33,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:34,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:35,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:39,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:40,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:41,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:42,1
    - Dst: _mm_cmpgt_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:43,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:44,1
    - Dst: _mm_or_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:45,1
    - Dst: _mm_max_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:46,1
    - Dst: _mm_min_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:46,1
    - Dst: _mm_madd_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:47,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:48,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:49,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:51,1
    - Dst: clip_SSE2
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:56,1
    - Dst: abs
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ref
    - src
    - dst
    - len
    - bit_depth
    argTypes:
    - uint16_t*
    - uint16_t*
    - uint16_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 60
    functionName: SharpYuvUpdateY_SSE2
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_cmpgt_epi16
    - _mm_set1_epi16
    - abs
    - _mm_setzero_si128
    - _mm_max_epi16
    - _mm_madd_epi16
    - _mm_storeu_si128
    - _mm_add_epi16
    - _mm_sub_epi16
    - _mm_loadu_si128
    - _mm_add_epi32
    - clip_SSE2
    - _mm_min_epi16
    - _mm_or_si128
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t SharpYuvUpdateY_SSE2(const uint16_t* ref, const uint16_t*
      src,\n                                     uint16_t* dst, int len, int bit_depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:66,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:67,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:68,1
    - Dst: _mm_sub_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:69,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:70,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ref
    - src
    - dst
    - len
    argTypes:
    - int16_t*
    - int16_t*
    - int16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 77
    functionName: SharpYuvUpdateRGB_SSE2
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_storeu_si128
    - _mm_loadu_si128
    - _mm_add_epi16
    - _mm_sub_epi16
    linkageType: ''
    returnType: void
    signature: "void SharpYuvUpdateRGB_SSE2(const int16_t* ref, const int16_t* src,\n
      \                                  int16_t* dst, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:84,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:85,1
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:86,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:88,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:89,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:90,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:91,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:92,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:93,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:94,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:95,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:96,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:97,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:98,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:98,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:99,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:99,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:100,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:101,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:102,1
    - Dst: _mm_srai_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:103,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:104,1
    - Dst: _mm_unpackhi_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:105,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:106,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:107,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:108,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:109,1
    - Dst: _mm_max_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:110,1
    - Dst: _mm_min_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:110,1
    - Dst: _mm_max_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:111,1
    - Dst: _mm_min_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:111,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:112,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:113,1
    - Dst: clip_SSE2
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:124,1
    - Dst: clip_SSE2
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - A
    - B
    - len
    - best_y
    - out
    - bit_depth
    argTypes:
    - int16_t*
    - int16_t*
    - int
    - uint16_t*
    - uint16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 127
    functionName: SharpYuvFilterRow16_SSE2
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi16
    - _mm_setzero_si128
    - _mm_max_epi16
    - _mm_storeu_si128
    - _mm_add_epi16
    - clip_SSE2
    - _mm_srai_epi16
    - _mm_loadu_si128
    - _mm_unpackhi_epi16
    - _mm_unpacklo_epi16
    - _mm_min_epi16
    linkageType: ''
    returnType: void
    signature: "void SharpYuvFilterRow16_SSE2(const int16_t* A, const int16_t* B,\n
      \                                    int len, const uint16_t* best_y,\n                                     uint16_t*
      out, int bit_depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_srai_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:130,1
    - Dst: _mm_unpacklo_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - __m128i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: s16_to_s32
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_srai_epi32
    - _mm_unpacklo_epi16
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE s16_to_s32(__m128i in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:138,1
    - Dst: _mm_set1_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:139,1
    - Dst: _mm_setzero_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:140,1
    - Dst: s16_to_s32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:142,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:142,1
    - Dst: s16_to_s32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:143,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:143,1
    - Dst: s16_to_s32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:144,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:144,1
    - Dst: s16_to_s32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:145,1
    - Dst: _mm_loadl_epi64
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:145,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:146,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:147,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:148,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:149,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:150,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:151,1
    - Dst: _mm_srai_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:152,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:152,1
    - Dst: _mm_srai_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:153,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:153,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:154,1
    - Dst: _mm_add_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:155,1
    - Dst: _mm_srai_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:156,1
    - Dst: _mm_srai_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:157,1
    - Dst: _mm_unpacklo_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:158,1
    - Dst: _mm_unpackhi_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:159,1
    - Dst: _mm_loadu_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:160,1
    - Dst: _mm_add_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:161,1
    - Dst: _mm_packs_epi32
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:161,1
    - Dst: _mm_max_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:162,1
    - Dst: _mm_min_epi16
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:162,1
    - Dst: _mm_storeu_si128
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:163,1
    - Dst: clip_SSE2
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:174,1
    - Dst: clip_SSE2
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - A
    - B
    - len
    - best_y
    - out
    - bit_depth
    argTypes:
    - int16_t*
    - int16_t*
    - int
    - uint16_t*
    - uint16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 177
    functionName: SharpYuvFilterRow32_SSE2
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_sse2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_set1_epi16
    - _mm_setzero_si128
    - _mm_max_epi16
    - _mm_unpackhi_epi32
    - _mm_storeu_si128
    - _mm_packs_epi32
    - _mm_unpacklo_epi32
    - _mm_add_epi16
    - _mm_srai_epi32
    - _mm_loadu_si128
    - _mm_add_epi32
    - _mm_loadl_epi64
    - s16_to_s32
    - clip_SSE2
    - _mm_min_epi16
    linkageType: ''
    returnType: void
    signature: "void SharpYuvFilterRow32_SSE2(const int16_t* A, const int16_t* B,\n
      \                                    int len, const uint16_t* best_y,\n                                     uint16_t*
      out, int bit_depth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SharpYuvFilterRow16_SSE2
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:183,1
    - Dst: SharpYuvFilterRow32_SSE2
      Src: /src/libwebp/sharpyuv/sharpyuv_sse2.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - A
    - B
    - len
    - best_y
    - out
    - bit_depth
    argTypes:
    - int16_t*
    - int16_t*
    - int
    - uint16_t*
    - uint16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: SharpYuvFilterRow_SSE2
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_sse2.c
    functionUses: 0
    functionsReached:
    - SharpYuvFilterRow16_SSE2
    - SharpYuvFilterRow32_SSE2
    linkageType: ''
    returnType: void
    signature: "void SharpYuvFilterRow_SSE2(const int16_t* A, const int16_t* B, int
      len,\n                                   const uint16_t* best_y, uint16_t* out,\n
      \                                  int bit_depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: InitSharpYuvSSE2
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_sse2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION InitSharpYuvSSE2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: InitSharpYuvSSE2
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_sse2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitSharpYuvSSE2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: floor
      Src: /src/libwebp/sharpyuv/sharpyuv_csp.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: ToFixed16
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_csp.c
    functionUses: 0
    functionsReached:
    - floor
    linkageType: ''
    returnType: int
    signature: int ToFixed16(float f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/sharpyuv/sharpyuv_csp.c:38,1
    - Dst: ToFixed16
      Src: /src/libwebp/sharpyuv/sharpyuv_csp.c:47,1
    - Dst: ToFixed16
      Src: /src/libwebp/sharpyuv/sharpyuv_csp.c:48,1
    - Dst: ToFixed16
      Src: /src/libwebp/sharpyuv/sharpyuv_csp.c:49,1
    - Dst: ToFixed16
      Src: /src/libwebp/sharpyuv/sharpyuv_csp.c:50,1
    - Dst: ToFixed16
      Src: /src/libwebp/sharpyuv/sharpyuv_csp.c:52,1
    - Dst: ToFixed16
      Src: /src/libwebp/sharpyuv/sharpyuv_csp.c:53,1
    - Dst: ToFixed16
      Src: /src/libwebp/sharpyuv/sharpyuv_csp.c:54,1
    - Dst: ToFixed16
      Src: /src/libwebp/sharpyuv/sharpyuv_csp.c:55,1
    - Dst: ToFixed16
      Src: /src/libwebp/sharpyuv/sharpyuv_csp.c:57,1
    - Dst: ToFixed16
      Src: /src/libwebp/sharpyuv/sharpyuv_csp.c:58,1
    - Dst: ToFixed16
      Src: /src/libwebp/sharpyuv/sharpyuv_csp.c:59,1
    - Dst: ToFixed16
      Src: /src/libwebp/sharpyuv/sharpyuv_csp.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - yuv_color_space
    - matrix
    argTypes:
    - SharpYuvColorSpace*
    - SharpYuvConversionMatrix*
    assertStmts:
    - condition: (yuv_color_space->bit_depth >= 8)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/libwebp/sharpyuv/sharpyuv_csp.c
    constantsTouched: []
    func_position:
      end: 61
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 61
    functionName: SharpYuvComputeConversionMatrix
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_csp.c
    functionUses: 0
    functionsReached:
    - assert
    - ToFixed16
    linkageType: ''
    returnType: void
    signature: "void SharpYuvComputeConversionMatrix(const SharpYuvColorSpace* yuv_color_space,\n
      \                                    SharpYuvConversionMatrix* matrix)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - matrix_type
    argTypes:
    - SharpYuvMatrixType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 116
    functionName: SharpYuvGetConversionMatrix
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_csp.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: SharpYuvConversionMatrix
    signature: "SharpYuvConversionMatrix * SharpYuvGetConversionMatrix(\n    SharpYuvMatrixType
      matrix_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - max
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: clip_NEON
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t clip_NEON(int v, int max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:29,1
    - Dst: vdupq_n_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:30,1
    - Dst: vdupq_n_u64
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:31,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:35,1
    - Dst: vld1q_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:35,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:36,1
    - Dst: vld1q_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:36,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:37,1
    - Dst: vld1q_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:37,1
    - Dst: vsubq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:38,1
    - Dst: vaddq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:39,1
    - Dst: vreinterpretq_u16_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:41,1
    - Dst: vmaxq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:41,1
    - Dst: vminq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:41,1
    - Dst: vabsq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:42,1
    - Dst: vst1q_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:43,1
    - Dst: vpadalq_u32
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:44,1
    - Dst: vpaddlq_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:44,1
    - Dst: vreinterpretq_u16_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:44,1
    - Dst: vgetq_lane_u64
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:46,1
    - Dst: vgetq_lane_u64
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:46,1
    - Dst: clip_NEON
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:50,1
    - Dst: abs
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - ref
    - src
    - dst
    - len
    - bit_depth
    argTypes:
    - uint16_t*
    - uint16_t*
    - uint16_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 54
    functionName: SharpYuvUpdateY_NEON
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_neon.c
    functionUses: 0
    functionsReached:
    - vdupq_n_u64
    - vst1q_u16
    - vpadalq_u32
    - vdupq_n_s16
    - vreinterpretq_s16_u16
    - vgetq_lane_u64
    - vmaxq_s16
    - vabsq_s16
    - clip_NEON
    - vminq_s16
    - vsubq_s16
    - vreinterpretq_u16_s16
    - vld1q_u16
    - abs
    - vpaddlq_u16
    - vaddq_s16
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t SharpYuvUpdateY_NEON(const uint16_t* ref, const uint16_t*
      src,\n                                     uint16_t* dst, int len, int bit_depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:60,1
    - Dst: vld1q_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:61,1
    - Dst: vld1q_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:62,1
    - Dst: vsubq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:63,1
    - Dst: vaddq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:64,1
    - Dst: vst1q_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ref
    - src
    - dst
    - len
    argTypes:
    - int16_t*
    - int16_t*
    - int16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: SharpYuvUpdateRGB_NEON
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_neon.c
    functionUses: 0
    functionsReached:
    - vst1q_s16
    - vsubq_s16
    - vld1q_s16
    - vaddq_s16
    linkageType: ''
    returnType: void
    signature: "void SharpYuvUpdateRGB_NEON(const int16_t* ref, const int16_t* src,\n
      \                                  int16_t* dst, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:78,1
    - Dst: vdupq_n_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:79,1
    - Dst: vld1q_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:81,1
    - Dst: vld1q_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:82,1
    - Dst: vld1q_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:83,1
    - Dst: vld1q_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:84,1
    - Dst: vaddq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:85,1
    - Dst: vaddq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:86,1
    - Dst: vaddq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:87,1
    - Dst: vaddq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:88,1
    - Dst: vaddq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:89,1
    - Dst: vshrq_n_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:90,1
    - Dst: vaddq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:90,1
    - Dst: vshrq_n_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:91,1
    - Dst: vaddq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:91,1
    - Dst: vrhaddq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:92,1
    - Dst: vrhaddq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:93,1
    - Dst: vzipq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:94,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:95,1
    - Dst: vld1q_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:95,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:96,1
    - Dst: vld1q_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:96,1
    - Dst: vaddq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:97,1
    - Dst: vaddq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:98,1
    - Dst: vmaxq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:99,1
    - Dst: vminq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:99,1
    - Dst: vmaxq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:100,1
    - Dst: vminq_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:100,1
    - Dst: vst1q_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:101,1
    - Dst: vreinterpretq_u16_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:101,1
    - Dst: vst1q_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:102,1
    - Dst: vreinterpretq_u16_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:102,1
    - Dst: clip_NEON
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:110,1
    - Dst: clip_NEON
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - A
    - B
    - len
    - best_y
    - out
    - bit_depth
    argTypes:
    - int16_t*
    - int16_t*
    - int
    - uint16_t*
    - uint16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 113
    functionName: SharpYuvFilterRow16_NEON
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_neon.c
    functionUses: 0
    functionsReached:
    - vst1q_u16
    - vrhaddq_s16
    - vdupq_n_s16
    - vreinterpretq_s16_u16
    - vmaxq_s16
    - vzipq_s16
    - clip_NEON
    - vminq_s16
    - vld1q_s16
    - vreinterpretq_u16_s16
    - vshrq_n_s16
    - vld1q_u16
    - vaddq_s16
    linkageType: ''
    returnType: void
    signature: "void SharpYuvFilterRow16_NEON(const int16_t* A, const int16_t* B,\n
      \                                    int len, const uint16_t* best_y,\n                                     uint16_t*
      out, int bit_depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:120,1
    - Dst: vld1_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:122,1
    - Dst: vld1_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:123,1
    - Dst: vld1_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:124,1
    - Dst: vld1_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:125,1
    - Dst: vaddl_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:126,1
    - Dst: vaddl_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:127,1
    - Dst: vaddq_s32
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:128,1
    - Dst: vaddq_s32
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:129,1
    - Dst: vaddq_s32
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:130,1
    - Dst: vshrq_n_s32
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:131,1
    - Dst: vaddq_s32
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:131,1
    - Dst: vshrq_n_s32
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:132,1
    - Dst: vaddq_s32
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:132,1
    - Dst: vrhaddq_s32
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:133,1
    - Dst: vmovl_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:133,1
    - Dst: vrhaddq_s32
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:134,1
    - Dst: vmovl_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:134,1
    - Dst: vzipq_s32
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:135,1
    - Dst: vreinterpretq_s16_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:137,1
    - Dst: vld1q_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:137,1
    - Dst: vaddw_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:138,1
    - Dst: vget_low_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:138,1
    - Dst: vaddw_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:139,1
    - Dst: vget_high_s16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:139,1
    - Dst: vcombine_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:140,1
    - Dst: vqmovun_s32
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:140,1
    - Dst: vqmovun_s32
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:140,1
    - Dst: vminq_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:141,1
    - Dst: vst1q_u16
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:142,1
    - Dst: clip_NEON
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:150,1
    - Dst: clip_NEON
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - A
    - B
    - len
    - best_y
    - out
    - bit_depth
    argTypes:
    - int16_t*
    - int16_t*
    - int
    - uint16_t*
    - uint16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 153
    functionName: SharpYuvFilterRow32_NEON
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_neon.c
    functionUses: 0
    functionsReached:
    - vcombine_u16
    - vst1q_u16
    - vaddw_s16
    - vdupq_n_u16
    - vget_high_s16
    - vminq_u16
    - vreinterpretq_s16_u16
    - vmovl_s16
    - vzipq_s32
    - vget_low_s16
    - vqmovun_s32
    - clip_NEON
    - vshrq_n_s32
    - vld1q_u16
    - vaddq_s32
    - vrhaddq_s32
    - vaddl_s16
    - vld1_s16
    linkageType: ''
    returnType: void
    signature: "void SharpYuvFilterRow32_NEON(const int16_t* A, const int16_t* B,\n
      \                                    int len, const uint16_t* best_y,\n                                     uint16_t*
      out, int bit_depth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SharpYuvFilterRow16_NEON
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:159,1
    - Dst: SharpYuvFilterRow32_NEON
      Src: /src/libwebp/sharpyuv/sharpyuv_neon.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - A
    - B
    - len
    - best_y
    - out
    - bit_depth
    argTypes:
    - int16_t*
    - int16_t*
    - int
    - uint16_t*
    - uint16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 163
    functionName: SharpYuvFilterRow_NEON
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_neon.c
    functionUses: 0
    functionsReached:
    - SharpYuvFilterRow32_NEON
    - SharpYuvFilterRow16_NEON
    linkageType: ''
    returnType: void
    signature: "void SharpYuvFilterRow_NEON(const int16_t* A, const int16_t* B, int
      len,\n                                   const uint16_t* best_y, uint16_t* out,\n
      \                                  int bit_depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: InitSharpYuvNEON
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_neon.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEBP_TSAN_IGNORE_FUNCTION
    signature: WEBP_TSAN_IGNORE_FUNCTION InitSharpYuvNEON(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: InitSharpYuvNEON
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv_neon.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitSharpYuvNEON(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - MAJOR
    - ','
    - MINOR
    - ','
    - PATCH
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: SHARPYUV_MAKE_VERSION
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHARPYUV_MAKE_VERSION(MAJOR, MINOR, PATCH)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SharpYuvOptionsInitInternal
      Src: /src/libwebp/sharpyuv/sharpyuv.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - yuv_matrix
    - options
    argTypes:
    - SharpYuvConversionMatrix*
    - SharpYuvOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: SharpYuvOptionsInit
    functionSourceFile: /src/libwebp/sharpyuv/sharpyuv.h
    functionUses: 4
    functionsReached:
    - SharpYuvOptionsInitInternal
    linkageType: ''
    returnType: SHARPYUV_INLINE
    signature: "SHARPYUV_INLINE SharpYuvOptionsInit(\n    const SharpYuvConversionMatrix*
      yuv_matrix, SharpYuvOptions* options)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ImgIoUtilReadFile
      Src: /src/libwebp/extras/get_disto.c:37,1
    - Dst: ReadPictureWithWIC
      Src: /src/libwebp/extras/get_disto.c:45,1
    - Dst: WebPGuessImageReader
      Src: /src/libwebp/extras/get_disto.c:48,1
    - Dst: reader
      Src: /src/libwebp/extras/get_disto.c:49,1
    - Dst: WFPRINTF
      Src: /src/libwebp/extras/get_disto.c:53,1
    - Dst: free
      Src: /src/libwebp/extras/get_disto.c:56,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - filename
    - pic
    - keep_alpha
    argTypes:
    - char*
    - WebPPicture*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 58
    functionName: ReadPicture
    functionSourceFile: /src/libwebp/extras/get_disto.c
    functionUses: 0
    functionsReached:
    - ImgIoUtilReadFile
    - WFPRINTF
    - reader
    - free
    - ReadPictureWithWIC
    - WebPGuessImageReader
    linkageType: ''
    returnType: size_t
    signature: "size_t ReadPicture(const char* const filename, WebPPicture* const
      pic,\n                          int keep_alpha)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - plane
    - width
    - height
    - x_stride
    - y_stride
    - max
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 71
    functionName: RescalePlane
    functionSourceFile: /src/libwebp/extras/get_disto.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void RescalePlane(uint8_t* plane, int width, int height, int x_stride,\n
      \                        int y_stride, int max)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/libwebp/extras/get_disto.c:83,1
    - Dst: RescalePlane
      Src: /src/libwebp/extras/get_disto.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 8
    argNames:
    - src1
    - stride1
    - src2
    - stride2
    - x_stride
    - w
    - h
    - do_scaling
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 91
    functionName: DiffScaleChannel
    functionSourceFile: /src/libwebp/extras/get_disto.c
    functionUses: 0
    functionsReached:
    - RescalePlane
    - abs
    linkageType: ''
    returnType: int
    signature: "int DiffScaleChannel(uint8_t* src1, int stride1, const uint8_t* src2,\n
      \                           int stride2, int x_stride, int w, int h,\n                            int
      do_scaling)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/extras/get_disto.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - stats
    argTypes:
    - DistoStats*
    assertStmts:
    - condition: (r >= 0. && r <= 1.0)
      pos:
        line_end: 128
        line_start: 128
        source_file: /src/libwebp/extras/get_disto.c
    constantsTouched: []
    func_position:
      end: 133
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 133
    functionName: SSIMCalculation
    functionSourceFile: /src/libwebp/extras/get_disto.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE SSIMCalculation(const DistoStats* const stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSIMCalculation
      Src: /src/libwebp/extras/get_disto.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 8
    argNames:
    - src1
    - stride1
    - src2
    - stride2
    - xo
    - yo
    - W
    - H
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 161
    functionName: SSIMGetClipped
    functionSourceFile: /src/libwebp/extras/get_disto.c
    functionUses: 2
    functionsReached:
    - SSIMCalculation
    linkageType: ''
    returnType: double
    signature: "double SSIMGetClipped(const uint8_t* src1, int stride1,\n                             const
      uint8_t* src2, int stride2, int xo, int yo,\n                             int
      W, int H)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libwebp/extras/get_disto.c:169,1
    - Dst: SSIMGetClipped
      Src: /src/libwebp/extras/get_disto.c:182,1
    - Dst: free
      Src: /src/libwebp/extras/get_disto.c:192,1
    - Dst: RescalePlane
      Src: /src/libwebp/extras/get_disto.c:194,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 8
    argNames:
    - src1
    - stride1
    - src2
    - stride2
    - x_stride
    - w
    - h
    - do_scaling
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 196
    functionName: SSIMScaleChannel
    functionSourceFile: /src/libwebp/extras/get_disto.c
    functionUses: 0
    functionsReached:
    - RescalePlane
    - malloc
    - free
    - SSIMGetClipped
    linkageType: ''
    returnType: int
    signature: "int SSIMScaleChannel(uint8_t* src1, int stride1, const uint8_t* src2,\n
      \                           int stride2, int x_stride, int w, int h,\n                            int
      do_scaling)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/extras/get_disto.c:201,1
    - Dst: assert
      Src: /src/libwebp/extras/get_disto.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pic
    argTypes:
    - WebPPicture*
    assertStmts:
    - condition: (pic != NULL)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/libwebp/extras/get_disto.c
    - condition: (pic->use_argb)
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/libwebp/extras/get_disto.c
    constantsTouched: []
    func_position:
      end: 215
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 215
    functionName: ConvertToGray
    functionSourceFile: /src/libwebp/extras/get_disto.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void ConvertToGray(WebPPicture* const pic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/extras/get_disto.c:218,1
    - Dst: WebPGetEnabledInputFileFormats
      Src: /src/libwebp/extras/get_disto.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: Help
    functionSourceFile: /src/libwebp/extras/get_disto.c
    functionUses: 0
    functionsReached:
    - WebPGetEnabledInputFileFormats
    - fprintf
    linkageType: ''
    returnType: void
    signature: void Help(void)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: INIT_WARGV
      Src: /src/libwebp/extras/get_disto.c:247,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/extras/get_disto.c:249,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/extras/get_disto.c:249,1
    - Dst: fprintf
      Src: /src/libwebp/extras/get_disto.c:250,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/extras/get_disto.c:251,1
    - Dst: strcmp
      Src: /src/libwebp/extras/get_disto.c:255,1
    - Dst: strcmp
      Src: /src/libwebp/extras/get_disto.c:257,1
    - Dst: strcmp
      Src: /src/libwebp/extras/get_disto.c:259,1
    - Dst: strcmp
      Src: /src/libwebp/extras/get_disto.c:261,1
    - Dst: strcmp
      Src: /src/libwebp/extras/get_disto.c:263,1
    - Dst: strcmp
      Src: /src/libwebp/extras/get_disto.c:265,1
    - Dst: strcmp
      Src: /src/libwebp/extras/get_disto.c:268,1
    - Dst: fprintf
      Src: /src/libwebp/extras/get_disto.c:270,1
    - Dst: GET_WARGV
      Src: /src/libwebp/extras/get_disto.c:273,1
    - Dst: GET_WARGV
      Src: /src/libwebp/extras/get_disto.c:275,1
    - Dst: GET_WARGV
      Src: /src/libwebp/extras/get_disto.c:277,1
    - Dst: fprintf
      Src: /src/libwebp/extras/get_disto.c:282,1
    - Dst: Help
      Src: /src/libwebp/extras/get_disto.c:284,1
    - Dst: ReadPicture
      Src: /src/libwebp/extras/get_disto.c:287,1
    - Dst: ReadPicture
      Src: /src/libwebp/extras/get_disto.c:288,1
    - Dst: WebPBlendAlpha
      Src: /src/libwebp/extras/get_disto.c:292,1
    - Dst: WebPBlendAlpha
      Src: /src/libwebp/extras/get_disto.c:293,1
    - Dst: WebPPictureDistortion
      Src: /src/libwebp/extras/get_disto.c:296,1
    - Dst: fprintf
      Src: /src/libwebp/extras/get_disto.c:297,1
    - Dst: printf
      Src: /src/libwebp/extras/get_disto.c:300,1
    - Dst: fprintf
      Src: /src/libwebp/extras/get_disto.c:308,1
    - Dst: fprintf
      Src: /src/libwebp/extras/get_disto.c:315,1
    - Dst: SSIMScaleChannel
      Src: /src/libwebp/extras/get_disto.c:319,1
    - Dst: DiffScaleChannel
      Src: /src/libwebp/extras/get_disto.c:323,1
    - Dst: fprintf
      Src: /src/libwebp/extras/get_disto.c:327,1
    - Dst: fprintf
      Src: /src/libwebp/extras/get_disto.c:328,1
    - Dst: fprintf
      Src: /src/libwebp/extras/get_disto.c:330,1
    - Dst: ConvertToGray
      Src: /src/libwebp/extras/get_disto.c:331,1
    - Dst: fprintf
      Src: /src/libwebp/extras/get_disto.c:333,1
    - Dst: WebPEncodeLosslessBGRA
      Src: /src/libwebp/extras/get_disto.c:338,1
    - Dst: fprintf
      Src: /src/libwebp/extras/get_disto.c:341,1
    - Dst: ImgIoUtilWriteFile
      Src: /src/libwebp/extras/get_disto.c:344,1
    - Dst: WebPFree
      Src: /src/libwebp/extras/get_disto.c:346,1
    - Dst: fprintf
      Src: /src/libwebp/extras/get_disto.c:351,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/extras/get_disto.c:360,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/extras/get_disto.c:361,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/extras/get_disto.c:362,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 107
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 232
    functionDepth: 4
    functionLinenumber: 232
    functionLinenumberEnd: 363
    functionName: main
    functionSourceFile: /src/libwebp/extras/get_disto.c
    functionUses: 0
    functionsReached:
    - printf
    - INIT_WARGV
    - WebPBlendAlpha
    - WebPFree
    - WebPPictureDistortion
    - WebPEncodeLosslessBGRA
    - Help
    - fprintf
    - strcmp
    - GET_WARGV
    - SSIMScaleChannel
    - ConvertToGray
    - WebPPictureInit
    - DiffScaleChannel
    - WebPPictureFree
    - ReadPicture
    - ImgIoUtilWriteFile
    - FREE_WARGV_AND_RETURN
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: WebPGetExtrasVersion
    functionSourceFile: /src/libwebp/extras/extras.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int WebPGetExtrasVersion(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureAlloc
      Src: /src/libwebp/extras/extras.c:43,1
    - Dst: memcpy
      Src: /src/libwebp/extras/extras.c:47,1
    - Dst: memset
      Src: /src/libwebp/extras/extras.c:50,1
    - Dst: memset
      Src: /src/libwebp/extras/extras.c:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - gray_data
    - pic
    argTypes:
    - uint8_t*
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 39
    functionDepth: 4
    functionLinenumber: 39
    functionLinenumberEnd: 55
    functionName: WebPImportGray
    functionSourceFile: /src/libwebp/extras/extras.c
    functionUses: 0
    functionsReached:
    - memcpy
    - WebPPictureAlloc
    - memset
    linkageType: ''
    returnType: int
    signature: int WebPImportGray(const uint8_t* gray_data, WebPPicture* pic)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureAlloc
      Src: /src/libwebp/extras/extras.c:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - rgb565
    - pic
    argTypes:
    - uint8_t*
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 88
    functionName: WebPImportRGB565
    functionSourceFile: /src/libwebp/extras/extras.c
    functionUses: 0
    functionsReached:
    - WebPPictureAlloc
    linkageType: ''
    returnType: int
    signature: int WebPImportRGB565(const uint8_t* rgb565, WebPPicture* pic)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureAlloc
      Src: /src/libwebp/extras/extras.c:96,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - rgb4444
    - pic
    argTypes:
    - uint8_t*
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 90
    functionDepth: 4
    functionLinenumber: 90
    functionLinenumberEnd: 123
    functionName: WebPImportRGB4444
    functionSourceFile: /src/libwebp/extras/extras.c
    functionUses: 0
    functionsReached:
    - WebPPictureAlloc
    linkageType: ''
    returnType: int
    signature: int WebPImportRGB4444(const uint8_t* rgb4444, WebPPicture* pic)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/extras/extras.c:131,1
    - Dst: WebPPictureAlloc
      Src: /src/libwebp/extras/extras.c:137,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/extras/extras.c:143,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 5
    argNames:
    - indexed
    - indexed_stride
    - palette
    - palette_size
    - pic
    argTypes:
    - uint8_t*
    - int
    - uint32_t[]
    - int
    - WebPPicture*
    assertStmts:
    - condition: (MAX_PALETTE_SIZE <= 256)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/libwebp/extras/extras.c
    constantsTouched: []
    func_position:
      end: 152
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 152
    functionName: WebPImportColorMappedARGB
    functionSourceFile: /src/libwebp/extras/extras.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPPictureFree
    - WebPPictureAlloc
    linkageType: ''
    returnType: int
    signature: "int WebPImportColorMappedARGB(const uint8_t* indexed, int indexed_stride,\n
      \                             const uint32_t palette[], int palette_size,\n
      \                             WebPPicture* pic)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPInitAlphaProcessing
      Src: /src/libwebp/extras/extras.c:160,1
    - Dst: WebPMultARGBRow
      Src: /src/libwebp/extras/extras.c:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pic
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 167
    functionName: WebPUnmultiplyARGB
    functionSourceFile: /src/libwebp/extras/extras.c
    functionUses: 0
    functionsReached:
    - WebPMultARGBRow
    - WebPInitAlphaProcessing
    linkageType: ''
    returnType: int
    signature: int WebPUnmultiplyARGB(WebPPicture* pic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - v
    - rgb_sampling_size
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: SharpYuvConvertValueToSampledIdx
    functionSourceFile: /src/libwebp/extras/extras.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SharpYuvConvertValueToSampledIdx(int v, int rgb_sampling_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SharpYuvConvertValueToSampledIdx
      Src: /src/libwebp/extras/extras.c:194,1
    - Dst: SharpYuvConvertValueToSampledIdx
      Src: /src/libwebp/extras/extras.c:198,1
    - Dst: SharpYuvConvertValueToSampledIdx
      Src: /src/libwebp/extras/extras.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - r
    - g
    - b
    - matrix
    - precomputed_scores_table_sampling
    argTypes:
    - int
    - int
    - int
    - SharpYuvConversionMatrix*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 209
    functionName: SharpYuvConvertToYuvSharpnessIndex
    functionSourceFile: /src/libwebp/extras/extras.c
    functionUses: 0
    functionsReached:
    - SharpYuvConvertValueToSampledIdx
    linkageType: ''
    returnType: int
    signature: "int SharpYuvConvertToYuvSharpnessIndex(\n    int r, int g, int b,
      const SharpYuvConversionMatrix* matrix,\n    int precomputed_scores_table_sampling)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/extras/extras.c:217,1
    - Dst: SharpYuvConvertToYuvSharpnessIndex
      Src: /src/libwebp/extras/extras.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 9
    argNames:
    - r_ptr
    - g_ptr
    - b_ptr
    - rgb_step
    - rgb_bit_depth
    - width
    - dst
    - matrix
    - precomputed_scores_table_sampling
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - uint16_t*
    - SharpYuvConversionMatrix*
    - int
    assertStmts:
    - condition: (rgb_bit_depth == 8)
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/libwebp/extras/extras.c
    constantsTouched: []
    func_position:
      end: 225
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 225
    functionName: SharpYuvRowToYuvSharpnessIndex
    functionSourceFile: /src/libwebp/extras/extras.c
    functionUses: 0
    functionsReached:
    - assert
    - SharpYuvConvertToYuvSharpnessIndex
    linkageType: ''
    returnType: void
    signature: "void SharpYuvRowToYuvSharpnessIndex(\n    const uint8_t* r_ptr, const
      uint8_t* g_ptr, const uint8_t* b_ptr,\n    int rgb_step, int rgb_bit_depth,
      int width, uint16_t* dst,\n    const SharpYuvConversionMatrix* matrix,\n    int
      precomputed_scores_table_sampling)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - W
    - ','
    - H
    - ','
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: SAFE_ALLOC
    functionSourceFile: /src/libwebp/extras/extras.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SAFE_ALLOC(W, H, T)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SAFE_ALLOC
      Src: /src/libwebp/extras/extras.c:243,1
    - Dst: SAFE_ALLOC
      Src: /src/libwebp/extras/extras.c:244,1
    - Dst: WebPFree
      Src: /src/libwebp/extras/extras.c:249,1
    - Dst: WebPFree
      Src: /src/libwebp/extras/extras.c:250,1
    - Dst: SharpYuvRowToYuvSharpnessIndex
      Src: /src/libwebp/extras/extras.c:255,1
    - Dst: SharpYuvRowToYuvSharpnessIndex
      Src: /src/libwebp/extras/extras.c:268,1
    - Dst: WebPFree
      Src: /src/libwebp/extras/extras.c:292,1
    - Dst: WebPFree
      Src: /src/libwebp/extras/extras.c:293,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 12
    argNames:
    - r_ptr
    - g_ptr
    - b_ptr
    - rgb_step
    - rgb_stride
    - rgb_bit_depth
    - width
    - height
    - options
    - precomputed_scores_table
    - precomputed_scores_table_sampling
    - score_out
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    - SharpYuvOptions*
    - uint8_t[]
    - int
    - float*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 297
    functionName: DoEstimateRisk
    functionSourceFile: /src/libwebp/extras/extras.c
    functionUses: 0
    functionsReached:
    - SAFE_ALLOC
    - SharpYuvRowToYuvSharpnessIndex
    - WebPFree
    linkageType: ''
    returnType: int
    signature: "int DoEstimateRisk(const uint8_t* r_ptr, const uint8_t* g_ptr,\n                          const
      uint8_t* b_ptr, int rgb_step, int rgb_stride,\n                          int
      rgb_bit_depth, int width, int height,\n                          const SharpYuvOptions*
      options,\n                          const uint8_t precomputed_scores_table[],\n
      \                         int precomputed_scores_table_sampling,\n                          float*
      score_out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DoEstimateRisk
      Src: /src/libwebp/extras/extras.c:319,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 12
    argCount: 10
    argNames:
    - r_ptr
    - g_ptr
    - b_ptr
    - rgb_step
    - rgb_stride
    - rgb_bit_depth
    - width
    - height
    - options
    - score
    argTypes:
    - void*
    - void*
    - void*
    - int
    - int
    - int
    - int
    - int
    - SharpYuvOptions*
    - float*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 301
    functionDepth: 4
    functionLinenumber: 301
    functionLinenumberEnd: 323
    functionName: SharpYuvEstimate420Risk
    functionSourceFile: /src/libwebp/extras/extras.c
    functionUses: 0
    functionsReached:
    - DoEstimateRisk
    linkageType: ''
    returnType: int
    signature: "int SharpYuvEstimate420Risk(const void* r_ptr, const void* g_ptr,\n
      \                           const void* b_ptr, int rgb_step, int rgb_stride,\n
      \                           int rgb_bit_depth, int width, int height,\n                            const
      SharpYuvOptions* options, float* score)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SDL_Init
      Src: /src/libwebp/extras/webp_to_sdl.c:43,1
    - Dst: WebPGetFeatures
      Src: /src/libwebp/extras/webp_to_sdl.c:47,1
    - Dst: SDL_CreateWindowAndRenderer
      Src: /src/libwebp/extras/webp_to_sdl.c:52,1
    - Dst: fprintf
      Src: /src/libwebp/extras/webp_to_sdl.c:54,1
    - Dst: SDL_SetHint
      Src: /src/libwebp/extras/webp_to_sdl.c:57,1
    - Dst: SDL_RenderSetLogicalSize
      Src: /src/libwebp/extras/webp_to_sdl.c:59,1
    - Dst: SDL_CreateTexture
      Src: /src/libwebp/extras/webp_to_sdl.c:61,1
    - Dst: fprintf
      Src: /src/libwebp/extras/webp_to_sdl.c:64,1
    - Dst: WebPDecodeBGRA
      Src: /src/libwebp/extras/webp_to_sdl.c:70,1
    - Dst: WebPDecodeRGBA
      Src: /src/libwebp/extras/webp_to_sdl.c:73,1
    - Dst: fprintf
      Src: /src/libwebp/extras/webp_to_sdl.c:76,1
    - Dst: SDL_UpdateTexture
      Src: /src/libwebp/extras/webp_to_sdl.c:80,1
    - Dst: SDL_RenderClear
      Src: /src/libwebp/extras/webp_to_sdl.c:81,1
    - Dst: SDL_RenderCopy
      Src: /src/libwebp/extras/webp_to_sdl.c:82,1
    - Dst: SDL_RenderPresent
      Src: /src/libwebp/extras/webp_to_sdl.c:83,1
    - Dst: SDL_DestroyRenderer
      Src: /src/libwebp/extras/webp_to_sdl.c:88,1
    - Dst: SDL_DestroyTexture
      Src: /src/libwebp/extras/webp_to_sdl.c:89,1
    - Dst: WebPFree
      Src: /src/libwebp/extras/webp_to_sdl.c:90,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 2
    argNames:
    - data
    - data_size
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 92
    functionName: WebPToSDL
    functionSourceFile: /src/libwebp/extras/webp_to_sdl.c
    functionUses: 0
    functionsReached:
    - SDL_UpdateTexture
    - SDL_RenderCopy
    - SDL_RenderSetLogicalSize
    - WebPFree
    - SDL_RenderPresent
    - SDL_CreateTexture
    - fprintf
    - SDL_CreateWindowAndRenderer
    - SDL_SetHint
    - SDL_RenderClear
    - SDL_Init
    - SDL_DestroyRenderer
    - WebPDecodeRGBA
    - SDL_DestroyTexture
    - WebPDecodeBGRA
    - WebPGetFeatures
    linkageType: ''
    returnType: int
    signature: int WebPToSDL(const char* data, unsigned int data_size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SDL_WaitEvent
      Src: /src/libwebp/extras/vwebp_sdl.c:40,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 55
    functionName: ProcessEvents
    functionSourceFile: /src/libwebp/extras/vwebp_sdl.c
    functionUses: 0
    functionsReached:
    - SDL_WaitEvent
    linkageType: ''
    returnType: void
    signature: void ProcessEvents(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INIT_WARGV
      Src: /src/libwebp/extras/vwebp_sdl.c:62,1
    - Dst: fprintf
      Src: /src/libwebp/extras/vwebp_sdl.c:65,1
    - Dst: strcmp
      Src: /src/libwebp/extras/vwebp_sdl.c:74,1
    - Dst: printf
      Src: /src/libwebp/extras/vwebp_sdl.c:75,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/extras/vwebp_sdl.c:76,1
    - Dst: GET_WARGV
      Src: /src/libwebp/extras/vwebp_sdl.c:78,1
    - Dst: ImgIoUtilReadFile
      Src: /src/libwebp/extras/vwebp_sdl.c:81,1
    - Dst: WFPRINTF
      Src: /src/libwebp/extras/vwebp_sdl.c:82,1
    - Dst: free
      Src: /src/libwebp/extras/vwebp_sdl.c:86,1
    - Dst: fprintf
      Src: /src/libwebp/extras/vwebp_sdl.c:87,1
    - Dst: WebPToSDL
      Src: /src/libwebp/extras/vwebp_sdl.c:90,1
    - Dst: free
      Src: /src/libwebp/extras/vwebp_sdl.c:91,1
    - Dst: WFPRINTF
      Src: /src/libwebp/extras/vwebp_sdl.c:93,1
    - Dst: ProcessEvents
      Src: /src/libwebp/extras/vwebp_sdl.c:96,1
    - Dst: SDL_Quit
      Src: /src/libwebp/extras/vwebp_sdl.c:101,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/extras/vwebp_sdl.c:102,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 103
    functionName: main
    functionSourceFile: /src/libwebp/extras/vwebp_sdl.c
    functionUses: 0
    functionsReached:
    - printf
    - INIT_WARGV
    - ImgIoUtilReadFile
    - WFPRINTF
    - ProcessEvents
    - WebPToSDL
    - fprintf
    - strcmp
    - GET_WARGV
    - free
    - SDL_Quit
    - FREE_WARGV_AND_RETURN
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/extras/vwebp_sdl.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: main
    functionSourceFile: /src/libwebp/extras/vwebp_sdl.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char* argv[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INIT_WARGV
      Src: /src/libwebp/extras/webp_quality.c:25,1
    - Dst: strcmp
      Src: /src/libwebp/extras/webp_quality.c:28,1
    - Dst: strcmp
      Src: /src/libwebp/extras/webp_quality.c:30,1
    - Dst: strcmp
      Src: /src/libwebp/extras/webp_quality.c:30,1
    - Dst: printf
      Src: /src/libwebp/extras/webp_quality.c:31,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/extras/webp_quality.c:32,1
    - Dst: GET_WARGV
      Src: /src/libwebp/extras/webp_quality.c:34,1
    - Dst: ImgIoUtilReadFile
      Src: /src/libwebp/extras/webp_quality.c:38,1
    - Dst: VP8EstimateQuality
      Src: /src/libwebp/extras/webp_quality.c:40,1
    - Dst: WPRINTF
      Src: /src/libwebp/extras/webp_quality.c:41,1
    - Dst: fprintf
      Src: /src/libwebp/extras/webp_quality.c:43,1
    - Dst: printf
      Src: /src/libwebp/extras/webp_quality.c:47,1
    - Dst: printf
      Src: /src/libwebp/extras/webp_quality.c:49,1
    - Dst: free
      Src: /src/libwebp/extras/webp_quality.c:52,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/extras/webp_quality.c:55,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 56
    functionName: main
    functionSourceFile: /src/libwebp/extras/webp_quality.c
    functionUses: 0
    functionsReached:
    - printf
    - INIT_WARGV
    - ImgIoUtilReadFile
    - VP8EstimateQuality
    - fprintf
    - GET_WARGV
    - strcmp
    - free
    - WPRINTF
    - FREE_WARGV_AND_RETURN
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char* argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - data
    - nb
    - max_size
    - bit_pos
    argTypes:
    - uint8_t*
    - size_t
    - uint64_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: GetBit
    functionSourceFile: /src/libwebp/extras/quality_estimate.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE GetBit(const uint8_t* const data, size_t nb,\n                                   uint64_t
      max_size, uint64_t* const bit_pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: GET_BIT
    functionSourceFile: /src/libwebp/extras/quality_estimate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_BIT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: CONDITIONAL_SKIP
    functionSourceFile: /src/libwebp/extras/quality_estimate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONDITIONAL_SKIP(n)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: WebPGetFeatures
      Src: /src/libwebp/extras/quality_estimate.c:56,1
    - Dst: GET_BIT
      Src: /src/libwebp/extras/quality_estimate.c:78,1
    - Dst: GET_BIT
      Src: /src/libwebp/extras/quality_estimate.c:81,1
    - Dst: GET_BIT
      Src: /src/libwebp/extras/quality_estimate.c:83,1
    - Dst: GET_BIT
      Src: /src/libwebp/extras/quality_estimate.c:84,1
    - Dst: GET_BIT
      Src: /src/libwebp/extras/quality_estimate.c:85,1
    - Dst: GET_BIT
      Src: /src/libwebp/extras/quality_estimate.c:88,1
    - Dst: GET_BIT
      Src: /src/libwebp/extras/quality_estimate.c:89,1
    - Dst: GET_BIT
      Src: /src/libwebp/extras/quality_estimate.c:90,1
    - Dst: CONDITIONAL_SKIP
      Src: /src/libwebp/extras/quality_estimate.c:94,1
    - Dst: CONDITIONAL_SKIP
      Src: /src/libwebp/extras/quality_estimate.c:97,1
    - Dst: GET_BIT
      Src: /src/libwebp/extras/quality_estimate.c:101,1
    - Dst: GET_BIT
      Src: /src/libwebp/extras/quality_estimate.c:102,1
    - Dst: GET_BIT
      Src: /src/libwebp/extras/quality_estimate.c:103,1
    - Dst: CONDITIONAL_SKIP
      Src: /src/libwebp/extras/quality_estimate.c:105,1
    - Dst: GET_BIT
      Src: /src/libwebp/extras/quality_estimate.c:109,1
    - Dst: GET_BIT
      Src: /src/libwebp/extras/quality_estimate.c:113,1
    - Dst: CONDITIONAL_SKIP
      Src: /src/libwebp/extras/quality_estimate.c:114,1
    - Dst: CONDITIONAL_SKIP
      Src: /src/libwebp/extras/quality_estimate.c:115,1
    - Dst: CONDITIONAL_SKIP
      Src: /src/libwebp/extras/quality_estimate.c:116,1
    - Dst: CONDITIONAL_SKIP
      Src: /src/libwebp/extras/quality_estimate.c:117,1
    - Dst: CONDITIONAL_SKIP
      Src: /src/libwebp/extras/quality_estimate.c:118,1
    - Dst: pow
      Src: /src/libwebp/extras/quality_estimate.c:128,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 66
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 131
    functionName: VP8EstimateQuality
    functionSourceFile: /src/libwebp/extras/quality_estimate.c
    functionUses: 1
    functionsReached:
    - CONDITIONAL_SKIP
    - pow
    - GET_BIT
    - WebPGetFeatures
    linkageType: ''
    returnType: int
    signature: int VP8EstimateQuality(const uint8_t* const data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/libwebp/examples/example_util.c:29,1
    - Dst: fprintf
      Src: /src/libwebp/examples/example_util.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - v
    - base
    - error
    argTypes:
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: ExUtilGetUInt
    functionSourceFile: /src/libwebp/examples/example_util.c
    functionUses: 0
    functionsReached:
    - strtoul
    - fprintf
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ExUtilGetUInt(const char* const v, int base, int* const error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExUtilGetUInt
      Src: /src/libwebp/examples/example_util.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - base
    - error
    argTypes:
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: ExUtilGetInt
    functionSourceFile: /src/libwebp/examples/example_util.c
    functionUses: 0
    functionsReached:
    - ExUtilGetUInt
    linkageType: ''
    returnType: int
    signature: int ExUtilGetInt(const char* const v, int base, int* const error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/example_util.c:45,1
    - Dst: strchr
      Src: /src/libwebp/examples/example_util.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - v
    - base
    - max_output
    - output
    argTypes:
    - char*
    - int
    - int
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: ExUtilGetInts
    functionSourceFile: /src/libwebp/examples/example_util.c
    functionUses: 0
    functionsReached:
    - strchr
    - ExUtilGetInt
    linkageType: ''
    returnType: int
    signature: int ExUtilGetInts(const char* v, int base, int max_output, int output[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtod
      Src: /src/libwebp/examples/example_util.c:56,1
    - Dst: fprintf
      Src: /src/libwebp/examples/example_util.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - v
    - error
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: ExUtilGetFloat
    functionSourceFile: /src/libwebp/examples/example_util.c
    functionUses: 0
    functionsReached:
    - strtod
    - fprintf
    linkageType: ''
    returnType: float
    signature: float ExUtilGetFloat(const char* const v, int* const error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/examples/example_util.c:69,1
    - Dst: WebPDataInit
      Src: /src/libwebp/examples/example_util.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - argc
    - argv
    - args
    argTypes:
    - int
    - char*[]
    - CommandLineArguments*
    assertStmts:
    - condition: (args != NULL)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/libwebp/examples/example_util.c
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: ResetCommandLineArguments
    functionSourceFile: /src/libwebp/examples/example_util.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPDataInit
    linkageType: ''
    returnType: void
    signature: "void ResetCommandLineArguments(int argc, const char* argv[],\n                                      CommandLineArguments*
      const args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPFree
      Src: /src/libwebp/examples/example_util.c:79,1
    - Dst: WebPDataClear
      Src: /src/libwebp/examples/example_util.c:80,1
    - Dst: ResetCommandLineArguments
      Src: /src/libwebp/examples/example_util.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - args
    argTypes:
    - CommandLineArguments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: ExUtilDeleteCommandLineArguments
    functionSourceFile: /src/libwebp/examples/example_util.c
    functionUses: 0
    functionsReached:
    - ResetCommandLineArguments
    - WebPFree
    - WebPDataClear
    linkageType: ''
    returnType: void
    signature: void ExUtilDeleteCommandLineArguments(CommandLineArguments* const args)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ResetCommandLineArguments
      Src: /src/libwebp/examples/example_util.c:90,1
    - Dst: fprintf
      Src: /src/libwebp/examples/example_util.c:96,1
    - Dst: ExUtilReadFileToWebPData
      Src: /src/libwebp/examples/example_util.c:102,1
    - Dst: WebPMalloc
      Src: /src/libwebp/examples/example_util.c:106,1
    - Dst: ExUtilDeleteCommandLineArguments
      Src: /src/libwebp/examples/example_util.c:108,1
    - Dst: strtok
      Src: /src/libwebp/examples/example_util.c:113,1
    - Dst: strtok
      Src: /src/libwebp/examples/example_util.c:114,1
    - Dst: fprintf
      Src: /src/libwebp/examples/example_util.c:116,1
    - Dst: ExUtilDeleteCommandLineArguments
      Src: /src/libwebp/examples/example_util.c:117,1
    - Dst: assert
      Src: /src/libwebp/examples/example_util.c:120,1
    - Dst: strlen
      Src: /src/libwebp/examples/example_util.c:120,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - argc
    - argv
    - args
    argTypes:
    - int
    - char*[]
    - CommandLineArguments*
    assertStmts:
    - condition: (strlen(cur) != 0)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/libwebp/examples/example_util.c
    constantsTouched: []
    func_position:
      end: 126
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 126
    functionName: ExUtilInitCommandLineArguments
    functionSourceFile: /src/libwebp/examples/example_util.c
    functionUses: 0
    functionsReached:
    - assert
    - fprintf
    - strlen
    - WebPMalloc
    - ExUtilDeleteCommandLineArguments
    - ExUtilReadFileToWebPData
    - ResetCommandLineArguments
    - strtok
    linkageType: ''
    returnType: int
    signature: "int ExUtilInitCommandLineArguments(int argc, const char* argv[],\n
      \                                  CommandLineArguments* const args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ImgIoUtilReadFile
      Src: /src/libwebp/examples/example_util.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - filename
    - webp_data
    argTypes:
    - char*
    - WebPData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: ExUtilReadFileToWebPData
    functionSourceFile: /src/libwebp/examples/example_util.c
    functionUses: 1
    functionsReached:
    - ImgIoUtilReadFile
    linkageType: ''
    returnType: int
    signature: "int ExUtilReadFileToWebPData(const char* const filename,\n                             WebPData*
      const webp_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QueryPerformanceCounter
      Src: /src/libwebp/examples/stopwatch.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - watch
    argTypes:
    - Stopwatch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: StopwatchReset
    functionSourceFile: /src/libwebp/examples/stopwatch.h
    functionUses: 0
    functionsReached:
    - QueryPerformanceCounter
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE StopwatchReset(Stopwatch* watch)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: QueryPerformanceCounter
      Src: /src/libwebp/examples/stopwatch.h:31,1
    - Dst: QueryPerformanceFrequency
      Src: /src/libwebp/examples/stopwatch.h:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - watch
    argTypes:
    - Stopwatch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: StopwatchReadAndReset
    functionSourceFile: /src/libwebp/examples/stopwatch.h
    functionUses: 0
    functionsReached:
    - QueryPerformanceCounter
    - QueryPerformanceFrequency
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE StopwatchReadAndReset(Stopwatch* watch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/libwebp/examples/stopwatch.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - watch
    argTypes:
    - Stopwatch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: StopwatchReset
    functionSourceFile: /src/libwebp/examples/stopwatch.h
    functionUses: 0
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE StopwatchReset(Stopwatch* watch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libwebp/examples/stopwatch.h:50,1
    - Dst: gettimeofday
      Src: /src/libwebp/examples/stopwatch.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - watch
    argTypes:
    - Stopwatch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: StopwatchReadAndReset
    functionSourceFile: /src/libwebp/examples/stopwatch.h
    functionUses: 0
    functionsReached:
    - memcpy
    - gettimeofday
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE StopwatchReadAndReset(Stopwatch* watch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/gifdec.c:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - color_map
    - bgcolor_index
    - transparent_index
    - bgcolor
    argTypes:
    - ColorMapObject*
    - int
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 60
    functionName: GIFGetBackgroundColor
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void GIFGetBackgroundColor(const ColorMapObject* const color_map,\n
      \                          int bgcolor_index, int transparent_index,\n                           uint32_t*
      const bgcolor)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - buf
    - duration
    - dispose
    - transparent_index
    argTypes:
    - GifByteType*
    - int*
    - GIFDisposeMethod*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 86
    functionName: GIFReadGraphicsExtension
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int GIFReadGraphicsExtension(const GifByteType* const buf, int* const
      duration,\n                             GIFDisposeMethod* const dispose,\n                             int*
      const transparent_index)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - gif
    - src
    - len
    - transparent_index
    - dst
    argTypes:
    - GifFileType*
    - uint8_t*
    - int
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 109
    functionName: Remap
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int Remap(const GifFileType* const gif, const uint8_t* const src,\n
      \                int len, int transparent_index, uint32_t* dst)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/gifdec.c:124,1
    - Dst: WebPPictureView
      Src: /src/libwebp/examples/gifdec.c:129,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gifdec.c:131,1
    - Dst: WebPMalloc
      Src: /src/libwebp/examples/gifdec.c:137,1
    - Dst: DGifGetLine
      Src: /src/libwebp/examples/gifdec.c:151,1
    - Dst: Remap
      Src: /src/libwebp/examples/gifdec.c:152,1
    - Dst: DGifGetLine
      Src: /src/libwebp/examples/gifdec.c:159,1
    - Dst: Remap
      Src: /src/libwebp/examples/gifdec.c:160,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/examples/gifdec.c:167,1
    - Dst: WebPFree
      Src: /src/libwebp/examples/gifdec.c:168,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 4
    argNames:
    - gif
    - transparent_index
    - gif_rect
    - picture
    argTypes:
    - GifFileType*
    - int
    - GIFFrameRect*
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 170
    functionName: GIFReadFrame
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached:
    - WebPPictureView
    - WebPFree
    - fprintf
    - WebPMalloc
    - WebPPictureFree
    - DGifGetLine
    - Remap
    linkageType: ''
    returnType: int
    signature: "int GIFReadFrame(GifFileType* const gif, int transparent_index,\n
      \                GIFFrameRect* const gif_rect, WebPPicture* const picture)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/examples/gifdec.c:174,1
    - Dst: memcmp
      Src: /src/libwebp/examples/gifdec.c:174,1
    - Dst: memcmp
      Src: /src/libwebp/examples/gifdec.c:175,1
    - Dst: DGifGetExtensionNext
      Src: /src/libwebp/examples/gifdec.c:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - gif
    - buf
    - loop_count
    argTypes:
    - GifFileType*
    - GifByteType**
    - int*
    assertStmts:
    - condition: "(!memcmp(*buf + 1, \"NETSCAPE2.0\", 11) ||\n         !memcmp(*buf
        + 1, \"ANIMEXTS1.0\", 11))"
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/libwebp/examples/gifdec.c
    constantsTouched: []
    func_position:
      end: 187
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 187
    functionName: GIFReadLoopCount
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached:
    - assert
    - memcmp
    - DGifGetExtensionNext
    linkageType: ''
    returnType: int
    signature: "int GIFReadLoopCount(GifFileType* const gif, GifByteType** const buf,\n
      \                    int* const loop_count)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/libwebp/examples/gifdec.c:191,1
    - Dst: memcmp
      Src: /src/libwebp/examples/gifdec.c:192,1
    - Dst: assert
      Src: /src/libwebp/examples/gifdec.c:193,1
    - Dst: DGifGetExtensionNext
      Src: /src/libwebp/examples/gifdec.c:205,1
    - Dst: assert
      Src: /src/libwebp/examples/gifdec.c:210,1
    - Dst: realloc
      Src: /src/libwebp/examples/gifdec.c:214,1
    - Dst: memcpy
      Src: /src/libwebp/examples/gifdec.c:219,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - gif
    - buf
    - metadata
    argTypes:
    - GifFileType*
    - GifByteType**
    - WebPData*
    assertStmts:
    - condition: (subblock.size > 0)
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/libwebp/examples/gifdec.c
    - condition: (is_xmp || is_icc)
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/libwebp/examples/gifdec.c
    constantsTouched: []
    func_position:
      end: 231
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 231
    functionName: GIFReadMetadata
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - realloc
    - DGifGetExtensionNext
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int GIFReadMetadata(GifFileType* const gif, GifByteType** const buf,\n
      \                   WebPData* const metadata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - picture
    - left
    - top
    - width
    - height
    argTypes:
    - WebPPicture*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 241
    functionName: ClearRectangle
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ClearRectangle(WebPPicture* const picture, int left, int top,\n
      \                          int width, int height)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ClearRectangle
      Src: /src/libwebp/examples/gifdec.c:245,1
    - Dst: ClearRectangle
      Src: /src/libwebp/examples/gifdec.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pic
    - rect
    argTypes:
    - WebPPicture*
    - GIFFrameRect*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 250
    functionName: GIFClearPic
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached:
    - ClearRectangle
    linkageType: ''
    returnType: void
    signature: void GIFClearPic(WebPPicture* const pic, const GIFFrameRect* const
      rect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPCopyPixels
      Src: /src/libwebp/examples/gifdec.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - WebPPicture*
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: GIFCopyPixels
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached:
    - WebPCopyPixels
    linkageType: ''
    returnType: void
    signature: void GIFCopyPixels(const WebPPicture* const src, WebPPicture* const
      dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/examples/gifdec.c:259,1
    - Dst: GIFClearPic
      Src: /src/libwebp/examples/gifdec.c:261,1
    - Dst: assert
      Src: /src/libwebp/examples/gifdec.c:269,1
    - Dst: WebPCopyPlane
      Src: /src/libwebp/examples/gifdec.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - dispose
    - rect
    - prev_canvas
    - curr_canvas
    argTypes:
    - GIFDisposeMethod
    - GIFFrameRect*
    - WebPPicture*
    - WebPPicture*
    assertStmts:
    - condition: (rect != NULL)
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/libwebp/examples/gifdec.c
    - condition: (prev_canvas != NULL)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/libwebp/examples/gifdec.c
    constantsTouched: []
    func_position:
      end: 273
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 273
    functionName: GIFDisposeFrame
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached:
    - assert
    - GIFClearPic
    - WebPCopyPlane
    linkageType: ''
    returnType: void
    signature: "void GIFDisposeFrame(GIFDisposeMethod dispose, const GIFFrameRect*
      const rect,\n                     const WebPPicture* const prev_canvas,\n                     WebPPicture*
      const curr_canvas)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/examples/gifdec.c:280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - src
    - rect
    - dst
    argTypes:
    - WebPPicture*
    - GIFFrameRect*
    - WebPPicture*
    assertStmts:
    - condition: (src->width == dst->width && src->height == dst->height)
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/libwebp/examples/gifdec.c
    constantsTouched: []
    func_position:
      end: 290
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 290
    functionName: GIFBlendFrames
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void GIFBlendFrames(const WebPPicture* const src,\n                    const
      GIFFrameRect* const rect, WebPPicture* const dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOCAL_GIF_PREREQ
      Src: /src/libwebp/examples/gifdec.c:294,1
    - Dst: LOCAL_GIF_PREREQ
      Src: /src/libwebp/examples/gifdec.c:295,1
    - Dst: GifErrorString
      Src: /src/libwebp/examples/gifdec.c:298,1
    - Dst: GifErrorString
      Src: /src/libwebp/examples/gifdec.c:300,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gifdec.c:304,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gifdec.c:307,1
    - Dst: PrintGifError
      Src: /src/libwebp/examples/gifdec.c:308,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gifdec.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - gif
    - gif_error
    argTypes:
    - GifFileType*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 311
    functionName: GIFDisplayError
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached:
    - LOCAL_GIF_PREREQ
    - PrintGifError
    - fprintf
    - GifErrorString
    linkageType: ''
    returnType: void
    signature: void GIFDisplayError(const GifFileType* const gif, int gif_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/gifdec.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: ErrorGIFNotAvailable
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ErrorGIFNotAvailable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ErrorGIFNotAvailable
      Src: /src/libwebp/examples/gifdec.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - color_map
    - bgcolor_index
    - transparent_index
    - bgcolor
    argTypes:
    - struct ColorMapObject*
    - int
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 329
    functionName: GIFGetBackgroundColor
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached:
    - ErrorGIFNotAvailable
    linkageType: ''
    returnType: void
    signature: "void GIFGetBackgroundColor(const struct ColorMapObject* const color_map,\n
      \                          int bgcolor_index, int transparent_index,\n                           uint32_t*
      const bgcolor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ErrorGIFNotAvailable
      Src: /src/libwebp/examples/gifdec.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - data
    - duration
    - dispose
    - transparent_index
    argTypes:
    - GifByteType*
    - int*
    - GIFDisposeMethod*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 340
    functionName: GIFReadGraphicsExtension
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached:
    - ErrorGIFNotAvailable
    linkageType: ''
    returnType: int
    signature: "int GIFReadGraphicsExtension(const GifByteType* const data, int* const
      duration,\n                             GIFDisposeMethod* const dispose,\n                             int*
      const transparent_index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ErrorGIFNotAvailable
      Src: /src/libwebp/examples/gifdec.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - gif
    - transparent_index
    - gif_rect
    - picture
    argTypes:
    - struct GifFileType*
    - int
    - GIFFrameRect*
    - struct WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 351
    functionName: GIFReadFrame
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached:
    - ErrorGIFNotAvailable
    linkageType: ''
    returnType: int
    signature: "int GIFReadFrame(struct GifFileType* const gif, int transparent_index,\n
      \                GIFFrameRect* const gif_rect,\n                 struct WebPPicture*
      const picture)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ErrorGIFNotAvailable
      Src: /src/libwebp/examples/gifdec.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - gif
    - buf
    - loop_count
    argTypes:
    - struct GifFileType*
    - GifByteType**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 360
    functionName: GIFReadLoopCount
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached:
    - ErrorGIFNotAvailable
    linkageType: ''
    returnType: int
    signature: "int GIFReadLoopCount(struct GifFileType* const gif, GifByteType**
      const buf,\n                     int* const loop_count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ErrorGIFNotAvailable
      Src: /src/libwebp/examples/gifdec.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - gif
    - buf
    - metadata
    argTypes:
    - struct GifFileType*
    - GifByteType**
    - struct WebPData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 369
    functionName: GIFReadMetadata
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached:
    - ErrorGIFNotAvailable
    linkageType: ''
    returnType: int
    signature: "int GIFReadMetadata(struct GifFileType* const gif, GifByteType** const
      buf,\n                    struct WebPData* const metadata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ErrorGIFNotAvailable
      Src: /src/libwebp/examples/gifdec.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - dispose
    - rect
    - prev_canvas
    - curr_canvas
    argTypes:
    - GIFDisposeMethod
    - GIFFrameRect*
    - struct WebPPicture*
    - struct WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 379
    functionName: GIFDisposeFrame
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached:
    - ErrorGIFNotAvailable
    linkageType: ''
    returnType: void
    signature: "void GIFDisposeFrame(GIFDisposeMethod dispose, const GIFFrameRect*
      const rect,\n                     const struct WebPPicture* const prev_canvas,\n
      \                    struct WebPPicture* const curr_canvas)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ErrorGIFNotAvailable
      Src: /src/libwebp/examples/gifdec.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - src
    - rect
    - dst
    argTypes:
    - struct WebPPicture*
    - GIFFrameRect*
    - struct WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 388
    functionName: GIFBlendFrames
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached:
    - ErrorGIFNotAvailable
    linkageType: ''
    returnType: void
    signature: "void GIFBlendFrames(const struct WebPPicture* const src,\n                    const
      GIFFrameRect* const rect,\n                    struct WebPPicture* const dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ErrorGIFNotAvailable
      Src: /src/libwebp/examples/gifdec.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - gif
    - gif_error
    argTypes:
    - struct GifFileType*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 394
    functionName: GIFDisplayError
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached:
    - ErrorGIFNotAvailable
    linkageType: ''
    returnType: void
    signature: void GIFDisplayError(const struct GifFileType* const gif, int gif_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ErrorGIFNotAvailable
      Src: /src/libwebp/examples/gifdec.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pic
    - rect
    argTypes:
    - struct WebPPicture*
    - GIFFrameRect*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 401
    functionName: GIFClearPic
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 1
    functionsReached:
    - ErrorGIFNotAvailable
    linkageType: ''
    returnType: void
    signature: "void GIFClearPic(struct WebPPicture* const pic,\n                 const
      GIFFrameRect* const rect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ErrorGIFNotAvailable
      Src: /src/libwebp/examples/gifdec.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - struct WebPPicture*
    - struct WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 408
    functionName: GIFCopyPixels
    functionSourceFile: /src/libwebp/examples/gifdec.c
    functionUses: 0
    functionsReached:
    - ErrorGIFNotAvailable
    linkageType: ''
    returnType: void
    signature: "void GIFCopyPixels(const struct WebPPicture* const src,\n                   struct
      WebPPicture* const dst)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WSTRCMP
      Src: /src/libwebp/examples/dwebp.c:47,1
    - Dst: StopwatchReset
      Src: /src/libwebp/examples/dwebp.c:52,1
    - Dst: WebPSaveImage
      Src: /src/libwebp/examples/dwebp.c:54,1
    - Dst: fprintf
      Src: /src/libwebp/examples/dwebp.c:59,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/dwebp.c:61,1
    - Dst: StopwatchReadAndReset
      Src: /src/libwebp/examples/dwebp.c:65,1
    - Dst: fprintf
      Src: /src/libwebp/examples/dwebp.c:66,1
    - Dst: fprintf
      Src: /src/libwebp/examples/dwebp.c:70,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/dwebp.c:72,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - buffer
    - format
    - out_file
    argTypes:
    - WebPDecBuffer*
    - WebPOutputFileFormat
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 76
    functionName: SaveOutput
    functionSourceFile: /src/libwebp/examples/dwebp.c
    functionUses: 0
    functionsReached:
    - WFPRINTF
    - fprintf
    - StopwatchReset
    - WSTRCMP
    - WebPSaveImage
    - StopwatchReadAndReset
    linkageType: ''
    returnType: int
    signature: "int SaveOutput(const WebPDecBuffer* const buffer,\n                      WebPOutputFileFormat
      format, const char* const out_file)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libwebp/examples/dwebp.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 112
    functionName: Help
    functionSourceFile: /src/libwebp/examples/dwebp.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void Help(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WebPMalloc
      Src: /src/libwebp/examples/dwebp.c:136,1
    - Dst: WebPIsAlphaMode
      Src: /src/libwebp/examples/dwebp.c:142,1
    - Dst: assert
      Src: /src/libwebp/examples/dwebp.c:148,1
    - Dst: WebPMalloc
      Src: /src/libwebp/examples/dwebp.c:149,1
    - Dst: assert
      Src: /src/libwebp/examples/dwebp.c:174,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 3
    argNames:
    - config
    - format
    - use_external_memory
    argTypes:
    - WebPDecoderConfig*
    - WebPOutputFileFormat
    - int
    assertStmts:
    - condition: (tmp <= external_buffer + total_size)
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/libwebp/examples/dwebp.c
    - condition: (format >= YUV && format <= YUVA)
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/libwebp/examples/dwebp.c
    constantsTouched: []
    func_position:
      end: 178
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 178
    functionName: AllocateExternalBuffer
    functionSourceFile: /src/libwebp/examples/dwebp.c
    functionUses: 0
    functionsReached:
    - assert
    - WebPIsAlphaMode
    - WebPMalloc
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * AllocateExternalBuffer(WebPDecoderConfig* config,\n                                       WebPOutputFileFormat
      format,\n                                       int use_external_memory)"
  - BBCount: 79
    BranchProfiles: []
    Callsites:
    - Dst: INIT_WARGV
      Src: /src/libwebp/examples/dwebp.c:197,1
    - Dst: WebPInitDecoderConfig
      Src: /src/libwebp/examples/dwebp.c:199,1
    - Dst: fprintf
      Src: /src/libwebp/examples/dwebp.c:200,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/dwebp.c:201,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:206,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:206,1
    - Dst: Help
      Src: /src/libwebp/examples/dwebp.c:207,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/dwebp.c:208,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:209,1
    - Dst: GET_WARGV
      Src: /src/libwebp/examples/dwebp.c:210,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:211,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:213,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:215,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:217,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:219,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:221,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:223,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:225,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:227,1
    - Dst: WebPGetDecoderVersion
      Src: /src/libwebp/examples/dwebp.c:228,1
    - Dst: printf
      Src: /src/libwebp/examples/dwebp.c:229,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/dwebp.c:231,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:232,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:234,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:236,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:238,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:240,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:242,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:244,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:246,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:248,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:250,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:252,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:254,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:256,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:258,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:260,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:262,1
    - Dst: fprintf
      Src: /src/libwebp/examples/dwebp.c:265,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:268,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/dwebp.c:269,1
    - Dst: fprintf
      Src: /src/libwebp/examples/dwebp.c:272,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:274,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:276,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:278,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:280,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/dwebp.c:282,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:283,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/dwebp.c:285,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/dwebp.c:286,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/dwebp.c:287,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/dwebp.c:288,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:289,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:289,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/dwebp.c:292,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/dwebp.c:293,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:294,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:296,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:299,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:302,1
    - Dst: strcmp
      Src: /src/libwebp/examples/dwebp.c:304,1
    - Dst: GET_WARGV
      Src: /src/libwebp/examples/dwebp.c:305,1
    - Dst: fprintf
      Src: /src/libwebp/examples/dwebp.c:308,1
    - Dst: Help
      Src: /src/libwebp/examples/dwebp.c:309,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/dwebp.c:310,1
    - Dst: GET_WARGV
      Src: /src/libwebp/examples/dwebp.c:312,1
    - Dst: Help
      Src: /src/libwebp/examples/dwebp.c:316,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/dwebp.c:317,1
    - Dst: fprintf
      Src: /src/libwebp/examples/dwebp.c:322,1
    - Dst: Help
      Src: /src/libwebp/examples/dwebp.c:323,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/dwebp.c:324,1
    - Dst: LoadWebP
      Src: /src/libwebp/examples/dwebp.c:332,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/dwebp.c:333,1
    - Dst: AllocateExternalBuffer
      Src: /src/libwebp/examples/dwebp.c:409,1
    - Dst: StopwatchReset
      Src: /src/libwebp/examples/dwebp.c:415,1
    - Dst: DecodeWebPIncremental
      Src: /src/libwebp/examples/dwebp.c:418,1
    - Dst: DecodeWebP
      Src: /src/libwebp/examples/dwebp.c:420,1
    - Dst: StopwatchReadAndReset
      Src: /src/libwebp/examples/dwebp.c:423,1
    - Dst: fprintf
      Src: /src/libwebp/examples/dwebp.c:424,1
    - Dst: PrintWebPError
      Src: /src/libwebp/examples/dwebp.c:430,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/dwebp.c:437,1
    - Dst: fprintf
      Src: /src/libwebp/examples/dwebp.c:438,1
    - Dst: SaveOutput
      Src: /src/libwebp/examples/dwebp.c:443,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/dwebp.c:446,1
    - Dst: fprintf
      Src: /src/libwebp/examples/dwebp.c:447,1
    - Dst: fprintf
      Src: /src/libwebp/examples/dwebp.c:451,1
    - Dst: WebPFreeDecBuffer
      Src: /src/libwebp/examples/dwebp.c:457,1
    - Dst: WebPFree
      Src: /src/libwebp/examples/dwebp.c:458,1
    - Dst: WebPFree
      Src: /src/libwebp/examples/dwebp.c:459,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/dwebp.c:460,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 272
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 461
    functionName: main
    functionSourceFile: /src/libwebp/examples/dwebp.c
    functionUses: 0
    functionsReached:
    - WebPFree
    - fprintf
    - GET_WARGV
    - ExUtilGetInt
    - DecodeWebP
    - PrintWebPError
    - WFPRINTF
    - WebPFreeDecBuffer
    - strcmp
    - StopwatchReset
    - StopwatchReadAndReset
    - printf
    - WebPInitDecoderConfig
    - INIT_WARGV
    - Help
    - DecodeWebPIncremental
    - AllocateExternalBuffer
    - WebPGetDecoderVersion
    - SaveOutput
    - FREE_WARGV_AND_RETURN
    - LoadWebP
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MESSAGE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: LOG_ERROR
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_ERROR(MESSAGE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MESSAGE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: LOG_WARN
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_WARN(MESSAGE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/examples/webpinfo.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - webp_info
    argTypes:
    - WebPInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: WebPInfoInit
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void WebPInfoInit(WebPInfo* const webp_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: GetLE16
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetLE16(const uint8_t* const data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLE16
      Src: /src/libwebp/examples/webpinfo.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: GetLE24
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 6
    functionsReached:
    - GetLE16
    linkageType: ''
    returnType: int
    signature: int GetLE24(const uint8_t* const data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLE16
      Src: /src/libwebp/examples/webpinfo.c:143,1
    - Dst: GetLE16
      Src: /src/libwebp/examples/webpinfo.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: GetLE32
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 10
    functionsReached:
    - GetLE16
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t GetLE32(const uint8_t* const data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLE16
      Src: /src/libwebp/examples/webpinfo.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: ReadLE16
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - GetLE16
    linkageType: ''
    returnType: int
    signature: int ReadLE16(const uint8_t** data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLE24
      Src: /src/libwebp/examples/webpinfo.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: ReadLE24
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - GetLE24
    linkageType: ''
    returnType: int
    signature: int ReadLE24(const uint8_t** data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLE32
      Src: /src/libwebp/examples/webpinfo.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: ReadLE32
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 3
    functionsReached:
    - GetLE32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ReadLE32(const uint8_t** data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ImgIoUtilReadFile
      Src: /src/libwebp/examples/webpinfo.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - filename
    - webp_data
    argTypes:
    - char*
    - WebPData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 172
    functionName: ReadFileToWebPData
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 1
    functionsReached:
    - ImgIoUtilReadFile
    linkageType: ''
    returnType: int
    signature: "int ReadFileToWebPData(const char* const filename,\n                              WebPData*
      const webp_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mem
    - webp_data
    argTypes:
    - MemBuffer*
    - WebPData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: InitMemBuffer
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitMemBuffer(MemBuffer* const mem, const WebPData* webp_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mem
    argTypes:
    - MemBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: MemDataSize
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t MemDataSize(const MemBuffer* const mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mem
    argTypes:
    - MemBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: GetBuffer
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * GetBuffer(MemBuffer* const mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mem
    - size
    argTypes:
    - MemBuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: Skip
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Skip(MemBuffer* const mem, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLE32
      Src: /src/libwebp/examples/webpinfo.c:195,1
    - Dst: assert
      Src: /src/libwebp/examples/webpinfo.c:196,1
    - Dst: MemDataSize
      Src: /src/libwebp/examples/webpinfo.c:196,1
    - Dst: Skip
      Src: /src/libwebp/examples/webpinfo.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mem
    argTypes:
    - MemBuffer*
    assertStmts:
    - condition: (MemDataSize(mem) >= 4)
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/libwebp/examples/webpinfo.c
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: ReadMemBufLE32
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - assert
    - MemDataSize
    - GetLE32
    - Skip
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ReadMemBufLE32(MemBuffer* const mem)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - data
    - data_size
    - nb
    - val
    - bit_pos
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - int*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 217
    functionName: GetBits
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int GetBits(const uint8_t* const data, size_t data_size, size_t nb,\n
      \                  int* val, uint64_t* const bit_pos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetBits
      Src: /src/libwebp/examples/webpinfo.c:222,1
    - Dst: GetBits
      Src: /src/libwebp/examples/webpinfo.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - data
    - data_size
    - nb
    - val
    - bit_pos
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - int*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 226
    functionName: GetSignedBits
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - GetBits
    linkageType: ''
    returnType: int
    signature: "int GetSignedBits(const uint8_t* const data, size_t data_size, size_t
      nb,\n                         int* val, uint64_t* const bit_pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: GET_BITS
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_BITS(v, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: GET_SIGNED_BITS
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SIGNED_BITS(v, n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:249,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:250,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:253,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:254,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:255,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:263,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:264,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:267,1
    - Dst: GET_SIGNED_BITS
      Src: /src/libwebp/examples/webpinfo.c:268,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:272,1
    - Dst: GET_SIGNED_BITS
      Src: /src/libwebp/examples/webpinfo.c:273,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:275,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:277,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:285,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:286,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:288,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - webp_info
    - data
    - data_size
    - bit_pos
    argTypes:
    - WebPInfo*
    - uint8_t*
    - size_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 293
    functionName: ParseLossySegmentHeader
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - printf
    - GET_BITS
    - GET_SIGNED_BITS
    linkageType: ''
    returnType: WebPInfoStatus
    signature: "WebPInfoStatus ParseLossySegmentHeader(const WebPInfo* const webp_info,\n
      \                                             const uint8_t* const data,\n                                              size_t
      data_size,\n                                              uint64_t* const bit_pos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:300,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:301,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:302,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:303,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:304,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:305,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:306,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:307,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:310,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:311,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:316,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:317,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - webp_info
    - data
    - data_size
    - bit_pos
    argTypes:
    - WebPInfo*
    - uint8_t*
    - size_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 322
    functionName: ParseLossyFilterHeader
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - printf
    - GET_BITS
    linkageType: ''
    returnType: WebPInfoStatus
    signature: "WebPInfoStatus ParseLossyFilterHeader(const WebPInfo* const webp_info,\n
      \                                            const uint8_t* const data,\n                                             size_t
      data_size,\n                                             uint64_t* const bit_pos)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:337,1
    - Dst: assert
      Src: /src/libwebp/examples/webpinfo.c:339,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:341,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:345,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:350,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:358,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:361,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:371,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:375,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:378,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:379,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:380,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:381,1
    - Dst: ParseLossySegmentHeader
      Src: /src/libwebp/examples/webpinfo.c:382,1
    - Dst: ParseLossyFilterHeader
      Src: /src/libwebp/examples/webpinfo.c:384,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:390,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:393,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:397,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:402,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:405,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:414,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:415,1
    - Dst: GET_SIGNED_BITS
      Src: /src/libwebp/examples/webpinfo.c:416,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:417,1
    - Dst: GET_SIGNED_BITS
      Src: /src/libwebp/examples/webpinfo.c:418,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:419,1
    - Dst: GET_SIGNED_BITS
      Src: /src/libwebp/examples/webpinfo.c:420,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:421,1
    - Dst: GET_SIGNED_BITS
      Src: /src/libwebp/examples/webpinfo.c:422,1
    - Dst: GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:423,1
    - Dst: GET_SIGNED_BITS
      Src: /src/libwebp/examples/webpinfo.c:424,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:425,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:426,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:427,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:428,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:429,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:430,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:433,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 86
    argCount: 2
    argNames:
    - chunk_data
    - webp_info
    argTypes:
    - ChunkData*
    - WebPInfo*
    assertStmts:
    - condition: (chunk_data->size >= CHUNK_HEADER_SIZE + 10)
      pos:
        line_end: 338
        line_start: 338
        source_file: /src/libwebp/examples/webpinfo.c
    constantsTouched: []
    func_position:
      end: 437
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 437
    functionName: ParseLossyHeader
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - printf
    - GET_BITS
    - ParseLossySegmentHeader
    - assert
    - GET_SIGNED_BITS
    - LOG_ERROR
    - ParseLossyFilterHeader
    linkageType: ''
    returnType: WebPInfoStatus
    signature: "WebPInfoStatus ParseLossyHeader(const ChunkData* const chunk_data,\n
      \                                      const WebPInfo* const webp_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - data
    - data_size
    - nb
    - val
    - bit_pos
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - int*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 457
    functionName: LLGetBits
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int LLGetBits(const uint8_t* const data, size_t data_size, size_t
      nb,\n                     int* val, uint64_t* const bit_pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 466
    functionName: LL_GET_BITS
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LL_GET_BITS(v, n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LL_GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:472,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:473,1
    - Dst: LL_GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:476,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:477,1
    - Dst: LL_GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:481,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:483,1
    - Dst: LL_GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:486,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:488,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - webp_info
    - data
    - data_size
    - bit_pos
    argTypes:
    - WebPInfo*
    - uint8_t*
    - size_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 495
    functionName: ParseLosslessTransform
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - printf
    - LL_GET_BITS
    linkageType: ''
    returnType: WebPInfoStatus
    signature: "WebPInfoStatus ParseLosslessTransform(WebPInfo* const webp_info,\n
      \                                            const uint8_t* const data,\n                                             size_t
      data_size,\n                                             uint64_t* const bit_pos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:504,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:506,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:510,1
    - Dst: LL_GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:517,1
    - Dst: LL_GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:518,1
    - Dst: LL_GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:519,1
    - Dst: LL_GET_BITS
      Src: /src/libwebp/examples/webpinfo.c:520,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:523,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:524,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:525,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:526,1
    - Dst: ParseLosslessTransform
      Src: /src/libwebp/examples/webpinfo.c:528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - chunk_data
    - webp_info
    argTypes:
    - ChunkData*
    - WebPInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 531
    functionName: ParseLosslessHeader
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - printf
    - LL_GET_BITS
    - ParseLosslessTransform
    - LOG_ERROR
    linkageType: ''
    returnType: WebPInfoStatus
    signature: "WebPInfoStatus ParseLosslessHeader(const ChunkData* const chunk_data,\n
      \                                         WebPInfo* const webp_info)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:538,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:541,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:547,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:548,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:550,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:552,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:556,1
    - Dst: LOG_WARN
      Src: /src/libwebp/examples/webpinfo.c:560,1
    - Dst: ParseLosslessTransform
      Src: /src/libwebp/examples/webpinfo.c:567,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - chunk_data
    - webp_info
    argTypes:
    - ChunkData*
    - WebPInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 572
    functionName: ParseAlphaHeader
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - printf
    - LOG_WARN
    - ParseLosslessTransform
    - LOG_ERROR
    linkageType: ''
    returnType: WebPInfoStatus
    signature: "WebPInfoStatus ParseAlphaHeader(const ChunkData* const chunk_data,\n
      \                                      WebPInfo* const webp_info)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MemDataSize
      Src: /src/libwebp/examples/webpinfo.c:582,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:583,1
    - Dst: memcmp
      Src: /src/libwebp/examples/webpinfo.c:586,1
    - Dst: GetBuffer
      Src: /src/libwebp/examples/webpinfo.c:586,1
    - Dst: memcmp
      Src: /src/libwebp/examples/webpinfo.c:587,1
    - Dst: GetBuffer
      Src: /src/libwebp/examples/webpinfo.c:587,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:588,1
    - Dst: GetLE32
      Src: /src/libwebp/examples/webpinfo.c:591,1
    - Dst: GetBuffer
      Src: /src/libwebp/examples/webpinfo.c:591,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:593,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:597,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:602,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:603,1
    - Dst: LOG_WARN
      Src: /src/libwebp/examples/webpinfo.c:606,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:609,1
    - Dst: Skip
      Src: /src/libwebp/examples/webpinfo.c:612,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - webp_info
    - mem
    argTypes:
    - WebPInfo*
    - MemBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 614
    functionName: ParseRIFFHeader
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - printf
    - MemDataSize
    - LOG_WARN
    - LOG_ERROR
    - GetLE32
    - GetBuffer
    - memcmp
    - Skip
    linkageType: ''
    returnType: WebPInfoStatus
    signature: "WebPInfoStatus ParseRIFFHeader(WebPInfo* const webp_info,\n                                      MemBuffer*
      const mem)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/examples/webpinfo.c:619,1
    - Dst: MemDataSize
      Src: /src/libwebp/examples/webpinfo.c:620,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:621,1
    - Dst: ReadMemBufLE32
      Src: /src/libwebp/examples/webpinfo.c:625,1
    - Dst: ReadMemBufLE32
      Src: /src/libwebp/examples/webpinfo.c:626,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:631,1
    - Dst: MemDataSize
      Src: /src/libwebp/examples/webpinfo.c:634,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:635,1
    - Dst: GetBuffer
      Src: /src/libwebp/examples/webpinfo.c:644,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:647,1
    - Dst: Skip
      Src: /src/libwebp/examples/webpinfo.c:651,1
    - Dst: Skip
      Src: /src/libwebp/examples/webpinfo.c:653,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - webp_info
    - mem
    - chunk_data
    argTypes:
    - WebPInfo*
    - MemBuffer*
    - ChunkData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 657
    functionName: ParseChunk
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - MemDataSize
    - LOG_ERROR
    - memset
    - ReadMemBufLE32
    - GetBuffer
    - Skip
    linkageType: ''
    returnType: WebPInfoStatus
    signature: "WebPInfoStatus ParseChunk(const WebPInfo* const webp_info,\n                                 MemBuffer*
      const mem,\n                                 ChunkData* const chunk_data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:668,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:672,1
    - Dst: ReadLE24
      Src: /src/libwebp/examples/webpinfo.c:678,1
    - Dst: ReadLE24
      Src: /src/libwebp/examples/webpinfo.c:679,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:681,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:687,1
    - Dst: LOG_WARN
      Src: /src/libwebp/examples/webpinfo.c:691,1
    - Dst: LOG_WARN
      Src: /src/libwebp/examples/webpinfo.c:694,1
    - Dst: LOG_WARN
      Src: /src/libwebp/examples/webpinfo.c:698,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - chunk_data
    - webp_info
    argTypes:
    - ChunkData*
    - WebPInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 701
    functionName: ProcessVP8XChunk
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - printf
    - ReadLE24
    - LOG_ERROR
    - LOG_WARN
    linkageType: ''
    returnType: WebPInfoStatus
    signature: "WebPInfoStatus ProcessVP8XChunk(const ChunkData* const chunk_data,\n
      \                                      WebPInfo* const webp_info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:707,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:711,1
    - Dst: ReadLE32
      Src: /src/libwebp/examples/webpinfo.c:714,1
    - Dst: ReadLE16
      Src: /src/libwebp/examples/webpinfo.c:715,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:718,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:721,1
    - Dst: LOG_WARN
      Src: /src/libwebp/examples/webpinfo.c:724,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - chunk_data
    - webp_info
    argTypes:
    - ChunkData*
    - WebPInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 727
    functionName: ProcessANIMChunk
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - printf
    - LOG_ERROR
    - ReadLE16
    - LOG_WARN
    - ReadLE32
    linkageType: ''
    returnType: WebPInfoStatus
    signature: "WebPInfoStatus ProcessANIMChunk(const ChunkData* const chunk_data,\n
      \                                      WebPInfo* const webp_info)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:734,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:738,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:742,1
    - Dst: ReadLE24
      Src: /src/libwebp/examples/webpinfo.c:745,1
    - Dst: ReadLE24
      Src: /src/libwebp/examples/webpinfo.c:746,1
    - Dst: ReadLE24
      Src: /src/libwebp/examples/webpinfo.c:747,1
    - Dst: ReadLE24
      Src: /src/libwebp/examples/webpinfo.c:748,1
    - Dst: ReadLE24
      Src: /src/libwebp/examples/webpinfo.c:749,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:755,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:761,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:765,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:770,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 2
    argNames:
    - chunk_data
    - webp_info
    argTypes:
    - ChunkData*
    - WebPInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 781
    functionName: ProcessANMFChunk
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - printf
    - ReadLE24
    - LOG_ERROR
    linkageType: ''
    returnType: WebPInfoStatus
    signature: "WebPInfoStatus ProcessANMFChunk(const ChunkData* const chunk_data,\n
      \                                      WebPInfo* const webp_info)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: WebPGetFeatures
      Src: /src/libwebp/examples/webpinfo.c:788,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:790,1
    - Dst: assert
      Src: /src/libwebp/examples/webpinfo.c:794,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:795,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:804,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:809,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:813,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:820,1
    - Dst: LOG_WARN
      Src: /src/libwebp/examples/webpinfo.c:824,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:828,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:834,1
    - Dst: LOG_WARN
      Src: /src/libwebp/examples/webpinfo.c:845,1
    - Dst: ParseLossyHeader
      Src: /src/libwebp/examples/webpinfo.c:855,1
    - Dst: ParseLosslessHeader
      Src: /src/libwebp/examples/webpinfo.c:856,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 57
    argCount: 2
    argNames:
    - chunk_data
    - webp_info
    argTypes:
    - ChunkData*
    - WebPInfo*
    assertStmts:
    - condition: (features.format >= 0 && features.format <= 2)
      pos:
        line_end: 793
        line_start: 793
        source_file: /src/libwebp/examples/webpinfo.c
    constantsTouched: []
    func_position:
      end: 860
      start: 783
    functionDepth: 3
    functionLinenumber: 783
    functionLinenumberEnd: 860
    functionName: ProcessImageChunk
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - printf
    - ParseLossyHeader
    - assert
    - LOG_ERROR
    - ParseLosslessHeader
    - LOG_WARN
    - WebPGetFeatures
    linkageType: ''
    returnType: WebPInfoStatus
    signature: "WebPInfoStatus ProcessImageChunk(const ChunkData* const chunk_data,\n
      \                                       WebPInfo* const webp_info)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:867,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:873,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:881,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:885,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:889,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:893,1
    - Dst: ParseAlphaHeader
      Src: /src/libwebp/examples/webpinfo.c:900,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - chunk_data
    - webp_info
    argTypes:
    - ChunkData*
    - WebPInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 862
    functionDepth: 3
    functionLinenumber: 862
    functionLinenumberEnd: 904
    functionName: ProcessALPHChunk
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - ParseAlphaHeader
    - LOG_ERROR
    linkageType: ''
    returnType: WebPInfoStatus
    signature: "WebPInfoStatus ProcessALPHChunk(const ChunkData* const chunk_data,\n
      \                                      WebPInfo* const webp_info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:910,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:916,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - chunk_data
    - webp_info
    argTypes:
    - ChunkData*
    - WebPInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 921
    functionName: ProcessICCPChunk
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - LOG_ERROR
    linkageType: ''
    returnType: WebPInfoStatus
    signature: "WebPInfoStatus ProcessICCPChunk(const ChunkData* const chunk_data,\n
      \                                      WebPInfo* const webp_info)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libwebp/examples/webpinfo.c:929,1
    - Dst: LOG_WARN
      Src: /src/libwebp/examples/webpinfo.c:931,1
    - Dst: memcpy
      Src: /src/libwebp/examples/webpinfo.c:940,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:941,1
    - Dst: ProcessImageChunk
      Src: /src/libwebp/examples/webpinfo.c:948,1
    - Dst: ProcessVP8XChunk
      Src: /src/libwebp/examples/webpinfo.c:951,1
    - Dst: ProcessALPHChunk
      Src: /src/libwebp/examples/webpinfo.c:954,1
    - Dst: ProcessANIMChunk
      Src: /src/libwebp/examples/webpinfo.c:957,1
    - Dst: ProcessANMFChunk
      Src: /src/libwebp/examples/webpinfo.c:960,1
    - Dst: ProcessICCPChunk
      Src: /src/libwebp/examples/webpinfo.c:963,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:976,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:983,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 2
    argNames:
    - chunk_data
    - webp_info
    argTypes:
    - ChunkData*
    - WebPInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 923
    functionDepth: 4
    functionLinenumber: 923
    functionLinenumberEnd: 988
    functionName: ProcessChunk
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - printf
    - memcpy
    - ProcessALPHChunk
    - ProcessANIMChunk
    - LOG_ERROR
    - ProcessVP8XChunk
    - snprintf
    - ProcessImageChunk
    - LOG_WARN
    - ProcessICCPChunk
    - ProcessANMFChunk
    linkageType: ''
    returnType: WebPInfoStatus
    signature: "WebPInfoStatus ProcessChunk(const ChunkData* const chunk_data,\n                                   WebPInfo*
      const webp_info)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:992,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:1002,1
    - Dst: LOG_WARN
      Src: /src/libwebp/examples/webpinfo.c:1006,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:1009,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:1013,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:1017,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:1021,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:1025,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:1029,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:1035,1
    - Dst: LOG_ERROR
      Src: /src/libwebp/examples/webpinfo.c:1040,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 49
    argCount: 1
    argNames:
    - webp_info
    argTypes:
    - WebPInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 1045
    functionName: Validate
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 2
    functionsReached:
    - LOG_WARN
    - LOG_ERROR
    linkageType: ''
    returnType: WebPInfoStatus
    signature: WebPInfoStatus Validate(WebPInfo* const webp_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:1049,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:1050,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:1051,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:1054,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:1056,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:1058,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:1063,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - webp_info
    argTypes:
    - WebPInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1064
    functionName: ShowSummary
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void ShowSummary(const WebPInfo* const webp_info)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: InitMemBuffer
      Src: /src/libwebp/examples/webpinfo.c:1072,1
    - Dst: ParseRIFFHeader
      Src: /src/libwebp/examples/webpinfo.c:1073,1
    - Dst: MemDataSize
      Src: /src/libwebp/examples/webpinfo.c:1077,1
    - Dst: ParseChunk
      Src: /src/libwebp/examples/webpinfo.c:1078,1
    - Dst: ProcessChunk
      Src: /src/libwebp/examples/webpinfo.c:1080,1
    - Dst: ShowSummary
      Src: /src/libwebp/examples/webpinfo.c:1083,1
    - Dst: Validate
      Src: /src/libwebp/examples/webpinfo.c:1086,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:1091,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:1093,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:1096,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - webp_info
    - webp_data
    argTypes:
    - WebPInfo*
    - WebPData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1066
    functionDepth: 5
    functionLinenumber: 1066
    functionLinenumberEnd: 1100
    functionName: AnalyzeWebP
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 1
    functionsReached:
    - ProcessChunk
    - printf
    - ParseChunk
    - MemDataSize
    - ParseRIFFHeader
    - Validate
    - ShowSummary
    - InitMemBuffer
    linkageType: ''
    returnType: WebPInfoStatus
    signature: "WebPInfoStatus AnalyzeWebP(WebPInfo* const webp_info,\n                                  const
      WebPData* webp_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:1103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1102
    functionDepth: 0
    functionLinenumber: 1102
    functionLinenumberEnd: 1113
    functionName: Help
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void Help(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: INIT_WARGV
      Src: /src/libwebp/examples/webpinfo.c:1122,1
    - Dst: Help
      Src: /src/libwebp/examples/webpinfo.c:1125,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/webpinfo.c:1126,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpinfo.c:1131,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpinfo.c:1131,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpinfo.c:1132,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpinfo.c:1132,1
    - Dst: Help
      Src: /src/libwebp/examples/webpinfo.c:1133,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/webpinfo.c:1134,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpinfo.c:1135,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpinfo.c:1137,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpinfo.c:1139,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpinfo.c:1141,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpinfo.c:1143,1
    - Dst: WebPGetDecoderVersion
      Src: /src/libwebp/examples/webpinfo.c:1144,1
    - Dst: printf
      Src: /src/libwebp/examples/webpinfo.c:1145,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/webpinfo.c:1147,1
    - Dst: Help
      Src: /src/libwebp/examples/webpinfo.c:1154,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/webpinfo.c:1155,1
    - Dst: WebPInfoInit
      Src: /src/libwebp/examples/webpinfo.c:1162,1
    - Dst: GET_WARGV
      Src: /src/libwebp/examples/webpinfo.c:1167,1
    - Dst: ReadFileToWebPData
      Src: /src/libwebp/examples/webpinfo.c:1169,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/webpinfo.c:1171,1
    - Dst: WPRINTF
      Src: /src/libwebp/examples/webpinfo.c:1174,1
    - Dst: AnalyzeWebP
      Src: /src/libwebp/examples/webpinfo.c:1175,1
    - Dst: WebPDataClear
      Src: /src/libwebp/examples/webpinfo.c:1176,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/webpinfo.c:1178,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1116
    functionDepth: 6
    functionLinenumber: 1116
    functionLinenumberEnd: 1180
    functionName: main
    functionSourceFile: /src/libwebp/examples/webpinfo.c
    functionUses: 0
    functionsReached:
    - printf
    - INIT_WARGV
    - ReadFileToWebPData
    - WFPRINTF
    - WebPGetDecoderVersion
    - Help
    - strcmp
    - GET_WARGV
    - AnalyzeWebP
    - WebPInfoInit
    - WPRINTF
    - WebPDataClear
    - FREE_WARGV_AND_RETURN
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libwebp/examples/anim_dump.c:29,1
    - Dst: printf
      Src: /src/libwebp/examples/anim_dump.c:30,1
    - Dst: printf
      Src: /src/libwebp/examples/anim_dump.c:31,1
    - Dst: printf
      Src: /src/libwebp/examples/anim_dump.c:32,1
    - Dst: printf
      Src: /src/libwebp/examples/anim_dump.c:35,1
    - Dst: printf
      Src: /src/libwebp/examples/anim_dump.c:36,1
    - Dst: printf
      Src: /src/libwebp/examples/anim_dump.c:37,1
    - Dst: printf
      Src: /src/libwebp/examples/anim_dump.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 39
    functionName: Help
    functionSourceFile: /src/libwebp/examples/anim_dump.c
    functionUses: 3
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void Help(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TO_W_CHAR
      Src: /src/libwebp/examples/anim_dump.c:44,1
    - Dst: TO_W_CHAR
      Src: /src/libwebp/examples/anim_dump.c:45,1
    - Dst: TO_W_CHAR
      Src: /src/libwebp/examples/anim_dump.c:46,1
    - Dst: INIT_WARGV
      Src: /src/libwebp/examples/anim_dump.c:50,1
    - Dst: Help
      Src: /src/libwebp/examples/anim_dump.c:53,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/anim_dump.c:54,1
    - Dst: strcmp
      Src: /src/libwebp/examples/anim_dump.c:58,1
    - Dst: fprintf
      Src: /src/libwebp/examples/anim_dump.c:60,1
    - Dst: GET_WARGV
      Src: /src/libwebp/examples/anim_dump.c:64,1
    - Dst: strcmp
      Src: /src/libwebp/examples/anim_dump.c:65,1
    - Dst: fprintf
      Src: /src/libwebp/examples/anim_dump.c:67,1
    - Dst: GET_WARGV
      Src: /src/libwebp/examples/anim_dump.c:71,1
    - Dst: strcmp
      Src: /src/libwebp/examples/anim_dump.c:72,1
    - Dst: TO_W_CHAR
      Src: /src/libwebp/examples/anim_dump.c:74,1
    - Dst: strcmp
      Src: /src/libwebp/examples/anim_dump.c:75,1
    - Dst: TO_W_CHAR
      Src: /src/libwebp/examples/anim_dump.c:77,1
    - Dst: strcmp
      Src: /src/libwebp/examples/anim_dump.c:78,1
    - Dst: strcmp
      Src: /src/libwebp/examples/anim_dump.c:78,1
    - Dst: Help
      Src: /src/libwebp/examples/anim_dump.c:79,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/anim_dump.c:80,1
    - Dst: strcmp
      Src: /src/libwebp/examples/anim_dump.c:81,1
    - Dst: GetAnimatedImageVersions
      Src: /src/libwebp/examples/anim_dump.c:83,1
    - Dst: printf
      Src: /src/libwebp/examples/anim_dump.c:84,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/anim_dump.c:88,1
    - Dst: GET_WARGV
      Src: /src/libwebp/examples/anim_dump.c:92,1
    - Dst: memset
      Src: /src/libwebp/examples/anim_dump.c:93,1
    - Dst: WPRINTF
      Src: /src/libwebp/examples/anim_dump.c:94,1
    - Dst: ReadAnimatedImage
      Src: /src/libwebp/examples/anim_dump.c:96,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/anim_dump.c:97,1
    - Dst: WebPInitDecBuffer
      Src: /src/libwebp/examples/anim_dump.c:105,1
    - Dst: fprintf
      Src: /src/libwebp/examples/anim_dump.c:106,1
    - Dst: CheckMultiplicationOverflow
      Src: /src/libwebp/examples/anim_dump.c:116,1
    - Dst: fprintf
      Src: /src/libwebp/examples/anim_dump.c:118,1
    - Dst: WebPFreeDecBuffer
      Src: /src/libwebp/examples/anim_dump.c:121,1
    - Dst: WSNPRINTF
      Src: /src/libwebp/examples/anim_dump.c:125,1
    - Dst: WebPSaveImage
      Src: /src/libwebp/examples/anim_dump.c:127,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/anim_dump.c:128,1
    - Dst: WebPFreeDecBuffer
      Src: /src/libwebp/examples/anim_dump.c:131,1
    - Dst: ClearAnimatedImage
      Src: /src/libwebp/examples/anim_dump.c:133,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/anim_dump.c:136,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 137
    functionName: main
    functionSourceFile: /src/libwebp/examples/anim_dump.c
    functionUses: 0
    functionsReached:
    - CheckMultiplicationOverflow
    - fprintf
    - GET_WARGV
    - WSNPRINTF
    - WebPSaveImage
    - WFPRINTF
    - WebPFreeDecBuffer
    - strcmp
    - ClearAnimatedImage
    - GetAnimatedImageVersions
    - printf
    - INIT_WARGV
    - Help
    - ReadAnimatedImage
    - WPRINTF
    - TO_W_CHAR
    - memset
    - FREE_WARGV_AND_RETURN
    - WebPInitDecBuffer
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char* argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WSTRCMP
      Src: /src/libwebp/examples/unicode_gif.h:39,1
    - Dst: LOCAL_GIF_PREREQ
      Src: /src/libwebp/examples/unicode_gif.h:40,1
    - Dst: DGifOpenFileHandle
      Src: /src/libwebp/examples/unicode_gif.h:41,1
    - Dst: DGifOpenFileHandle
      Src: /src/libwebp/examples/unicode_gif.h:44,1
    - Dst: _wopen
      Src: /src/libwebp/examples/unicode_gif.h:50,1
    - Dst: LOCAL_GIF_PREREQ
      Src: /src/libwebp/examples/unicode_gif.h:56,1
    - Dst: DGifOpenFileHandle
      Src: /src/libwebp/examples/unicode_gif.h:57,1
    - Dst: DGifOpenFileHandle
      Src: /src/libwebp/examples/unicode_gif.h:59,1
    - Dst: LOCAL_GIF_PREREQ
      Src: /src/libwebp/examples/unicode_gif.h:65,1
    - Dst: DGifOpenFileName
      Src: /src/libwebp/examples/unicode_gif.h:66,1
    - Dst: DGifOpenFileName
      Src: /src/libwebp/examples/unicode_gif.h:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - file_name
    - error
    argTypes:
    - W_CHAR*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 73
    functionName: DGifOpenFileUnicode
    functionSourceFile: /src/libwebp/examples/unicode_gif.h
    functionUses: 0
    functionsReached:
    - _wopen
    - DGifOpenFileName
    - DGifOpenFileHandle
    - WSTRCMP
    - LOCAL_GIF_PREREQ
    linkageType: ''
    returnType: GifFileType
    signature: GifFileType * DGifOpenFileUnicode(const W_CHAR* file_name, int* error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:40,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:41,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:42,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:44,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:45,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:46,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:49,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:52,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:53,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:56,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:60,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:61,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:62,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:63,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:64,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:66,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:67,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:68,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:69,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:70,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:71,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:74,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:80,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:81,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:84,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:87,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:90,1
    - Dst: WebPGetEnabledInputFileFormats
      Src: /src/libwebp/examples/img2webp.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 92
    functionName: Help
    functionSourceFile: /src/libwebp/examples/img2webp.c
    functionUses: 4
    functionsReached:
    - printf
    - WebPGetEnabledInputFileFormats
    linkageType: ''
    returnType: void
    signature: void Help(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadPictureWithWIC
      Src: /src/libwebp/examples/img2webp.c:104,1
    - Dst: ImgIoUtilReadFile
      Src: /src/libwebp/examples/img2webp.c:107,1
    - Dst: WebPGuessImageReader
      Src: /src/libwebp/examples/img2webp.c:108,1
    - Dst: reader
      Src: /src/libwebp/examples/img2webp.c:109,1
    - Dst: WebPFree
      Src: /src/libwebp/examples/img2webp.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - filename
    - pic
    argTypes:
    - char[]
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: ReadImage
    functionSourceFile: /src/libwebp/examples/img2webp.c
    functionUses: 0
    functionsReached:
    - ImgIoUtilReadFile
    - reader
    - WebPFree
    - ReadPictureWithWIC
    - WebPGuessImageReader
    linkageType: ''
    returnType: int
    signature: int ReadImage(const char filename[], WebPPicture* const pic)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WebPMuxCreate
      Src: /src/libwebp/examples/img2webp.c:119,1
    - Dst: WebPMuxGetFeatures
      Src: /src/libwebp/examples/img2webp.c:122,1
    - Dst: WebPMuxGetAnimationParams
      Src: /src/libwebp/examples/img2webp.c:126,1
    - Dst: WebPMuxSetAnimationParams
      Src: /src/libwebp/examples/img2webp.c:130,1
    - Dst: WebPDataClear
      Src: /src/libwebp/examples/img2webp.c:134,1
    - Dst: WebPMuxAssemble
      Src: /src/libwebp/examples/img2webp.c:135,1
    - Dst: WebPMuxDelete
      Src: /src/libwebp/examples/img2webp.c:140,1
    - Dst: fprintf
      Src: /src/libwebp/examples/img2webp.c:142,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - loop_count
    - webp_data
    argTypes:
    - int
    - WebPData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 114
    functionDepth: 9
    functionLinenumber: 114
    functionLinenumberEnd: 145
    functionName: SetLoopCount
    functionSourceFile: /src/libwebp/examples/img2webp.c
    functionUses: 0
    functionsReached:
    - WebPMuxDelete
    - WebPMuxCreate
    - WebPMuxSetAnimationParams
    - fprintf
    - WebPMuxGetAnimationParams
    - WebPMuxGetFeatures
    - WebPDataClear
    - WebPMuxAssemble
    linkageType: ''
    returnType: int
    signature: int SetLoopCount(int loop_count, WebPData* const webp_data)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: INIT_WARGV
      Src: /src/libwebp/examples/img2webp.c:169,1
    - Dst: ExUtilInitCommandLineArguments
      Src: /src/libwebp/examples/img2webp.c:171,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/img2webp.c:172,1
    - Dst: WebPDataInit
      Src: /src/libwebp/examples/img2webp.c:177,1
    - Dst: WebPAnimEncoderOptionsInit
      Src: /src/libwebp/examples/img2webp.c:178,1
    - Dst: WebPConfigInit
      Src: /src/libwebp/examples/img2webp.c:178,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/examples/img2webp.c:179,1
    - Dst: fprintf
      Src: /src/libwebp/examples/img2webp.c:180,1
    - Dst: strcmp
      Src: /src/libwebp/examples/img2webp.c:189,1
    - Dst: GET_WARGV_SHIFTED
      Src: /src/libwebp/examples/img2webp.c:191,1
    - Dst: strcmp
      Src: /src/libwebp/examples/img2webp.c:192,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/img2webp.c:194,1
    - Dst: strcmp
      Src: /src/libwebp/examples/img2webp.c:195,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/img2webp.c:197,1
    - Dst: strcmp
      Src: /src/libwebp/examples/img2webp.c:198,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/img2webp.c:200,1
    - Dst: fprintf
      Src: /src/libwebp/examples/img2webp.c:202,1
    - Dst: strcmp
      Src: /src/libwebp/examples/img2webp.c:205,1
    - Dst: strcmp
      Src: /src/libwebp/examples/img2webp.c:207,1
    - Dst: strcmp
      Src: /src/libwebp/examples/img2webp.c:210,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/img2webp.c:212,1
    - Dst: strcmp
      Src: /src/libwebp/examples/img2webp.c:213,1
    - Dst: strcmp
      Src: /src/libwebp/examples/img2webp.c:215,1
    - Dst: strcmp
      Src: /src/libwebp/examples/img2webp.c:217,1
    - Dst: strcmp
      Src: /src/libwebp/examples/img2webp.c:217,1
    - Dst: Help
      Src: /src/libwebp/examples/img2webp.c:218,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/img2webp.c:219,1
    - Dst: strcmp
      Src: /src/libwebp/examples/img2webp.c:220,1
    - Dst: WebPGetEncoderVersion
      Src: /src/libwebp/examples/img2webp.c:221,1
    - Dst: WebPGetMuxVersion
      Src: /src/libwebp/examples/img2webp.c:222,1
    - Dst: SharpYuvGetVersion
      Src: /src/libwebp/examples/img2webp.c:223,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:224,1
    - Dst: printf
      Src: /src/libwebp/examples/img2webp.c:228,1
    - Dst: fprintf
      Src: /src/libwebp/examples/img2webp.c:242,1
    - Dst: Help
      Src: /src/libwebp/examples/img2webp.c:244,1
    - Dst: strcmp
      Src: /src/libwebp/examples/img2webp.c:255,1
    - Dst: strcmp
      Src: /src/libwebp/examples/img2webp.c:257,1
    - Dst: strcmp
      Src: /src/libwebp/examples/img2webp.c:259,1
    - Dst: ExUtilGetFloat
      Src: /src/libwebp/examples/img2webp.c:260,1
    - Dst: strcmp
      Src: /src/libwebp/examples/img2webp.c:261,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/img2webp.c:262,1
    - Dst: strcmp
      Src: /src/libwebp/examples/img2webp.c:263,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/img2webp.c:264,1
    - Dst: fprintf
      Src: /src/libwebp/examples/img2webp.c:266,1
    - Dst: strcmp
      Src: /src/libwebp/examples/img2webp.c:269,1
    - Dst: strcmp
      Src: /src/libwebp/examples/img2webp.c:271,1
    - Dst: fprintf
      Src: /src/libwebp/examples/img2webp.c:275,1
    - Dst: WebPValidateConfig
      Src: /src/libwebp/examples/img2webp.c:283,1
    - Dst: fprintf
      Src: /src/libwebp/examples/img2webp.c:285,1
    - Dst: ReadImage
      Src: /src/libwebp/examples/img2webp.c:292,1
    - Dst: GET_WARGV_SHIFTED
      Src: /src/libwebp/examples/img2webp.c:292,1
    - Dst: WebPAnimEncoderNew
      Src: /src/libwebp/examples/img2webp.c:299,1
    - Dst: fprintf
      Src: /src/libwebp/examples/img2webp.c:302,1
    - Dst: fprintf
      Src: /src/libwebp/examples/img2webp.c:309,1
    - Dst: WebPAnimEncoderAdd
      Src: /src/libwebp/examples/img2webp.c:317,1
    - Dst: fprintf
      Src: /src/libwebp/examples/img2webp.c:319,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/examples/img2webp.c:322,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/img2webp.c:326,1
    - Dst: GET_WARGV_SHIFTED
      Src: /src/libwebp/examples/img2webp.c:327,1
    - Dst: fprintf
      Src: /src/libwebp/examples/img2webp.c:335,1
    - Dst: WebPAnimEncoderAdd
      Src: /src/libwebp/examples/img2webp.c:343,1
    - Dst: WebPAnimEncoderAssemble
      Src: /src/libwebp/examples/img2webp.c:344,1
    - Dst: fprintf
      Src: /src/libwebp/examples/img2webp.c:346,1
    - Dst: WebPAnimEncoderDelete
      Src: /src/libwebp/examples/img2webp.c:351,1
    - Dst: SetLoopCount
      Src: /src/libwebp/examples/img2webp.c:354,1
    - Dst: ImgIoUtilWriteFile
      Src: /src/libwebp/examples/img2webp.c:359,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/img2webp.c:360,1
    - Dst: fprintf
      Src: /src/libwebp/examples/img2webp.c:362,1
    - Dst: fprintf
      Src: /src/libwebp/examples/img2webp.c:367,1
    - Dst: WebPDataClear
      Src: /src/libwebp/examples/img2webp.c:370,1
    - Dst: ExUtilDeleteCommandLineArguments
      Src: /src/libwebp/examples/img2webp.c:371,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/img2webp.c:372,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 199
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 150
    functionDepth: 10
    functionLinenumber: 150
    functionLinenumberEnd: 373
    functionName: main
    functionSourceFile: /src/libwebp/examples/img2webp.c
    functionUses: 0
    functionsReached:
    - WebPAnimEncoderOptionsInit
    - WebPAnimEncoderAdd
    - WebPValidateConfig
    - WebPAnimEncoderDelete
    - fprintf
    - ExUtilGetInt
    - ReadImage
    - ImgIoUtilWriteFile
    - WebPDataInit
    - WebPPictureInit
    - WFPRINTF
    - WebPGetMuxVersion
    - strcmp
    - WebPDataClear
    - printf
    - WebPAnimEncoderAssemble
    - INIT_WARGV
    - WebPAnimEncoderNew
    - SetLoopCount
    - Help
    - ExUtilDeleteCommandLineArguments
    - WebPConfigInit
    - WebPPictureFree
    - WebPGetEncoderVersion
    - GET_WARGV_SHIFTED
    - ExUtilInitCommandLineArguments
    - SharpYuvGetVersion
    - FREE_WARGV_AND_RETURN
    - ExUtilGetFloat
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maj
    - ','
    - min
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: LOCAL_GIF_PREREQ
    functionSourceFile: /src/libwebp/examples/gifdec.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCAL_GIF_PREREQ(maj, min)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maj
    - ','
    - min
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: LOCAL_GIF_PREREQ
    functionSourceFile: /src/libwebp/examples/gifdec.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCAL_GIF_PREREQ(maj, min)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:61,1
    - Dst: WebPPictureAlloc
      Src: /src/libwebp/examples/cwebp.c:68,1
    - Dst: ImgIoUtilCopyPlane
      Src: /src/libwebp/examples/cwebp.c:69,1
    - Dst: ImgIoUtilCopyPlane
      Src: /src/libwebp/examples/cwebp.c:71,1
    - Dst: ImgIoUtilCopyPlane
      Src: /src/libwebp/examples/cwebp.c:73,1
    - Dst: WebPPictureYUVAToARGB
      Src: /src/libwebp/examples/cwebp.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - data
    - data_size
    - pic
    argTypes:
    - uint8_t*
    - size_t
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 51
    functionDepth: 4
    functionLinenumber: 51
    functionLinenumberEnd: 76
    functionName: ReadYUV
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - WebPPictureYUVAToARGB
    - WebPPictureAlloc
    - fprintf
    - ImgIoUtilCopyPlane
    linkageType: ''
    returnType: int
    signature: "int ReadYUV(const uint8_t* const data, size_t data_size,\n                   WebPPicture*
      const pic)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ImgIoUtilReadFile
      Src: /src/libwebp/examples/cwebp.c:86,1
    - Dst: ReadYUV
      Src: /src/libwebp/examples/cwebp.c:87,1
    - Dst: ReadPictureWithWIC
      Src: /src/libwebp/examples/cwebp.c:90,1
    - Dst: ImgIoUtilReadFile
      Src: /src/libwebp/examples/cwebp.c:92,1
    - Dst: ReadWebP
      Src: /src/libwebp/examples/cwebp.c:93,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/cwebp.c:97,1
    - Dst: WebPFree
      Src: /src/libwebp/examples/cwebp.c:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - filename
    - pic
    - keep_alpha
    - metadata
    argTypes:
    - char*
    - WebPPicture*
    - int
    - Metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 102
    functionName: ReadPicture
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 1
    functionsReached:
    - ReadYUV
    - ReadWebP
    - ImgIoUtilReadFile
    - WFPRINTF
    - WebPFree
    - ReadPictureWithWIC
    linkageType: ''
    returnType: int
    signature: "int ReadPicture(const char* const filename, WebPPicture* const pic,\n
      \                      int keep_alpha, Metadata* const metadata)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ImgIoUtilReadFile
      Src: /src/libwebp/examples/cwebp.c:112,1
    - Dst: WebPGuessImageReader
      Src: /src/libwebp/examples/cwebp.c:116,1
    - Dst: reader
      Src: /src/libwebp/examples/cwebp.c:117,1
    - Dst: ReadYUV
      Src: /src/libwebp/examples/cwebp.c:120,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/cwebp.c:124,1
    - Dst: WebPFree
      Src: /src/libwebp/examples/cwebp.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - filename
    - pic
    - keep_alpha
    - metadata
    argTypes:
    - char*
    - WebPPicture*
    - int
    - Metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 106
    functionDepth: 5
    functionLinenumber: 106
    functionLinenumberEnd: 129
    functionName: ReadPicture
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 1
    functionsReached:
    - ReadYUV
    - ImgIoUtilReadFile
    - WFPRINTF
    - reader
    - WebPFree
    - WebPGuessImageReader
    linkageType: ''
    returnType: int
    signature: "int ReadPicture(const char* const filename, WebPPicture* const pic,\n
      \                      int keep_alpha, Metadata* const metadata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPMalloc
      Src: /src/libwebp/examples/cwebp.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pic
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: AllocExtraInfo
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - WebPMalloc
    linkageType: ''
    returnType: void
    signature: void AllocExtraInfo(WebPPicture* const pic)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:145,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - bytes
    - total_size
    - totals
    argTypes:
    - int[]
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 150
    functionName: PrintByteCount
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void PrintByteCount(const int bytes[4], int total_size,\n                           int*
      const totals)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:156,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - counts
    argTypes:
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: PrintPercents
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void PrintPercents(const int counts[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:164,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - values
    argTypes:
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: PrintValues
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void PrintValues(const int values[4])
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:171,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:173,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:176,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:177,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:178,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:179,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:180,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:181,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:183,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:185,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:188,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:190,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:192,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - stats
    - description
    argTypes:
    - WebPAuxStats*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 194
    functionName: PrintFullLosslessInfo
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void PrintFullLosslessInfo(const WebPAuxStats* const stats,\n                                  const
      char* const description)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:201,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/cwebp.c:203,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:204,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:205,1
    - Dst: PrintFullLosslessInfo
      Src: /src/libwebp/examples/cwebp.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - pic
    - short_output
    - file_name
    argTypes:
    - WebPPicture*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 209
    functionName: PrintExtraInfoLossless
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - WFPRINTF
    - PrintFullLosslessInfo
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void PrintExtraInfoLossless(const WebPPicture* const pic,\n                                   int
      short_output,\n                                   const char* const file_name)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:215,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/cwebp.c:221,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:222,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:224,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:232,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:238,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:246,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:249,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:254,1
    - Dst: PrintByteCount
      Src: /src/libwebp/examples/cwebp.c:255,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:256,1
    - Dst: PrintByteCount
      Src: /src/libwebp/examples/cwebp.c:257,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:258,1
    - Dst: PrintByteCount
      Src: /src/libwebp/examples/cwebp.c:259,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:261,1
    - Dst: PrintPercents
      Src: /src/libwebp/examples/cwebp.c:262,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:263,1
    - Dst: PrintValues
      Src: /src/libwebp/examples/cwebp.c:264,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:265,1
    - Dst: PrintValues
      Src: /src/libwebp/examples/cwebp.c:266,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:268,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:269,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:270,1
    - Dst: PrintByteCount
      Src: /src/libwebp/examples/cwebp.c:271,1
    - Dst: PrintFullLosslessInfo
      Src: /src/libwebp/examples/cwebp.c:275,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 4
    argNames:
    - pic
    - short_output
    - full_details
    - file_name
    argTypes:
    - WebPPicture*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 278
    functionName: PrintExtraInfoLossy
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - PrintPercents
    - WFPRINTF
    - PrintByteCount
    - PrintFullLosslessInfo
    - fprintf
    - PrintValues
    linkageType: ''
    returnType: void
    signature: "void PrintExtraInfoLossy(const WebPPicture* const pic, int short_output,\n
      \                               int full_details, const char* const file_name)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:290,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:292,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:294,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:296,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:298,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:301,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - pic
    argTypes:
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 304
    functionName: PrintMapInfo
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void PrintMapInfo(const WebPPicture* const pic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/libwebp/examples/cwebp.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - data_size
    - pic
    argTypes:
    - uint8_t*
    - size_t
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 312
    functionName: MyWriter
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: int
    signature: "int MyWriter(const uint8_t* data, size_t data_size,\n                    const
      WebPPicture* const pic)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: WebPPictureHasTransparency
      Src: /src/libwebp/examples/cwebp.c:326,1
    - Dst: WFOPEN
      Src: /src/libwebp/examples/cwebp.c:328,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:330,1
    - Dst: fwrite
      Src: /src/libwebp/examples/cwebp.c:332,1
    - Dst: fputc
      Src: /src/libwebp/examples/cwebp.c:333,1
    - Dst: fwrite
      Src: /src/libwebp/examples/cwebp.c:337,1
    - Dst: fwrite
      Src: /src/libwebp/examples/cwebp.c:338,1
    - Dst: fwrite
      Src: /src/libwebp/examples/cwebp.c:343,1
    - Dst: fputc
      Src: /src/libwebp/examples/cwebp.c:344,1
    - Dst: fclose
      Src: /src/libwebp/examples/cwebp.c:350,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 2
    argNames:
    - picture
    - PGM_name
    argTypes:
    - WebPPicture*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 352
    functionName: DumpPicture
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - WebPPictureHasTransparency
    - WFOPEN
    - fwrite
    - fclose
    - fprintf
    - fputc
    linkageType: ''
    returnType: int
    signature: int DumpPicture(const WebPPicture* const picture, const char* PGM_name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:371,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:373,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:376,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:379,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - metadata
    - metadata_written
    argTypes:
    - Metadata*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 381
    functionName: PrintMetadataInfo
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void PrintMetadataInfo(const Metadata* const metadata,\n                              int
      metadata_written)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/libwebp/examples/cwebp.c:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - out
    - val
    - num
    argTypes:
    - FILE*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 392
    functionName: WriteLE
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: int
    signature: int WriteLE(FILE* const out, uint32_t val, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WriteLE
      Src: /src/libwebp/examples/cwebp.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - val
    argTypes:
    - FILE*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 396
    functionName: WriteLE24
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - WriteLE
    linkageType: ''
    returnType: int
    signature: int WriteLE24(FILE* const out, uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WriteLE
      Src: /src/libwebp/examples/cwebp.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - val
    argTypes:
    - FILE*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: WriteLE32
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - WriteLE
    linkageType: ''
    returnType: int
    signature: int WriteLE32(FILE* const out, uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/libwebp/examples/cwebp.c:406,1
    - Dst: WriteLE32
      Src: /src/libwebp/examples/cwebp.c:407,1
    - Dst: fwrite
      Src: /src/libwebp/examples/cwebp.c:408,1
    - Dst: fwrite
      Src: /src/libwebp/examples/cwebp.c:409,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - out
    - fourcc
    - payload
    argTypes:
    - FILE*
    - char[]
    - MetadataPayload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 410
    functionName: WriteMetadataChunk
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - WriteLE32
    - fwrite
    linkageType: ''
    returnType: int
    signature: "int WriteMetadataChunk(FILE* const out, const char fourcc[4],\n                              const
      MetadataPayload* const payload)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - payload
    - keep
    - flag
    - vp8x_flags
    - metadata_size
    argTypes:
    - MetadataPayload*
    - int
    - int
    - uint32_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 423
    functionName: UpdateFlagsAndSize
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int UpdateFlagsAndSize(const MetadataPayload* const payload, int keep,\n
      \                             int flag, uint32_t* vp8x_flags,\n                              uint64_t*
      metadata_size)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: UpdateFlagsAndSize
      Src: /src/libwebp/examples/cwebp.c:446,1
    - Dst: UpdateFlagsAndSize
      Src: /src/libwebp/examples/cwebp.c:449,1
    - Dst: UpdateFlagsAndSize
      Src: /src/libwebp/examples/cwebp.c:452,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:461,1
    - Dst: memcmp
      Src: /src/libwebp/examples/cwebp.c:469,1
    - Dst: fwrite
      Src: /src/libwebp/examples/cwebp.c:474,1
    - Dst: WriteLE32
      Src: /src/libwebp/examples/cwebp.c:476,1
    - Dst: fwrite
      Src: /src/libwebp/examples/cwebp.c:480,1
    - Dst: fwrite
      Src: /src/libwebp/examples/cwebp.c:485,1
    - Dst: memcmp
      Src: /src/libwebp/examples/cwebp.c:489,1
    - Dst: fwrite
      Src: /src/libwebp/examples/cwebp.c:495,1
    - Dst: WriteLE32
      Src: /src/libwebp/examples/cwebp.c:496,1
    - Dst: WriteLE24
      Src: /src/libwebp/examples/cwebp.c:497,1
    - Dst: WriteLE24
      Src: /src/libwebp/examples/cwebp.c:498,1
    - Dst: WriteMetadataChunk
      Src: /src/libwebp/examples/cwebp.c:501,1
    - Dst: fwrite
      Src: /src/libwebp/examples/cwebp.c:505,1
    - Dst: WriteMetadataChunk
      Src: /src/libwebp/examples/cwebp.c:507,1
    - Dst: WriteMetadataChunk
      Src: /src/libwebp/examples/cwebp.c:511,1
    - Dst: fwrite
      Src: /src/libwebp/examples/cwebp.c:518,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 6
    argNames:
    - out
    - picture
    - memory_writer
    - metadata
    - keep_metadata
    - metadata_written
    argTypes:
    - FILE*
    - WebPPicture*
    - WebPMemoryWriter*
    - Metadata*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 519
    functionName: WriteWebPWithMetadata
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - UpdateFlagsAndSize
    - fwrite
    - fprintf
    - WriteLE32
    - WriteMetadataChunk
    - memcmp
    - WriteLE24
    linkageType: ''
    returnType: int
    signature: "int WriteWebPWithMetadata(FILE* const out,\n                                 const
      WebPPicture* const picture,\n                                 const WebPMemoryWriter*
      const memory_writer,\n                                 const Metadata* const
      metadata,\n                                 int keep_metadata,\n                                 int*
      const metadata_written)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 4
    argNames:
    - resize_mode
    - pic
    - resize_w
    - resize_h
    argTypes:
    - int
    - WebPPicture*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 548
    functionName: ApplyResizeMode
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ApplyResizeMode(const int resize_mode, const WebPPicture* const
      pic,\n                            int* const resize_w, int* const resize_h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - percent
    - picture
    argTypes:
    - int
    - WebPPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 555
    functionName: ProgressReport
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int ProgressReport(int percent, const WebPPicture* const picture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:560,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:561,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:562,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:563,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 565
    functionName: HelpShort
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void HelpShort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:568,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:569,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:570,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:573,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:575,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:577,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:578,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:579,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:580,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:583,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:586,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:587,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:588,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:589,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:590,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:593,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:594,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:597,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:600,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:601,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:602,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:603,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:604,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:607,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:610,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:613,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:616,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:617,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:620,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:621,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:624,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:625,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:628,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:629,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:630,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:633,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:634,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:635,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:636,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:637,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:638,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:639,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:640,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:643,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:644,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:645,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:648,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:653,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:654,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:655,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:658,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:659,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:661,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:662,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:663,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:664,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:665,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:669,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:670,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:671,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:672,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:674,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:676,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:679,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:680,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:681,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:682,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:683,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:684,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:685,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:686,1
    - Dst: WebPGetEnabledInputFileFormats
      Src: /src/libwebp/examples/cwebp.c:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 687
    functionName: HelpLong
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - printf
    - WebPGetEnabledInputFileFormats
    linkageType: ''
    returnType: void
    signature: void HelpLong(void)
  - BBCount: 136
    BranchProfiles: []
    Callsites:
    - Dst: INIT_WARGV
      Src: /src/libwebp/examples/cwebp.c:741,1
    - Dst: MetadataInit
      Src: /src/libwebp/examples/cwebp.c:743,1
    - Dst: WebPMemoryWriterInit
      Src: /src/libwebp/examples/cwebp.c:744,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/examples/cwebp.c:745,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/examples/cwebp.c:745,1
    - Dst: WebPConfigInit
      Src: /src/libwebp/examples/cwebp.c:746,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:747,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/cwebp.c:748,1
    - Dst: HelpShort
      Src: /src/libwebp/examples/cwebp.c:752,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/cwebp.c:753,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:758,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:758,1
    - Dst: HelpShort
      Src: /src/libwebp/examples/cwebp.c:759,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/cwebp.c:760,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:761,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:761,1
    - Dst: HelpLong
      Src: /src/libwebp/examples/cwebp.c:762,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/cwebp.c:763,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:764,1
    - Dst: GET_WARGV
      Src: /src/libwebp/examples/cwebp.c:765,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:766,1
    - Dst: GET_WARGV
      Src: /src/libwebp/examples/cwebp.c:767,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:769,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:772,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:775,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:778,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:780,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:781,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:782,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:785,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:789,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:790,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:792,1
    - Dst: ExUtilGetFloat
      Src: /src/libwebp/examples/cwebp.c:793,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:795,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:796,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:798,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:799,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:800,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:801,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:802,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:805,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:807,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:810,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:812,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:814,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:816,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:818,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:821,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:824,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:826,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:828,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:829,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:831,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:833,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:835,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:837,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:840,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:843,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:844,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:845,1
    - Dst: ExUtilGetFloat
      Src: /src/libwebp/examples/cwebp.c:846,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:847,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:848,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:849,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:850,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:851,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:853,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:855,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:857,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:859,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:861,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:863,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:864,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:865,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:867,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:868,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:869,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:870,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:871,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:874,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:875,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:876,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:877,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:878,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:879,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:880,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:881,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:882,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:884,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:885,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:886,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:887,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:888,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:889,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/cwebp.c:890,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:891,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:893,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:895,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:897,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:900,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:904,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:907,1
    - Dst: WebPGetEncoderVersion
      Src: /src/libwebp/examples/cwebp.c:908,1
    - Dst: SharpYuvGetVersion
      Src: /src/libwebp/examples/cwebp.c:909,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:910,1
    - Dst: printf
      Src: /src/libwebp/examples/cwebp.c:912,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/cwebp.c:914,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:915,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:917,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:919,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:922,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:924,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:926,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:928,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:930,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:932,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:935,1
    - Dst: WebPConfigPreset
      Src: /src/libwebp/examples/cwebp.c:938,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:939,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:942,1
    - Dst: strlen
      Src: /src/libwebp/examples/cwebp.c:955,1
    - Dst: strchr
      Src: /src/libwebp/examples/cwebp.c:959,1
    - Dst: strlen
      Src: /src/libwebp/examples/cwebp.c:963,1
    - Dst: strncmp
      Src: /src/libwebp/examples/cwebp.c:964,1
    - Dst: strlen
      Src: /src/libwebp/examples/cwebp.c:964,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:974,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/cwebp.c:976,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:983,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:988,1
    - Dst: strcmp
      Src: /src/libwebp/examples/cwebp.c:990,1
    - Dst: GET_WARGV
      Src: /src/libwebp/examples/cwebp.c:991,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:994,1
    - Dst: HelpLong
      Src: /src/libwebp/examples/cwebp.c:995,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/cwebp.c:996,1
    - Dst: GET_WARGV
      Src: /src/libwebp/examples/cwebp.c:998,1
    - Dst: HelpLong
      Src: /src/libwebp/examples/cwebp.c:1002,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/cwebp.c:1003,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1007,1
    - Dst: HelpShort
      Src: /src/libwebp/examples/cwebp.c:1008,1
    - Dst: WebPConfigLosslessPreset
      Src: /src/libwebp/examples/cwebp.c:1013,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1014,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1023,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1028,1
    - Dst: WebPValidateConfig
      Src: /src/libwebp/examples/cwebp.c:1039,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1040,1
    - Dst: StopwatchReset
      Src: /src/libwebp/examples/cwebp.c:1051,1
    - Dst: ReadPicture
      Src: /src/libwebp/examples/cwebp.c:1053,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/cwebp.c:1055,1
    - Dst: WebPBlendAlpha
      Src: /src/libwebp/examples/cwebp.c:1062,1
    - Dst: StopwatchReadAndReset
      Src: /src/libwebp/examples/cwebp.c:1066,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1067,1
    - Dst: WSTRCMP
      Src: /src/libwebp/examples/cwebp.c:1080,1
    - Dst: ImgIoUtilSetBinaryMode
      Src: /src/libwebp/examples/cwebp.c:1081,1
    - Dst: WFOPEN
      Src: /src/libwebp/examples/cwebp.c:1081,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/cwebp.c:1083,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/cwebp.c:1088,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1105,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1106,1
    - Dst: StopwatchReset
      Src: /src/libwebp/examples/cwebp.c:1116,1
    - Dst: WebPPictureView
      Src: /src/libwebp/examples/cwebp.c:1120,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1121,1
    - Dst: ApplyResizeMode
      Src: /src/libwebp/examples/cwebp.c:1125,1
    - Dst: WebPPictureCopy
      Src: /src/libwebp/examples/cwebp.c:1133,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1134,1
    - Dst: WebPPictureRescale
      Src: /src/libwebp/examples/cwebp.c:1150,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1151,1
    - Dst: WebPPictureRescale
      Src: /src/libwebp/examples/cwebp.c:1156,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1157,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/examples/cwebp.c:1172,1
    - Dst: StopwatchReadAndReset
      Src: /src/libwebp/examples/cwebp.c:1176,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1177,1
    - Dst: AllocExtraInfo
      Src: /src/libwebp/examples/cwebp.c:1181,1
    - Dst: WebPPictureCopy
      Src: /src/libwebp/examples/cwebp.c:1186,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1187,1
    - Dst: StopwatchReset
      Src: /src/libwebp/examples/cwebp.c:1193,1
    - Dst: WebPEncode
      Src: /src/libwebp/examples/cwebp.c:1195,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1196,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1197,1
    - Dst: StopwatchReadAndReset
      Src: /src/libwebp/examples/cwebp.c:1202,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1203,1
    - Dst: assert
      Src: /src/libwebp/examples/cwebp.c:1216,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/examples/cwebp.c:1218,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1219,1
    - Dst: ReadWebP
      Src: /src/libwebp/examples/cwebp.c:1224,1
    - Dst: WebPPictureHasTransparency
      Src: /src/libwebp/examples/cwebp.c:1226,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1228,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1229,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1241,1
    - Dst: DumpPicture
      Src: /src/libwebp/examples/cwebp.c:1244,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/cwebp.c:1245,1
    - Dst: WriteWebPWithMetadata
      Src: /src/libwebp/examples/cwebp.c:1251,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1253,1
    - Dst: UpdateFlagsAndSize
      Src: /src/libwebp/examples/cwebp.c:1270,1
    - Dst: PrintExtraInfoLossless
      Src: /src/libwebp/examples/cwebp.c:1280,1
    - Dst: PrintExtraInfoLossy
      Src: /src/libwebp/examples/cwebp.c:1282,1
    - Dst: PrintMapInfo
      Src: /src/libwebp/examples/cwebp.c:1286,1
    - Dst: WebPPictureDistortion
      Src: /src/libwebp/examples/cwebp.c:1291,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1293,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1297,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1298,1
    - Dst: fprintf
      Src: /src/libwebp/examples/cwebp.c:1301,1
    - Dst: PrintMetadataInfo
      Src: /src/libwebp/examples/cwebp.c:1305,1
    - Dst: WebPMemoryWriterClear
      Src: /src/libwebp/examples/cwebp.c:1311,1
    - Dst: WebPFree
      Src: /src/libwebp/examples/cwebp.c:1312,1
    - Dst: MetadataFree
      Src: /src/libwebp/examples/cwebp.c:1313,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/examples/cwebp.c:1314,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/examples/cwebp.c:1315,1
    - Dst: fclose
      Src: /src/libwebp/examples/cwebp.c:1317,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/cwebp.c:1320,1
    CyclomaticComplexity: 230
    EdgeCount: 230
    ICount: 531
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts:
    - condition: (use_memory_writer)
      pos:
        line_end: 1215
        line_start: 1215
        source_file: /src/libwebp/examples/cwebp.c
    constantsTouched: []
    func_position:
      end: 1321
      start: 713
    functionDepth: 4
    functionLinenumber: 713
    functionLinenumberEnd: 1321
    functionName: main
    functionSourceFile: /src/libwebp/examples/cwebp.c
    functionUses: 0
    functionsReached:
    - WriteWebPWithMetadata
    - strncmp
    - WebPPictureHasTransparency
    - WebPFree
    - WebPValidateConfig
    - fprintf
    - GET_WARGV
    - ExUtilGetInt
    - strchr
    - strlen
    - WSTRCMP
    - WebPPictureRescale
    - PrintMapInfo
    - ApplyResizeMode
    - WebPPictureInit
    - WFPRINTF
    - WebPPictureDistortion
    - HelpLong
    - assert
    - MetadataInit
    - strcmp
    - StopwatchReset
    - PrintExtraInfoLossy
    - HelpShort
    - AllocExtraInfo
    - ReadPicture
    - StopwatchReadAndReset
    - printf
    - WebPPictureView
    - INIT_WARGV
    - ReadWebP
    - WebPBlendAlpha
    - WebPPictureCopy
    - UpdateFlagsAndSize
    - MetadataFree
    - WebPConfigPreset
    - WebPConfigInit
    - WebPPictureFree
    - WebPConfigLosslessPreset
    - WFOPEN
    - DumpPicture
    - fclose
    - PrintExtraInfoLossless
    - WebPMemoryWriterClear
    - WebPMemoryWriterInit
    - WebPGetEncoderVersion
    - WebPEncode
    - PrintMetadataInfo
    - SharpYuvGetVersion
    - ImgIoUtilSetBinaryMode
    - FREE_WARGV_AND_RETURN
    - ExUtilGetFloat
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/examples/gif2webp.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - err
    argTypes:
    - WebPMuxError
    assertStmts:
    - condition: (err <= WEBP_MUX_NOT_FOUND && err >= WEBP_MUX_NOT_ENOUGH_DATA)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/libwebp/examples/gif2webp.c
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: ErrorString
    functionSourceFile: /src/libwebp/examples/gif2webp.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char * ErrorString(WebPMuxError err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:67,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:68,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:69,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:70,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:71,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:72,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:75,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:78,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:82,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:83,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:86,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:91,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:92,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:93,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:94,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:95,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:96,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:97,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:98,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:99,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:100,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:101,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:102,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:103,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:104,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:105,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 107
    functionName: Help
    functionSourceFile: /src/libwebp/examples/gif2webp.c
    functionUses: 5
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void Help(void)
  - BBCount: 97
    BranchProfiles: []
    Callsites:
    - Dst: INIT_WARGV
      Src: /src/libwebp/examples/gif2webp.c:150,1
    - Dst: WebPConfigInit
      Src: /src/libwebp/examples/gif2webp.c:152,1
    - Dst: WebPAnimEncoderOptionsInit
      Src: /src/libwebp/examples/gif2webp.c:152,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/examples/gif2webp.c:153,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/examples/gif2webp.c:153,1
    - Dst: WebPPictureInit
      Src: /src/libwebp/examples/gif2webp.c:154,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:155,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/gif2webp.c:156,1
    - Dst: WebPDataInit
      Src: /src/libwebp/examples/gif2webp.c:160,1
    - Dst: WebPDataInit
      Src: /src/libwebp/examples/gif2webp.c:161,1
    - Dst: WebPDataInit
      Src: /src/libwebp/examples/gif2webp.c:162,1
    - Dst: Help
      Src: /src/libwebp/examples/gif2webp.c:165,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/gif2webp.c:166,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:171,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:171,1
    - Dst: Help
      Src: /src/libwebp/examples/gif2webp.c:172,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/gif2webp.c:173,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:174,1
    - Dst: GET_WARGV
      Src: /src/libwebp/examples/gif2webp.c:175,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:176,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:178,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:181,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/gif2webp.c:182,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:183,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:185,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:187,1
    - Dst: ExUtilGetFloat
      Src: /src/libwebp/examples/gif2webp.c:188,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:189,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/gif2webp.c:190,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:191,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:193,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/gif2webp.c:194,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:196,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/gif2webp.c:197,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:199,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/gif2webp.c:200,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:201,1
    - Dst: strlen
      Src: /src/libwebp/examples/gif2webp.c:213,1
    - Dst: strchr
      Src: /src/libwebp/examples/gif2webp.c:218,1
    - Dst: strlen
      Src: /src/libwebp/examples/gif2webp.c:222,1
    - Dst: strncmp
      Src: /src/libwebp/examples/gif2webp.c:223,1
    - Dst: strlen
      Src: /src/libwebp/examples/gif2webp.c:223,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:233,1
    - Dst: Help
      Src: /src/libwebp/examples/gif2webp.c:235,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/gif2webp.c:236,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:240,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:242,1
    - Dst: WebPGetEncoderVersion
      Src: /src/libwebp/examples/gif2webp.c:243,1
    - Dst: WebPGetMuxVersion
      Src: /src/libwebp/examples/gif2webp.c:244,1
    - Dst: SharpYuvGetVersion
      Src: /src/libwebp/examples/gif2webp.c:245,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:246,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:250,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/gif2webp.c:252,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:253,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:256,1
    - Dst: strcmp
      Src: /src/libwebp/examples/gif2webp.c:259,1
    - Dst: GET_WARGV
      Src: /src/libwebp/examples/gif2webp.c:260,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:263,1
    - Dst: Help
      Src: /src/libwebp/examples/gif2webp.c:264,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/gif2webp.c:265,1
    - Dst: GET_WARGV
      Src: /src/libwebp/examples/gif2webp.c:267,1
    - Dst: Help
      Src: /src/libwebp/examples/gif2webp.c:271,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/gif2webp.c:272,1
    - Dst: WebPValidateConfig
      Src: /src/libwebp/examples/gif2webp.c:284,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:285,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:290,1
    - Dst: Help
      Src: /src/libwebp/examples/gif2webp.c:291,1
    - Dst: DGifOpenFileUnicode
      Src: /src/libwebp/examples/gif2webp.c:296,1
    - Dst: DGifGetRecordType
      Src: /src/libwebp/examples/gif2webp.c:303,1
    - Dst: DGifGetImageDesc
      Src: /src/libwebp/examples/gif2webp.c:310,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:314,1
    - Dst: printf
      Src: /src/libwebp/examples/gif2webp.c:327,1
    - Dst: WebPPictureAlloc
      Src: /src/libwebp/examples/gif2webp.c:335,1
    - Dst: GIFClearPic
      Src: /src/libwebp/examples/gif2webp.c:336,1
    - Dst: WebPPictureCopy
      Src: /src/libwebp/examples/gif2webp.c:337,1
    - Dst: WebPPictureCopy
      Src: /src/libwebp/examples/gif2webp.c:338,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:339,1
    - Dst: GIFGetBackgroundColor
      Src: /src/libwebp/examples/gif2webp.c:344,1
    - Dst: WebPAnimEncoderNew
      Src: /src/libwebp/examples/gif2webp.c:349,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:352,1
    - Dst: GIFReadFrame
      Src: /src/libwebp/examples/gif2webp.c:365,1
    - Dst: GIFBlendFrames
      Src: /src/libwebp/examples/gif2webp.c:370,1
    - Dst: WebPAnimEncoderAdd
      Src: /src/libwebp/examples/gif2webp.c:372,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:373,1
    - Dst: WebPAnimEncoderGetError
      Src: /src/libwebp/examples/gif2webp.c:374,1
    - Dst: GIFDisposeFrame
      Src: /src/libwebp/examples/gif2webp.c:381,1
    - Dst: GIFCopyPixels
      Src: /src/libwebp/examples/gif2webp.c:382,1
    - Dst: DGifGetExtension
      Src: /src/libwebp/examples/gif2webp.c:406,1
    - Dst: GIFReadGraphicsExtension
      Src: /src/libwebp/examples/gif2webp.c:416,1
    - Dst: memcmp
      Src: /src/libwebp/examples/gif2webp.c:427,1
    - Dst: memcmp
      Src: /src/libwebp/examples/gif2webp.c:428,1
    - Dst: GIFReadLoopCount
      Src: /src/libwebp/examples/gif2webp.c:429,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:433,1
    - Dst: memcmp
      Src: /src/libwebp/examples/gif2webp.c:441,1
    - Dst: memcmp
      Src: /src/libwebp/examples/gif2webp.c:444,1
    - Dst: GIFReadMetadata
      Src: /src/libwebp/examples/gif2webp.c:446,1
    - Dst: DGifGetExtensionNext
      Src: /src/libwebp/examples/gif2webp.c:464,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:474,1
    - Dst: WebPAnimEncoderAdd
      Src: /src/libwebp/examples/gif2webp.c:482,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:483,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:484,1
    - Dst: WebPAnimEncoderGetError
      Src: /src/libwebp/examples/gif2webp.c:484,1
    - Dst: WebPAnimEncoderAssemble
      Src: /src/libwebp/examples/gif2webp.c:487,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:488,1
    - Dst: WebPAnimEncoderGetError
      Src: /src/libwebp/examples/gif2webp.c:488,1
    - Dst: WebPMuxCreate
      Src: /src/libwebp/examples/gif2webp.c:513,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:515,1
    - Dst: WebPDataClear
      Src: /src/libwebp/examples/gif2webp.c:518,1
    - Dst: WebPMuxGetAnimationParams
      Src: /src/libwebp/examples/gif2webp.c:522,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:524,1
    - Dst: ErrorString
      Src: /src/libwebp/examples/gif2webp.c:525,1
    - Dst: WebPMuxSetAnimationParams
      Src: /src/libwebp/examples/gif2webp.c:529,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:531,1
    - Dst: ErrorString
      Src: /src/libwebp/examples/gif2webp.c:532,1
    - Dst: WebPMuxSetChunk
      Src: /src/libwebp/examples/gif2webp.c:538,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:540,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:543,1
    - Dst: ErrorString
      Src: /src/libwebp/examples/gif2webp.c:544,1
    - Dst: WebPMuxSetChunk
      Src: /src/libwebp/examples/gif2webp.c:550,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:552,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:555,1
    - Dst: ErrorString
      Src: /src/libwebp/examples/gif2webp.c:556,1
    - Dst: WebPMuxAssemble
      Src: /src/libwebp/examples/gif2webp.c:561,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:563,1
    - Dst: ErrorString
      Src: /src/libwebp/examples/gif2webp.c:566,1
    - Dst: ImgIoUtilWriteFile
      Src: /src/libwebp/examples/gif2webp.c:572,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/gif2webp.c:574,1
    - Dst: WSTRCMP
      Src: /src/libwebp/examples/gif2webp.c:578,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:579,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/gif2webp.c:581,1
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:587,1
    - Dst: WebPDataClear
      Src: /src/libwebp/examples/gif2webp.c:599,1
    - Dst: WebPDataClear
      Src: /src/libwebp/examples/gif2webp.c:600,1
    - Dst: WebPMuxDelete
      Src: /src/libwebp/examples/gif2webp.c:601,1
    - Dst: WebPDataClear
      Src: /src/libwebp/examples/gif2webp.c:602,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/examples/gif2webp.c:603,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/examples/gif2webp.c:604,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/examples/gif2webp.c:605,1
    - Dst: WebPAnimEncoderDelete
      Src: /src/libwebp/examples/gif2webp.c:606,1
    - Dst: GIFDisplayError
      Src: /src/libwebp/examples/gif2webp.c:609,1
    - Dst: LOCAL_GIF_PREREQ
      Src: /src/libwebp/examples/gif2webp.c:612,1
    - Dst: DGifCloseFile
      Src: /src/libwebp/examples/gif2webp.c:613,1
    - Dst: DGifCloseFile
      Src: /src/libwebp/examples/gif2webp.c:615,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/gif2webp.c:619,1
    CyclomaticComplexity: 158
    EdgeCount: 158
    ICount: 396
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 112
    functionDepth: 9
    functionLinenumber: 112
    functionLinenumberEnd: 620
    functionName: main
    functionSourceFile: /src/libwebp/examples/gif2webp.c
    functionUses: 0
    functionsReached:
    - WebPAnimEncoderOptionsInit
    - strncmp
    - GIFDisposeFrame
    - WebPMuxDelete
    - WebPAnimEncoderAdd
    - WebPValidateConfig
    - DGifGetImageDesc
    - WebPAnimEncoderDelete
    - ErrorString
    - fprintf
    - GET_WARGV
    - ExUtilGetInt
    - strlen
    - strchr
    - WSTRCMP
    - DGifCloseFile
    - GIFBlendFrames
    - ImgIoUtilWriteFile
    - WebPDataInit
    - WebPPictureInit
    - GIFDisplayError
    - GIFGetBackgroundColor
    - WFPRINTF
    - WebPGetMuxVersion
    - WebPMuxSetAnimationParams
    - strcmp
    - WebPPictureAlloc
    - WebPAnimEncoderGetError
    - WebPDataClear
    - DGifGetExtensionNext
    - WebPMuxGetAnimationParams
    - memcmp
    - LOCAL_GIF_PREREQ
    - printf
    - DGifGetExtension
    - INIT_WARGV
    - WebPAnimEncoderAssemble
    - WebPAnimEncoderNew
    - WebPPictureCopy
    - WebPMuxCreate
    - Help
    - WebPConfigInit
    - DGifOpenFileUnicode
    - WebPMuxSetChunk
    - GIFClearPic
    - WebPPictureFree
    - WebPMuxAssemble
    - GIFReadFrame
    - GIFCopyPixels
    - WebPGetEncoderVersion
    - DGifGetRecordType
    - GIFReadMetadata
    - GIFReadGraphicsExtension
    - SharpYuvGetVersion
    - GIFReadLoopCount
    - FREE_WARGV_AND_RETURN
    - ExUtilGetFloat
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/gif2webp.c:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 628
    functionName: main
    functionSourceFile: /src/libwebp/examples/gif2webp.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPFreeDecBuffer
      Src: /src/libwebp/examples/vwebp.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: ClearPreviousPic
    functionSourceFile: /src/libwebp/examples/vwebp.c
    functionUses: 0
    functionsReached:
    - WebPFreeDecBuffer
    linkageType: ''
    returnType: void
    signature: void ClearPreviousPic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearPreviousPic
      Src: /src/libwebp/examples/vwebp.c:83,1
    - Dst: WebPDataClear
      Src: /src/libwebp/examples/vwebp.c:84,1
    - Dst: WebPDemuxReleaseIterator
      Src: /src/libwebp/examples/vwebp.c:85,1
    - Dst: WebPDemuxReleaseIterator
      Src: /src/libwebp/examples/vwebp.c:86,1
    - Dst: WebPDemuxReleaseChunkIterator
      Src: /src/libwebp/examples/vwebp.c:87,1
    - Dst: WebPDemuxDelete
      Src: /src/libwebp/examples/vwebp.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: ClearParams
    functionSourceFile: /src/libwebp/examples/vwebp.c
    functionUses: 0
    functionsReached:
    - WebPDemuxReleaseIterator
    - ClearPreviousPic
    - WebPDemuxDelete
    - WebPDataClear
    - WebPDemuxReleaseChunkIterator
    linkageType: ''
    returnType: void
    signature: void ClearParams(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: ClearPreviousFrame
    functionSourceFile: /src/libwebp/examples/vwebp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ClearPreviousFrame(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: qcms_enable_iccv4
      Src: /src/libwebp/examples/vwebp.c:121,1
    - Dst: qcms_profile_from_memory
      Src: /src/libwebp/examples/vwebp.c:122,1
    - Dst: qcms_profile_is_bogus
      Src: /src/libwebp/examples/vwebp.c:125,1
    - Dst: fprintf
      Src: /src/libwebp/examples/vwebp.c:126,1
    - Dst: qcms_profile_sRGB
      Src: /src/libwebp/examples/vwebp.c:130,1
    - Dst: fprintf
      Src: /src/libwebp/examples/vwebp.c:132,1
    - Dst: qcms_profile_precache_output_transform
      Src: /src/libwebp/examples/vwebp.c:136,1
    - Dst: qcms_transform_create
      Src: /src/libwebp/examples/vwebp.c:137,1
    - Dst: fprintf
      Src: /src/libwebp/examples/vwebp.c:140,1
    - Dst: qcms_transform_data
      Src: /src/libwebp/examples/vwebp.c:146,1
    - Dst: qcms_profile_release
      Src: /src/libwebp/examples/vwebp.c:151,1
    - Dst: qcms_profile_release
      Src: /src/libwebp/examples/vwebp.c:152,1
    - Dst: qcms_transform_release
      Src: /src/libwebp/examples/vwebp.c:153,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 2
    argNames:
    - profile
    - rgba
    argTypes:
    - WebPData*
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 160
    functionName: ApplyColorProfile
    functionSourceFile: /src/libwebp/examples/vwebp.c
    functionUses: 0
    functionsReached:
    - qcms_transform_release
    - qcms_profile_is_bogus
    - qcms_transform_data
    - qcms_profile_sRGB
    - fprintf
    - qcms_profile_precache_output_transform
    - qcms_transform_create
    - qcms_profile_from_memory
    - qcms_profile_release
    - qcms_enable_iccv4
    linkageType: ''
    returnType: int
    signature: "int ApplyColorProfile(const WebPData* const profile,\n                             WebPDecBuffer*
      const rgba)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ClearPreviousPic
      Src: /src/libwebp/examples/vwebp.c:171,1
    - Dst: WebPDecode
      Src: /src/libwebp/examples/vwebp.c:173,1
    - Dst: fprintf
      Src: /src/libwebp/examples/vwebp.c:176,1
    - Dst: ApplyColorProfile
      Src: /src/libwebp/examples/vwebp.c:180,1
    - Dst: fprintf
      Src: /src/libwebp/examples/vwebp.c:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 165
    functionDepth: 5
    functionLinenumber: 165
    functionLinenumberEnd: 188
    functionName: Decode
    functionSourceFile: /src/libwebp/examples/vwebp.c
    functionUses: 21
    functionsReached:
    - WebPDecode
    - ApplyColorProfile
    - ClearPreviousPic
    - fprintf
    linkageType: ''
    returnType: int
    signature: int Decode(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: WebPDemuxNextFrame
      Src: /src/libwebp/examples/vwebp.c:195,1
    - Dst: WebPDemuxReleaseIterator
      Src: /src/libwebp/examples/vwebp.c:196,1
    - Dst: WebPDemuxGetFrame
      Src: /src/libwebp/examples/vwebp.c:197,1
    - Dst: ClearPreviousFrame
      Src: /src/libwebp/examples/vwebp.c:201,1
    - Dst: Decode
      Src: /src/libwebp/examples/vwebp.c:215,1
    - Dst: glutPostRedisplay
      Src: /src/libwebp/examples/vwebp.c:219,1
    - Dst: glutTimerFunc
      Src: /src/libwebp/examples/vwebp.c:220,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - what
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 223
    functionName: decode_callback
    functionSourceFile: /src/libwebp/examples/vwebp.c
    functionUses: 0
    functionsReached:
    - WebPDemuxNextFrame
    - glutTimerFunc
    - WebPDemuxReleaseIterator
    - glutPostRedisplay
    - Decode
    - ClearPreviousFrame
    - WebPDemuxGetFrame
    linkageType: ''
    returnType: void
    signature: void decode_callback(int what)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: glutLeaveMainLoop
      Src: /src/libwebp/examples/vwebp.c:236,1
    - Dst: ClearParams
      Src: /src/libwebp/examples/vwebp.c:238,1
    - Dst: exit
      Src: /src/libwebp/examples/vwebp.c:239,1
    - Dst: WebPDemuxGetI
      Src: /src/libwebp/examples/vwebp.c:249,1
    - Dst: glutTimerFunc
      Src: /src/libwebp/examples/vwebp.c:252,1
    - Dst: Decode
      Src: /src/libwebp/examples/vwebp.c:255,1
    - Dst: glutPostRedisplay
      Src: /src/libwebp/examples/vwebp.c:256,1
    - Dst: ClearPreviousFrame
      Src: /src/libwebp/examples/vwebp.c:261,1
    - Dst: glutPostRedisplay
      Src: /src/libwebp/examples/vwebp.c:262,1
    - Dst: ClearPreviousFrame
      Src: /src/libwebp/examples/vwebp.c:265,1
    - Dst: glutPostRedisplay
      Src: /src/libwebp/examples/vwebp.c:266,1
    - Dst: glutPostRedisplay
      Src: /src/libwebp/examples/vwebp.c:269,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 3
    argNames:
    - key
    - pos_x
    - pos_y
    argTypes:
    - unsigned char
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 228
    functionDepth: 4
    functionLinenumber: 228
    functionLinenumberEnd: 271
    functionName: HandleKey
    functionSourceFile: /src/libwebp/examples/vwebp.c
    functionUses: 0
    functionsReached:
    - WebPDemuxGetI
    - glutTimerFunc
    - exit
    - glutPostRedisplay
    - Decode
    - ClearParams
    - ClearPreviousFrame
    - glutLeaveMainLoop
    linkageType: ''
    returnType: void
    signature: void HandleKey(unsigned char key, int pos_x, int pos_y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: glViewport
      Src: /src/libwebp/examples/vwebp.c:276,1
    - Dst: glMatrixMode
      Src: /src/libwebp/examples/vwebp.c:277,1
    - Dst: glLoadIdentity
      Src: /src/libwebp/examples/vwebp.c:278,1
    - Dst: glMatrixMode
      Src: /src/libwebp/examples/vwebp.c:279,1
    - Dst: glLoadIdentity
      Src: /src/libwebp/examples/vwebp.c:280,1
    - Dst: ClearPreviousFrame
      Src: /src/libwebp/examples/vwebp.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 284
    functionName: HandleReshape
    functionSourceFile: /src/libwebp/examples/vwebp.c
    functionUses: 0
    functionsReached:
    - glMatrixMode
    - glLoadIdentity
    - glViewport
    - ClearPreviousFrame
    linkageType: ''
    returnType: void
    signature: void HandleReshape(int width, int height)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: glutBitmapCharacter
      Src: /src/libwebp/examples/vwebp.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 292
    functionName: PrintString
    functionSourceFile: /src/libwebp/examples/vwebp.c
    functionUses: 0
    functionsReached:
    - glutBitmapCharacter
    linkageType: ''
    returnType: void
    signature: void PrintString(const char* const text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: glutBitmapCharacter
      Src: /src/libwebp/examples/vwebp.c:300,1
    - Dst: PrintString
      Src: /src/libwebp/examples/vwebp.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 305
    functionName: PrintStringW
    functionSourceFile: /src/libwebp/examples/vwebp.c
    functionUses: 0
    functionsReached:
    - glutBitmapCharacter
    - PrintString
    linkageType: ''
    returnType: void
    signature: void PrintStringW(const char* const text)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - color
    - shift
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: GetColorf
    functionSourceFile: /src/libwebp/examples/vwebp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float GetColorf(uint32_t color, int shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: glPushMatrix
      Src: /src/libwebp/examples/vwebp.c:316,1
    - Dst: glGetIntegerv
      Src: /src/libwebp/examples/vwebp.c:318,1
    - Dst: glOrtho
      Src: /src/libwebp/examples/vwebp.c:320,1
    - Dst: glColor3ub
      Src: /src/libwebp/examples/vwebp.c:324,1
    - Dst: glRecti
      Src: /src/libwebp/examples/vwebp.c:325,1
    - Dst: glPopMatrix
      Src: /src/libwebp/examples/vwebp.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 329
    functionName: DrawCheckerBoard
    functionSourceFile: /src/libwebp/examples/vwebp.c
    functionUses: 0
    functionsReached:
    - glColor3ub
    - glPushMatrix
    - glRecti
    - glPopMatrix
    - glOrtho
    - glGetIntegerv
    linkageType: ''
    returnType: void
    signature: void DrawCheckerBoard(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: glClear
      Src: /src/libwebp/examples/vwebp.c:333,1
    - Dst: DrawCheckerBoard
      Src: /src/libwebp/examples/vwebp.c:334,1
    - Dst: glPushMatrix
      Src: /src/libwebp/examples/vwebp.c:339,1
    - Dst: glLoadIdentity
      Src: /src/libwebp/examples/vwebp.c:340,1
    - Dst: glColor4f
      Src: /src/libwebp/examples/vwebp.c:341,1
    - Dst: GetColorf
      Src: /src/libwebp/examples/vwebp.c:341,1
    - Dst: GetColorf
      Src: /src/libwebp/examples/vwebp.c:342,1
    - Dst: GetColorf
      Src: /src/libwebp/examples/vwebp.c:342,1
    - Dst: GetColorf
      Src: /src/libwebp/examples/vwebp.c:343,1
    - Dst: glRecti
      Src: /src/libwebp/examples/vwebp.c:344,1
    - Dst: glPopMatrix
      Src: /src/libwebp/examples/vwebp.c:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 347
    functionName: DrawBackground
    functionSourceFile: /src/libwebp/examples/vwebp.c
    functionUses: 0
    functionsReached:
    - GetColorf
    - glPushMatrix
    - glClear
    - glRecti
    - glColor4f
    - glPopMatrix
    - glLoadIdentity
    - DrawCheckerBoard
    linkageType: ''
    returnType: void
    signature: void DrawBackground(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: glEnable
      Src: /src/libwebp/examples/vwebp.c:361,1
    - Dst: glScissor
      Src: /src/libwebp/examples/vwebp.c:362,1
    - Dst: DrawBackground
      Src: /src/libwebp/examples/vwebp.c:363,1
    - Dst: glDisable
      Src: /src/libwebp/examples/vwebp.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - window_x
    - window_y
    - frame_w
    - frame_h
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 365
    functionName: DrawBackgroundScissored
    functionSourceFile: /src/libwebp/examples/vwebp.c
    functionUses: 0
    functionsReached:
    - glEnable
    - glDisable
    - DrawBackground
    - glScissor
    linkageType: ''
    returnType: void
    signature: "void DrawBackgroundScissored(int window_x, int window_y, int frame_w,\n
      \                                   int frame_h)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: glPushMatrix
      Src: /src/libwebp/examples/vwebp.c:373,1
    - Dst: glPixelZoom
      Src: /src/libwebp/examples/vwebp.c:374,1
    - Dst: glRasterPos2f
      Src: /src/libwebp/examples/vwebp.c:378,1
    - Dst: glPixelStorei
      Src: /src/libwebp/examples/vwebp.c:379,1
    - Dst: glPixelStorei
      Src: /src/libwebp/examples/vwebp.c:380,1
    - Dst: DrawBackground
      Src: /src/libwebp/examples/vwebp.c:383,1
    - Dst: DrawBackgroundScissored
      Src: /src/libwebp/examples/vwebp.c:389,1
    - Dst: DrawBackgroundScissored
      Src: /src/libwebp/examples/vwebp.c:395,1
    - Dst: glDrawPixels
      Src: /src/libwebp/examples/vwebp.c:402,1
    - Dst: glColor4f
      Src: /src/libwebp/examples/vwebp.c:407,1
    - Dst: glRasterPos2f
      Src: /src/libwebp/examples/vwebp.c:408,1
    - Dst: PrintStringW
      Src: /src/libwebp/examples/vwebp.c:409,1
    - Dst: snprintf
      Src: /src/libwebp/examples/vwebp.c:411,1
    - Dst: glColor4f
      Src: /src/libwebp/examples/vwebp.c:412,1
    - Dst: glRasterPos2f
      Src: /src/libwebp/examples/vwebp.c:413,1
    - Dst: PrintString
      Src: /src/libwebp/examples/vwebp.c:414,1
    - Dst: snprintf
      Src: /src/libwebp/examples/vwebp.c:416,1
    - Dst: glRasterPos2f
      Src: /src/libwebp/examples/vwebp.c:418,1
    - Dst: PrintString
      Src: /src/libwebp/examples/vwebp.c:419,1
    - Dst: glPopMatrix
      Src: /src/libwebp/examples/vwebp.c:422,1
    - Dst: glFlush
      Src: /src/libwebp/examples/vwebp.c:424,1
    - Dst: glutSwapBuffers
      Src: /src/libwebp/examples/vwebp.c:426,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 428
    functionName: HandleDisplay
    functionSourceFile: /src/libwebp/examples/vwebp.c
    functionUses: 0
    functionsReached:
    - glPixelZoom
    - glPixelStorei
    - DrawBackgroundScissored
    - glPushMatrix
    - PrintStringW
    - DrawBackground
    - glRasterPos2f
    - snprintf
    - glDrawPixels
    - glColor4f
    - glPopMatrix
    - glutSwapBuffers
    - glFlush
    - PrintString
    linkageType: ''
    returnType: void
    signature: void HandleDisplay(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: glutInitDisplayMode
      Src: /src/libwebp/examples/vwebp.c:440,1
    - Dst: glutInitDisplayMode
      Src: /src/libwebp/examples/vwebp.c:442,1
    - Dst: glutGet
      Src: /src/libwebp/examples/vwebp.c:444,1
    - Dst: glutGet
      Src: /src/libwebp/examples/vwebp.c:445,1
    - Dst: snprintf
      Src: /src/libwebp/examples/vwebp.c:456,1
    - Dst: glutInitWindowSize
      Src: /src/libwebp/examples/vwebp.c:457,1
    - Dst: glutCreateWindow
      Src: /src/libwebp/examples/vwebp.c:458,1
    - Dst: glutDisplayFunc
      Src: /src/libwebp/examples/vwebp.c:459,1
    - Dst: glutReshapeFunc
      Src: /src/libwebp/examples/vwebp.c:460,1
    - Dst: glutIdleFunc
      Src: /src/libwebp/examples/vwebp.c:461,1
    - Dst: glutKeyboardFunc
      Src: /src/libwebp/examples/vwebp.c:462,1
    - Dst: glBlendFunc
      Src: /src/libwebp/examples/vwebp.c:463,1
    - Dst: glEnable
      Src: /src/libwebp/examples/vwebp.c:464,1
    - Dst: glClearColor
      Src: /src/libwebp/examples/vwebp.c:465,1
    - Dst: DrawBackground
      Src: /src/libwebp/examples/vwebp.c:466,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 467
    functionName: StartDisplay
    functionSourceFile: /src/libwebp/examples/vwebp.c
    functionUses: 0
    functionsReached:
    - glutKeyboardFunc
    - glBlendFunc
    - glClearColor
    - DrawBackground
    - snprintf
    - glEnable
    - glutInitWindowSize
    - glutGet
    - glutInitDisplayMode
    - glutDisplayFunc
    - glutReshapeFunc
    - glutIdleFunc
    - glutCreateWindow
    linkageType: ''
    returnType: void
    signature: void StartDisplay(const char* filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libwebp/examples/vwebp.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 494
    functionName: Help
    functionSourceFile: /src/libwebp/examples/vwebp.c
    functionUses: 6
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void Help(void)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: INIT_WARGV
      Src: /src/libwebp/examples/vwebp.c:501,1
    - Dst: WebPInitDecoderConfig
      Src: /src/libwebp/examples/vwebp.c:503,1
    - Dst: fprintf
      Src: /src/libwebp/examples/vwebp.c:504,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/vwebp.c:505,1
    - Dst: strcmp
      Src: /src/libwebp/examples/vwebp.c:515,1
    - Dst: strcmp
      Src: /src/libwebp/examples/vwebp.c:515,1
    - Dst: Help
      Src: /src/libwebp/examples/vwebp.c:516,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/vwebp.c:517,1
    - Dst: strcmp
      Src: /src/libwebp/examples/vwebp.c:518,1
    - Dst: strcmp
      Src: /src/libwebp/examples/vwebp.c:520,1
    - Dst: strcmp
      Src: /src/libwebp/examples/vwebp.c:522,1
    - Dst: strcmp
      Src: /src/libwebp/examples/vwebp.c:524,1
    - Dst: strcmp
      Src: /src/libwebp/examples/vwebp.c:526,1
    - Dst: strcmp
      Src: /src/libwebp/examples/vwebp.c:528,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/vwebp.c:530,1
    - Dst: strcmp
      Src: /src/libwebp/examples/vwebp.c:531,1
    - Dst: strcmp
      Src: /src/libwebp/examples/vwebp.c:533,1
    - Dst: WebPGetDecoderVersion
      Src: /src/libwebp/examples/vwebp.c:534,1
    - Dst: WebPGetDemuxVersion
      Src: /src/libwebp/examples/vwebp.c:535,1
    - Dst: printf
      Src: /src/libwebp/examples/vwebp.c:536,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/vwebp.c:540,1
    - Dst: strcmp
      Src: /src/libwebp/examples/vwebp.c:541,1
    - Dst: strcmp
      Src: /src/libwebp/examples/vwebp.c:543,1
    - Dst: GET_WARGV
      Src: /src/libwebp/examples/vwebp.c:545,1
    - Dst: printf
      Src: /src/libwebp/examples/vwebp.c:550,1
    - Dst: Help
      Src: /src/libwebp/examples/vwebp.c:551,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/vwebp.c:552,1
    - Dst: GET_WARGV
      Src: /src/libwebp/examples/vwebp.c:554,1
    - Dst: Help
      Src: /src/libwebp/examples/vwebp.c:559,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/vwebp.c:560,1
    - Dst: printf
      Src: /src/libwebp/examples/vwebp.c:565,1
    - Dst: Help
      Src: /src/libwebp/examples/vwebp.c:566,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/vwebp.c:567,1
    - Dst: ImgIoUtilReadFile
      Src: /src/libwebp/examples/vwebp.c:570,1
    - Dst: WebPGetInfo
      Src: /src/libwebp/examples/vwebp.c:575,1
    - Dst: fprintf
      Src: /src/libwebp/examples/vwebp.c:576,1
    - Dst: WebPDemux
      Src: /src/libwebp/examples/vwebp.c:580,1
    - Dst: fprintf
      Src: /src/libwebp/examples/vwebp.c:582,1
    - Dst: WebPDemuxGetI
      Src: /src/libwebp/examples/vwebp.c:586,1
    - Dst: WebPDemuxGetI
      Src: /src/libwebp/examples/vwebp.c:587,1
    - Dst: printf
      Src: /src/libwebp/examples/vwebp.c:589,1
    - Dst: ClearPreviousFrame
      Src: /src/libwebp/examples/vwebp.c:592,1
    - Dst: memset
      Src: /src/libwebp/examples/vwebp.c:594,1
    - Dst: WebPDemuxGetI
      Src: /src/libwebp/examples/vwebp.c:596,1
    - Dst: WebPDemuxGetChunk
      Src: /src/libwebp/examples/vwebp.c:599,1
    - Dst: printf
      Src: /src/libwebp/examples/vwebp.c:600,1
    - Dst: fprintf
      Src: /src/libwebp/examples/vwebp.c:602,1
    - Dst: WebPDemuxGetFrame
      Src: /src/libwebp/examples/vwebp.c:609,1
    - Dst: WebPDemuxGetI
      Src: /src/libwebp/examples/vwebp.c:612,1
    - Dst: WebPDemuxGetI
      Src: /src/libwebp/examples/vwebp.c:613,1
    - Dst: printf
      Src: /src/libwebp/examples/vwebp.c:614,1
    - Dst: Decode
      Src: /src/libwebp/examples/vwebp.c:618,1
    - Dst: WebPDemuxGetFrame
      Src: /src/libwebp/examples/vwebp.c:622,1
    - Dst: setenv
      Src: /src/libwebp/examples/vwebp.c:628,1
    - Dst: glutInit
      Src: /src/libwebp/examples/vwebp.c:632,1
    - Dst: glutSetOption
      Src: /src/libwebp/examples/vwebp.c:634,1
    - Dst: StartDisplay
      Src: /src/libwebp/examples/vwebp.c:636,1
    - Dst: glutTimerFunc
      Src: /src/libwebp/examples/vwebp.c:638,1
    - Dst: glutMainLoop
      Src: /src/libwebp/examples/vwebp.c:639,1
    - Dst: ClearParams
      Src: /src/libwebp/examples/vwebp.c:642,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/vwebp.c:643,1
    - Dst: ClearParams
      Src: /src/libwebp/examples/vwebp.c:646,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/vwebp.c:647,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 126
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 496
    functionDepth: 5
    functionLinenumber: 496
    functionLinenumberEnd: 648
    functionName: main
    functionSourceFile: /src/libwebp/examples/vwebp.c
    functionUses: 0
    functionsReached:
    - WebPGetDemuxVersion
    - fprintf
    - ExUtilGetInt
    - GET_WARGV
    - setenv
    - ClearPreviousFrame
    - glutSetOption
    - WebPDemux
    - ImgIoUtilReadFile
    - WebPDemuxGetI
    - glutInit
    - glutTimerFunc
    - strcmp
    - printf
    - WebPInitDecoderConfig
    - INIT_WARGV
    - Help
    - ClearParams
    - WebPGetDecoderVersion
    - WebPGetInfo
    - StartDisplay
    - glutMainLoop
    - memset
    - WebPDemuxGetChunk
    - Decode
    - WebPDemuxGetFrame
    - FREE_WARGV_AND_RETURN
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/vwebp.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 656
    functionName: main
    functionSourceFile: /src/libwebp/examples/vwebp.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ARGC
    - ','
    - ARGV
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: INIT_WARGV
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_WARGV(ARGC, ARGV)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - UNUSED
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: GET_WARGV
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_WARGV(UNUSED, C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - UNUSED
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: GET_WARGV_SHIFTED
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_WARGV_SHIFTED(UNUSED, C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: GET_WARGV_OR_NULL
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_WARGV_OR_NULL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: FREE_WARGV
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE_WARGV()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - WARGV
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: LOCAL_FREE
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCAL_FREE(WARGV)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - STR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: TO_W_CHAR
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_W_CHAR(STR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ARG
    - ','
    - OPT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: WFOPEN
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WFOPEN(ARG, OPT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - STREAM
    - ','
    - STR
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: WFPRINTF
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WFPRINTF(STREAM, STR, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - STR
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: WPRINTF
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPRINTF(STR, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FILENAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: WSTRLEN
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WSTRLEN(FILENAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FILENAME
    - ','
    - STR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: WSTRCMP
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WSTRCMP(FILENAME, STR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FILENAME
    - ','
    - STR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: WSTRRCHR
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WSTRRCHR(FILENAME, STR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - STR
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: WSNPRINTF
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WSNPRINTF(A, B, STR, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ARGV
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: GET_WARGV
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_WARGV(ARGV, C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ARGV
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: GET_WARGV_SHIFTED
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_WARGV_SHIFTED(ARGV, C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: GET_WARGV_OR_NULL
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_WARGV_OR_NULL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - STR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: TO_W_CHAR
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_W_CHAR(STR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ARG
    - ','
    - OPT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: WFOPEN
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WFOPEN(ARG, OPT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - STR
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: WPRINTF
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPRINTF(STR, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - STREAM
    - ','
    - STR
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: WFPRINTF
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WFPRINTF(STREAM, STR, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FILENAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: WSTRLEN
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WSTRLEN(FILENAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FILENAME
    - ','
    - STR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: WSTRCMP
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WSTRCMP(FILENAME, STR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FILENAME
    - ','
    - STR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: WSTRRCHR
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WSTRRCHR(FILENAME, STR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - STR
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: WSNPRINTF
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WSNPRINTF(A, B, STR, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: FREE_WARGV_AND_RETURN
    functionSourceFile: /src/libwebp/examples/unicode.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE_WARGV_AND_RETURN(VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: AdditionWillOverflow
    functionSourceFile: /src/libwebp/examples/anim_diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int AdditionWillOverflow(int a, int b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CheckMultiplicationOverflow
      Src: /src/libwebp/examples/anim_diff.c:42,1
    - Dst: memcmp
      Src: /src/libwebp/examples/anim_diff.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - rgba1
    - rgba2
    - width
    - height
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: FramesAreEqual
    functionSourceFile: /src/libwebp/examples/anim_diff.c
    functionUses: 0
    functionsReached:
    - memcmp
    - CheckMultiplicationOverflow
    linkageType: ''
    returnType: int
    signature: "int FramesAreEqual(const uint8_t* const rgba1,\n                          const
      uint8_t* const rgba2, uint32_t width,\n                          uint32_t height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/libwebp/examples/anim_diff.c:59,1
    - Dst: abs
      Src: /src/libwebp/examples/anim_diff.c:60,1
    - Dst: abs
      Src: /src/libwebp/examples/anim_diff.c:61,1
    - Dst: abs
      Src: /src/libwebp/examples/anim_diff.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - src
    - dst
    - max_allowed_diff
    argTypes:
    - uint32_t
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: PixelsAreSimilar
    functionSourceFile: /src/libwebp/examples/anim_diff.c
    functionUses: 3
    functionsReached:
    - abs
    linkageType: ''
    returnType: WEBP_INLINE
    signature: "WEBP_INLINE PixelsAreSimilar(uint32_t src, uint32_t dst,\n                                        int
      max_allowed_diff)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/examples/anim_diff.c:69,1
    - Dst: CheckMultiplicationOverflow
      Src: /src/libwebp/examples/anim_diff.c:74,1
    - Dst: CheckAdditionOverflow
      Src: /src/libwebp/examples/anim_diff.c:75,1
    - Dst: PixelsAreSimilar
      Src: /src/libwebp/examples/anim_diff.c:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 5
    argNames:
    - rgba1
    - rgba2
    - width
    - height
    - max_allowed_diff
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    assertStmts:
    - condition: (max_allowed_diff > 0)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/libwebp/examples/anim_diff.c
    constantsTouched: []
    func_position:
      end: 82
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 82
    functionName: FramesAreSimilar
    functionSourceFile: /src/libwebp/examples/anim_diff.c
    functionUses: 0
    functionsReached:
    - assert
    - CheckMultiplicationOverflow
    - CheckAdditionOverflow
    - PixelsAreSimilar
    linkageType: ''
    returnType: int
    signature: "int FramesAreSimilar(const uint8_t* const rgba1,\n                            const
      uint8_t* const rgba2, int width, int height,\n                            int
      max_allowed_diff)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AdditionWillOverflow
      Src: /src/libwebp/examples/anim_diff.c:96,1
    - Dst: FramesAreSimilar
      Src: /src/libwebp/examples/anim_diff.c:98,1
    - Dst: FramesAreEqual
      Src: /src/libwebp/examples/anim_diff.c:102,1
    - Dst: memmove
      Src: /src/libwebp/examples/anim_diff.c:107,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - img
    - max_diff
    argTypes:
    - AnimatedImage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 114
    functionName: MinimizeAnimationFrames
    functionSourceFile: /src/libwebp/examples/anim_diff.c
    functionUses: 0
    functionsReached:
    - FramesAreSimilar
    - AdditionWillOverflow
    - FramesAreEqual
    - memmove
    linkageType: ''
    returnType: void
    signature: void MinimizeAnimationFrames(AnimatedImage* const img, int max_diff)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/anim_diff.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - a
    - b
    - output_str
    argTypes:
    - uint32_t
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: CompareValues
    functionSourceFile: /src/libwebp/examples/anim_diff.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int CompareValues(uint32_t a, uint32_t b, const char* output_str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/anim_diff.c:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - bg1
    - bg2
    - premultiply
    argTypes:
    - uint32_t
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: CompareBackgroundColor
    functionSourceFile: /src/libwebp/examples/anim_diff.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int CompareBackgroundColor(uint32_t bg1, uint32_t bg2, int premultiply)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CompareValues
      Src: /src/libwebp/examples/anim_diff.c:146,1
    - Dst: CompareValues
      Src: /src/libwebp/examples/anim_diff.c:148,1
    - Dst: CompareValues
      Src: /src/libwebp/examples/anim_diff.c:151,1
    - Dst: CompareValues
      Src: /src/libwebp/examples/anim_diff.c:165,1
    - Dst: CompareBackgroundColor
      Src: /src/libwebp/examples/anim_diff.c:167,1
    - Dst: snprintf
      Src: /src/libwebp/examples/anim_diff.c:179,1
    - Dst: CompareValues
      Src: /src/libwebp/examples/anim_diff.c:180,1
    - Dst: GetDiffAndPSNR
      Src: /src/libwebp/examples/anim_diff.c:183,1
    - Dst: fprintf
      Src: /src/libwebp/examples/anim_diff.c:187,1
    - Dst: fprintf
      Src: /src/libwebp/examples/anim_diff.c:193,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 32
    argCount: 4
    argNames:
    - img1
    - img2
    - premultiply
    - min_psnr
    argTypes:
    - AnimatedImage*
    - AnimatedImage*
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 199
    functionName: CompareAnimatedImagePair
    functionSourceFile: /src/libwebp/examples/anim_diff.c
    functionUses: 0
    functionsReached:
    - CompareBackgroundColor
    - GetDiffAndPSNR
    - fprintf
    - snprintf
    - CompareValues
    linkageType: ''
    returnType: int
    signature: "int CompareAnimatedImagePair(const AnimatedImage* const img1,\n                                    const
      AnimatedImage* const img2,\n                                    int premultiply,
      double min_psnr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libwebp/examples/anim_diff.c:202,1
    - Dst: printf
      Src: /src/libwebp/examples/anim_diff.c:203,1
    - Dst: printf
      Src: /src/libwebp/examples/anim_diff.c:204,1
    - Dst: printf
      Src: /src/libwebp/examples/anim_diff.c:205,1
    - Dst: printf
      Src: /src/libwebp/examples/anim_diff.c:206,1
    - Dst: printf
      Src: /src/libwebp/examples/anim_diff.c:207,1
    - Dst: printf
      Src: /src/libwebp/examples/anim_diff.c:208,1
    - Dst: printf
      Src: /src/libwebp/examples/anim_diff.c:212,1
    - Dst: printf
      Src: /src/libwebp/examples/anim_diff.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 214
    functionName: Help
    functionSourceFile: /src/libwebp/examples/anim_diff.c
    functionUses: 7
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void Help(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: INIT_WARGV
      Src: /src/libwebp/examples/anim_diff.c:230,1
    - Dst: strcmp
      Src: /src/libwebp/examples/anim_diff.c:234,1
    - Dst: GET_WARGV
      Src: /src/libwebp/examples/anim_diff.c:237,1
    - Dst: strcmp
      Src: /src/libwebp/examples/anim_diff.c:241,1
    - Dst: ExUtilGetFloat
      Src: /src/libwebp/examples/anim_diff.c:243,1
    - Dst: strcmp
      Src: /src/libwebp/examples/anim_diff.c:247,1
    - Dst: strcmp
      Src: /src/libwebp/examples/anim_diff.c:249,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/anim_diff.c:251,1
    - Dst: strcmp
      Src: /src/libwebp/examples/anim_diff.c:255,1
    - Dst: strcmp
      Src: /src/libwebp/examples/anim_diff.c:255,1
    - Dst: Help
      Src: /src/libwebp/examples/anim_diff.c:256,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/anim_diff.c:257,1
    - Dst: strcmp
      Src: /src/libwebp/examples/anim_diff.c:258,1
    - Dst: GetAnimatedImageVersions
      Src: /src/libwebp/examples/anim_diff.c:260,1
    - Dst: printf
      Src: /src/libwebp/examples/anim_diff.c:261,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/anim_diff.c:265,1
    - Dst: GET_WARGV
      Src: /src/libwebp/examples/anim_diff.c:268,1
    - Dst: GET_WARGV
      Src: /src/libwebp/examples/anim_diff.c:271,1
    - Dst: Help
      Src: /src/libwebp/examples/anim_diff.c:278,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/anim_diff.c:279,1
    - Dst: Help
      Src: /src/libwebp/examples/anim_diff.c:283,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/anim_diff.c:284,1
    - Dst: Help
      Src: /src/libwebp/examples/anim_diff.c:288,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/anim_diff.c:289,1
    - Dst: WPRINTF
      Src: /src/libwebp/examples/anim_diff.c:293,1
    - Dst: memset
      Src: /src/libwebp/examples/anim_diff.c:296,1
    - Dst: WPRINTF
      Src: /src/libwebp/examples/anim_diff.c:298,1
    - Dst: ReadAnimatedImage
      Src: /src/libwebp/examples/anim_diff.c:299,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/anim_diff.c:300,1
    - Dst: MinimizeAnimationFrames
      Src: /src/libwebp/examples/anim_diff.c:305,1
    - Dst: CompareAnimatedImagePair
      Src: /src/libwebp/examples/anim_diff.c:309,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/anim_diff.c:311,1
    - Dst: WPRINTF
      Src: /src/libwebp/examples/anim_diff.c:315,1
    - Dst: ClearAnimatedImage
      Src: /src/libwebp/examples/anim_diff.c:320,1
    - Dst: ClearAnimatedImage
      Src: /src/libwebp/examples/anim_diff.c:321,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/anim_diff.c:322,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 88
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 323
    functionName: main
    functionSourceFile: /src/libwebp/examples/anim_diff.c
    functionUses: 0
    functionsReached:
    - printf
    - INIT_WARGV
    - WFPRINTF
    - CompareAnimatedImagePair
    - MinimizeAnimationFrames
    - GetAnimatedImageVersions
    - Help
    - ExUtilGetInt
    - GET_WARGV
    - strcmp
    - ReadAnimatedImage
    - memset
    - ClearAnimatedImage
    - WPRINTF
    - FREE_WARGV_AND_RETURN
    - ExUtilGetFloat
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - width
    - height
    - canvas_width
    - canvas_height
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: IsFullFrame
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int IsFullFrame(int width, int height, int canvas_width,\n                       int
      canvas_height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: CheckSizeForOverflow
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CheckSizeForOverflow(uint64_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CheckSizeForOverflow
      Src: /src/libwebp/examples/anim_util.c:61,1
    - Dst: CheckSizeForOverflow
      Src: /src/libwebp/examples/anim_util.c:62,1
    - Dst: WebPMalloc
      Src: /src/libwebp/examples/anim_util.c:65,1
    - Dst: WebPMalloc
      Src: /src/libwebp/examples/anim_util.c:66,1
    - Dst: WebPFree
      Src: /src/libwebp/examples/anim_util.c:69,1
    - Dst: WebPFree
      Src: /src/libwebp/examples/anim_util.c:70,1
    - Dst: WebPFree
      Src: /src/libwebp/examples/anim_util.c:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - image
    - num_frames
    argTypes:
    - AnimatedImage*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 83
    functionName: AllocateFrames
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached:
    - CheckSizeForOverflow
    - WebPMalloc
    - WebPFree
    linkageType: ''
    returnType: int
    signature: int AllocateFrames(AnimatedImage* const image, uint32_t num_frames)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPFree
      Src: /src/libwebp/examples/anim_util.c:87,1
    - Dst: WebPFree
      Src: /src/libwebp/examples/anim_util.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - image
    argTypes:
    - AnimatedImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: ClearAnimatedImage
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 4
    functionsReached:
    - WebPFree
    linkageType: ''
    returnType: void
    signature: void ClearAnimatedImage(AnimatedImage* const image)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CheckSizeForOverflow
      Src: /src/libwebp/examples/anim_util.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - val1
    - val2
    - product
    argTypes:
    - uint32_t
    - uint32_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: CheckMultiplicationOverflow
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 3
    functionsReached:
    - CheckSizeForOverflow
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: WEBP_NODISCARD CheckMultiplicationOverflow(uint32_t val1, uint32_t
      val2, size_t* product)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CheckSizeForOverflow
      Src: /src/libwebp/examples/anim_util.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - val1
    - val2
    - addition
    argTypes:
    - size_t
    - uint32_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 113
    functionName: CheckAdditionOverflow
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 1
    functionsReached:
    - CheckSizeForOverflow
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: WEBP_NODISCARD CheckAdditionOverflow(size_t val1, uint32_t val2, size_t*
      addition)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/examples/anim_util.c:128,1
    - Dst: CheckMultiplicationOverflow
      Src: /src/libwebp/examples/anim_util.c:129,1
    - Dst: memset
      Src: /src/libwebp/examples/anim_util.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - rgba
    - canvas_width
    - canvas_height
    argTypes:
    - uint8_t*
    - uint32_t
    - uint32_t
    assertStmts:
    - condition: (canvas_width <= kGifDimMax && canvas_height <= kGifDimMax)
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/libwebp/examples/anim_util.c
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: ZeroFillCanvas
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 1
    functionsReached:
    - assert
    - memset
    - CheckMultiplicationOverflow
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD ZeroFillCanvas(uint8_t* rgba, uint32_t canvas_width,\n
      \                         uint32_t canvas_height)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/examples/anim_util.c:144,1
    - Dst: assert
      Src: /src/libwebp/examples/anim_util.c:145,1
    - Dst: CheckMultiplicationOverflow
      Src: /src/libwebp/examples/anim_util.c:146,1
    - Dst: CheckAdditionOverflow
      Src: /src/libwebp/examples/anim_util.c:147,1
    - Dst: memset
      Src: /src/libwebp/examples/anim_util.c:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 6
    argNames:
    - rgba
    - rgba_stride
    - x_offset
    - y_offset
    - width
    - height
    argTypes:
    - uint8_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts:
    - condition: (width <= kGifDimMax && x_offset <= kGifDimMax)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/libwebp/examples/anim_util.c
    - condition: (width * kNumChannels <= rgba_stride)
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/libwebp/examples/anim_util.c
    constantsTouched: []
    func_position:
      end: 156
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 156
    functionName: ZeroFillFrameRect
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 1
    functionsReached:
    - assert
    - memset
    - CheckMultiplicationOverflow
    - CheckAdditionOverflow
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD ZeroFillFrameRect(uint8_t* rgba, uint32_t rgba_stride,\n
      \                            uint32_t x_offset, uint32_t y_offset,\n                             uint32_t
      width, uint32_t height)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/examples/anim_util.c:163,1
    - Dst: CheckMultiplicationOverflow
      Src: /src/libwebp/examples/anim_util.c:164,1
    - Dst: assert
      Src: /src/libwebp/examples/anim_util.c:167,1
    - Dst: memcpy
      Src: /src/libwebp/examples/anim_util.c:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - src
    - dst
    - width
    - height
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint32_t
    assertStmts:
    - condition: (width <= kGifDimMax && height <= kGifDimMax)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/libwebp/examples/anim_util.c
    - condition: (src != NULL && dst != NULL)
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/libwebp/examples/anim_util.c
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: CopyCanvas
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 1
    functionsReached:
    - assert
    - memcpy
    - CheckMultiplicationOverflow
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD CopyCanvas(const uint8_t* src, uint8_t* dst, uint32_t
      width,\n                      uint32_t height)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/examples/anim_util.c:179,1
    - Dst: assert
      Src: /src/libwebp/examples/anim_util.c:180,1
    - Dst: CheckMultiplicationOverflow
      Src: /src/libwebp/examples/anim_util.c:181,1
    - Dst: CheckAdditionOverflow
      Src: /src/libwebp/examples/anim_util.c:182,1
    - Dst: memcpy
      Src: /src/libwebp/examples/anim_util.c:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 7
    argNames:
    - src
    - dst
    - stride
    - x_offset
    - y_offset
    - width
    - height
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts:
    - condition: (width <= kGifDimMax && x_offset <= kGifDimMax)
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/libwebp/examples/anim_util.c
    - condition: (width_in_bytes <= stride)
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/libwebp/examples/anim_util.c
    constantsTouched: []
    func_position:
      end: 193
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 193
    functionName: CopyFrameRectangle
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - CheckMultiplicationOverflow
    - CheckAdditionOverflow
    linkageType: ''
    returnType: int
    signature: "int CopyFrameRectangle(const uint8_t* src, uint8_t* dst, uint32_t
      stride,\n                              uint32_t x_offset, uint32_t y_offset,\n
      \                             uint32_t width, uint32_t height)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - rgba
    - width
    - height
    argTypes:
    - uint32_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 207
    functionName: CleanupTransparentPixels
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CleanupTransparentPixels(uint32_t* rgba, uint32_t width,\n                                     uint32_t
      height)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TO_W_CHAR
      Src: /src/libwebp/examples/anim_util.c:221,1
    - Dst: WSTRRCHR
      Src: /src/libwebp/examples/anim_util.c:223,1
    - Dst: WSTRLEN
      Src: /src/libwebp/examples/anim_util.c:225,1
    - Dst: WSTRLEN
      Src: /src/libwebp/examples/anim_util.c:225,1
    - Dst: strlen
      Src: /src/libwebp/examples/anim_util.c:225,1
    - Dst: strlen
      Src: /src/libwebp/examples/anim_util.c:226,1
    - Dst: WebPMalloc
      Src: /src/libwebp/examples/anim_util.c:227,1
    - Dst: WSNPRINTF
      Src: /src/libwebp/examples/anim_util.c:230,1
    - Dst: fprintf
      Src: /src/libwebp/examples/anim_util.c:232,1
    - Dst: WFOPEN
      Src: /src/libwebp/examples/anim_util.c:236,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/anim_util.c:238,1
    - Dst: fprintf
      Src: /src/libwebp/examples/anim_util.c:242,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/anim_util.c:246,1
    - Dst: fwrite
      Src: /src/libwebp/examples/anim_util.c:251,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/anim_util.c:252,1
    - Dst: fclose
      Src: /src/libwebp/examples/anim_util.c:259,1
    - Dst: WebPFree
      Src: /src/libwebp/examples/anim_util.c:260,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 6
    argNames:
    - filename
    - dump_folder
    - frame_num
    - rgba
    - canvas_width
    - canvas_height
    argTypes:
    - char[]
    - char[]
    - uint32_t
    - uint8_t[]
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 262
    functionName: DumpFrame
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached:
    - WFPRINTF
    - WebPFree
    - WFOPEN
    - fwrite
    - fclose
    - strlen
    - WSNPRINTF
    - WSTRLEN
    - fprintf
    - WSTRRCHR
    - WebPMalloc
    - TO_W_CHAR
    linkageType: ''
    returnType: int
    signature: "int DumpFrame(const char filename[], const char dump_folder[],\n                     uint32_t
      frame_num, const uint8_t rgba[], int canvas_width,\n                     int
      canvas_height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPGetInfo
      Src: /src/libwebp/examples/anim_util.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - webp_data
    argTypes:
    - WebPData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 5
    functionLinenumber: 268
    functionLinenumberEnd: 270
    functionName: IsWebP
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached:
    - WebPGetInfo
    linkageType: ''
    returnType: int
    signature: int IsWebP(const WebPData* const webp_data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/examples/anim_util.c:284,1
    - Dst: WebPAnimDecoderNew
      Src: /src/libwebp/examples/anim_util.c:286,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/anim_util.c:288,1
    - Dst: WebPAnimDecoderGetInfo
      Src: /src/libwebp/examples/anim_util.c:292,1
    - Dst: fprintf
      Src: /src/libwebp/examples/anim_util.c:293,1
    - Dst: AllocateFrames
      Src: /src/libwebp/examples/anim_util.c:304,1
    - Dst: WebPAnimDecoderHasMoreFrames
      Src: /src/libwebp/examples/anim_util.c:307,1
    - Dst: WebPAnimDecoderGetNext
      Src: /src/libwebp/examples/anim_util.c:314,1
    - Dst: fprintf
      Src: /src/libwebp/examples/anim_util.c:315,1
    - Dst: assert
      Src: /src/libwebp/examples/anim_util.c:318,1
    - Dst: CheckMultiplicationOverflow
      Src: /src/libwebp/examples/anim_util.c:323,1
    - Dst: memcpy
      Src: /src/libwebp/examples/anim_util.c:327,1
    - Dst: CleanupTransparentPixels
      Src: /src/libwebp/examples/anim_util.c:330,1
    - Dst: DumpFrame
      Src: /src/libwebp/examples/anim_util.c:334,1
    - Dst: fprintf
      Src: /src/libwebp/examples/anim_util.c:337,1
    - Dst: WebPAnimDecoderDelete
      Src: /src/libwebp/examples/anim_util.c:348,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 5
    argNames:
    - filename
    - webp_data
    - image
    - dump_frames
    - dump_folder
    argTypes:
    - char[]
    - WebPData*
    - AnimatedImage*
    - int
    - char[]
    assertStmts:
    - condition: (frame_index < anim_info.frame_count)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/libwebp/examples/anim_util.c
    constantsTouched: []
    func_position:
      end: 350
      start: 273
    functionDepth: 4
    functionLinenumber: 273
    functionLinenumberEnd: 350
    functionName: ReadAnimatedWebP
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached:
    - DumpFrame
    - WFPRINTF
    - CheckMultiplicationOverflow
    - CleanupTransparentPixels
    - assert
    - memcpy
    - WebPAnimDecoderHasMoreFrames
    - WebPAnimDecoderDelete
    - fprintf
    - memset
    - WebPAnimDecoderGetNext
    - WebPAnimDecoderGetInfo
    - WebPAnimDecoderNew
    - AllocateFrames
    linkageType: ''
    returnType: int
    signature: "int ReadAnimatedWebP(const char filename[],\n                            const
      WebPData* const webp_data,\n                            AnimatedImage* const
      image, int dump_frames,\n                            const char dump_folder[])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libwebp/examples/anim_util.c:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - gif
    - dest
    - len
    argTypes:
    - GifFileType*
    - GifByteType*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 373
    functionName: MemoryReadGIF
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int MemoryReadGIF(GifFileType* gif, GifByteType* dest, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/libwebp/examples/anim_util.c:378,1
    - Dst: memcmp
      Src: /src/libwebp/examples/anim_util.c:379,1
    - Dst: memcmp
      Src: /src/libwebp/examples/anim_util.c:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - WebPData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 381
    functionName: IsGIF
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int IsGIF(const WebPData* const data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maj
    - ','
    - min
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 387
    functionName: LOCAL_GIF_PREREQ
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCAL_GIF_PREREQ(maj, min)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maj
    - ','
    - min
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 390
    functionName: LOCAL_GIF_PREREQ
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCAL_GIF_PREREQ(maj, min)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - GifExtensionLength
    - GifExtension
    - gcb
    argTypes:
    - size_t
    - GifByteType*
    - GraphicsControlBlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 422
    functionName: DGifExtensionToGCB
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DGifExtensionToGCB(const size_t GifExtensionLength,\n                              const
      GifByteType* GifExtension,\n                              GraphicsControlBlock*
      gcb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DGifExtensionToGCB
      Src: /src/libwebp/examples/anim_util.c:438,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - GifFile
    - ImageIndex
    - gcb
    argTypes:
    - GifFileType*
    - int
    - GraphicsControlBlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 443
    functionName: DGifSavedExtensionToGCB
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached:
    - DGifExtensionToGCB
    linkageType: ''
    returnType: int
    signature: "int DGifSavedExtensionToGCB(GifFileType* GifFile, int ImageIndex,\n
      \                                  GraphicsControlBlock* gcb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 449
    functionName: DGifOpenFileName
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DGifOpenFileName(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: DGifCloseFile
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DGifCloseFile(a, b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IsFullFrame
      Src: /src/libwebp/examples/anim_util.c:462,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - prev_desc
    - prev_dispose
    - prev_frame
    - canvas_width
    - canvas_height
    argTypes:
    - GifImageDesc*
    - int
    - DecodedFrame*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 469
    functionName: IsKeyFrameGIF
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached:
    - IsFullFrame
    linkageType: ''
    returnType: int
    signature: "int IsKeyFrameGIF(const GifImageDesc* prev_desc, int prev_dispose,\n
      \                        const DecodedFrame* const prev_frame, int canvas_width,\n
      \                        int canvas_height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/examples/anim_util.c:473,1
    - Dst: DGifSavedExtensionToGCB
      Src: /src/libwebp/examples/anim_util.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - gif
    argTypes:
    - GifFileType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 476
    functionName: GetTransparentIndexGIF
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached:
    - memset
    - DGifSavedExtensionToGCB
    linkageType: ''
    returnType: int
    signature: int GetTransparentIndexGIF(GifFileType* gif)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetTransparentIndexGIF
      Src: /src/libwebp/examples/anim_util.c:479,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - gif
    argTypes:
    - GifFileType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 492
    functionName: GetBackgroundColorGIF
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached:
    - GetTransparentIndexGIF
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t GetBackgroundColorGIF(GifFileType* gif)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/libwebp/examples/anim_util.c:512,1
    - Dst: memcmp
      Src: /src/libwebp/examples/anim_util.c:513,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 1
    argNames:
    - gif
    argTypes:
    - GifFileType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 523
    functionName: GetLoopCountGIF
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t GetLoopCountGIF(const GifFileType* const gif)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/examples/anim_util.c:528,1
    - Dst: DGifSavedExtensionToGCB
      Src: /src/libwebp/examples/anim_util.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - gif
    - n
    argTypes:
    - GifFileType*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 526
    functionDepth: 2
    functionLinenumber: 526
    functionLinenumberEnd: 531
    functionName: GetFrameDurationGIF
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached:
    - memset
    - DGifSavedExtensionToGCB
    linkageType: ''
    returnType: int
    signature: int GetFrameDurationGIF(GifFileType* gif, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - target
    - covered
    argTypes:
    - GifImageDesc*
    - GifImageDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 540
    functionName: CoversFrameGIF
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int CoversFrameGIF(const GifImageDesc* const target,\n                          const
      GifImageDesc* const covered)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/anim_util.c:553,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - src
    - cmap
    - transparent_color
    - len
    - dst
    argTypes:
    - uint8_t*
    - ColorMapObject*
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 564
    functionName: RemapPixelsGIF
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD RemapPixelsGIF(const uint8_t* const src,\n                          const
      ColorMapObject* const cmap,\n                          int transparent_color,
      int len, uint8_t* dst)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/anim_util.c:579,1
    - Dst: CheckMultiplicationOverflow
      Src: /src/libwebp/examples/anim_util.c:584,1
    - Dst: CheckAdditionOverflow
      Src: /src/libwebp/examples/anim_util.c:585,1
    - Dst: fprintf
      Src: /src/libwebp/examples/anim_util.c:586,1
    - Dst: RemapPixelsGIF
      Src: /src/libwebp/examples/anim_util.c:592,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - gif_image
    - cmap
    - transparent_color
    - out_stride
    - dst
    argTypes:
    - SavedImage*
    - ColorMapObject*
    - int
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 599
    functionName: ReadFrameGIF
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached:
    - CheckAdditionOverflow
    - RemapPixelsGIF
    - CheckMultiplicationOverflow
    - fprintf
    linkageType: ''
    returnType: WEBP_NODISCARD
    signature: "WEBP_NODISCARD ReadFrameGIF(const SavedImage* const gif_image,\n                        const
      ColorMapObject* cmap, int transparent_color,\n                        uint32_t
      out_stride, uint8_t* const dst)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: DGifOpen
      Src: /src/libwebp/examples/anim_util.c:616,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/anim_util.c:618,1
    - Dst: DGifSlurp
      Src: /src/libwebp/examples/anim_util.c:623,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/anim_util.c:625,1
    - Dst: GIFDisplayError
      Src: /src/libwebp/examples/anim_util.c:626,1
    - Dst: DGifCloseFile
      Src: /src/libwebp/examples/anim_util.c:627,1
    - Dst: fprintf
      Src: /src/libwebp/examples/anim_util.c:636,1
    - Dst: DGifCloseFile
      Src: /src/libwebp/examples/anim_util.c:638,1
    - Dst: GetLoopCountGIF
      Src: /src/libwebp/examples/anim_util.c:641,1
    - Dst: GetBackgroundColorGIF
      Src: /src/libwebp/examples/anim_util.c:642,1
    - Dst: DGifCloseFile
      Src: /src/libwebp/examples/anim_util.c:646,1
    - Dst: fprintf
      Src: /src/libwebp/examples/anim_util.c:656,1
    - Dst: DGifCloseFile
      Src: /src/libwebp/examples/anim_util.c:657,1
    - Dst: AllocateFrames
      Src: /src/libwebp/examples/anim_util.c:662,1
    - Dst: DGifCloseFile
      Src: /src/libwebp/examples/anim_util.c:663,1
    - Dst: DGifCloseFile
      Src: /src/libwebp/examples/anim_util.c:685,1
    - Dst: assert
      Src: /src/libwebp/examples/anim_util.c:688,1
    - Dst: memset
      Src: /src/libwebp/examples/anim_util.c:690,1
    - Dst: DGifSavedExtensionToGCB
      Src: /src/libwebp/examples/anim_util.c:691,1
    - Dst: GetFrameDurationGIF
      Src: /src/libwebp/examples/anim_util.c:695,1
    - Dst: ZeroFillCanvas
      Src: /src/libwebp/examples/anim_util.c:702,1
    - Dst: DGifCloseFile
      Src: /src/libwebp/examples/anim_util.c:703,1
    - Dst: memset
      Src: /src/libwebp/examples/anim_util.c:710,1
    - Dst: DGifSavedExtensionToGCB
      Src: /src/libwebp/examples/anim_util.c:711,1
    - Dst: IsKeyFrameGIF
      Src: /src/libwebp/examples/anim_util.c:714,1
    - Dst: ZeroFillCanvas
      Src: /src/libwebp/examples/anim_util.c:718,1
    - Dst: DGifCloseFile
      Src: /src/libwebp/examples/anim_util.c:719,1
    - Dst: CopyCanvas
      Src: /src/libwebp/examples/anim_util.c:727,1
    - Dst: DGifCloseFile
      Src: /src/libwebp/examples/anim_util.c:728,1
    - Dst: CoversFrameGIF
      Src: /src/libwebp/examples/anim_util.c:738,1
    - Dst: ZeroFillFrameRect
      Src: /src/libwebp/examples/anim_util.c:743,1
    - Dst: DGifCloseFile
      Src: /src/libwebp/examples/anim_util.c:746,1
    - Dst: memset
      Src: /src/libwebp/examples/anim_util.c:755,1
    - Dst: DGifSavedExtensionToGCB
      Src: /src/libwebp/examples/anim_util.c:756,1
    - Dst: CopyFrameRectangle
      Src: /src/libwebp/examples/anim_util.c:765,1
    - Dst: DGifCloseFile
      Src: /src/libwebp/examples/anim_util.c:769,1
    - Dst: ZeroFillFrameRect
      Src: /src/libwebp/examples/anim_util.c:775,1
    - Dst: DGifCloseFile
      Src: /src/libwebp/examples/anim_util.c:778,1
    - Dst: ReadFrameGIF
      Src: /src/libwebp/examples/anim_util.c:792,1
    - Dst: DGifCloseFile
      Src: /src/libwebp/examples/anim_util.c:794,1
    - Dst: DumpFrame
      Src: /src/libwebp/examples/anim_util.c:799,1
    - Dst: DGifCloseFile
      Src: /src/libwebp/examples/anim_util.c:801,1
    - Dst: DGifCloseFile
      Src: /src/libwebp/examples/anim_util.c:807,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 133
    argCount: 5
    argNames:
    - filename
    - gif_data
    - image
    - dump_frames
    - dump_folder
    argTypes:
    - char[]
    - WebPData*
    - AnimatedImage*
    - int
    - char[]
    assertStmts:
    - condition: ((uint32_t)width <= kGifDimMax && (uint32_t)height <= kGifDimMax)
      pos:
        line_end: 687
        line_start: 687
        source_file: /src/libwebp/examples/anim_util.c
    constantsTouched: []
    func_position:
      end: 809
      start: 602
    functionDepth: 4
    functionLinenumber: 602
    functionLinenumberEnd: 809
    functionName: ReadAnimatedGIF
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached:
    - DumpFrame
    - ZeroFillCanvas
    - ReadFrameGIF
    - fprintf
    - DGifCloseFile
    - GIFDisplayError
    - DGifOpen
    - WFPRINTF
    - assert
    - CoversFrameGIF
    - GetLoopCountGIF
    - GetFrameDurationGIF
    - CopyFrameRectangle
    - AllocateFrames
    - ZeroFillFrameRect
    - IsKeyFrameGIF
    - DGifSlurp
    - CopyCanvas
    - GetBackgroundColorGIF
    - DGifSavedExtensionToGCB
    - memset
    linkageType: ''
    returnType: int
    signature: "int ReadAnimatedGIF(const char filename[],\n                           const
      WebPData* const gif_data,\n                           AnimatedImage* const image,
      int dump_frames,\n                           const char dump_folder[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - WebPData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 816
    functionName: IsGIF
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IsGIF(const WebPData* const data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/anim_util.c:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - filename
    - gif_data
    - image
    - dump_frames
    - dump_folder
    argTypes:
    - char[]
    - WebPData*
    - AnimatedImage*
    - int
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 831
    functionName: ReadAnimatedGIF
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int ReadAnimatedGIF(const char filename[],\n                           const
      WebPData* const gif_data,\n                           AnimatedImage* const image,
      int dump_frames,\n                           const char dump_folder[])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WebPDataInit
      Src: /src/libwebp/examples/anim_util.c:842,1
    - Dst: ImgIoUtilReadFile
      Src: /src/libwebp/examples/anim_util.c:844,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/anim_util.c:845,1
    - Dst: ReadAnimatedImageFromMemory
      Src: /src/libwebp/examples/anim_util.c:849,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/anim_util.c:852,1
    - Dst: WebPDataClear
      Src: /src/libwebp/examples/anim_util.c:855,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - filename
    - image
    - dump_frames
    - dump_folder
    argTypes:
    - char[]
    - AnimatedImage*
    - int
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 837
    functionDepth: 3
    functionLinenumber: 837
    functionLinenumberEnd: 857
    functionName: ReadAnimatedImage
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 2
    functionsReached:
    - ImgIoUtilReadFile
    - WFPRINTF
    - ReadAnimatedImageFromMemory
    - WebPDataInit
    - WebPDataClear
    linkageType: ''
    returnType: int
    signature: "int ReadAnimatedImage(const char filename[], AnimatedImage* const
      image,\n                      int dump_frames, const char dump_folder[])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/examples/anim_util.c:868,1
    - Dst: IsWebP
      Src: /src/libwebp/examples/anim_util.c:870,1
    - Dst: ReadAnimatedWebP
      Src: /src/libwebp/examples/anim_util.c:872,1
    - Dst: IsGIF
      Src: /src/libwebp/examples/anim_util.c:873,1
    - Dst: ReadAnimatedGIF
      Src: /src/libwebp/examples/anim_util.c:874,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/anim_util.c:876,1
    - Dst: ClearAnimatedImage
      Src: /src/libwebp/examples/anim_util.c:881,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 6
    argNames:
    - filename
    - data
    - size
    - image
    - dump_frames
    - dump_folder
    argTypes:
    - char[]
    - uint8_t*
    - size_t
    - AnimatedImage*
    - int
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 859
    functionDepth: 6
    functionLinenumber: 859
    functionLinenumberEnd: 883
    functionName: ReadAnimatedImageFromMemory
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 3
    functionsReached:
    - WFPRINTF
    - ReadAnimatedWebP
    - IsWebP
    - memset
    - ClearAnimatedImage
    - IsGIF
    - ReadAnimatedGIF
    linkageType: ''
    returnType: int
    signature: "int ReadAnimatedImageFromMemory(const char filename[],\n                                const
      uint8_t* const data, size_t size,\n                                AnimatedImage*
      const image, int dump_frames,\n                                const char dump_folder[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/libwebp/examples/anim_util.c:887,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - v1
    - v2
    - max_diff
    - sse
    argTypes:
    - double
    - double
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 890
    functionName: Accumulate
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 0
    functionsReached:
    - fabs
    linkageType: ''
    returnType: void
    signature: "void Accumulate(double v1, double v2, double* const max_diff,\n                       double*
      const sse)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Accumulate
      Src: /src/libwebp/examples/anim_util.c:906,1
    - Dst: Accumulate
      Src: /src/libwebp/examples/anim_util.c:909,1
    - Dst: Accumulate
      Src: /src/libwebp/examples/anim_util.c:914,1
    - Dst: assert
      Src: /src/libwebp/examples/anim_util.c:925,1
    - Dst: log
      Src: /src/libwebp/examples/anim_util.c:926,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 7
    argNames:
    - rgba1
    - rgba2
    - width
    - height
    - premultiply
    - max_diff
    - psnr
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint32_t
    - uint32_t
    - int
    - int*
    - double*
    assertStmts:
    - condition: (sse != 0.0)
      pos:
        line_end: 924
        line_start: 924
        source_file: /src/libwebp/examples/anim_util.c
    constantsTouched: []
    func_position:
      end: 928
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 928
    functionName: GetDiffAndPSNR
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 1
    functionsReached:
    - assert
    - log
    - Accumulate
    linkageType: ''
    returnType: void
    signature: "void GetDiffAndPSNR(const uint8_t rgba1[], const uint8_t rgba2[],\n
      \                   uint32_t width, uint32_t height, int premultiply,\n                    int*
      const max_diff, double* const psnr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPGetDecoderVersion
      Src: /src/libwebp/examples/anim_util.c:932,1
    - Dst: WebPGetDemuxVersion
      Src: /src/libwebp/examples/anim_util.c:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - decoder_version
    - demux_version
    argTypes:
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 934
    functionName: GetAnimatedImageVersions
    functionSourceFile: /src/libwebp/examples/anim_util.c
    functionUses: 2
    functionsReached:
    - WebPGetDemuxVersion
    - WebPGetDecoderVersion
    linkageType: ''
    returnType: void
    signature: "void GetAnimatedImageVersions(int* const decoder_version,\n                              int*
      const demux_version)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - args
    - arg
    argTypes:
    - CommandLineArguments*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 140
    functionName: CountOccurrences
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int CountOccurrences(const CommandLineArguments* const args,\n                            const
      char* const arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/examples/webpmux.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - err
    argTypes:
    - WebPMuxError
    assertStmts:
    - condition: (err <= WEBP_MUX_NOT_FOUND && err >= WEBP_MUX_NOT_ENOUGH_DATA)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/libwebp/examples/webpmux.c
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: ErrorString
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char * ErrorString(WebPMuxError err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ERR_MSG
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 158
    functionName: RETURN_IF_ERROR
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_IF_ERROR(ERR_MSG)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ERR_MSG
    - ','
    - FORMAT_STR1
    - ','
    - FORMAT_STR2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: RETURN_IF_ERROR3
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_IF_ERROR3(ERR_MSG, FORMAT_STR1, FORMAT_STR2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ERR_MSG
    - ','
    - LABEL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: ERROR_GOTO1
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR_GOTO1(ERR_MSG, LABEL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ERR_MSG
    - ','
    - FORMAT_STR
    - ','
    - LABEL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: ERROR_GOTO2
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR_GOTO2(ERR_MSG, FORMAT_STR, LABEL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ERR_MSG
    - ','
    - FORMAT_STR1
    - ','
    - FORMAT_STR2
    - ','
    - LABEL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: ERROR_GOTO3
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR_GOTO3(ERR_MSG, FORMAT_STR1, FORMAT_STR2, LABEL)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: WebPMuxGetCanvasSize
      Src: /src/libwebp/examples/webpmux.c:192,1
    - Dst: assert
      Src: /src/libwebp/examples/webpmux.c:193,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:194,1
    - Dst: WebPMuxGetFeatures
      Src: /src/libwebp/examples/webpmux.c:196,1
    - Dst: RETURN_IF_ERROR
      Src: /src/libwebp/examples/webpmux.c:197,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:200,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:205,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:206,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:207,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:208,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:209,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:210,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:211,1
    - Dst: WebPMuxGetAnimationParams
      Src: /src/libwebp/examples/webpmux.c:219,1
    - Dst: assert
      Src: /src/libwebp/examples/webpmux.c:220,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:221,1
    - Dst: WebPMuxNumChunks
      Src: /src/libwebp/examples/webpmux.c:224,1
    - Dst: assert
      Src: /src/libwebp/examples/webpmux.c:225,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:227,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:230,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:231,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:232,1
    - Dst: WebPMuxGetFrame
      Src: /src/libwebp/examples/webpmux.c:235,1
    - Dst: WebPGetFeatures
      Src: /src/libwebp/examples/webpmux.c:238,1
    - Dst: assert
      Src: /src/libwebp/examples/webpmux.c:240,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:242,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:251,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:253,1
    - Dst: WebPDataClear
      Src: /src/libwebp/examples/webpmux.c:258,1
    - Dst: RETURN_IF_ERROR3
      Src: /src/libwebp/examples/webpmux.c:259,1
    - Dst: WebPMuxGetChunk
      Src: /src/libwebp/examples/webpmux.c:266,1
    - Dst: assert
      Src: /src/libwebp/examples/webpmux.c:267,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:268,1
    - Dst: WebPMuxGetChunk
      Src: /src/libwebp/examples/webpmux.c:273,1
    - Dst: assert
      Src: /src/libwebp/examples/webpmux.c:274,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:275,1
    - Dst: WebPMuxGetChunk
      Src: /src/libwebp/examples/webpmux.c:280,1
    - Dst: assert
      Src: /src/libwebp/examples/webpmux.c:281,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:282,1
    - Dst: WebPMuxGetFrame
      Src: /src/libwebp/examples/webpmux.c:287,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:289,1
    - Dst: WebPDataClear
      Src: /src/libwebp/examples/webpmux.c:291,1
    - Dst: RETURN_IF_ERROR
      Src: /src/libwebp/examples/webpmux.c:292,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 71
    argCount: 1
    argNames:
    - mux
    argTypes:
    - WebPMux*
    assertStmts:
    - condition: (status == VP8_STATUS_OK)
      pos:
        line_end: 239
        line_start: 239
        source_file: /src/libwebp/examples/webpmux.c
    - condition: (err == WEBP_MUX_OK)
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/libwebp/examples/webpmux.c
    - condition: (err == WEBP_MUX_OK)
      pos:
        line_end: 280
        line_start: 280
        source_file: /src/libwebp/examples/webpmux.c
    - condition: (err == WEBP_MUX_OK)
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/libwebp/examples/webpmux.c
    - condition: (err == WEBP_MUX_OK)
      pos:
        line_end: 224
        line_start: 224
        source_file: /src/libwebp/examples/webpmux.c
    - condition: (err == WEBP_MUX_OK)
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/libwebp/examples/webpmux.c
    - condition: (err == WEBP_MUX_OK)
      pos:
        line_end: 273
        line_start: 273
        source_file: /src/libwebp/examples/webpmux.c
    constantsTouched: []
    func_position:
      end: 296
      start: 188
    functionDepth: 5
    functionLinenumber: 188
    functionLinenumberEnd: 296
    functionName: DisplayInfo
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached:
    - printf
    - RETURN_IF_ERROR3
    - WebPMuxGetChunk
    - WebPMuxGetFrame
    - assert
    - WebPGetFeatures
    - RETURN_IF_ERROR
    - WebPMuxGetAnimationParams
    - WebPMuxGetFeatures
    - WebPMuxNumChunks
    - WebPMuxGetCanvasSize
    - WebPDataClear
    linkageType: ''
    returnType: WebPMuxError
    signature: WebPMuxError DisplayInfo(const WebPMux* mux)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:299,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:300,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:301,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:302,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:303,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:304,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:307,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:308,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:309,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:310,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:311,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:313,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:314,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:315,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:316,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:317,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:318,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:319,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:321,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:322,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:323,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:324,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:325,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:326,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:327,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:328,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:329,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:330,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:331,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:333,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:334,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:335,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:336,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:337,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:338,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:339,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:340,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:341,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:342,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:343,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:345,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:346,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:347,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:348,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:349,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:350,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:352,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:353,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:354,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:355,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:356,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:357,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:358,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:359,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:360,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:364,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:365,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:366,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:367,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:369,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:370,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:371,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:372,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:373,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:376,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:379,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:381,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:383,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:384,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:385,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 391
    functionName: PrintHelp
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void PrintHelp(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/examples/webpmux.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - WebPMuxFrameInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 401
    functionName: WarnAboutOddOffset
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void WarnAboutOddOffset(const WebPMuxFrameInfo* const info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/examples/webpmux.c:405,1
    - Dst: ExUtilReadFileToWebPData
      Src: /src/libwebp/examples/webpmux.c:406,1
    - Dst: WebPMuxCreate
      Src: /src/libwebp/examples/webpmux.c:407,1
    - Dst: WebPDataClear
      Src: /src/libwebp/examples/webpmux.c:408,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/webpmux.c:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - filename
    - mux
    argTypes:
    - char*
    - WebPMux**
    assertStmts:
    - condition: (mux != NULL)
      pos:
        line_end: 404
        line_start: 404
        source_file: /src/libwebp/examples/webpmux.c
    constantsTouched: []
    func_position:
      end: 413
      start: 403
    functionDepth: 5
    functionLinenumber: 403
    functionLinenumberEnd: 413
    functionName: CreateMux
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached:
    - WFPRINTF
    - assert
    - WebPMuxCreate
    - ExUtilReadFileToWebPData
    - WebPDataClear
    linkageType: ''
    returnType: int
    signature: int CreateMux(const char* const filename, WebPMux** mux)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WSTRCMP
      Src: /src/libwebp/examples/webpmux.c:417,1
    - Dst: WFOPEN
      Src: /src/libwebp/examples/webpmux.c:417,1
    - Dst: ImgIoUtilSetBinaryMode
      Src: /src/libwebp/examples/webpmux.c:418,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/webpmux.c:420,1
    - Dst: fwrite
      Src: /src/libwebp/examples/webpmux.c:424,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/webpmux.c:425,1
    - Dst: WFPRINTF
      Src: /src/libwebp/examples/webpmux.c:427,1
    - Dst: fclose
      Src: /src/libwebp/examples/webpmux.c:431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - filename
    - webpdata
    argTypes:
    - char*
    - WebPData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 433
    functionName: WriteData
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached:
    - WFPRINTF
    - WFOPEN
    - fwrite
    - fclose
    - WSTRCMP
    - ImgIoUtilSetBinaryMode
    linkageType: ''
    returnType: int
    signature: int WriteData(const char* filename, const WebPData* const webpdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WebPMuxAssemble
      Src: /src/libwebp/examples/webpmux.c:438,1
    - Dst: fprintf
      Src: /src/libwebp/examples/webpmux.c:440,1
    - Dst: ErrorString
      Src: /src/libwebp/examples/webpmux.c:440,1
    - Dst: WriteData
      Src: /src/libwebp/examples/webpmux.c:443,1
    - Dst: WebPDataClear
      Src: /src/libwebp/examples/webpmux.c:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mux
    - filename
    argTypes:
    - WebPMux*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 435
    functionDepth: 7
    functionLinenumber: 435
    functionLinenumberEnd: 446
    functionName: WriteWebP
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached:
    - ErrorString
    - fprintf
    - WriteData
    - WebPDataClear
    - WebPMuxAssemble
    linkageType: ''
    returnType: int
    signature: int WriteWebP(WebPMux* const mux, const char* filename)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WebPMuxNew
      Src: /src/libwebp/examples/webpmux.c:449,1
    - Dst: WebPMuxGetAnimationParams
      Src: /src/libwebp/examples/webpmux.c:457,1
    - Dst: WebPMuxSetAnimationParams
      Src: /src/libwebp/examples/webpmux.c:459,1
    - Dst: ERROR_GOTO2
      Src: /src/libwebp/examples/webpmux.c:461,1
    - Dst: ErrorString
      Src: /src/libwebp/examples/webpmux.c:461,1
    - Dst: WebPMuxGetChunk
      Src: /src/libwebp/examples/webpmux.c:470,1
    - Dst: WebPMuxSetChunk
      Src: /src/libwebp/examples/webpmux.c:472,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:474,1
    - Dst: WebPMuxDelete
      Src: /src/libwebp/examples/webpmux.c:482,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - mux
    argTypes:
    - WebPMux*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 448
    functionDepth: 9
    functionLinenumber: 448
    functionLinenumberEnd: 486
    functionName: DuplicateMuxHeader
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached:
    - WebPMuxNew
    - WebPMuxGetChunk
    - WebPMuxDelete
    - ErrorString
    - WebPMuxSetAnimationParams
    - ERROR_GOTO1
    - WebPMuxGetAnimationParams
    - WebPMuxSetChunk
    - ERROR_GOTO2
    linkageType: ''
    returnType: WebPMux
    signature: WebPMux * DuplicateMuxHeader(const WebPMux* const mux)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/libwebp/examples/webpmux.c:491,1
    - Dst: WarnAboutOddOffset
      Src: /src/libwebp/examples/webpmux.c:516,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - args
    - info
    argTypes:
    - char*
    - WebPMuxFrameInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 526
    functionName: ParseFrameArgs
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached:
    - WarnAboutOddOffset
    - sscanf
    linkageType: ''
    returnType: int
    signature: int ParseFrameArgs(const char* args, WebPMuxFrameInfo* const info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/libwebp/examples/webpmux.c:530,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - args
    - bgcolor
    argTypes:
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 534
    functionName: ParseBgcolorArgs
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: int
    signature: int ParseBgcolorArgs(const char* args, uint32_t* const bgcolor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libwebp/examples/webpmux.c:541,1
    - Dst: ExUtilDeleteCommandLineArguments
      Src: /src/libwebp/examples/webpmux.c:542,1
    - Dst: memset
      Src: /src/libwebp/examples/webpmux.c:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - config
    argTypes:
    - Config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 539
    functionDepth: 4
    functionLinenumber: 539
    functionLinenumberEnd: 545
    functionName: DeleteConfig
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached:
    - free
    - memset
    - ExUtilDeleteCommandLineArguments
    linkageType: ''
    returnType: void
    signature: void DeleteConfig(Config* const config)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/examples/webpmux.c:562,1
    - Dst: CountOccurrences
      Src: /src/libwebp/examples/webpmux.c:566,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:567,1
    - Dst: CountOccurrences
      Src: /src/libwebp/examples/webpmux.c:569,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:570,1
    - Dst: CountOccurrences
      Src: /src/libwebp/examples/webpmux.c:572,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:573,1
    - Dst: CountOccurrences
      Src: /src/libwebp/examples/webpmux.c:575,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:576,1
    - Dst: CountOccurrences
      Src: /src/libwebp/examples/webpmux.c:578,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:579,1
    - Dst: CountOccurrences
      Src: /src/libwebp/examples/webpmux.c:583,1
    - Dst: CountOccurrences
      Src: /src/libwebp/examples/webpmux.c:584,1
    - Dst: CountOccurrences
      Src: /src/libwebp/examples/webpmux.c:585,1
    - Dst: CountOccurrences
      Src: /src/libwebp/examples/webpmux.c:586,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:589,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:592,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:596,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:602,1
    - Dst: assert
      Src: /src/libwebp/examples/webpmux.c:606,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - cmd_args
    - num_feature_args
    argTypes:
    - CommandLineArguments*
    - int*
    assertStmts:
    - condition: (num_feature_args != NULL)
      pos:
        line_end: 561
        line_start: 561
        source_file: /src/libwebp/examples/webpmux.c
    - condition: (ok == 1)
      pos:
        line_end: 605
        line_start: 605
        source_file: /src/libwebp/examples/webpmux.c
    constantsTouched: []
    func_position:
      end: 619
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 619
    functionName: ValidateCommandLine
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached:
    - assert
    - CountOccurrences
    - ERROR_GOTO1
    linkageType: ''
    returnType: int
    signature: "int ValidateCommandLine(const CommandLineArguments* const cmd_args,\n
      \                              int* num_feature_args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NUM
    - ','
    - LABEL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 632
    functionName: CHECK_NUM_ARGS_AT_LEAST
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NUM_ARGS_AT_LEAST(NUM, LABEL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NUM
    - ','
    - LABEL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 640
    functionName: CHECK_NUM_ARGS_AT_MOST
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NUM_ARGS_AT_MOST(NUM, LABEL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NUM
    - ','
    - LABEL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 646
    functionName: CHECK_NUM_ARGS_EXACTLY
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NUM_ARGS_EXACTLY(NUM, LABEL)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:662,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:666,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:669,1
    - Dst: CHECK_NUM_ARGS_AT_LEAST
      Src: /src/libwebp/examples/webpmux.c:670,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:674,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:679,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:684,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:688,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:691,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:695,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:698,1
    - Dst: CHECK_NUM_ARGS_AT_LEAST
      Src: /src/libwebp/examples/webpmux.c:699,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:703,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:708,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:715,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:715,1
    - Dst: CHECK_NUM_ARGS_AT_LEAST
      Src: /src/libwebp/examples/webpmux.c:716,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:720,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:725,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:728,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:732,1
    - Dst: CHECK_NUM_ARGS_AT_LEAST
      Src: /src/libwebp/examples/webpmux.c:733,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:736,1
    - Dst: CHECK_NUM_ARGS_EXACTLY
      Src: /src/libwebp/examples/webpmux.c:737,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:739,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:746,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:746,1
    - Dst: PrintHelp
      Src: /src/libwebp/examples/webpmux.c:747,1
    - Dst: DeleteConfig
      Src: /src/libwebp/examples/webpmux.c:748,1
    - Dst: LOCAL_FREE
      Src: /src/libwebp/examples/webpmux.c:749,1
    - Dst: exit
      Src: /src/libwebp/examples/webpmux.c:750,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:751,1
    - Dst: WebPGetMuxVersion
      Src: /src/libwebp/examples/webpmux.c:752,1
    - Dst: printf
      Src: /src/libwebp/examples/webpmux.c:753,1
    - Dst: DeleteConfig
      Src: /src/libwebp/examples/webpmux.c:755,1
    - Dst: LOCAL_FREE
      Src: /src/libwebp/examples/webpmux.c:756,1
    - Dst: exit
      Src: /src/libwebp/examples/webpmux.c:757,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:758,1
    - Dst: ERROR_GOTO2
      Src: /src/libwebp/examples/webpmux.c:764,1
    - Dst: ERROR_GOTO2
      Src: /src/libwebp/examples/webpmux.c:770,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:778,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:782,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:782,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:783,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:785,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:786,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:789,1
    - Dst: CHECK_NUM_ARGS_AT_LEAST
      Src: /src/libwebp/examples/webpmux.c:792,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:804,1
    - Dst: CHECK_NUM_ARGS_AT_LEAST
      Src: /src/libwebp/examples/webpmux.c:806,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:811,1
    - Dst: CHECK_NUM_ARGS_AT_LEAST
      Src: /src/libwebp/examples/webpmux.c:813,1
    - Dst: strcmp
      Src: /src/libwebp/examples/webpmux.c:818,1
    - Dst: CHECK_NUM_ARGS_AT_LEAST
      Src: /src/libwebp/examples/webpmux.c:820,1
    - Dst: ERROR_GOTO2
      Src: /src/libwebp/examples/webpmux.c:834,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 177
    argCount: 2
    argNames:
    - config
    - unicode_argv
    argTypes:
    - Config*
    - W_CHAR**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 649
    functionDepth: 5
    functionLinenumber: 649
    functionLinenumberEnd: 843
    functionName: ParseCommandLine
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached:
    - LOCAL_FREE
    - printf
    - exit
    - WebPGetMuxVersion
    - ERROR_GOTO1
    - strcmp
    - CHECK_NUM_ARGS_AT_LEAST
    - CHECK_NUM_ARGS_EXACTLY
    - DeleteConfig
    - PrintHelp
    - ERROR_GOTO2
    linkageType: ''
    returnType: int
    signature: int ParseCommandLine(Config* config, const W_CHAR** const unicode_argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:851,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:856,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:862,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:864,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:870,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - config
    argTypes:
    - Config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 875
    functionName: ValidateConfig
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 8
    functionsReached:
    - ERROR_GOTO1
    linkageType: ''
    returnType: int
    signature: int ValidateConfig(Config* const config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/examples/webpmux.c:883,1
    - Dst: ExUtilInitCommandLineArguments
      Src: /src/libwebp/examples/webpmux.c:885,1
    - Dst: ValidateCommandLine
      Src: /src/libwebp/examples/webpmux.c:889,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:890,1
    - Dst: calloc
      Src: /src/libwebp/examples/webpmux.c:894,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:896,1
    - Dst: ParseCommandLine
      Src: /src/libwebp/examples/webpmux.c:900,1
    - Dst: ValidateConfig
      Src: /src/libwebp/examples/webpmux.c:900,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:901,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - argc
    - argv
    - config
    - unicode_argv
    argTypes:
    - int
    - char*[]
    - Config*
    - W_CHAR**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 878
    functionDepth: 6
    functionLinenumber: 878
    functionLinenumberEnd: 906
    functionName: InitializeConfig
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached:
    - calloc
    - ERROR_GOTO1
    - ValidateCommandLine
    - memset
    - ExUtilInitCommandLineArguments
    - ValidateConfig
    - ParseCommandLine
    linkageType: ''
    returnType: int
    signature: "int InitializeConfig(int argc, const char* argv[], Config* const config,\n
      \                           const W_CHAR** const unicode_argv)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WebPDataInit
      Src: /src/libwebp/examples/webpmux.c:925,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/webpmux.c:927,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:929,1
    - Dst: WebPMuxGetFrame
      Src: /src/libwebp/examples/webpmux.c:933,1
    - Dst: ERROR_GOTO3
      Src: /src/libwebp/examples/webpmux.c:936,1
    - Dst: ErrorString
      Src: /src/libwebp/examples/webpmux.c:936,1
    - Dst: WebPMuxNew
      Src: /src/libwebp/examples/webpmux.c:940,1
    - Dst: ERROR_GOTO2
      Src: /src/libwebp/examples/webpmux.c:943,1
    - Dst: ErrorString
      Src: /src/libwebp/examples/webpmux.c:944,1
    - Dst: WebPMuxSetImage
      Src: /src/libwebp/examples/webpmux.c:946,1
    - Dst: ERROR_GOTO2
      Src: /src/libwebp/examples/webpmux.c:948,1
    - Dst: ErrorString
      Src: /src/libwebp/examples/webpmux.c:949,1
    - Dst: WriteWebP
      Src: /src/libwebp/examples/webpmux.c:952,1
    - Dst: WebPDataClear
      Src: /src/libwebp/examples/webpmux.c:955,1
    - Dst: WebPMuxDelete
      Src: /src/libwebp/examples/webpmux.c:956,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - mux
    - config
    argTypes:
    - WebPMux*
    - Config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 917
    functionDepth: 12
    functionLinenumber: 917
    functionLinenumberEnd: 958
    functionName: GetFrame
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 16
    functionsReached:
    - WebPMuxNew
    - ERROR_GOTO3
    - WebPMuxSetImage
    - WriteWebP
    - WebPMuxGetFrame
    - WebPMuxDelete
    - ErrorString
    - ERROR_GOTO1
    - ExUtilGetInt
    - ERROR_GOTO2
    - WebPDataInit
    - WebPDataClear
    linkageType: ''
    returnType: int
    signature: int GetFrame(const WebPMux* mux, const Config* config)
  - BBCount: 64
    BranchProfiles: []
    Callsites:
    - Dst: CreateMux
      Src: /src/libwebp/examples/webpmux.c:969,1
    - Dst: GetFrame
      Src: /src/libwebp/examples/webpmux.c:973,1
    - Dst: WebPMuxGetChunk
      Src: /src/libwebp/examples/webpmux.c:979,1
    - Dst: ERROR_GOTO3
      Src: /src/libwebp/examples/webpmux.c:981,1
    - Dst: ErrorString
      Src: /src/libwebp/examples/webpmux.c:981,1
    - Dst: WriteData
      Src: /src/libwebp/examples/webpmux.c:984,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:988,1
    - Dst: WebPMuxNew
      Src: /src/libwebp/examples/webpmux.c:998,1
    - Dst: ERROR_GOTO2
      Src: /src/libwebp/examples/webpmux.c:1000,1
    - Dst: ErrorString
      Src: /src/libwebp/examples/webpmux.c:1001,1
    - Dst: ParseBgcolorArgs
      Src: /src/libwebp/examples/webpmux.c:1007,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:1009,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/webpmux.c:1018,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:1023,1
    - Dst: ExUtilReadFileToWebPData
      Src: /src/libwebp/examples/webpmux.c:1036,1
    - Dst: ParseFrameArgs
      Src: /src/libwebp/examples/webpmux.c:1039,1
    - Dst: WebPDataClear
      Src: /src/libwebp/examples/webpmux.c:1041,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:1042,1
    - Dst: WebPMuxPushFrame
      Src: /src/libwebp/examples/webpmux.c:1045,1
    - Dst: WebPDataClear
      Src: /src/libwebp/examples/webpmux.c:1046,1
    - Dst: ERROR_GOTO3
      Src: /src/libwebp/examples/webpmux.c:1048,1
    - Dst: ErrorString
      Src: /src/libwebp/examples/webpmux.c:1051,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:1056,1
    - Dst: WebPMuxSetAnimationParams
      Src: /src/libwebp/examples/webpmux.c:1061,1
    - Dst: ERROR_GOTO2
      Src: /src/libwebp/examples/webpmux.c:1063,1
    - Dst: ErrorString
      Src: /src/libwebp/examples/webpmux.c:1064,1
    - Dst: CreateMux
      Src: /src/libwebp/examples/webpmux.c:1072,1
    - Dst: ExUtilReadFileToWebPData
      Src: /src/libwebp/examples/webpmux.c:1074,1
    - Dst: WebPMuxSetChunk
      Src: /src/libwebp/examples/webpmux.c:1076,1
    - Dst: WebPDataClear
      Src: /src/libwebp/examples/webpmux.c:1077,1
    - Dst: ERROR_GOTO3
      Src: /src/libwebp/examples/webpmux.c:1079,1
    - Dst: ErrorString
      Src: /src/libwebp/examples/webpmux.c:1079,1
    - Dst: ExUtilGetInt
      Src: /src/libwebp/examples/webpmux.c:1088,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:1090,1
    - Dst: CreateMux
      Src: /src/libwebp/examples/webpmux.c:1093,1
    - Dst: WebPMuxGetAnimationParams
      Src: /src/libwebp/examples/webpmux.c:1095,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:1097,1
    - Dst: WebPMuxSetAnimationParams
      Src: /src/libwebp/examples/webpmux.c:1101,1
    - Dst: ERROR_GOTO2
      Src: /src/libwebp/examples/webpmux.c:1104,1
    - Dst: ErrorString
      Src: /src/libwebp/examples/webpmux.c:1105,1
    - Dst: ParseBgcolorArgs
      Src: /src/libwebp/examples/webpmux.c:1112,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:1114,1
    - Dst: CreateMux
      Src: /src/libwebp/examples/webpmux.c:1116,1
    - Dst: WebPMuxGetAnimationParams
      Src: /src/libwebp/examples/webpmux.c:1118,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:1120,1
    - Dst: WebPMuxSetAnimationParams
      Src: /src/libwebp/examples/webpmux.c:1124,1
    - Dst: ERROR_GOTO2
      Src: /src/libwebp/examples/webpmux.c:1127,1
    - Dst: ErrorString
      Src: /src/libwebp/examples/webpmux.c:1128,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:1133,1
    - Dst: WriteWebP
      Src: /src/libwebp/examples/webpmux.c:1137,1
    - Dst: CreateMux
      Src: /src/libwebp/examples/webpmux.c:1142,1
    - Dst: WebPMuxNumChunks
      Src: /src/libwebp/examples/webpmux.c:1144,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:1147,1
    - Dst: fprintf
      Src: /src/libwebp/examples/webpmux.c:1150,1
    - Dst: WriteWebP
      Src: /src/libwebp/examples/webpmux.c:1153,1
    - Dst: DuplicateMuxHeader
      Src: /src/libwebp/examples/webpmux.c:1158,1
    - Dst: WebPMalloc
      Src: /src/libwebp/examples/webpmux.c:1160,1
    - Dst: ExUtilGetInts
      Src: /src/libwebp/examples/webpmux.c:1170,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:1175,1
    - Dst: assert
      Src: /src/libwebp/examples/webpmux.c:1193,1
    - Dst: WebPMuxGetFrame
      Src: /src/libwebp/examples/webpmux.c:1201,1
    - Dst: ERROR_GOTO2
      Src: /src/libwebp/examples/webpmux.c:1203,1
    - Dst: WebPMuxPushFrame
      Src: /src/libwebp/examples/webpmux.c:1206,1
    - Dst: ERROR_GOTO2
      Src: /src/libwebp/examples/webpmux.c:1208,1
    - Dst: WebPDataClear
      Src: /src/libwebp/examples/webpmux.c:1210,1
    - Dst: WebPMuxDelete
      Src: /src/libwebp/examples/webpmux.c:1212,1
    - Dst: WriteWebP
      Src: /src/libwebp/examples/webpmux.c:1213,1
    - Dst: WebPFree
      Src: /src/libwebp/examples/webpmux.c:1218,1
    - Dst: WebPMuxDelete
      Src: /src/libwebp/examples/webpmux.c:1219,1
    - Dst: CreateMux
      Src: /src/libwebp/examples/webpmux.c:1225,1
    - Dst: WebPMuxDeleteChunk
      Src: /src/libwebp/examples/webpmux.c:1229,1
    - Dst: ERROR_GOTO3
      Src: /src/libwebp/examples/webpmux.c:1231,1
    - Dst: ErrorString
      Src: /src/libwebp/examples/webpmux.c:1231,1
    - Dst: ERROR_GOTO1
      Src: /src/libwebp/examples/webpmux.c:1235,1
    - Dst: WriteWebP
      Src: /src/libwebp/examples/webpmux.c:1238,1
    - Dst: CreateMux
      Src: /src/libwebp/examples/webpmux.c:1242,1
    - Dst: DisplayInfo
      Src: /src/libwebp/examples/webpmux.c:1244,1
    - Dst: assert
      Src: /src/libwebp/examples/webpmux.c:1248,1
    - Dst: WebPMuxDelete
      Src: /src/libwebp/examples/webpmux.c:1254,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 267
    argCount: 1
    argNames:
    - config
    argTypes:
    - Config*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 1247
        line_start: 1247
        source_file: /src/libwebp/examples/webpmux.c
    - condition: (k >= 1 && k <= num_frames)
      pos:
        line_end: 1192
        line_start: 1192
        source_file: /src/libwebp/examples/webpmux.c
    constantsTouched: []
    func_position:
      end: 1256
      start: 961
    functionDepth: 12
    functionLinenumber: 961
    functionLinenumberEnd: 1256
    functionName: Process
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached:
    - ParseFrameArgs
    - ERROR_GOTO3
    - WebPMuxGetChunk
    - WebPMuxDelete
    - WebPMuxGetFrame
    - WebPFree
    - ErrorString
    - ExUtilGetInt
    - fprintf
    - WebPMalloc
    - ExUtilGetInts
    - CreateMux
    - WebPMuxPushFrame
    - WebPMuxNumChunks
    - WebPMuxDeleteChunk
    - WebPMuxNew
    - WriteWebP
    - assert
    - WebPMuxSetAnimationParams
    - WriteData
    - DisplayInfo
    - WebPMuxGetAnimationParams
    - ParseBgcolorArgs
    - ERROR_GOTO1
    - DuplicateMuxHeader
    - WebPMuxSetChunk
    - GetFrame
    - ExUtilReadFileToWebPData
    - ERROR_GOTO2
    - WebPDataClear
    linkageType: ''
    returnType: int
    signature: int Process(const Config* config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INIT_WARGV
      Src: /src/libwebp/examples/webpmux.c:1266,1
    - Dst: InitializeConfig
      Src: /src/libwebp/examples/webpmux.c:1268,1
    - Dst: GET_WARGV_OR_NULL
      Src: /src/libwebp/examples/webpmux.c:1268,1
    - Dst: Process
      Src: /src/libwebp/examples/webpmux.c:1270,1
    - Dst: PrintHelp
      Src: /src/libwebp/examples/webpmux.c:1272,1
    - Dst: DeleteConfig
      Src: /src/libwebp/examples/webpmux.c:1274,1
    - Dst: FREE_WARGV_AND_RETURN
      Src: /src/libwebp/examples/webpmux.c:1275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1262
    functionDepth: 13
    functionLinenumber: 1262
    functionLinenumberEnd: 1276
    functionName: main
    functionSourceFile: /src/libwebp/examples/webpmux.c
    functionUses: 0
    functionsReached:
    - INIT_WARGV
    - Process
    - FREE_WARGV_AND_RETURN
    - InitializeConfig
    - DeleteConfig
    - PrintHelp
    - GET_WARGV_OR_NULL
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: SWIGUNUSEDPARM
    functionSourceFile: /src/libwebp/swig/libwebp_go_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIGUNUSEDPARM(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: swiggo_size_assert_eq
    functionSourceFile: /src/libwebp/swig/libwebp_go_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swiggo_size_assert_eq(x, y, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: swiggo_size_assert
    functionSourceFile: /src/libwebp/swig/libwebp_go_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swiggo_size_assert(t, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: SWIGUNUSEDPARM
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIGUNUSEDPARM(p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExceptionClear
      Src: /src/libwebp/swig/libwebp_java_wrap.c:178,1
    - Dst: FindClass
      Src: /src/libwebp/swig/libwebp_java_wrap.c:179,1
    - Dst: ThrowNew
      Src: /src/libwebp/swig/libwebp_java_wrap.c:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - jenv
    - code
    - msg
    argTypes:
    - JNIEnv*
    - SWIG_JavaExceptionCodes
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 182
    functionName: SWIG_JavaThrowException
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - ExceptionClear
    - FindClass
    - ThrowNew
    linkageType: ''
    returnType: void
    signature: void SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes
      code, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - nullreturn
    - ','
    - expr
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: SWIG_contract_assert
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_contract_assert(nullreturn, expr, msg)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:237,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - jenv
    - code
    - msg
    argTypes:
    - JNIEnv*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 238
    functionName: SWIG_JavaException
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaThrowException
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN SWIG_JavaException(JNIEnv *jenv, int code, const char *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:307,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:310,1
    - Dst: GetByteArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:311,1
    - Dst: calloc
      Src: /src/libwebp/swig/libwebp_java_wrap.c:314,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:316,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jbyte**
    - signed char**
    - jbyteArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 322
    functionName: SWIG_JavaArrayInSchar
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaThrowException
    - GetByteArrayElements
    - GetArrayLength
    - calloc
    linkageType: ''
    returnType: int
    signature: int SWIG_JavaArrayInSchar (JNIEnv *jenv, jbyte **jarr, signed char
      **carr, jbyteArray input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:326,1
    - Dst: ReleaseByteArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jbyte*
    - signed char*
    - jbyteArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: SWIG_JavaArrayArgoutSchar
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - GetArrayLength
    - ReleaseByteArrayElements
    linkageType: ''
    returnType: void
    signature: void SWIG_JavaArrayArgoutSchar (JNIEnv *jenv, jbyte *jarr, signed char
      *carr, jbyteArray input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NewByteArray
      Src: /src/libwebp/swig/libwebp_java_wrap.c:335,1
    - Dst: GetByteArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:338,1
    - Dst: ReleaseByteArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - jenv
    - result
    - sz
    argTypes:
    - JNIEnv*
    - signed char*
    - jsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 345
    functionName: SWIG_JavaArrayOutSchar
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - GetByteArrayElements
    - NewByteArray
    - ReleaseByteArrayElements
    linkageType: ''
    returnType: jbyteArray
    signature: jbyteArray SWIG_JavaArrayOutSchar (JNIEnv *jenv, signed char *result,
      jsize sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:353,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:356,1
    - Dst: GetShortArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:357,1
    - Dst: calloc
      Src: /src/libwebp/swig/libwebp_java_wrap.c:360,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:362,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jshort**
    - unsigned char**
    - jshortArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 368
    functionName: SWIG_JavaArrayInUchar
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - GetShortArrayElements
    - SWIG_JavaThrowException
    - GetArrayLength
    - calloc
    linkageType: ''
    returnType: int
    signature: int SWIG_JavaArrayInUchar (JNIEnv *jenv, jshort **jarr, unsigned char
      **carr, jshortArray input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:372,1
    - Dst: ReleaseShortArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jshort*
    - unsigned char*
    - jshortArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 376
    functionName: SWIG_JavaArrayArgoutUchar
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - ReleaseShortArrayElements
    - GetArrayLength
    linkageType: ''
    returnType: void
    signature: void SWIG_JavaArrayArgoutUchar (JNIEnv *jenv, jshort *jarr, unsigned
      char *carr, jshortArray input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NewShortArray
      Src: /src/libwebp/swig/libwebp_java_wrap.c:381,1
    - Dst: GetShortArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:384,1
    - Dst: ReleaseShortArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:389,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - jenv
    - result
    - sz
    argTypes:
    - JNIEnv*
    - unsigned char*
    - jsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 391
    functionName: SWIG_JavaArrayOutUchar
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - GetShortArrayElements
    - NewShortArray
    - ReleaseShortArrayElements
    linkageType: ''
    returnType: jshortArray
    signature: jshortArray SWIG_JavaArrayOutUchar (JNIEnv *jenv, unsigned char *result,
      jsize sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:399,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:402,1
    - Dst: GetShortArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:403,1
    - Dst: calloc
      Src: /src/libwebp/swig/libwebp_java_wrap.c:406,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jshort**
    - short**
    - jshortArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 414
    functionName: SWIG_JavaArrayInShort
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - GetShortArrayElements
    - SWIG_JavaThrowException
    - GetArrayLength
    - calloc
    linkageType: ''
    returnType: int
    signature: int SWIG_JavaArrayInShort (JNIEnv *jenv, jshort **jarr, short **carr,
      jshortArray input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:418,1
    - Dst: ReleaseShortArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jshort*
    - short*
    - jshortArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 422
    functionName: SWIG_JavaArrayArgoutShort
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - ReleaseShortArrayElements
    - GetArrayLength
    linkageType: ''
    returnType: void
    signature: void SWIG_JavaArrayArgoutShort (JNIEnv *jenv, jshort *jarr, short *carr,
      jshortArray input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NewShortArray
      Src: /src/libwebp/swig/libwebp_java_wrap.c:427,1
    - Dst: GetShortArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:430,1
    - Dst: ReleaseShortArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - jenv
    - result
    - sz
    argTypes:
    - JNIEnv*
    - short*
    - jsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 437
    functionName: SWIG_JavaArrayOutShort
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - GetShortArrayElements
    - NewShortArray
    - ReleaseShortArrayElements
    linkageType: ''
    returnType: jshortArray
    signature: jshortArray SWIG_JavaArrayOutShort (JNIEnv *jenv, short *result, jsize
      sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:445,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:448,1
    - Dst: GetIntArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:449,1
    - Dst: calloc
      Src: /src/libwebp/swig/libwebp_java_wrap.c:452,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:454,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jint**
    - unsigned short**
    - jintArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 441
    functionDepth: 3
    functionLinenumber: 441
    functionLinenumberEnd: 460
    functionName: SWIG_JavaArrayInUshort
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaThrowException
    - GetIntArrayElements
    - GetArrayLength
    - calloc
    linkageType: ''
    returnType: int
    signature: int SWIG_JavaArrayInUshort (JNIEnv *jenv, jint **jarr, unsigned short
      **carr, jintArray input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:464,1
    - Dst: ReleaseIntArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jint*
    - unsigned short*
    - jintArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 468
    functionName: SWIG_JavaArrayArgoutUshort
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - ReleaseIntArrayElements
    - GetArrayLength
    linkageType: ''
    returnType: void
    signature: void SWIG_JavaArrayArgoutUshort (JNIEnv *jenv, jint *jarr, unsigned
      short *carr, jintArray input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NewIntArray
      Src: /src/libwebp/swig/libwebp_java_wrap.c:473,1
    - Dst: GetIntArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:476,1
    - Dst: ReleaseIntArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - jenv
    - result
    - sz
    argTypes:
    - JNIEnv*
    - unsigned short*
    - jsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 483
    functionName: SWIG_JavaArrayOutUshort
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - GetIntArrayElements
    - ReleaseIntArrayElements
    - NewIntArray
    linkageType: ''
    returnType: jintArray
    signature: jintArray SWIG_JavaArrayOutUshort (JNIEnv *jenv, unsigned short *result,
      jsize sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:491,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:494,1
    - Dst: GetIntArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:495,1
    - Dst: calloc
      Src: /src/libwebp/swig/libwebp_java_wrap.c:498,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:500,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jint**
    - int**
    - jintArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 487
    functionDepth: 3
    functionLinenumber: 487
    functionLinenumberEnd: 506
    functionName: SWIG_JavaArrayInInt
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaThrowException
    - GetIntArrayElements
    - GetArrayLength
    - calloc
    linkageType: ''
    returnType: int
    signature: int SWIG_JavaArrayInInt (JNIEnv *jenv, jint **jarr, int **carr, jintArray
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:510,1
    - Dst: ReleaseIntArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jint*
    - int*
    - jintArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 514
    functionName: SWIG_JavaArrayArgoutInt
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - ReleaseIntArrayElements
    - GetArrayLength
    linkageType: ''
    returnType: void
    signature: void SWIG_JavaArrayArgoutInt (JNIEnv *jenv, jint *jarr, int *carr,
      jintArray input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NewIntArray
      Src: /src/libwebp/swig/libwebp_java_wrap.c:519,1
    - Dst: GetIntArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:522,1
    - Dst: ReleaseIntArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - jenv
    - result
    - sz
    argTypes:
    - JNIEnv*
    - int*
    - jsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 529
    functionName: SWIG_JavaArrayOutInt
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - GetIntArrayElements
    - ReleaseIntArrayElements
    - NewIntArray
    linkageType: ''
    returnType: jintArray
    signature: jintArray SWIG_JavaArrayOutInt (JNIEnv *jenv, int *result, jsize sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:537,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:540,1
    - Dst: GetLongArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:541,1
    - Dst: calloc
      Src: /src/libwebp/swig/libwebp_java_wrap.c:544,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jlong**
    - unsigned int**
    - jlongArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 533
    functionDepth: 3
    functionLinenumber: 533
    functionLinenumberEnd: 552
    functionName: SWIG_JavaArrayInUint
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaThrowException
    - calloc
    - GetArrayLength
    - GetLongArrayElements
    linkageType: ''
    returnType: int
    signature: int SWIG_JavaArrayInUint (JNIEnv *jenv, jlong **jarr, unsigned int
      **carr, jlongArray input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:556,1
    - Dst: ReleaseLongArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jlong*
    - unsigned int*
    - jlongArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 560
    functionName: SWIG_JavaArrayArgoutUint
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - ReleaseLongArrayElements
    - GetArrayLength
    linkageType: ''
    returnType: void
    signature: void SWIG_JavaArrayArgoutUint (JNIEnv *jenv, jlong *jarr, unsigned
      int *carr, jlongArray input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NewLongArray
      Src: /src/libwebp/swig/libwebp_java_wrap.c:565,1
    - Dst: GetLongArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:568,1
    - Dst: ReleaseLongArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - jenv
    - result
    - sz
    argTypes:
    - JNIEnv*
    - unsigned int*
    - jsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 575
    functionName: SWIG_JavaArrayOutUint
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - GetLongArrayElements
    - ReleaseLongArrayElements
    - NewLongArray
    linkageType: ''
    returnType: jlongArray
    signature: jlongArray SWIG_JavaArrayOutUint (JNIEnv *jenv, unsigned int *result,
      jsize sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:583,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:586,1
    - Dst: GetIntArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:587,1
    - Dst: calloc
      Src: /src/libwebp/swig/libwebp_java_wrap.c:590,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:592,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jint**
    - long**
    - jintArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 579
    functionDepth: 3
    functionLinenumber: 579
    functionLinenumberEnd: 598
    functionName: SWIG_JavaArrayInLong
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaThrowException
    - GetIntArrayElements
    - GetArrayLength
    - calloc
    linkageType: ''
    returnType: int
    signature: int SWIG_JavaArrayInLong (JNIEnv *jenv, jint **jarr, long **carr, jintArray
      input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:602,1
    - Dst: ReleaseIntArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jint*
    - long*
    - jintArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 606
    functionName: SWIG_JavaArrayArgoutLong
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - ReleaseIntArrayElements
    - GetArrayLength
    linkageType: ''
    returnType: void
    signature: void SWIG_JavaArrayArgoutLong (JNIEnv *jenv, jint *jarr, long *carr,
      jintArray input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NewIntArray
      Src: /src/libwebp/swig/libwebp_java_wrap.c:611,1
    - Dst: GetIntArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:614,1
    - Dst: ReleaseIntArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - jenv
    - result
    - sz
    argTypes:
    - JNIEnv*
    - long*
    - jsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 621
    functionName: SWIG_JavaArrayOutLong
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - GetIntArrayElements
    - ReleaseIntArrayElements
    - NewIntArray
    linkageType: ''
    returnType: jintArray
    signature: jintArray SWIG_JavaArrayOutLong (JNIEnv *jenv, long *result, jsize
      sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:629,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:632,1
    - Dst: GetLongArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:633,1
    - Dst: calloc
      Src: /src/libwebp/swig/libwebp_java_wrap.c:636,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:638,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jlong**
    - unsigned long**
    - jlongArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 644
    functionName: SWIG_JavaArrayInUlong
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaThrowException
    - calloc
    - GetArrayLength
    - GetLongArrayElements
    linkageType: ''
    returnType: int
    signature: int SWIG_JavaArrayInUlong (JNIEnv *jenv, jlong **jarr, unsigned long
      **carr, jlongArray input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:648,1
    - Dst: ReleaseLongArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jlong*
    - unsigned long*
    - jlongArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 652
    functionName: SWIG_JavaArrayArgoutUlong
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - ReleaseLongArrayElements
    - GetArrayLength
    linkageType: ''
    returnType: void
    signature: void SWIG_JavaArrayArgoutUlong (JNIEnv *jenv, jlong *jarr, unsigned
      long *carr, jlongArray input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NewLongArray
      Src: /src/libwebp/swig/libwebp_java_wrap.c:657,1
    - Dst: GetLongArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:660,1
    - Dst: ReleaseLongArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:665,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - jenv
    - result
    - sz
    argTypes:
    - JNIEnv*
    - unsigned long*
    - jsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 667
    functionName: SWIG_JavaArrayOutUlong
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - GetLongArrayElements
    - ReleaseLongArrayElements
    - NewLongArray
    linkageType: ''
    returnType: jlongArray
    signature: jlongArray SWIG_JavaArrayOutUlong (JNIEnv *jenv, unsigned long *result,
      jsize sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:675,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:678,1
    - Dst: GetLongArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:679,1
    - Dst: calloc
      Src: /src/libwebp/swig/libwebp_java_wrap.c:682,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:684,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jlong**
    - jlong**
    - jlongArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 671
    functionDepth: 3
    functionLinenumber: 671
    functionLinenumberEnd: 690
    functionName: SWIG_JavaArrayInLonglong
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaThrowException
    - calloc
    - GetArrayLength
    - GetLongArrayElements
    linkageType: ''
    returnType: int
    signature: int SWIG_JavaArrayInLonglong (JNIEnv *jenv, jlong **jarr, jlong **carr,
      jlongArray input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:694,1
    - Dst: ReleaseLongArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jlong*
    - jlong*
    - jlongArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 698
    functionName: SWIG_JavaArrayArgoutLonglong
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - ReleaseLongArrayElements
    - GetArrayLength
    linkageType: ''
    returnType: void
    signature: void SWIG_JavaArrayArgoutLonglong (JNIEnv *jenv, jlong *jarr, jlong
      *carr, jlongArray input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NewLongArray
      Src: /src/libwebp/swig/libwebp_java_wrap.c:703,1
    - Dst: GetLongArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:706,1
    - Dst: ReleaseLongArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:711,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - jenv
    - result
    - sz
    argTypes:
    - JNIEnv*
    - jlong*
    - jsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 713
    functionName: SWIG_JavaArrayOutLonglong
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - GetLongArrayElements
    - ReleaseLongArrayElements
    - NewLongArray
    linkageType: ''
    returnType: jlongArray
    signature: jlongArray SWIG_JavaArrayOutLonglong (JNIEnv *jenv, jlong *result,
      jsize sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:721,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:724,1
    - Dst: GetFloatArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:725,1
    - Dst: calloc
      Src: /src/libwebp/swig/libwebp_java_wrap.c:728,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:730,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jfloat**
    - float**
    - jfloatArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 717
    functionDepth: 3
    functionLinenumber: 717
    functionLinenumberEnd: 736
    functionName: SWIG_JavaArrayInFloat
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaThrowException
    - calloc
    - GetArrayLength
    - GetFloatArrayElements
    linkageType: ''
    returnType: int
    signature: int SWIG_JavaArrayInFloat (JNIEnv *jenv, jfloat **jarr, float **carr,
      jfloatArray input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:740,1
    - Dst: ReleaseFloatArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jfloat*
    - float*
    - jfloatArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 744
    functionName: SWIG_JavaArrayArgoutFloat
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - ReleaseFloatArrayElements
    - GetArrayLength
    linkageType: ''
    returnType: void
    signature: void SWIG_JavaArrayArgoutFloat (JNIEnv *jenv, jfloat *jarr, float *carr,
      jfloatArray input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NewFloatArray
      Src: /src/libwebp/swig/libwebp_java_wrap.c:749,1
    - Dst: GetFloatArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:752,1
    - Dst: ReleaseFloatArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:757,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - jenv
    - result
    - sz
    argTypes:
    - JNIEnv*
    - float*
    - jsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 759
    functionName: SWIG_JavaArrayOutFloat
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - NewFloatArray
    - ReleaseFloatArrayElements
    - GetFloatArrayElements
    linkageType: ''
    returnType: jfloatArray
    signature: jfloatArray SWIG_JavaArrayOutFloat (JNIEnv *jenv, float *result, jsize
      sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:767,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:770,1
    - Dst: GetDoubleArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:771,1
    - Dst: calloc
      Src: /src/libwebp/swig/libwebp_java_wrap.c:774,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:776,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jdouble**
    - double**
    - jdoubleArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 763
    functionDepth: 3
    functionLinenumber: 763
    functionLinenumberEnd: 782
    functionName: SWIG_JavaArrayInDouble
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaThrowException
    - GetDoubleArrayElements
    - GetArrayLength
    - calloc
    linkageType: ''
    returnType: int
    signature: int SWIG_JavaArrayInDouble (JNIEnv *jenv, jdouble **jarr, double **carr,
      jdoubleArray input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:786,1
    - Dst: ReleaseDoubleArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jdouble*
    - double*
    - jdoubleArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 790
    functionName: SWIG_JavaArrayArgoutDouble
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - ReleaseDoubleArrayElements
    - GetArrayLength
    linkageType: ''
    returnType: void
    signature: void SWIG_JavaArrayArgoutDouble (JNIEnv *jenv, jdouble *jarr, double
      *carr, jdoubleArray input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NewDoubleArray
      Src: /src/libwebp/swig/libwebp_java_wrap.c:795,1
    - Dst: GetDoubleArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:798,1
    - Dst: ReleaseDoubleArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:803,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - jenv
    - result
    - sz
    argTypes:
    - JNIEnv*
    - double*
    - jsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 805
    functionName: SWIG_JavaArrayOutDouble
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - GetDoubleArrayElements
    - ReleaseDoubleArrayElements
    - NewDoubleArray
    linkageType: ''
    returnType: jdoubleArray
    signature: jdoubleArray SWIG_JavaArrayOutDouble (JNIEnv *jenv, double *result,
      jsize sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:824,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:827,1
    - Dst: GetByteArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:828,1
    - Dst: calloc
      Src: /src/libwebp/swig/libwebp_java_wrap.c:831,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:833,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jbyte**
    - uint8_t**
    - jbyteArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 839
    functionName: SWIG_JavaArrayInUint8
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaThrowException
    - GetByteArrayElements
    - GetArrayLength
    - calloc
    linkageType: ''
    returnType: int
    signature: int SWIG_JavaArrayInUint8 (JNIEnv *jenv, jbyte **jarr, uint8_t **carr,
      jbyteArray input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:843,1
    - Dst: ReleaseByteArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:846,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - jenv
    - jarr
    - carr
    - input
    argTypes:
    - JNIEnv*
    - jbyte*
    - uint8_t*
    - jbyteArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 847
    functionName: SWIG_JavaArrayArgoutUint8
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - GetArrayLength
    - ReleaseByteArrayElements
    linkageType: ''
    returnType: void
    signature: void SWIG_JavaArrayArgoutUint8 (JNIEnv *jenv, jbyte *jarr, uint8_t
      *carr, jbyteArray input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NewByteArray
      Src: /src/libwebp/swig/libwebp_java_wrap.c:852,1
    - Dst: GetByteArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:855,1
    - Dst: ReleaseByteArrayElements
      Src: /src/libwebp/swig/libwebp_java_wrap.c:860,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - jenv
    - result
    - sz
    argTypes:
    - JNIEnv*
    - uint8_t*
    - jsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 862
    functionName: SWIG_JavaArrayOutUint8
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - GetByteArrayElements
    - NewByteArray
    - ReleaseByteArrayElements
    linkageType: ''
    returnType: jbyteArray
    signature: jbyteArray SWIG_JavaArrayOutUint8 (JNIEnv *jenv, uint8_t *result, jsize
      sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libwebp/swig/libwebp_java_wrap.c:915,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - function
    - width
    - height
    argTypes:
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 922
    functionName: ReturnedBufferSize
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: size_t
    signature: "size_t ReturnedBufferSize(\n    const char* function, int* width,
      int* height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encfn
      Src: /src/libwebp/swig/libwebp_java_wrap.c:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 8
    argNames:
    - rgb
    - width
    - height
    - stride
    - quality_factor
    - encfn
    - output_size
    - unused
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - float
    - WebPEncodeFunction
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 945
    functionName: EncodeLossy
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - encfn
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * EncodeLossy(const uint8_t* rgb,\n                            int
      width, int height, int stride,\n                            float quality_factor,\n
      \                           WebPEncodeFunction encfn,\n                            int*
      output_size, int* unused)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encfn
      Src: /src/libwebp/swig/libwebp_java_wrap.c:952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - rgb
    - width
    - height
    - stride
    - encfn
    - output_size
    - unused
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - WebPEncodeLosslessFunction
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 958
    functionName: EncodeLossless
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 1
    functionsReached:
    - encfn
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * EncodeLossless(const uint8_t* rgb,\n                               int
      width, int height, int stride,\n                               WebPEncodeLosslessFunction
      encfn,\n                               int* output_size, int* unused)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 974
    functionName: LOSSY_WRAPPER
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOSSY_WRAPPER(FUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 989
    functionName: LOSSLESS_WRAPPER
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOSSLESS_WRAPPER(FUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPGetDecoderVersion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - jenv
    - jcls
    argTypes:
    - JNIEnv*
    - jclass
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1020
    functionName: Java_com_google_webp_libwebpJNI_WebPGetDecoderVersion
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - WebPGetDecoderVersion
    linkageType: ''
    returnType: SWIGEXPORT
    signature: SWIGEXPORT Java_com_google_webp_libwebpJNI_WebPGetDecoderVersion(JNIEnv
      *jenv, jclass jcls)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaArrayInUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1036,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1040,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1043,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1044,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1051,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1054,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1055,1
    - Dst: WebPGetInfo
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1060,1
    - Dst: SWIG_JavaArrayArgoutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1062,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1065,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1069,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1071,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 6
    argNames:
    - jenv
    - jcls
    - jarg1
    - jarg2
    - jarg3
    - jarg4
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    - jlong
    - jintArray
    - jintArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1023
    functionDepth: 5
    functionLinenumber: 1023
    functionLinenumberEnd: 1075
    functionName: Java_com_google_webp_libwebpJNI_WebPGetInfo
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaArrayArgoutUint8
    - SetIntArrayRegion
    - WebPGetInfo
    - free
    - SWIG_JavaArrayInUint8
    - SWIG_JavaThrowException
    - GetArrayLength
    linkageType: ''
    returnType: SWIGEXPORT
    signature: SWIGEXPORT Java_com_google_webp_libwebpJNI_WebPGetInfo(JNIEnv *jenv,
      jclass jcls, jbyteArray jarg1, jlong jarg2, jintArray jarg3, jintArray jarg4)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaArrayInUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1091,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1095,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1098,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1099,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1106,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1109,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1110,1
    - Dst: WebPDecodeRGB
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1115,1
    - Dst: SWIG_JavaArrayOutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1116,1
    - Dst: SWIG_JavaArrayArgoutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1117,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1120,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1124,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1126,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 6
    argNames:
    - jenv
    - jcls
    - jarg1
    - jarg2
    - jarg3
    - jarg4
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    - jlong
    - jintArray
    - jintArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1078
    functionDepth: 4
    functionLinenumber: 1078
    functionLinenumberEnd: 1131
    functionName: Java_com_google_webp_libwebpJNI_WebPDecodeRGB
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaArrayArgoutUint8
    - SetIntArrayRegion
    - SWIG_JavaArrayOutUint8
    - free
    - SWIG_JavaArrayInUint8
    - SWIG_JavaThrowException
    - WebPDecodeRGB
    - GetArrayLength
    linkageType: ''
    returnType: SWIGEXPORT
    signature: SWIGEXPORT Java_com_google_webp_libwebpJNI_WebPDecodeRGB(JNIEnv *jenv,
      jclass jcls, jbyteArray jarg1, jlong jarg2, jintArray jarg3, jintArray jarg4)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaArrayInUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1147,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1151,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1154,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1155,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1162,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1165,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1166,1
    - Dst: WebPDecodeRGBA
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1171,1
    - Dst: SWIG_JavaArrayOutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1172,1
    - Dst: SWIG_JavaArrayArgoutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1173,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1176,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1180,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1182,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1185,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 6
    argNames:
    - jenv
    - jcls
    - jarg1
    - jarg2
    - jarg3
    - jarg4
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    - jlong
    - jintArray
    - jintArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1134
    functionDepth: 4
    functionLinenumber: 1134
    functionLinenumberEnd: 1187
    functionName: Java_com_google_webp_libwebpJNI_WebPDecodeRGBA
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaArrayArgoutUint8
    - SetIntArrayRegion
    - SWIG_JavaThrowException
    - SWIG_JavaArrayOutUint8
    - free
    - SWIG_JavaArrayInUint8
    - WebPDecodeRGBA
    - GetArrayLength
    linkageType: ''
    returnType: SWIGEXPORT
    signature: SWIGEXPORT Java_com_google_webp_libwebpJNI_WebPDecodeRGBA(JNIEnv *jenv,
      jclass jcls, jbyteArray jarg1, jlong jarg2, jintArray jarg3, jintArray jarg4)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaArrayInUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1203,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1207,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1210,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1211,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1218,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1221,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1222,1
    - Dst: WebPDecodeARGB
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1227,1
    - Dst: SWIG_JavaArrayOutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1228,1
    - Dst: SWIG_JavaArrayArgoutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1229,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1232,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1236,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1238,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1241,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 6
    argNames:
    - jenv
    - jcls
    - jarg1
    - jarg2
    - jarg3
    - jarg4
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    - jlong
    - jintArray
    - jintArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1190
    functionDepth: 4
    functionLinenumber: 1190
    functionLinenumberEnd: 1243
    functionName: Java_com_google_webp_libwebpJNI_WebPDecodeARGB
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - WebPDecodeARGB
    - SWIG_JavaArrayArgoutUint8
    - SetIntArrayRegion
    - SWIG_JavaArrayOutUint8
    - free
    - SWIG_JavaArrayInUint8
    - SWIG_JavaThrowException
    - GetArrayLength
    linkageType: ''
    returnType: SWIGEXPORT
    signature: SWIGEXPORT Java_com_google_webp_libwebpJNI_WebPDecodeARGB(JNIEnv *jenv,
      jclass jcls, jbyteArray jarg1, jlong jarg2, jintArray jarg3, jintArray jarg4)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaArrayInUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1259,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1263,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1266,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1267,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1274,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1277,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1278,1
    - Dst: WebPDecodeBGR
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1283,1
    - Dst: SWIG_JavaArrayOutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1284,1
    - Dst: SWIG_JavaArrayArgoutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1285,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1288,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1292,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1294,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1297,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 6
    argNames:
    - jenv
    - jcls
    - jarg1
    - jarg2
    - jarg3
    - jarg4
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    - jlong
    - jintArray
    - jintArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1246
    functionDepth: 4
    functionLinenumber: 1246
    functionLinenumberEnd: 1299
    functionName: Java_com_google_webp_libwebpJNI_WebPDecodeBGR
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaArrayArgoutUint8
    - SetIntArrayRegion
    - WebPDecodeBGR
    - SWIG_JavaArrayOutUint8
    - free
    - SWIG_JavaArrayInUint8
    - SWIG_JavaThrowException
    - GetArrayLength
    linkageType: ''
    returnType: SWIGEXPORT
    signature: SWIGEXPORT Java_com_google_webp_libwebpJNI_WebPDecodeBGR(JNIEnv *jenv,
      jclass jcls, jbyteArray jarg1, jlong jarg2, jintArray jarg3, jintArray jarg4)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaArrayInUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1315,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1319,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1322,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1323,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1330,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1333,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1334,1
    - Dst: WebPDecodeBGRA
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1339,1
    - Dst: SWIG_JavaArrayOutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1340,1
    - Dst: SWIG_JavaArrayArgoutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1341,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1344,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1348,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1350,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1353,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 6
    argNames:
    - jenv
    - jcls
    - jarg1
    - jarg2
    - jarg3
    - jarg4
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    - jlong
    - jintArray
    - jintArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1302
    functionDepth: 4
    functionLinenumber: 1302
    functionLinenumberEnd: 1355
    functionName: Java_com_google_webp_libwebpJNI_WebPDecodeBGRA
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaArrayArgoutUint8
    - SetIntArrayRegion
    - SWIG_JavaArrayOutUint8
    - free
    - SWIG_JavaArrayInUint8
    - SWIG_JavaThrowException
    - WebPDecodeBGRA
    - GetArrayLength
    linkageType: ''
    returnType: SWIGEXPORT
    signature: SWIGEXPORT Java_com_google_webp_libwebpJNI_WebPDecodeBGRA(JNIEnv *jenv,
      jclass jcls, jbyteArray jarg1, jlong jarg2, jintArray jarg3, jintArray jarg4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPGetEncoderVersion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - jenv
    - jcls
    argTypes:
    - JNIEnv*
    - jclass
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1358
    functionDepth: 1
    functionLinenumber: 1358
    functionLinenumberEnd: 1367
    functionName: Java_com_google_webp_libwebpJNI_WebPGetEncoderVersion
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - WebPGetEncoderVersion
    linkageType: ''
    returnType: SWIGEXPORT
    signature: SWIGEXPORT Java_com_google_webp_libwebpJNI_WebPGetEncoderVersion(JNIEnv
      *jenv, jclass jcls)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaArrayInUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1386,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1391,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1394,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1395,1
    - Dst: wrap_WebPEncodeRGB
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1404,1
    - Dst: SWIG_JavaArrayOutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1405,1
    - Dst: SWIG_JavaArrayArgoutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1406,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1409,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1411,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 10
    argNames:
    - jenv
    - jcls
    - jarg1
    - jarg2
    - jarg3
    - jarg4
    - jarg5
    - jarg6
    - jarg7
    - jarg8
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    - jint
    - jint
    - jintArray
    - jint
    - jint
    - jint
    - jfloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1370
    functionDepth: 4
    functionLinenumber: 1370
    functionLinenumberEnd: 1417
    functionName: Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeRGB
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaArrayArgoutUint8
    - SetIntArrayRegion
    - SWIG_JavaArrayOutUint8
    - free
    - SWIG_JavaArrayInUint8
    - wrap_WebPEncodeRGB
    - SWIG_JavaThrowException
    - GetArrayLength
    linkageType: ''
    returnType: SWIGEXPORT
    signature: SWIGEXPORT Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeRGB(JNIEnv
      *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4,
      jint jarg5, jint jarg6, jint jarg7, jfloat jarg8)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaArrayInUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1436,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1441,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1444,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1445,1
    - Dst: wrap_WebPEncodeBGR
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1454,1
    - Dst: SWIG_JavaArrayOutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1455,1
    - Dst: SWIG_JavaArrayArgoutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1456,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1459,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1461,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1465,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 10
    argNames:
    - jenv
    - jcls
    - jarg1
    - jarg2
    - jarg3
    - jarg4
    - jarg5
    - jarg6
    - jarg7
    - jarg8
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    - jint
    - jint
    - jintArray
    - jint
    - jint
    - jint
    - jfloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1420
    functionDepth: 4
    functionLinenumber: 1420
    functionLinenumberEnd: 1467
    functionName: Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeBGR
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaArrayArgoutUint8
    - SetIntArrayRegion
    - SWIG_JavaArrayOutUint8
    - free
    - wrap_WebPEncodeBGR
    - SWIG_JavaArrayInUint8
    - SWIG_JavaThrowException
    - GetArrayLength
    linkageType: ''
    returnType: SWIGEXPORT
    signature: SWIGEXPORT Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeBGR(JNIEnv
      *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4,
      jint jarg5, jint jarg6, jint jarg7, jfloat jarg8)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaArrayInUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1486,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1491,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1494,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1495,1
    - Dst: wrap_WebPEncodeRGBA
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1504,1
    - Dst: SWIG_JavaArrayOutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1505,1
    - Dst: SWIG_JavaArrayArgoutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1506,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1509,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1511,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 10
    argNames:
    - jenv
    - jcls
    - jarg1
    - jarg2
    - jarg3
    - jarg4
    - jarg5
    - jarg6
    - jarg7
    - jarg8
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    - jint
    - jint
    - jintArray
    - jint
    - jint
    - jint
    - jfloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1470
    functionDepth: 4
    functionLinenumber: 1470
    functionLinenumberEnd: 1517
    functionName: Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeRGBA
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaArrayArgoutUint8
    - SetIntArrayRegion
    - wrap_WebPEncodeRGBA
    - SWIG_JavaArrayOutUint8
    - free
    - SWIG_JavaArrayInUint8
    - SWIG_JavaThrowException
    - GetArrayLength
    linkageType: ''
    returnType: SWIGEXPORT
    signature: SWIGEXPORT Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeRGBA(JNIEnv
      *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4,
      jint jarg5, jint jarg6, jint jarg7, jfloat jarg8)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaArrayInUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1536,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1541,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1544,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1545,1
    - Dst: wrap_WebPEncodeBGRA
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1554,1
    - Dst: SWIG_JavaArrayOutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1555,1
    - Dst: SWIG_JavaArrayArgoutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1556,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1559,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1561,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 10
    argNames:
    - jenv
    - jcls
    - jarg1
    - jarg2
    - jarg3
    - jarg4
    - jarg5
    - jarg6
    - jarg7
    - jarg8
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    - jint
    - jint
    - jintArray
    - jint
    - jint
    - jint
    - jfloat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1520
    functionDepth: 4
    functionLinenumber: 1520
    functionLinenumberEnd: 1567
    functionName: Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeBGRA
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaArrayArgoutUint8
    - SetIntArrayRegion
    - SWIG_JavaArrayOutUint8
    - free
    - SWIG_JavaArrayInUint8
    - SWIG_JavaThrowException
    - wrap_WebPEncodeBGRA
    - GetArrayLength
    linkageType: ''
    returnType: SWIGEXPORT
    signature: SWIGEXPORT Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeBGRA(JNIEnv
      *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4,
      jint jarg5, jint jarg6, jint jarg7, jfloat jarg8)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaArrayInUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1585,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1590,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1593,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1594,1
    - Dst: wrap_WebPEncodeLosslessRGB
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1602,1
    - Dst: SWIG_JavaArrayOutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1603,1
    - Dst: SWIG_JavaArrayArgoutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1604,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1607,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1609,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 9
    argNames:
    - jenv
    - jcls
    - jarg1
    - jarg2
    - jarg3
    - jarg4
    - jarg5
    - jarg6
    - jarg7
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    - jint
    - jint
    - jintArray
    - jint
    - jint
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1570
    functionDepth: 4
    functionLinenumber: 1570
    functionLinenumberEnd: 1615
    functionName: Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessRGB
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaArrayArgoutUint8
    - SetIntArrayRegion
    - SWIG_JavaArrayOutUint8
    - free
    - SWIG_JavaArrayInUint8
    - SWIG_JavaThrowException
    - wrap_WebPEncodeLosslessRGB
    - GetArrayLength
    linkageType: ''
    returnType: SWIGEXPORT
    signature: SWIGEXPORT Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessRGB(JNIEnv
      *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4,
      jint jarg5, jint jarg6, jint jarg7)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaArrayInUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1633,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1638,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1641,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1642,1
    - Dst: wrap_WebPEncodeLosslessBGR
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1650,1
    - Dst: SWIG_JavaArrayOutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1651,1
    - Dst: SWIG_JavaArrayArgoutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1652,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1655,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1657,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1661,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 9
    argNames:
    - jenv
    - jcls
    - jarg1
    - jarg2
    - jarg3
    - jarg4
    - jarg5
    - jarg6
    - jarg7
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    - jint
    - jint
    - jintArray
    - jint
    - jint
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1618
    functionDepth: 4
    functionLinenumber: 1618
    functionLinenumberEnd: 1663
    functionName: Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessBGR
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaArrayArgoutUint8
    - SetIntArrayRegion
    - wrap_WebPEncodeLosslessBGR
    - SWIG_JavaArrayOutUint8
    - SWIG_JavaArrayInUint8
    - free
    - SWIG_JavaThrowException
    - GetArrayLength
    linkageType: ''
    returnType: SWIGEXPORT
    signature: SWIGEXPORT Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessBGR(JNIEnv
      *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4,
      jint jarg5, jint jarg6, jint jarg7)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaArrayInUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1681,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1686,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1689,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1690,1
    - Dst: wrap_WebPEncodeLosslessRGBA
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1698,1
    - Dst: SWIG_JavaArrayOutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1699,1
    - Dst: SWIG_JavaArrayArgoutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1700,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1703,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1705,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1709,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 9
    argNames:
    - jenv
    - jcls
    - jarg1
    - jarg2
    - jarg3
    - jarg4
    - jarg5
    - jarg6
    - jarg7
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    - jint
    - jint
    - jintArray
    - jint
    - jint
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1666
    functionDepth: 4
    functionLinenumber: 1666
    functionLinenumberEnd: 1711
    functionName: Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessRGBA
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - wrap_WebPEncodeLosslessRGBA
    - SWIG_JavaArrayArgoutUint8
    - SetIntArrayRegion
    - SWIG_JavaArrayOutUint8
    - free
    - SWIG_JavaArrayInUint8
    - SWIG_JavaThrowException
    - GetArrayLength
    linkageType: ''
    returnType: SWIGEXPORT
    signature: SWIGEXPORT Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessRGBA(JNIEnv
      *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4,
      jint jarg5, jint jarg6, jint jarg7)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_JavaArrayInUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1729,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1734,1
    - Dst: GetArrayLength
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1737,1
    - Dst: SWIG_JavaThrowException
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1738,1
    - Dst: wrap_WebPEncodeLosslessBGRA
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1746,1
    - Dst: SWIG_JavaArrayOutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1747,1
    - Dst: SWIG_JavaArrayArgoutUint8
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1748,1
    - Dst: SetIntArrayRegion
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1751,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1753,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_java_wrap.c:1757,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 9
    argNames:
    - jenv
    - jcls
    - jarg1
    - jarg2
    - jarg3
    - jarg4
    - jarg5
    - jarg6
    - jarg7
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    - jint
    - jint
    - jintArray
    - jint
    - jint
    - jint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1714
    functionDepth: 4
    functionLinenumber: 1714
    functionLinenumberEnd: 1759
    functionName: Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessBGRA
    functionSourceFile: /src/libwebp/swig/libwebp_java_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_JavaArrayArgoutUint8
    - SetIntArrayRegion
    - wrap_WebPEncodeLosslessBGRA
    - SWIG_JavaArrayOutUint8
    - free
    - SWIG_JavaArrayInUint8
    - SWIG_JavaThrowException
    - GetArrayLength
    linkageType: ''
    returnType: SWIGEXPORT
    signature: SWIGEXPORT Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessBGRA(JNIEnv
      *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4,
      jint jarg5, jint jarg6, jint jarg7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: SWIGUNUSEDPARM
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIGUNUSEDPARM(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: SWIG_QUOTE_STRING
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_QUOTE_STRING(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: SWIG_EXPAND_AND_QUOTE_STRING
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_EXPAND_AND_QUOTE_STRING(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: SWIG_IsOK
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_IsOK(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: SWIG_ArgError
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_ArgError(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: SWIG_AddNewMask
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_AddNewMask(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: SWIG_DelNewMask
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_DelNewMask(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: SWIG_IsNewObj
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_IsNewObj(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 305
    functionName: SWIG_AddTmpMask
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_AddTmpMask(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 306
    functionName: SWIG_DelTmpMask
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_DelTmpMask(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    functionName: SWIG_IsTmpObj
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_IsTmpObj(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: SWIG_CastRank
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_CastRank(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:319,1
    - Dst: SWIG_CastRank
      Src: /src/libwebp/swig/libwebp_python_wrap.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 320
    functionName: SWIG_AddCast
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_IsOK
    - SWIG_CastRank
    linkageType: ''
    returnType: SWIGINTERNINLINE
    signature: SWIGINTERNINLINE SWIG_AddCast(int r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:322,1
    - Dst: SWIG_CastRank
      Src: /src/libwebp/swig/libwebp_python_wrap.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 323
    functionName: SWIG_CheckState
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_IsOK
    - SWIG_CastRank
    linkageType: ''
    returnType: SWIGINTERNINLINE
    signature: SWIGINTERNINLINE SWIG_CheckState(int r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: SWIG_AddCast
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_AddCast(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 327
    functionName: SWIG_CheckState
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_CheckState(r)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - f1
    - l1
    - f2
    - l2
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 388
    functionName: SWIG_TypeNameComp
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: "SWIGRUNTIME SWIG_TypeNameComp(const char *f1, const char *l1,\n                  const
      char *f2, const char *l2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libwebp/swig/libwebp_python_wrap.c:397,1
    - Dst: SWIG_TypeNameComp
      Src: /src/libwebp/swig/libwebp_python_wrap.c:403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - nb
    - tb
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 407
    functionName: SWIG_TypeCmp
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_TypeNameComp
    - strlen
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SWIG_TypeCmp(const char *nb, const char *tb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_TypeCmp
      Src: /src/libwebp/swig/libwebp_python_wrap.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nb
    - tb
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: SWIG_TypeEquiv
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_TypeCmp
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SWIG_TypeEquiv(const char *nb, const char *tb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libwebp/swig/libwebp_python_wrap.c:426,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 443
    functionName: 'swig_cast_info *

      SWIG_TypeCheck(const char *c, swig_type_info *ty)'
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME swig_cast_info *

      SWIG_TypeCheck(const char *c, swig_type_info *ty)'
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 470
    functionName: 'swig_cast_info *

      SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty)'
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME swig_cast_info *

      SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ty
    - ptr
    - newmemory
    argTypes:
    - swig_cast_info*
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: SWIG_TypeCast
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SWIGRUNTIMEINLINE
    signature: 'SWIGRUNTIMEINLINE *

      SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 492
    functionName: 'swig_type_info *

      SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr)'
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME swig_type_info *

      SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ty
    argTypes:
    - swig_type_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 500
    functionName: SWIG_TypeName
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SWIGRUNTIMEINLINE
    signature: 'SWIGRUNTIMEINLINE *

      SWIG_TypeName(const swig_type_info *ty)'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - swig_type_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 522
    functionName: SWIG_TypePrettyName
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SWIG_TypePrettyName(const swig_type_info *type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_TypeClientData
      Src: /src/libwebp/swig/libwebp_python_wrap.c:537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ti
    - clientdata
    argTypes:
    - swig_type_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 542
    functionName: SWIG_TypeClientData
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 1
    functionsReached:
    - SWIG_TypeClientData
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SWIG_TypeClientData(swig_type_info *ti, void *clientdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_TypeClientData
      Src: /src/libwebp/swig/libwebp_python_wrap.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ti
    - clientdata
    argTypes:
    - swig_type_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 547
    functionName: SWIG_TypeNewClientData
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_TypeClientData
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libwebp/swig/libwebp_python_wrap.c:571,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 591
    functionName: "swig_type_info *\nSWIG_MangledTypeQueryModule(swig_module_info
      *start,\n                            swig_module_info *end,\n                            const
      char *name)"
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: "SWIGRUNTIME swig_type_info *\nSWIG_MangledTypeQueryModule(swig_module_info
      *start,\n                            swig_module_info *end,\n                            const
      char *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_MangledTypeQueryModule
      Src: /src/libwebp/swig/libwebp_python_wrap.c:607,1
    - Dst: SWIG_TypeEquiv
      Src: /src/libwebp/swig/libwebp_python_wrap.c:617,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 602
    functionDepth: 3
    functionLinenumber: 602
    functionLinenumberEnd: 626
    functionName: "swig_type_info *\nSWIG_TypeQueryModule(swig_module_info *start,\n
      \                    swig_module_info *end,\n                     const char
      *name)"
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_MangledTypeQueryModule
    - SWIG_TypeEquiv
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: "SWIGRUNTIME swig_type_info *\nSWIG_TypeQueryModule(swig_module_info
      *start,\n                     swig_module_info *end,\n                     const
      char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - c
    - ptr
    - sz
    argTypes:
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 642
    functionName: SWIG_PackData
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SWIG_PackData(char *c, void *ptr, size_t sz)'
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - c
    - ptr
    - sz
    argTypes:
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 670
    functionName: SWIG_UnpackData
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SWIG_UnpackData(const char *c, void *ptr, size_t sz)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_PackData
      Src: /src/libwebp/swig/libwebp_python_wrap.c:680,1
    - Dst: strlen
      Src: /src/libwebp/swig/libwebp_python_wrap.c:681,1
    - Dst: strcpy
      Src: /src/libwebp/swig/libwebp_python_wrap.c:682,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - buff
    - ptr
    - name
    - bsz
    argTypes:
    - char*
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 684
    functionName: SWIG_PackVoidPtr
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_PackData
    - strcpy
    - strlen
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libwebp/swig/libwebp_python_wrap.c:689,1
    - Dst: SWIG_UnpackData
      Src: /src/libwebp/swig/libwebp_python_wrap.c:696,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - c
    - ptr
    - name
    argTypes:
    - char*
    - void**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 697
    functionName: SWIG_UnpackVoidPtr
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_UnpackData
    - strcmp
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libwebp/swig/libwebp_python_wrap.c:702,1
    - Dst: SWIG_PackData
      Src: /src/libwebp/swig/libwebp_python_wrap.c:705,1
    - Dst: strncpy
      Src: /src/libwebp/swig/libwebp_python_wrap.c:707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - buff
    - ptr
    - sz
    - name
    - bsz
    argTypes:
    - char*
    - void*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 712
    functionName: SWIG_PackDataName
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_PackData
    - strncpy
    - strlen
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t
      bsz)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libwebp/swig/libwebp_python_wrap.c:717,1
    - Dst: memset
      Src: /src/libwebp/swig/libwebp_python_wrap.c:718,1
    - Dst: SWIG_UnpackData
      Src: /src/libwebp/swig/libwebp_python_wrap.c:724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - c
    - ptr
    - sz
    - name
    argTypes:
    - char*
    - void*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 725
    functionName: SWIG_UnpackDataName
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_UnpackData
    - memset
    - strcmp
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 752
    functionName: PyClass_Check
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyClass_Check(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 753
    functionName: PyInt_Check
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyInt_Check(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 754
    functionName: PyInt_AsLong
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyInt_AsLong(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 755
    functionName: PyInt_FromLong
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyInt_FromLong(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 756
    functionName: PyInt_FromSize_t
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyInt_FromSize_t(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 757
    functionName: PyString_Check
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyString_Check(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 758
    functionName: PyString_FromString
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyString_FromString(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 759
    functionName: PyString_FromStringAndSize
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyString_FromStringAndSize(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 760
    functionName: PyString_Format
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyString_Format(fmt, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 761
    functionName: PyString_AsString
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyString_AsString(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 762
    functionName: PyString_Size
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyString_Size(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 763
    functionName: PyString_InternFromString
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyString_InternFromString(key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 765
    functionName: PyString_AS_STRING
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyString_AS_STRING(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 766
    functionName: _PyLong_FromSsize_t
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyLong_FromSsize_t(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 771
    functionName: Py_TYPE
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_TYPE(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8String
      Src: /src/libwebp/swig/libwebp_python_wrap.c:792,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:793,1
    - Dst: malloc
      Src: /src/libwebp/swig/libwebp_python_wrap.c:794,1
    - Dst: memcpy
      Src: /src/libwebp/swig/libwebp_python_wrap.c:795,1
    - Dst: Py_XDECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:796,1
    - Dst: PyString_AsString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 785
    functionDepth: 3
    functionLinenumber: 785
    functionLinenumberEnd: 801
    functionName: SWIG_Python_str_AsChar
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - malloc
    - memcpy
    - PyBytes_AsStringAndSize
    - PyUnicode_AsUTF8String
    - Py_XDECREF
    - PyString_AsString
    linkageType: ''
    returnType: SWIGINTERN
    signature: 'SWIGINTERN *

      SWIG_Python_str_AsChar(PyObject *str)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 805
    functionName: SWIG_Python_str_DelForPy3
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_Python_str_DelForPy3(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:814,1
    - Dst: PyString_FromString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 818
    functionName: SWIG_Python_str_FromChar
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyString_FromString
    - PyUnicode_FromString
    linkageType: ''
    returnType: SWIGINTERN
    signature: 'SWIGINTERN *

      SWIG_Python_str_FromChar(const char *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libwebp/swig/libwebp_python_wrap.c:841,1
    - Dst: vsnprintf
      Src: /src/libwebp/swig/libwebp_python_wrap.c:842,1
    - Dst: va_end
      Src: /src/libwebp/swig/libwebp_python_wrap.c:843,1
    - Dst: PyString_FromString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 845
    functionName: PyString_FromFormat
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyString_FromString
    - va_start
    - vsnprintf
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyString_FromFormat(const char *fmt, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - obj
    - ','
    - s
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 873
    functionName: PyString_AsStringAndSize
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyString_AsStringAndSize(obj, s, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ok
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 891
    functionName: PyBool_FromLong
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyBool_FromLong(long ok)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:913,1
    - Dst: PyInt_AsLong
      Src: /src/libwebp/swig/libwebp_python_wrap.c:915,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:916,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - x
    - SWIGUNUSEDPARM(exc)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 919
    functionName: PyNumber_AsSsize_t
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyNumber_Int
    - PyInt_AsLong
    - Py_DECREF
    linkageType: ''
    returnType: long
    signature: long PyNumber_AsSsize_t (PyObject *x, void *SWIGUNUSEDPARM(exc))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 924
    functionName: PyInt_FromSize_t
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyInt_FromSize_t(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 935
    functionName: Py_VISIT
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_VISIT(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 961
    functionName: PyDescr_TYPE
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDescr_TYPE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 962
    functionName: PyDescr_NAME
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDescr_NAME(x)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 1010
    functionName: SWIG_Python_ErrorType
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SWIG_Python_ErrorType(int code)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1020,1
    - Dst: PyErr_Fetch
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1020,1
    - Dst: PyObject_Str
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1023,1
    - Dst: PyErr_Clear
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1024,1
    - Dst: Py_XINCREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1025,1
    - Dst: PyErr_Format
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1027,1
    - Dst: SWIG_Python_str_AsChar
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1027,1
    - Dst: SWIG_Python_str_DelForPy3
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1028,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1029,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1030,1
    - Dst: PyErr_SetString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1032,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - mesg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1013
    functionDepth: 4
    functionLinenumber: 1013
    functionLinenumberEnd: 1034
    functionName: SWIG_Python_AddErrorMsg
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyErr_Fetch
    - PyErr_Occurred
    - SWIG_Python_str_AsChar
    - PyErr_SetString
    - PyErr_Clear
    - Py_DECREF
    - PyObject_Str
    - SWIG_Python_str_DelForPy3
    - Py_XINCREF
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SWIG_Python_AddErrorMsg(const char* mesg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Release
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1056,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1056
    functionName: SWIG_Python_Thread_Block::end
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyGILState_Release
    linkageType: ''
    returnType: void
    signature: void end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1057
    functionName: SWIG_Python_Thread_Block::SWIG_Python_Thread_Block
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    linkageType: ''
    returnType: void
    signature: void SWIG_Python_Thread_Block()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1058
    functionName: ~SWIG_Python_Thread_Block()
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - end
    linkageType: ''
    returnType: void
    signature: void ~SWIG_Python_Thread_Block()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_RestoreThread
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1064
    functionName: SWIG_Python_Thread_Allow::end
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyEval_RestoreThread
    linkageType: ''
    returnType: void
    signature: void end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_SaveThread
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1065
    functionName: SWIG_Python_Thread_Allow::SWIG_Python_Thread_Allow
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyEval_SaveThread
    linkageType: ''
    returnType: void
    signature: void SWIG_Python_Thread_Allow()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1066
    functionDepth: 0
    functionLinenumber: 1066
    functionLinenumberEnd: 1066
    functionName: ~SWIG_Python_Thread_Allow()
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - end
    linkageType: ''
    returnType: void
    signature: void ~SWIG_Python_Thread_Allow()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyInstanceMethod_New
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - SWIGUNUSEDPARM(self)
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1135
    functionDepth: 0
    functionLinenumber: 1135
    functionLinenumberEnd: 1138
    functionName: SWIG_PyInstanceMethod_New
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyInstanceMethod_New
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME * SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self),
      PyObject *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - SWIGUNUSEDPARM(self)
    - SWIGUNUSEDPARM(func)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1143
    functionName: SWIG_PyInstanceMethod_New
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME * SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self),
      PyObject *SWIGUNUSEDPARM(func))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - obj
    - ','
    - pptr
    - ','
    - type
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1164
    functionName: SWIG_Python_ConvertPtr
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_Python_ConvertPtr(obj, pptr, type, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - obj
    - ','
    - pptr
    - ','
    - type
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1165
    functionName: SWIG_ConvertPtr
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_ConvertPtr(obj, pptr, type, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - obj
    - ','
    - pptr
    - ','
    - type
    - ','
    - flags
    - ','
    - own
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1165
    functionDepth: 0
    functionLinenumber: 1165
    functionLinenumberEnd: 1166
    functionName: SWIG_ConvertPtrAndOwn
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1168
    functionDepth: 0
    functionLinenumber: 1168
    functionLinenumberEnd: 1169
    functionName: SWIG_NewPointerObj
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_NewPointerObj(ptr, type, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1170
    functionDepth: 0
    functionLinenumber: 1170
    functionLinenumberEnd: 1171
    functionName: SWIG_NewPointerObj
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_NewPointerObj(ptr, type, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1174
    functionName: SWIG_InternalNewPointerObj
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_InternalNewPointerObj(ptr, type, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ty
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1175
    functionDepth: 0
    functionLinenumber: 1175
    functionLinenumberEnd: 1176
    functionName: SWIG_CheckImplicit
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_CheckImplicit(ty)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1177
    functionName: SWIG_AcquirePtr
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_AcquirePtr(ptr, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - obj
    - ','
    - ptr
    - ','
    - sz
    - ','
    - ty
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1180
    functionDepth: 0
    functionLinenumber: 1180
    functionLinenumberEnd: 1181
    functionName: SWIG_ConvertPacked
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_ConvertPacked(obj, ptr, sz, ty)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - sz
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1181
    functionDepth: 0
    functionLinenumber: 1181
    functionLinenumberEnd: 1182
    functionName: SWIG_NewPackedObj
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_NewPackedObj(ptr, sz, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - obj
    - ','
    - pptr
    - ','
    - type
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1184
    functionDepth: 0
    functionLinenumber: 1184
    functionLinenumberEnd: 1185
    functionName: SWIG_ConvertInstance
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_ConvertInstance(obj, pptr, type, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1186
    functionName: SWIG_NewInstanceObj
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_NewInstanceObj(ptr, type, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - obj
    - ','
    - pptr
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1188
    functionDepth: 0
    functionLinenumber: 1188
    functionLinenumberEnd: 1189
    functionName: SWIG_ConvertFunctionPtr
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_ConvertFunctionPtr(obj, pptr, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1190
    functionName: SWIG_NewFunctionPtrObj
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_NewFunctionPtrObj(ptr, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - obj
    - ','
    - ptr
    - ','
    - sz
    - ','
    - ty
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1192
    functionDepth: 0
    functionLinenumber: 1192
    functionLinenumberEnd: 1193
    functionName: SWIG_ConvertMember
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_ConvertMember(obj, ptr, sz, ty)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - sz
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1194
    functionName: SWIG_NewMemberObj
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_NewMemberObj(ptr, sz, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - clientdata
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1198
    functionDepth: 0
    functionLinenumber: 1198
    functionLinenumberEnd: 1199
    functionName: SWIG_GetModule
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_GetModule(clientdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - clientdata
    - ','
    - pointer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1200
    functionName: SWIG_SetModule
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_SetModule(clientdata, pointer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1200
    functionDepth: 0
    functionLinenumber: 1200
    functionLinenumberEnd: 1201
    functionName: SWIG_NewClientData
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_NewClientData(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1204
    functionDepth: 0
    functionLinenumber: 1204
    functionLinenumberEnd: 1205
    functionName: SWIG_ErrorType
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_ErrorType(code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - code
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1205
    functionDepth: 0
    functionLinenumber: 1205
    functionLinenumberEnd: 1206
    functionName: SWIG_Error
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_Error(code, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetObject
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1216,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - errtype
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1213
    functionDepth: 0
    functionLinenumber: 1213
    functionLinenumberEnd: 1219
    functionName: SWIG_Python_SetErrorObj
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - Py_DECREF
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - errtype
    - msg
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1226
    functionName: SWIG_Python_SetErrorMsg
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - obj
    - ','
    - type
    - ','
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1228
    functionDepth: 0
    functionLinenumber: 1228
    functionLinenumberEnd: 1229
    functionName: SWIG_Python_Raise
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_Python_Raise(obj, type, desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyString_InternFromString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1236,1
    - Dst: PyList_Append
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1237,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - seq
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1234
    functionDepth: 1
    functionLinenumber: 1234
    functionLinenumberEnd: 1239
    functionName: SwigPyBuiltin_AddPublicSymbol
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - PyString_InternFromString
    - Py_DECREF
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN SwigPyBuiltin_AddPublicSymbol(PyObject *seq, const char
      *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_SetItemString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1244,1
    - Dst: PyDict_SetItemString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1246,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1248,1
    - Dst: SwigPyBuiltin_AddPublicSymbol
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - d
    - public_interface
    - name
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1241
    functionDepth: 2
    functionLinenumber: 1241
    functionLinenumberEnd: 1251
    functionName: SWIG_Python_SetConstant
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SwigPyBuiltin_AddPublicSymbol
    - Py_DECREF
    - PyDict_SetItemString
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN SWIG_Python_SetConstant(PyObject *d, PyObject *public_interface,
      const char *name, PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_SetItemString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1258,1
    - Dst: PyDict_SetItemString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1260,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - d
    - name
    - obj
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1263
    functionName: SWIG_Python_SetConstant
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_SetItemString
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject
      *obj)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1275,1
    - Dst: PyList_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1278,1
    - Dst: PyList_New
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1280,1
    - Dst: PyList_SetItem
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1281,1
    - Dst: PyList_Append
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1283,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1284,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1293,1
    - Dst: PyTuple_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1296,1
    - Dst: PyTuple_New
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1298,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1299,1
    - Dst: PyTuple_New
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1301,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1302,1
    - Dst: PySequence_Concat
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1304,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1305,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1306,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - result
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1269
    functionDepth: 0
    functionLinenumber: 1269
    functionLinenumberEnd: 1310
    functionName: SWIG_Python_AppendOutput
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PySequence_Concat
    - PyList_Append
    - PyList_New
    - Py_DECREF
    - PyList_SetItem
    - PyList_Check
    - PyTuple_Check
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: SWIGINTERN
    signature: 'SWIGINTERN *

      SWIG_Python_AppendOutput(PyObject* result, PyObject* obj)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1321,1
    - Dst: PyTuple_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1326,1
    - Dst: PyErr_SetString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1335,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1338,1
    - Dst: PyErr_Format
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1340,1
    - Dst: PyErr_Format
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1344,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1350,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 5
    argNames:
    - args
    - name
    - min
    - max
    - objs
    argTypes:
    - PyObject*
    - char*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1314
    functionDepth: 0
    functionLinenumber: 1314
    functionLinenumberEnd: 1358
    functionName: SWIG_Python_UnpackTuple
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyTuple_GET_ITEM
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - PyTuple_Check
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN SWIG_Python_UnpackTuple(PyObject *args, const char *name,
      Py_ssize_t min, Py_ssize_t max, PyObject **objs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - functor
    - ','
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1362
    functionDepth: 0
    functionLinenumber: 1362
    functionLinenumberEnd: 1363
    functionName: SWIG_Python_CallFunctor
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_Python_CallFunctor(functor, obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - functor
    - ','
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1364
    functionDepth: 0
    functionLinenumber: 1364
    functionLinenumberEnd: 1365
    functionName: SWIG_Python_CallFunctor
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_Python_CallFunctor(functor, obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1372
    functionDepth: 0
    functionLinenumber: 1372
    functionLinenumberEnd: 1373
    functionName: SWIG_STATIC_POINTER
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_STATIC_POINTER(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1374
    functionDepth: 0
    functionLinenumber: 1374
    functionLinenumberEnd: 1375
    functionName: SWIG_STATIC_POINTER
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_STATIC_POINTER(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1411,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1408
    functionDepth: 0
    functionLinenumber: 1408
    functionLinenumberEnd: 1414
    functionName: _SWIG_Py_None
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    linkageType: ''
    returnType: SWIGRUNTIMEINLINE
    signature: 'SWIGRUNTIMEINLINE *

      _SWIG_Py_None(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _SWIG_Py_None
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1415
    functionDepth: 1
    functionLinenumber: 1415
    functionLinenumberEnd: 1420
    functionName: SWIG_Py_None
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 1
    functionsReached:
    - _SWIG_Py_None
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SWIG_Py_None(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1425
    functionDepth: 0
    functionLinenumber: 1425
    functionLinenumberEnd: 1431
    functionName: SWIG_Py_Void
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: SWIGRUNTIMEINLINE
    signature: 'SWIGRUNTIMEINLINE *

      SWIG_Py_Void(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ty
    argTypes:
    - swig_type_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1450
    functionName: SWIG_Python_CheckImplicit
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SWIGRUNTIMEINLINE
    signature: SWIGRUNTIMEINLINE SWIG_Python_CheckImplicit(swig_type_info *ty)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - swig_type_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1452
    functionDepth: 0
    functionLinenumber: 1452
    functionLinenumberEnd: 1457
    functionName: SWIG_Python_ExceptionType
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SWIGRUNTIMEINLINE
    signature: 'SWIGRUNTIMEINLINE *

      SWIG_Python_ExceptionType(swig_type_info *desc)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1466,1
    - Dst: Py_INCREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1469,1
    - Dst: PyClass_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1471,1
    - Dst: Py_INCREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1474,1
    - Dst: PyObject_GetAttrString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1479,1
    - Dst: Py_INCREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1482,1
    - Dst: PyTuple_New
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1483,1
    - Dst: PyTuple_SetItem
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1484,1
    - Dst: Py_INCREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1488,1
    - Dst: PyObject_GetAttrString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1491,1
    - Dst: PyErr_Occurred
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1492,1
    - Dst: PyErr_Clear
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1493,1
    - Dst: Py_INCREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1498,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1499,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1460
    functionDepth: 3
    functionLinenumber: 1460
    functionLinenumberEnd: 1512
    functionName: 'SwigPyClientData *

      SwigPyClientData_New(PyObject* obj)'
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - malloc
    - PyObject_GetAttrString
    - PyErr_Occurred
    - PyCFunction_GET_FLAGS
    - PyErr_Clear
    - PyClass_Check
    - PyTuple_SetItem
    - Py_INCREF
    - PyTuple_New
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME SwigPyClientData *

      SwigPyClientData_New(PyObject* obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1516,1
    - Dst: Py_XDECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1517,1
    - Dst: Py_XDECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - SwigPyClientData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1519
    functionName: SwigPyClientData_Del
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SwigPyClientData_Del(SwigPyClientData *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1543,1
    - Dst: Py_INCREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - SWIGUNUSEDPARM(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1537
    functionDepth: 0
    functionLinenumber: 1537
    functionLinenumberEnd: 1547
    functionName: SwigPyObject_get___dict__
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - Py_INCREF
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SwigPyObject_get___dict__(PyObject *v, PyObject *SWIGUNUSEDPARM(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - SwigPyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1551
    functionDepth: 0
    functionLinenumber: 1551
    functionLinenumberEnd: 1555
    functionName: SwigPyObject_long
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SwigPyObject_long(SwigPyObject *v)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1561,1
    - Dst: PyTuple_SetItem
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1563,1
    - Dst: SwigPyObject_long
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1563,1
    - Dst: SWIG_Python_str_FromChar
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1564,1
    - Dst: PyUnicode_Format
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1567,1
    - Dst: PyString_Format
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1569,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1571,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - fmt
    - v
    argTypes:
    - char*
    - SwigPyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1557
    functionDepth: 2
    functionLinenumber: 1557
    functionLinenumberEnd: 1577
    functionName: SwigPyObject_format
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Format
    - PyString_Format
    - Py_DECREF
    - PyTuple_SetItem
    - SWIG_Python_str_FromChar
    - SwigPyObject_long
    - PyTuple_New
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SwigPyObject_format(const char* fmt, SwigPyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SwigPyObject_format
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - SwigPyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1579
    functionDepth: 3
    functionLinenumber: 1579
    functionLinenumberEnd: 1583
    functionName: SwigPyObject_oct
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SwigPyObject_format
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SwigPyObject_oct(SwigPyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SwigPyObject_format
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - SwigPyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1585
    functionDepth: 3
    functionLinenumber: 1585
    functionLinenumberEnd: 1589
    functionName: SwigPyObject_hex
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SwigPyObject_format
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SwigPyObject_hex(SwigPyObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_TypePrettyName
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1598,1
    - Dst: SWIG_Python_str_FromFormat
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1599,1
    - Dst: SwigPyObject_repr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1602,1
    - Dst: SwigPyObject_repr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1604,1
    - Dst: PyUnicode_Concat
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1607,1
    - Dst: Py_DecRef
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1608,1
    - Dst: Py_DecRef
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1609,1
    - Dst: PyString_ConcatAndDel
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - v
    - args
    argTypes:
    - SwigPyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1595
    functionDepth: 1
    functionLinenumber: 1595
    functionLinenumberEnd: 1616
    functionName: SwigPyObject_repr
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 1
    functionsReached:
    - Py_DecRef
    - PyString_ConcatAndDel
    - SwigPyObject_repr
    - SWIG_TypePrettyName
    - PyUnicode_Concat
    - SWIG_Python_str_FromFormat
    linkageType: ''
    returnType: void
    signature: void SwigPyObject_repr(SwigPyObject *v, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SwigPyObject_repr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - SWIGUNUSEDPARM(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1620
    functionDepth: 2
    functionLinenumber: 1620
    functionLinenumberEnd: 1624
    functionName: SwigPyObject_repr2
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SwigPyObject_repr
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SwigPyObject_repr2(PyObject *v, PyObject *SWIGUNUSEDPARM(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - SwigPyObject*
    - SwigPyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1626
    functionDepth: 0
    functionLinenumber: 1626
    functionLinenumberEnd: 1632
    functionName: SwigPyObject_compare
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SwigPyObject_compare(SwigPyObject *v, SwigPyObject *w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1640,1
    - Dst: PyBool_FromLong
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1643,1
    - Dst: SwigPyObject_compare
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - SwigPyObject*
    - SwigPyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1635
    functionDepth: 1
    functionLinenumber: 1635
    functionLinenumberEnd: 1645
    functionName: SwigPyObject_richcompare
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - Py_INCREF
    - SwigPyObject_compare
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SwigPyObject_richcompare(SwigPyObject *v, SwigPyObject *w, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1655,1
    - Dst: assert
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1657,1
    - Dst: assert
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (SwigPyObject_stype)
      pos:
        line_end: 1654
        line_start: 1654
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
    - condition: (cd->pytype)
      pos:
        line_end: 1657
        line_start: 1657
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
    - condition: (cd)
      pos:
        line_end: 1656
        line_start: 1656
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
    constantsTouched: []
    func_position:
      end: 1660
      start: 1652
    functionDepth: 0
    functionLinenumber: 1652
    functionLinenumberEnd: 1660
    functionName: 'PyTypeObject*

      SwigPyObject_type(void)'
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME PyTypeObject*

      SwigPyObject_type(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SwigPyObject_TypeOnce
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1662
    functionDepth: 0
    functionLinenumber: 1662
    functionLinenumberEnd: 1666
    functionName: 'PyTypeObject*

      SwigPyObject_type(void)'
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SwigPyObject_TypeOnce
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME PyTypeObject*

      SwigPyObject_type(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SwigPyObject_type
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1672,1
    - Dst: PyType_IsSubtype
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1673,1
    - Dst: strcmp
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1675,1
    - Dst: Py_TYPE
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1677,1
    - Dst: SwigPyObject_type
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1677,1
    - Dst: strcmp
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1678,1
    - Dst: Py_TYPE
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1678,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1669
    functionDepth: 1
    functionLinenumber: 1669
    functionLinenumberEnd: 1680
    functionName: SwigPyObject_Check
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SwigPyObject_type
    - PyType_IsSubtype
    - Py_TYPE
    - strcmp
    linkageType: ''
    returnType: SWIGRUNTIMEINLINE
    signature: SWIGRUNTIMEINLINE SwigPyObject_Check(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1706,1
    - Dst: SwigPyObject_New
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1710,1
    - Dst: SWIG_Python_CallFunctor
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1711,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1712,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1714,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1715,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1719,1
    - Dst: PyErr_Restore
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1721,1
    - Dst: Py_XDECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1723,1
    - Dst: SWIG_TypePrettyName
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1727,1
    - Dst: printf
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1728,1
    - Dst: Py_XDECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1732,1
    - Dst: PyObject_DEL
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1733,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1685
    functionDepth: 1
    functionLinenumber: 1685
    functionLinenumberEnd: 1734
    functionName: SwigPyObject_dealloc
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyCFunction_GET_SELF
    - printf
    - PyErr_Fetch
    - PyObject_DEL
    - PyErr_WriteUnraisable
    - Py_DECREF
    - SwigPyObject_New
    - Py_XDECREF
    - PyErr_Restore
    - PyCFunction_GET_FUNCTION
    - SWIG_TypePrettyName
    - SWIG_Python_CallFunctor
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SwigPyObject_dealloc(PyObject *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1742,1
    - Dst: SwigPyObject_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1745,1
    - Dst: PyErr_SetString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1746,1
    - Dst: Py_INCREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1750,1
    - Dst: SWIG_Py_Void
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1751,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - v
    - next
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1736
    functionDepth: 2
    functionLinenumber: 1736
    functionLinenumberEnd: 1752
    functionName: SwigPyObject_append
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - SwigPyObject_Check
    - PyArg_ParseTuple
    - SWIG_Py_Void
    - Py_INCREF
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SwigPyObject_append(PyObject* v, PyObject* next)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1759,1
    - Dst: SWIG_Py_Void
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - v
    - SWIGUNUSEDPARM(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1754
    functionDepth: 1
    functionLinenumber: 1754
    functionLinenumberEnd: 1764
    functionName: SwigPyObject_next
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_Py_Void
    - Py_INCREF
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SwigPyObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_Py_Void
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - SWIGUNUSEDPARM(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1770
    functionDepth: 1
    functionLinenumber: 1770
    functionLinenumberEnd: 1776
    functionName: SwigPyObject_disown
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_Py_Void
    linkageType: ''
    returnType: void
    signature: void SwigPyObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_Py_Void
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - SWIGUNUSEDPARM(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1782
    functionDepth: 1
    functionLinenumber: 1782
    functionLinenumberEnd: 1788
    functionName: SwigPyObject_acquire
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_Py_Void
    linkageType: ''
    returnType: void
    signature: void SwigPyObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SwigPyObject_disown
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - SWIGUNUSEDPARM(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1791
    functionDepth: 2
    functionLinenumber: 1791
    functionLinenumberEnd: 1795
    functionName: SwigPyObject_disown2
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SwigPyObject_disown
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SwigPyObject_disown2(PyObject* v, PyObject *SWIGUNUSEDPARM(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SwigPyObject_acquire
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - SWIGUNUSEDPARM(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1797
    functionDepth: 2
    functionLinenumber: 1797
    functionLinenumberEnd: 1801
    functionName: SwigPyObject_acquire2
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SwigPyObject_acquire
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SwigPyObject_acquire2(PyObject* v, PyObject *SWIGUNUSEDPARM(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_FindMethod
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sobj
    - name
    argTypes:
    - SwigPyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1866
    functionDepth: 0
    functionLinenumber: 1866
    functionLinenumberEnd: 1870
    functionName: SwigPyObject_getattr
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - Py_FindMethod
    linkageType: ''
    returnType: SWIGINTERN
    signature: 'SWIGINTERN *

      SwigPyObject_getattr(SwigPyObject *sobj,char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1930,1
    - Dst: PyObject_HEAD_INIT
      Src: /src/libwebp/swig/libwebp_python_wrap.c:1932,1
    - Dst: PyType_Ready
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2013,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 1873
    functionDepth: 0
    functionLinenumber: 1873
    functionLinenumberEnd: 2018
    functionName: 'PyTypeObject*

      SwigPyObject_TypeOnce(void)'
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyObject_HEAD_INIT
    - PyType_Ready
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME PyTypeObject*

      SwigPyObject_TypeOnce(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_NEW
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2023,1
    - Dst: SwigPyObject_type
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ptr
    - ty
    - own
    argTypes:
    - void*
    - swig_type_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2020
    functionDepth: 0
    functionLinenumber: 2020
    functionLinenumberEnd: 2031
    functionName: SwigPyObject_New
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 1
    functionsReached:
    - SwigPyObject_type
    - PyObject_NEW
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SwigPyObject_New(void *ptr, swig_type_info *ty, int own)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2048,1
    - Dst: SWIG_PackDataName
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2049,1
    - Dst: fputs
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2050,1
    - Dst: fputs
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2051,1
    - Dst: fputs
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2053,1
    - Dst: fputs
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - v
    - fp
    - SWIGUNUSEDPARM
    argTypes:
    - SwigPyPacked*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2056
      start: 2044
    functionDepth: 2
    functionLinenumber: 2044
    functionLinenumberEnd: 2056
    functionName: SwigPyPacked_print
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_PackDataName
    - fputs
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SwigPyPacked_print(SwigPyPacked *v, FILE *fp, int SWIGUNUSEDPARM(flags))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_PackDataName
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2062,1
    - Dst: SWIG_Python_str_FromFormat
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2063,1
    - Dst: SWIG_Python_str_FromFormat
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2065,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - SwigPyPacked*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2067
      start: 2058
    functionDepth: 2
    functionLinenumber: 2058
    functionLinenumberEnd: 2067
    functionName: SwigPyPacked_repr
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_PackDataName
    - SWIG_Python_str_FromFormat
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SwigPyPacked_repr(SwigPyPacked *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_PackDataName
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2073,1
    - Dst: SWIG_Python_str_FromFormat
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2074,1
    - Dst: SWIG_Python_str_FromChar
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - SwigPyPacked*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2069
    functionDepth: 2
    functionLinenumber: 2069
    functionLinenumberEnd: 2078
    functionName: SwigPyPacked_str
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_PackDataName
    - SWIG_Python_str_FromFormat
    - SWIG_Python_str_FromChar
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SwigPyPacked_str(SwigPyPacked *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - SwigPyPacked*
    - SwigPyPacked*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 2080
    functionDepth: 0
    functionLinenumber: 2080
    functionLinenumberEnd: 2087
    functionName: SwigPyPacked_compare
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SwigPyPacked_compare(SwigPyPacked *v, SwigPyPacked *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SwigPyPacked_TypeOnce
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2091
    functionDepth: 0
    functionLinenumber: 2091
    functionLinenumberEnd: 2095
    functionName: 'PyTypeObject*

      SwigPyPacked_type(void)'
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SwigPyPacked_TypeOnce
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME PyTypeObject*

      SwigPyPacked_type(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SwigPyPacked_TypeOnce
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2099,1
    - Dst: strcmp
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2097
    functionDepth: 0
    functionLinenumber: 2097
    functionLinenumberEnd: 2101
    functionName: SwigPyPacked_Check
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SwigPyPacked_TypeOnce
    - strcmp
    linkageType: ''
    returnType: SWIGRUNTIMEINLINE
    signature: SWIGRUNTIMEINLINE SwigPyPacked_Check(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SwigPyPacked_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2106,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2108,1
    - Dst: PyObject_DEL
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2111
      start: 2103
    functionDepth: 1
    functionLinenumber: 2103
    functionLinenumberEnd: 2111
    functionName: SwigPyPacked_dealloc
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyObject_DEL
    - free
    - SwigPyPacked_Check
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SwigPyPacked_dealloc(PyObject *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2121,1
    - Dst: PyObject_HEAD_INIT
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2123,1
    - Dst: PyType_Ready
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2205
      start: 2113
    functionDepth: 0
    functionLinenumber: 2113
    functionLinenumberEnd: 2205
    functionName: 'PyTypeObject*

      SwigPyPacked_TypeOnce(void)'
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyObject_HEAD_INIT
    - PyType_Ready
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME PyTypeObject*

      SwigPyPacked_TypeOnce(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_NEW
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2210,1
    - Dst: SwigPyPacked_type
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2210,1
    - Dst: malloc
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2212,1
    - Dst: memcpy
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2214,1
    - Dst: PyObject_DEL
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ptr
    - size
    - ty
    argTypes:
    - void*
    - size_t
    - swig_type_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2207
    functionDepth: 3
    functionLinenumber: 2207
    functionLinenumberEnd: 2224
    functionName: SwigPyPacked_New
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - malloc
    - PyObject_DEL
    - memcpy
    - SwigPyPacked_type
    - PyObject_NEW
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SwigPyPacked_New(void *ptr, size_t size, swig_type_info *ty)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SwigPyPacked_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2229,1
    - Dst: memcpy
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2237
      start: 2226
    functionDepth: 1
    functionLinenumber: 2226
    functionLinenumberEnd: 2237
    functionName: 'swig_type_info *

      SwigPyPacked_UnpackData(PyObject *obj, void *ptr, size_t size)'
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SwigPyPacked_Check
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME swig_type_info *

      SwigPyPacked_UnpackData(PyObject *obj, void *ptr, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_Python_str_FromChar
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2243
    functionDepth: 2
    functionLinenumber: 2243
    functionLinenumberEnd: 2247
    functionName: _SWIG_This
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_Python_str_FromChar
    linkageType: ''
    returnType: SWIGRUNTIMEINLINE
    signature: 'SWIGRUNTIMEINLINE *

      _SWIG_This(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _SWIG_This
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2257
      start: 2251
    functionDepth: 3
    functionLinenumber: 2251
    functionLinenumberEnd: 2257
    functionName: SWIG_This
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 1
    functionsReached:
    - _SWIG_This
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SWIG_This(void)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SwigPyObject_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2271,1
    - Dst: PyWeakref_CheckProxy
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2277,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2278,1
    - Dst: SwigPyObject_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2279,1
    - Dst: PyInstance_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2289,1
    - Dst: _PyInstance_Lookup
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2290,1
    - Dst: SWIG_This
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2290,1
    - Dst: _PyObject_GetDictPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2292,1
    - Dst: PyDict_GetItem
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2295,1
    - Dst: SWIG_This
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2295,1
    - Dst: PyWeakref_CheckProxy
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2298,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2299,1
    - Dst: SWIG_Python_GetSwigThis
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2300,1
    - Dst: PyObject_GetAttr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2303,1
    - Dst: SWIG_This
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2303,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2305,1
    - Dst: PyErr_Occurred
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2307,1
    - Dst: PyErr_Clear
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2307,1
    - Dst: PyObject_GetAttr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2313,1
    - Dst: SWIG_This
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2313,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2315,1
    - Dst: PyErr_Occurred
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2317,1
    - Dst: PyErr_Clear
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2317,1
    - Dst: SwigPyObject_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2321,1
    - Dst: SWIG_Python_GetSwigThis
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2324,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2328
      start: 2266
    functionDepth: 4
    functionLinenumber: 2266
    functionLinenumberEnd: 2328
    functionName: 'SwigPyObject *

      SWIG_Python_GetSwigThis(PyObject *pyobj)'
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttr
    - PyErr_Occurred
    - PyDict_GetItem
    - SWIG_Python_GetSwigThis
    - PyWeakref_CheckProxy
    - _PyObject_GetDictPtr
    - SwigPyObject_Check
    - Py_DECREF
    - PyErr_Clear
    - _PyInstance_Lookup
    - PyWeakref_GET_OBJECT
    - PyInstance_Check
    - SWIG_This
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME SwigPyObject *

      SWIG_Python_GetSwigThis(PyObject *pyobj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_Python_GetSwigThis
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - obj
    - own
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2332
    functionDepth: 0
    functionLinenumber: 2332
    functionLinenumberEnd: 2343
    functionName: SWIG_Python_AcquirePtr
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_Python_GetSwigThis
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SWIG_Python_AcquirePtr(PyObject *obj, int own)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_Python_GetSwigThis
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2363,1
    - Dst: SWIG_TypeCheck
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2375,1
    - Dst: SWIG_TypeCast
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2381,1
    - Dst: assert
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2383,1
    - Dst: SWIG_Python_CallFunctor
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2411,1
    - Dst: PyErr_Occurred
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2413,1
    - Dst: PyErr_Clear
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2414,1
    - Dst: SWIG_Python_GetSwigThis
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2418,1
    - Dst: SWIG_Python_ConvertPtrAndOwn
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2421,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2422,1
    - Dst: SWIG_AddCast
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2427,1
    - Dst: SWIG_AddNewMask
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2428,1
    - Dst: SWIG_AddCast
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2430,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2434,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2439,1
    - Dst: PyErr_Occurred
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2442,1
    - Dst: PyErr_Clear
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2443,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 85
    argCount: 5
    argNames:
    - obj
    - ptr
    - ty
    - flags
    - own
    argTypes:
    - PyObject*
    - void**
    - swig_type_info*
    - int
    - int*
    assertStmts:
    - condition: (own)
      pos:
        line_end: 2382
        line_start: 2382
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
    constantsTouched: []
    func_position:
      end: 2448
      start: 2347
    functionDepth: 2
    functionLinenumber: 2347
    functionLinenumberEnd: 2448
    functionName: SWIG_Python_ConvertPtrAndOwn
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - SWIG_AddNewMask
    - SWIG_Python_GetSwigThis
    - assert
    - SWIG_TypeCast
    - PyErr_Clear
    - Py_DECREF
    - SWIG_AddCast
    - SWIG_IsOK
    - SWIG_Python_ConvertPtrAndOwn
    - SWIG_TypeCheck
    - SWIG_Python_CallFunctor
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr,
      swig_type_info *ty, int flags, int *own)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2454,1
    - Dst: SWIG_ConvertPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2455,1
    - Dst: strstr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2461,1
    - Dst: SWIG_UnpackVoidPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2463,1
    - Dst: SWIG_TypeCheck
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2467,1
    - Dst: SWIG_TypeCast
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2470,1
    - Dst: assert
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2471,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - obj
    - ptr
    - ty
    argTypes:
    - PyObject*
    - void**
    - swig_type_info*
    assertStmts:
    - condition: (!newmemory)
      pos:
        line_end: 2470
        line_start: 2470
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
    constantsTouched: []
    func_position:
      end: 2480
      start: 2452
    functionDepth: 2
    functionLinenumber: 2452
    functionLinenumberEnd: 2480
    functionName: SWIG_Python_ConvertFunctionPtr
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - strstr
    - assert
    - SWIG_ConvertPtr
    - SWIG_TypeCast
    - SWIG_UnpackVoidPtr
    - SWIG_TypeCheck
    - PyCFunction_Check
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr,
      swig_type_info *ty)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SwigPyPacked_UnpackData
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2486,1
    - Dst: SWIG_TypeCheck
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2491,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - obj
    - ptr
    - sz
    - ty
    argTypes:
    - PyObject*
    - void*
    - size_t
    - swig_type_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2496
      start: 2484
    functionDepth: 0
    functionLinenumber: 2484
    functionLinenumberEnd: 2496
    functionName: SWIG_Python_ConvertPacked
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_TypeCheck
    - SwigPyPacked_UnpackData
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t
      sz, swig_type_info *ty)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Call
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2514,1
    - Dst: _PyObject_GetDictPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2517,1
    - Dst: PyDict_New
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2521,1
    - Dst: PyDict_SetItem
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2523,1
    - Dst: SWIG_This
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2523,1
    - Dst: SWIG_This
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2527,1
    - Dst: PyObject_SetAttr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2528,1
    - Dst: tp_new
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2533,1
    - Dst: PyObject_SetAttr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2535,1
    - Dst: SWIG_This
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2535,1
    - Dst: Py_TYPE
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2536,1
    - Dst: PyDict_New
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2539,1
    - Dst: PyDict_SetItem
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2541,1
    - Dst: SWIG_This
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2541,1
    - Dst: PyInstance_NewRaw
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2542,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2543,1
    - Dst: PyDict_New
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2551,1
    - Dst: PyDict_SetItem
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2553,1
    - Dst: SWIG_This
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2553,1
    - Dst: PyInstance_NewRaw
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2554,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2555,1
    - Dst: PyObject_NEW
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2559,1
    - Dst: Py_INCREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2564,1
    - Dst: PyDict_New
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2565,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2567,1
    - Dst: PyObject_GC_Init
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2574,1
    - Dst: PyDict_SetItem
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2576,1
    - Dst: SWIG_This
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2576,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 2
    argNames:
    - data
    - swig_this
    argTypes:
    - SwigPyClientData*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2580
      start: 2507
    functionDepth: 4
    functionLinenumber: 2507
    functionLinenumberEnd: 2580
    functionName: SWIG_Python_NewShadowInstance
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyDict_SetItem
    - tp_new
    - PyDict_New
    - PyObject_NEW
    - PyObject_GC_Init
    - _PyObject_GetDictPtr
    - Py_DECREF
    - PyObject_Call
    - PyObject_SetAttr
    - PyInstance_NewRaw
    - Py_INCREF
    - SWIG_This
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SWIG_Python_NewShadowInstance(SwigPyClientData *data, PyObject *swig_this)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GetDictPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2587,1
    - Dst: PyDict_New
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2591,1
    - Dst: PyDict_SetItem
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2594,1
    - Dst: SWIG_This
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2594,1
    - Dst: PyObject_GetAttrString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2598,1
    - Dst: PyDict_SetItem
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2599,1
    - Dst: SWIG_This
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2599,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - inst
    - swig_this
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2601
      start: 2582
    functionDepth: 4
    functionLinenumber: 2582
    functionLinenumberEnd: 2601
    functionName: SWIG_Python_SetSwigThis
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttrString
    - PyDict_SetItem
    - PyDict_New
    - _PyObject_GetDictPtr
    - Py_DECREF
    - SWIG_This
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_Python_UnpackTuple
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2607,1
    - Dst: SWIG_Python_GetSwigThis
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2610,1
    - Dst: SwigPyObject_append
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2612,1
    - Dst: SWIG_Python_SetSwigThis
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2614,1
    - Dst: SWIG_Py_Void
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - args
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2618
      start: 2604
    functionDepth: 5
    functionLinenumber: 2604
    functionLinenumberEnd: 2618
    functionName: SWIG_Python_InitShadowInstance
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_Python_GetSwigThis
    - SwigPyObject_append
    - SWIG_Python_UnpackTuple
    - SWIG_Python_SetSwigThis
    - SWIG_Py_Void
    linkageType: ''
    returnType: SWIGINTERN
    signature: 'SWIGINTERN *

      SWIG_Python_InitShadowInstance(PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_Py_Void
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2629,1
    - Dst: SwigPyClientData*::pytype::tp_alloc
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2638,1
    - Dst: PyObject_New
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2648,1
    - Dst: SWIG_Py_Void
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2660,1
    - Dst: assert
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2663,1
    - Dst: SwigPyObject_New
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2665,1
    - Dst: SWIG_Python_NewShadowInstance
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2667,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2668,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - self
    - ptr
    - type
    - flags
    argTypes:
    - PyObject*
    - void*
    - swig_type_info*
    - int
    assertStmts:
    - condition: (!(flags & SWIG_BUILTIN_TP_INIT))
      pos:
        line_end: 2662
        line_start: 2662
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
    constantsTouched: []
    func_position:
      end: 2672
      start: 2622
    functionDepth: 5
    functionLinenumber: 2622
    functionLinenumberEnd: 2672
    functionName: SWIG_Python_NewPointerObj
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_DECREF
    - SwigPyObject_New
    - SwigPyClientData*::pytype::tp_alloc
    - SWIG_Py_Void
    - PyObject_New
    - SWIG_Python_NewShadowInstance
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SWIG_Python_NewPointerObj(PyObject *self, void *ptr, swig_type_info *type, int
      flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SwigPyPacked_New
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2678,1
    - Dst: SWIG_Py_Void
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - sz
    - type
    argTypes:
    - void*
    - size_t
    - swig_type_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2679
      start: 2676
    functionDepth: 4
    functionLinenumber: 2676
    functionLinenumberEnd: 2679
    functionName: SWIG_Python_NewPackedObj
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_Py_Void
    - SwigPyPacked_New
    linkageType: ''
    returnType: SWIGRUNTIMEINLINE
    signature: 'SWIGRUNTIMEINLINE *

      SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_ReturnGlobalTypeList
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2695,1
    - Dst: PyCapsule_Import
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2698,1
    - Dst: PyCObject_Import
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2700,1
    - Dst: PyErr_Occurred
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2703,1
    - Dst: PyErr_Clear
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2710
      start: 2689
    functionDepth: 0
    functionLinenumber: 2689
    functionLinenumberEnd: 2710
    functionName: 'swig_module_info *

      SWIG_Python_GetModule(void *SWIGUNUSEDPARM(clientdata))'
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyCapsule_Import
    - PyErr_Clear
    - SWIG_ReturnGlobalTypeList
    - PyCObject_Import
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME swig_module_info *

      SWIG_Python_GetModule(void *SWIGUNUSEDPARM(clientdata))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2719,1
    - Dst: PyErr_SetString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2720,1
    - Dst: PyErr_SetString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2724,1
    - Dst: PyModule_GetDict
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2728,1
    - Dst: PyErr_Format
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2731,1
    - Dst: PyModule_GetName
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2732,1
    - Dst: PyDict_SetItemString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2735,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2737,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - m
    - name
    - o
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2715
    functionDepth: 0
    functionLinenumber: 2715
    functionLinenumberEnd: 2739
    functionName: PyModule_AddObject
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyErr_SetString
    - Py_DECREF
    - PyModule_Check
    - PyModule_GetName
    - PyModule_GetDict
    - PyDict_SetItemString
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN PyModule_AddObject(PyObject *m, char *name, PyObject *o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2750,1
    - Dst: SwigPyClientData_Del
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2760,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2763,1
    - Dst: SWIG_This
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2763,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - vptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2765
      start: 2746
    functionDepth: 4
    functionLinenumber: 2746
    functionLinenumberEnd: 2765
    functionName: SWIG_Python_DestroyModule
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SwigPyClientData_Del
    - Py_DECREF
    - SWIG_This
    - PyCapsule_GetPointer
    linkageType: ''
    returnType: void
    signature: void SWIG_Python_DestroyModule(void *vptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_AddModule
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2771,1
    - Dst: Py_InitModule
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2774,1
    - Dst: PyCapsule_New
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2777,1
    - Dst: PyModule_AddObject
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2779,1
    - Dst: Py_XDECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2781,1
    - Dst: PyCObject_FromVoidPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2784,1
    - Dst: PyModule_AddObject
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2786,1
    - Dst: Py_XDECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2788,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - swig_module
    argTypes:
    - swig_module_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2767
    functionDepth: 1
    functionLinenumber: 2767
    functionLinenumberEnd: 2791
    functionName: SWIG_Python_SetModule
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyModule_AddObject
    - PyImport_AddModule
    - PyCObject_FromVoidPtr
    - Py_XDECREF
    - Py_InitModule
    - PyCapsule_New
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SWIG_Python_SetModule(swig_module_info *swig_module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2798
      start: 2794
    functionDepth: 0
    functionLinenumber: 2794
    functionLinenumberEnd: 2798
    functionName: SWIG_Python_TypeCache
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SWIG_Python_TypeCache(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_Python_TypeCache
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2803,1
    - Dst: SWIG_Python_str_FromChar
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2804,1
    - Dst: PyDict_GetItem
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2805,1
    - Dst: PyCapsule_GetPointer
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2809,1
    - Dst: PyCObject_AsVoidPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2811,1
    - Dst: SWIG_GetModule
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2814,1
    - Dst: SWIG_TypeQueryModule
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2815,1
    - Dst: PyCapsule_New
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2818,1
    - Dst: PyCObject_FromVoidPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2820,1
    - Dst: PyDict_SetItem
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2822,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2823,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2826,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2828
      start: 2800
    functionDepth: 2
    functionLinenumber: 2800
    functionLinenumberEnd: 2828
    functionName: 'swig_type_info *

      SWIG_Python_TypeQuery(const char *type)'
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyCObject_AsVoidPtr
    - PyDict_GetItem
    - PyCObject_FromVoidPtr
    - Py_DECREF
    - SWIG_TypeQueryModule
    - SWIG_Python_str_FromChar
    - PyCapsule_GetPointer
    - SWIG_GetModule
    - PyCapsule_New
    - SWIG_Python_TypeCache
    - PyDict_SetItem
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME swig_type_info *

      SWIG_Python_TypeQuery(const char *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2835
      start: 2834
    functionDepth: 0
    functionLinenumber: 2834
    functionLinenumberEnd: 2835
    functionName: SWIG_arg_fail
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_arg_fail(arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - type
    - ','
    - argnum
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2836
      start: 2835
    functionDepth: 0
    functionLinenumber: 2835
    functionLinenumberEnd: 2836
    functionName: SWIG_MustGetPtr
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_MustGetPtr(p, type, argnum, flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2840,1
    - Dst: PyErr_Fetch
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2844,1
    - Dst: PyObject_Str
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2847,1
    - Dst: Py_XINCREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2848,1
    - Dst: PyErr_Clear
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2849,1
    - Dst: PyErr_Format
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2851,1
    - Dst: SWIG_Python_str_AsChar
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2851,1
    - Dst: PyErr_Format
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2853,1
    - Dst: SWIG_Python_str_AsChar
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2853,1
    - Dst: SWIG_Python_str_DelForPy3
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2855,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2856,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - mesg
    - infront
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2862
      start: 2837
    functionDepth: 4
    functionLinenumber: 2837
    functionLinenumberEnd: 2862
    functionName: SWIG_Python_AddErrMesg
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyErr_Fetch
    - PyErr_Occurred
    - SWIG_Python_str_AsChar
    - PyErr_Clear
    - Py_DECREF
    - PyObject_Str
    - SWIG_Python_str_DelForPy3
    - Py_XINCREF
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SWIG_Python_AddErrMesg(const char* mesg, int infront)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2867,1
    - Dst: PyOS_snprintf
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2870,1
    - Dst: SWIG_Python_AddErrMesg
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - argnum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2875
      start: 2864
    functionDepth: 5
    functionLinenumber: 2864
    functionLinenumberEnd: 2875
    functionName: SWIG_Python_ArgFail
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_Python_AddErrMesg
    - PyErr_Occurred
    - PyOS_snprintf
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SWIG_Python_ArgFail(int argnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2883
      start: 2877
    functionDepth: 0
    functionLinenumber: 2877
    functionLinenumberEnd: 2883
    functionName: SwigPyObject_GetDesc
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SWIGRUNTIMEINLINE
    signature: 'SWIGRUNTIMEINLINE *

      SwigPyObject_GetDesc(PyObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SwigPyObject_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2890,1
    - Dst: SwigPyObject_GetDesc
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2891,1
    - Dst: PyErr_Format
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2893,1
    - Dst: PyObject_Str
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2902,1
    - Dst: SWIG_Python_str_AsChar
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2903,1
    - Dst: PyErr_Format
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2905,1
    - Dst: SWIG_Python_str_DelForPy3
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2907,1
    - Dst: PyErr_Format
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2909,1
    - Dst: Py_XDECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2912,1
    - Dst: PyErr_Format
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2916,1
    - Dst: PyErr_Format
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2918,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - type
    - obj
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2920
      start: 2885
    functionDepth: 4
    functionLinenumber: 2885
    functionLinenumberEnd: 2920
    functionName: SWIG_Python_TypeError
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - SWIG_Python_str_AsChar
    - PyObject_Str
    - SwigPyObject_Check
    - Py_XDECREF
    - SWIG_Python_str_DelForPy3
    - SwigPyObject_GetDesc
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SWIG_Python_TypeError(const char *type, PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_Python_ConvertPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2927,1
    - Dst: PyErr_Clear
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2928,1
    - Dst: SWIG_Python_TypeError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2931,1
    - Dst: SWIG_TypePrettyName
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2931,1
    - Dst: SWIG_Python_ArgFail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:2932,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - obj
    - ty
    - SWIGUNUSEDPARM
    - flags
    argTypes:
    - PyObject*
    - swig_type_info*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2937
      start: 2924
    functionDepth: 6
    functionLinenumber: 2924
    functionLinenumberEnd: 2937
    functionName: SWIG_Python_MustGetPtr
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - SWIG_Python_TypeError
    - SWIG_Python_ConvertPtr
    - SWIG_Python_ArgFail
    - SWIG_TypePrettyName
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: 'SWIGRUNTIME *

      SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int SWIGUNUSEDPARM(argnum),
      int flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - code
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3000
      start: 2999
    functionDepth: 0
    functionLinenumber: 2999
    functionLinenumberEnd: 3000
    functionName: SWIG_exception_fail
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_exception_fail(code, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3002
      start: 3001
    functionDepth: 0
    functionLinenumber: 3001
    functionLinenumberEnd: 3002
    functionName: SWIG_contract_assert
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_contract_assert(expr, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - code
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3006
      start: 3005
    functionDepth: 0
    functionLinenumber: 3005
    functionLinenumberEnd: 3006
    functionName: SWIG_exception
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_exception(code, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3016
      start: 3015
    functionDepth: 0
    functionLinenumber: 3015
    functionLinenumberEnd: 3016
    functionName: SWIG_TypeQuery
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_TypeQuery(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3017
      start: 3016
    functionDepth: 0
    functionLinenumber: 3016
    functionLinenumberEnd: 3017
    functionName: SWIG_MangledTypeQuery
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_MangledTypeQuery(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3043
      start: 3042
    functionDepth: 0
    functionLinenumber: 3042
    functionLinenumberEnd: 3043
    functionName: SWIG_as_voidptr
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_as_voidptr(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3044
      start: 3043
    functionDepth: 0
    functionLinenumber: 3043
    functionLinenumberEnd: 3044
    functionName: SWIG_as_voidptrptr
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_as_voidptrptr(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyInt_FromLong
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3050
      start: 3046
    functionDepth: 1
    functionLinenumber: 3046
    functionLinenumberEnd: 3050
    functionName: SWIG_From_int
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyInt_FromLong
    linkageType: ''
    returnType: SWIGINTERNINLINE
    signature: "SWIGINTERNINLINE *\n  SWIG_From_int  (int value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_TypeQuery
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3059,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3063
      start: 3053
    functionDepth: 1
    functionLinenumber: 3053
    functionLinenumberEnd: 3063
    functionName: 'swig_type_info*

      SWIG_pchar_descriptor(void)'
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_TypeQuery
    linkageType: ''
    returnType: SWIGINTERN
    signature: 'SWIGINTERN swig_type_info*

      SWIG_pchar_descriptor(void)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3183,1
    - Dst: PyFloat_AsDouble
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3184,1
    - Dst: PyInt_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3187,1
    - Dst: PyInt_AsLong
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3188,1
    - Dst: PyLong_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3191,1
    - Dst: PyLong_AsDouble
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3192,1
    - Dst: PyErr_Occurred
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3193,1
    - Dst: PyErr_Clear
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3197,1
    - Dst: PyFloat_AsDouble
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3203,1
    - Dst: PyErr_Occurred
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3204,1
    - Dst: SWIG_AddCast
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3206,1
    - Dst: PyErr_Clear
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3208,1
    - Dst: PyLong_AsLong
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3211,1
    - Dst: PyErr_Occurred
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3212,1
    - Dst: SWIG_AddCast
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3214,1
    - Dst: SWIG_AddCast
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3214,1
    - Dst: PyErr_Clear
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3216,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - obj
    - val
    argTypes:
    - PyObject*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3222
      start: 3179
    functionDepth: 2
    functionLinenumber: 3179
    functionLinenumberEnd: 3222
    functionName: SWIG_AsVal_double
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsLong
    - PyInt_Check
    - PyLong_AsDouble
    - PyErr_Clear
    - PyLong_Check
    - PyFloat_AsDouble
    - SWIG_AddCast
    - PyFloat_Check
    - PyInt_AsLong
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN SWIG_AsVal_double (PyObject *obj, double *val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: floor
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3235,1
    - Dst: ceil
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3236,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - d
    - min
    - max
    argTypes:
    - double*
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3258
      start: 3231
    functionDepth: 0
    functionLinenumber: 3231
    functionLinenumberEnd: 3258
    functionName: SWIG_CanCastAsInteger
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - ceil
    - floor
    linkageType: ''
    returnType: SWIGINTERNINLINE
    signature: SWIGINTERNINLINE SWIG_CanCastAsInteger(double *d, double min, double
      max)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyInt_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3265,1
    - Dst: PyInt_AsLong
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3266,1
    - Dst: PyLong_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3275,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3276,1
    - Dst: PyErr_Occurred
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3277,1
    - Dst: PyErr_Clear
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3281,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3288,1
    - Dst: PyErr_Occurred
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3289,1
    - Dst: SWIG_AddCast
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3291,1
    - Dst: PyErr_Clear
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3293,1
    - Dst: SWIG_AddCast
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3297,1
    - Dst: SWIG_AsVal_double
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3297,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3298,1
    - Dst: SWIG_CanCastAsInteger
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3298,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - obj
    - val
    argTypes:
    - PyObject*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3306
      start: 3261
    functionDepth: 3
    functionLinenumber: 3261
    functionLinenumberEnd: 3306
    functionName: SWIG_AsVal_unsigned_SS_long
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLong
    - PyErr_Occurred
    - SWIG_CanCastAsInteger
    - PyInt_Check
    - PyErr_Clear
    - PyLong_Check
    - SWIG_AddCast
    - SWIG_IsOK
    - PyInt_AsLong
    - SWIG_AsVal_double
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long
      *val)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3329,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3330,1
    - Dst: PyErr_Occurred
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3331,1
    - Dst: PyErr_Clear
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3335,1
    - Dst: SWIG_AsVal_unsigned_SS_long
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3340,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3341,1
    - Dst: SWIG_AsVal_double
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3350,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3351,1
    - Dst: SWIG_CanCastAsInteger
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3351,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3353,1
    - Dst: SWIG_CanCastAsInteger
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3353,1
    - Dst: SWIG_AddCast
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3355,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - obj
    - val
    argTypes:
    - PyObject*
    - unsigned long long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3361
      start: 3325
    functionDepth: 4
    functionLinenumber: 3325
    functionLinenumberEnd: 3361
    functionName: SWIG_AsVal_unsigned_SS_long_SS_long
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - SWIG_CanCastAsInteger
    - PyErr_Clear
    - PyLong_Check
    - SWIG_AddCast
    - SWIG_AsVal_unsigned_SS_long
    - PyLong_AsUnsignedLongLong
    - SWIG_IsOK
    - SWIG_AsVal_double
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN SWIG_AsVal_unsigned_SS_long_SS_long (PyObject *obj, unsigned
      long long *val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_AsVal_unsigned_SS_long
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3373,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3374,1
    - Dst: SWIG_AsVal_unsigned_SS_long_SS_long
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3378,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3379,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - obj
    - val
    argTypes:
    - PyObject*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3383
      start: 3365
    functionDepth: 5
    functionLinenumber: 3365
    functionLinenumberEnd: 3383
    functionName: SWIG_AsVal_size_t
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_AsVal_unsigned_SS_long_SS_long
    - SWIG_AsVal_unsigned_SS_long
    - SWIG_IsOK
    linkageType: ''
    returnType: SWIGINTERNINLINE
    signature: SWIGINTERNINLINE SWIG_AsVal_size_t (PyObject * obj, size_t *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - function
    - width
    - height
    argTypes:
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3440
      start: 3391
    functionDepth: 0
    functionLinenumber: 3391
    functionLinenumberEnd: 3440
    functionName: ReturnedBufferSize
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: size_t
    signature: "size_t ReturnedBufferSize(\n    const char* function, int* width,
      int* height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encfn
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 8
    argNames:
    - rgb
    - width
    - height
    - stride
    - quality_factor
    - encfn
    - output_size
    - unused
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - float
    - WebPEncodeFunction
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3463
      start: 3450
    functionDepth: 0
    functionLinenumber: 3450
    functionLinenumberEnd: 3463
    functionName: EncodeLossy
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - encfn
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * EncodeLossy(const uint8_t* rgb,\n                            int
      width, int height, int stride,\n                            float quality_factor,\n
      \                           WebPEncodeFunction encfn,\n                            int*
      output_size, int* unused)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encfn
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - rgb
    - width
    - height
    - stride
    - encfn
    - output_size
    - unused
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    - WebPEncodeLosslessFunction
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3476
      start: 3465
    functionDepth: 0
    functionLinenumber: 3465
    functionLinenumberEnd: 3476
    functionName: EncodeLossless
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 1
    functionsReached:
    - encfn
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * EncodeLossless(const uint8_t* rgb,\n                               int
      width, int height, int stride,\n                               WebPEncodeLosslessFunction
      encfn,\n                               int* output_size, int* unused)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3492
      start: 3484
    functionDepth: 0
    functionLinenumber: 3484
    functionLinenumberEnd: 3492
    functionName: LOSSY_WRAPPER
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOSSY_WRAPPER(FUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3507
      start: 3499
    functionDepth: 0
    functionLinenumber: 3499
    functionLinenumberEnd: 3507
    functionName: LOSSLESS_WRAPPER
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOSSLESS_WRAPPER(FUNC)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyInt_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3520,1
    - Dst: PyInt_AsLong
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3521,1
    - Dst: PyLong_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3525,1
    - Dst: PyLong_AsLong
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3526,1
    - Dst: PyErr_Occurred
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3527,1
    - Dst: PyErr_Clear
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3531,1
    - Dst: PyInt_AsLong
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3538,1
    - Dst: PyErr_Occurred
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3539,1
    - Dst: SWIG_AddCast
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3541,1
    - Dst: PyErr_Clear
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3543,1
    - Dst: SWIG_AddCast
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3547,1
    - Dst: SWIG_AsVal_double
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3547,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3548,1
    - Dst: SWIG_CanCastAsInteger
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3548,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - obj
    - val
    argTypes:
    - PyObject*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3556
      start: 3516
    functionDepth: 3
    functionLinenumber: 3516
    functionLinenumberEnd: 3556
    functionName: SWIG_AsVal_long
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - SWIG_CanCastAsInteger
    - PyLong_AsLong
    - PyInt_Check
    - PyErr_Clear
    - PyLong_Check
    - SWIG_AddCast
    - SWIG_IsOK
    - PyInt_AsLong
    - SWIG_AsVal_double
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN SWIG_AsVal_long (PyObject *obj, long* val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_AsVal_long
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3563,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3564,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - obj
    - val
    argTypes:
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3572
      start: 3559
    functionDepth: 4
    functionLinenumber: 3559
    functionLinenumberEnd: 3572
    functionName: SWIG_AsVal_int
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_AsVal_long
    - SWIG_IsOK
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN SWIG_AsVal_int (PyObject * obj, int *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3580
      start: 3579
    functionDepth: 0
    functionLinenumber: 3579
    functionLinenumberEnd: 3580
    functionName: SWIG_isfinite
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_isfinite(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isfinite
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3594
      start: 3590
    functionDepth: 0
    functionLinenumber: 3590
    functionLinenumberEnd: 3594
    functionName: SWIG_isfinite_func
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - isfinite
    linkageType: ''
    returnType: typename T
    signature: typename T SWIG_isfinite_func(T x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3596
      start: 3595
    functionDepth: 0
    functionLinenumber: 3595
    functionLinenumberEnd: 3596
    functionName: SWIG_isfinite
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_isfinite(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3598
      start: 3597
    functionDepth: 0
    functionLinenumber: 3597
    functionLinenumberEnd: 3598
    functionName: SWIG_isfinite
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_isfinite(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3601
      start: 3600
    functionDepth: 0
    functionLinenumber: 3600
    functionLinenumberEnd: 3601
    functionName: SWIG_isfinite
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_isfinite(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3608
      start: 3607
    functionDepth: 0
    functionLinenumber: 3607
    functionLinenumberEnd: 3608
    functionName: SWIG_Float_Overflow_Check
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_Float_Overflow_Check(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3610
      start: 3609
    functionDepth: 0
    functionLinenumber: 3609
    functionLinenumberEnd: 3610
    functionName: SWIG_Float_Overflow_Check
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_Float_Overflow_Check(X)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_AsVal_double
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3617,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3618,1
    - Dst: SWIG_Float_Overflow_Check
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - obj
    - val
    argTypes:
    - PyObject*
    - float*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3626
      start: 3613
    functionDepth: 3
    functionLinenumber: 3613
    functionLinenumberEnd: 3626
    functionName: SWIG_AsVal_float
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_Float_Overflow_Check
    - SWIG_AsVal_double
    - SWIG_IsOK
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN SWIG_AsVal_float (PyObject * obj, float *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3635,1
    - Dst: WebPGetDecoderVersion
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3636,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - SWIGUNUSEDPARM(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3641
      start: 3631
    functionDepth: 2
    functionLinenumber: 3631
    functionLinenumberEnd: 3641
    functionName: _wrap_WebPGetDecoderVersion
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_From_int
    - WebPGetDecoderVersion
    - PyArg_ParseTuple
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN *_wrap_WebPGetDecoderVersion(PyObject *SWIGUNUSEDPARM(self),
      PyObject *args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3663,1
    - Dst: SWIG_AsCharPtrAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3664,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3665,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3666,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3666,1
    - Dst: WebPGetInfo
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3670,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3671,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3672,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3673,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3673,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3675,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3676,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3676,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3678,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3679,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3679,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3681,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3682,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3682,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3684,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3687,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - SWIGUNUSEDPARM(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3689
      start: 3644
    functionDepth: 5
    functionLinenumber: 3644
    functionLinenumberEnd: 3689
    functionName: _wrap_WebPGetInfo
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_IsNewObj
    - SWIG_exception_fail
    - SWIG_AsCharPtrAndSize
    - WebPGetInfo
    - SWIG_From_int
    - free
    - SWIG_IsTmpObj
    - PyArg_ParseTuple
    - SWIG_IsOK
    - SWIG_ArgError
    - SWIG_Python_AppendOutput
    - SWIG_NewPointerObj
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN *_wrap_WebPGetInfo(PyObject *SWIGUNUSEDPARM(self), PyObject
      *args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3711,1
    - Dst: SWIG_AsCharPtrAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3712,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3713,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3714,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3714,1
    - Dst: WebPDecodeRGB
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3718,1
    - Dst: PyString_FromStringAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3720,1
    - Dst: ReturnedBufferSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3722,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3724,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3725,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3725,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3727,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3728,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3728,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3730,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3731,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3731,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3733,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3734,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3734,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3736,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3737,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3740,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - SWIGUNUSEDPARM(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3742
      start: 3692
    functionDepth: 2
    functionLinenumber: 3692
    functionLinenumberEnd: 3742
    functionName: _wrap_WebPDecodeRGB
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_IsNewObj
    - SWIG_exception_fail
    - SWIG_AsCharPtrAndSize
    - PyString_FromStringAndSize
    - SWIG_From_int
    - free
    - ReturnedBufferSize
    - PyArg_ParseTuple
    - SWIG_IsOK
    - SWIG_ArgError
    - SWIG_IsTmpObj
    - WebPDecodeRGB
    - SWIG_Python_AppendOutput
    - SWIG_NewPointerObj
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN *_wrap_WebPDecodeRGB(PyObject *SWIGUNUSEDPARM(self), PyObject
      *args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3764,1
    - Dst: SWIG_AsCharPtrAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3765,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3766,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3767,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3767,1
    - Dst: WebPDecodeRGBA
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3771,1
    - Dst: PyString_FromStringAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3773,1
    - Dst: ReturnedBufferSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3775,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3777,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3778,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3778,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3780,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3781,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3781,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3783,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3784,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3784,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3786,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3787,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3787,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3789,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3790,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3793,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - SWIGUNUSEDPARM(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3795
      start: 3745
    functionDepth: 2
    functionLinenumber: 3745
    functionLinenumberEnd: 3795
    functionName: _wrap_WebPDecodeRGBA
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_IsNewObj
    - SWIG_exception_fail
    - SWIG_AsCharPtrAndSize
    - PyString_FromStringAndSize
    - SWIG_From_int
    - free
    - ReturnedBufferSize
    - PyArg_ParseTuple
    - SWIG_IsOK
    - SWIG_ArgError
    - SWIG_IsTmpObj
    - WebPDecodeRGBA
    - SWIG_Python_AppendOutput
    - SWIG_NewPointerObj
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN *_wrap_WebPDecodeRGBA(PyObject *SWIGUNUSEDPARM(self), PyObject
      *args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3817,1
    - Dst: SWIG_AsCharPtrAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3818,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3819,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3820,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3820,1
    - Dst: WebPDecodeARGB
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3824,1
    - Dst: PyString_FromStringAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3826,1
    - Dst: ReturnedBufferSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3828,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3830,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3831,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3831,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3833,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3834,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3834,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3836,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3837,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3837,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3839,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3840,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3840,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3842,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3843,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3846,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - SWIGUNUSEDPARM(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3848
      start: 3798
    functionDepth: 2
    functionLinenumber: 3798
    functionLinenumberEnd: 3848
    functionName: _wrap_WebPDecodeARGB
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - WebPDecodeARGB
    - SWIG_IsNewObj
    - SWIG_exception_fail
    - SWIG_AsCharPtrAndSize
    - PyString_FromStringAndSize
    - SWIG_From_int
    - free
    - ReturnedBufferSize
    - PyArg_ParseTuple
    - SWIG_IsOK
    - SWIG_ArgError
    - SWIG_IsTmpObj
    - SWIG_Python_AppendOutput
    - SWIG_NewPointerObj
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN *_wrap_WebPDecodeARGB(PyObject *SWIGUNUSEDPARM(self), PyObject
      *args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3870,1
    - Dst: SWIG_AsCharPtrAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3871,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3872,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3873,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3873,1
    - Dst: WebPDecodeBGR
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3877,1
    - Dst: PyString_FromStringAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3879,1
    - Dst: ReturnedBufferSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3881,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3883,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3884,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3884,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3886,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3887,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3887,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3889,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3890,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3890,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3892,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3893,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3893,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3895,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3896,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3899,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - SWIGUNUSEDPARM(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3901
      start: 3851
    functionDepth: 2
    functionLinenumber: 3851
    functionLinenumberEnd: 3901
    functionName: _wrap_WebPDecodeBGR
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_IsNewObj
    - SWIG_exception_fail
    - SWIG_AsCharPtrAndSize
    - WebPDecodeBGR
    - PyString_FromStringAndSize
    - SWIG_From_int
    - free
    - ReturnedBufferSize
    - PyArg_ParseTuple
    - SWIG_IsOK
    - SWIG_ArgError
    - SWIG_IsTmpObj
    - SWIG_Python_AppendOutput
    - SWIG_NewPointerObj
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN *_wrap_WebPDecodeBGR(PyObject *SWIGUNUSEDPARM(self), PyObject
      *args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3923,1
    - Dst: SWIG_AsCharPtrAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3924,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3925,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3926,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3926,1
    - Dst: WebPDecodeBGRA
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3930,1
    - Dst: PyString_FromStringAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3932,1
    - Dst: ReturnedBufferSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3934,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3936,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3937,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3937,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3939,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3940,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3940,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3942,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3943,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3943,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3945,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3946,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3946,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3948,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3949,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3952,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - SWIGUNUSEDPARM(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3954
      start: 3904
    functionDepth: 2
    functionLinenumber: 3904
    functionLinenumberEnd: 3954
    functionName: _wrap_WebPDecodeBGRA
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_IsNewObj
    - SWIG_exception_fail
    - SWIG_AsCharPtrAndSize
    - PyString_FromStringAndSize
    - SWIG_From_int
    - free
    - ReturnedBufferSize
    - PyArg_ParseTuple
    - SWIG_IsOK
    - SWIG_ArgError
    - SWIG_IsTmpObj
    - WebPDecodeBGRA
    - SWIG_Python_AppendOutput
    - SWIG_NewPointerObj
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN *_wrap_WebPDecodeBGRA(PyObject *SWIGUNUSEDPARM(self), PyObject
      *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3961,1
    - Dst: WebPGetEncoderVersion
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3962,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:3963,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - SWIGUNUSEDPARM(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3967
      start: 3957
    functionDepth: 2
    functionLinenumber: 3957
    functionLinenumberEnd: 3967
    functionName: _wrap_WebPGetEncoderVersion
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_From_int
    - WebPGetEncoderVersion
    - PyArg_ParseTuple
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN *_wrap_WebPGetEncoderVersion(PyObject *SWIGUNUSEDPARM(self),
      PyObject *args)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4005,1
    - Dst: PyObject_CheckBuffer
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4010,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4011,1
    - Dst: PyObject_GetBuffer
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4015,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4016,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4021,1
    - Dst: SWIG_ConvertPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4021,1
    - Dst: SWIG_as_voidptrptr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4021,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4023,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4024,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4025,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4025,1
    - Dst: SWIG_AddTmpMask
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4029,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4031,1
    - Dst: SWIG_ConvertPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4031,1
    - Dst: SWIG_as_voidptrptr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4031,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4033,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4034,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4035,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4035,1
    - Dst: SWIG_AddTmpMask
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4039,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4041,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4042,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4043,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4043,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4046,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4047,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4048,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4048,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4051,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4052,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4053,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4053,1
    - Dst: SWIG_AsVal_float
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4056,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4057,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4058,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4058,1
    - Dst: wrap_WebPEncodeRGB
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4061,1
    - Dst: PyString_FromStringAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4063,1
    - Dst: ReturnedBufferSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4065,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4067,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4068,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4068,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4070,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4071,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4071,1
    - Dst: PyBuffer_Release
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4074,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4076,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4076,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4077,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4077,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4078,1
    - Dst: PyBuffer_Release
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4082,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4084,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4084,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4085,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4085,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 73
    argCount: 2
    argNames:
    - SWIGUNUSEDPARM(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4087
      start: 3970
    functionDepth: 5
    functionLinenumber: 3970
    functionLinenumberEnd: 4087
    functionName: _wrap_wrap_WebPEncodeRGB
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_AsVal_float
    - SWIG_exception_fail
    - PyArg_ParseTuple
    - SWIG_Python_AppendOutput
    - SWIG_AddTmpMask
    - SWIG_From_int
    - SWIG_IsTmpObj
    - SWIG_NewPointerObj
    - PyBuffer_Release
    - ReturnedBufferSize
    - SWIG_IsOK
    - SWIG_ArgError
    - PyObject_CheckBuffer
    - SWIG_as_voidptrptr
    - SWIG_ConvertPtr
    - SWIG_IsNewObj
    - PyObject_GetBuffer
    - PyString_FromStringAndSize
    - free
    - wrap_WebPEncodeRGB
    - SWIG_AsVal_int
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN *_wrap_wrap_WebPEncodeRGB(PyObject *SWIGUNUSEDPARM(self),
      PyObject *args)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4125,1
    - Dst: PyObject_CheckBuffer
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4130,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4131,1
    - Dst: PyObject_GetBuffer
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4135,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4136,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4141,1
    - Dst: SWIG_ConvertPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4141,1
    - Dst: SWIG_as_voidptrptr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4141,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4143,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4144,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4145,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4145,1
    - Dst: SWIG_AddTmpMask
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4149,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4151,1
    - Dst: SWIG_ConvertPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4151,1
    - Dst: SWIG_as_voidptrptr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4151,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4153,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4154,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4155,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4155,1
    - Dst: SWIG_AddTmpMask
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4159,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4161,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4162,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4163,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4163,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4166,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4167,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4168,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4168,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4171,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4172,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4173,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4173,1
    - Dst: SWIG_AsVal_float
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4176,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4177,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4178,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4178,1
    - Dst: wrap_WebPEncodeBGR
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4181,1
    - Dst: PyString_FromStringAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4183,1
    - Dst: ReturnedBufferSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4185,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4187,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4188,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4188,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4190,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4191,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4191,1
    - Dst: PyBuffer_Release
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4194,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4196,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4196,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4197,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4197,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4198,1
    - Dst: PyBuffer_Release
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4202,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4204,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4204,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4205,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4205,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 73
    argCount: 2
    argNames:
    - SWIGUNUSEDPARM(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4207
      start: 4090
    functionDepth: 5
    functionLinenumber: 4090
    functionLinenumberEnd: 4207
    functionName: _wrap_wrap_WebPEncodeBGR
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_AsVal_float
    - SWIG_exception_fail
    - PyArg_ParseTuple
    - SWIG_Python_AppendOutput
    - SWIG_AddTmpMask
    - SWIG_From_int
    - SWIG_IsTmpObj
    - SWIG_NewPointerObj
    - PyBuffer_Release
    - wrap_WebPEncodeBGR
    - ReturnedBufferSize
    - SWIG_IsOK
    - SWIG_ArgError
    - PyObject_CheckBuffer
    - SWIG_as_voidptrptr
    - SWIG_ConvertPtr
    - SWIG_IsNewObj
    - PyObject_GetBuffer
    - PyString_FromStringAndSize
    - free
    - SWIG_AsVal_int
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN *_wrap_wrap_WebPEncodeBGR(PyObject *SWIGUNUSEDPARM(self),
      PyObject *args)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4245,1
    - Dst: PyObject_CheckBuffer
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4250,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4251,1
    - Dst: PyObject_GetBuffer
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4255,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4256,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4261,1
    - Dst: SWIG_ConvertPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4261,1
    - Dst: SWIG_as_voidptrptr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4261,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4263,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4264,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4265,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4265,1
    - Dst: SWIG_AddTmpMask
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4269,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4271,1
    - Dst: SWIG_ConvertPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4271,1
    - Dst: SWIG_as_voidptrptr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4271,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4273,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4274,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4275,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4275,1
    - Dst: SWIG_AddTmpMask
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4279,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4281,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4282,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4283,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4283,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4286,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4287,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4288,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4288,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4291,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4292,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4293,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4293,1
    - Dst: SWIG_AsVal_float
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4296,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4297,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4298,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4298,1
    - Dst: wrap_WebPEncodeRGBA
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4301,1
    - Dst: PyString_FromStringAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4303,1
    - Dst: ReturnedBufferSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4305,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4307,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4308,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4308,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4310,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4311,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4311,1
    - Dst: PyBuffer_Release
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4314,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4316,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4316,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4317,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4317,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4318,1
    - Dst: PyBuffer_Release
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4322,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4324,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4324,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4325,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4325,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 73
    argCount: 2
    argNames:
    - SWIGUNUSEDPARM(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4327
      start: 4210
    functionDepth: 5
    functionLinenumber: 4210
    functionLinenumberEnd: 4327
    functionName: _wrap_wrap_WebPEncodeRGBA
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_AsVal_float
    - SWIG_exception_fail
    - PyArg_ParseTuple
    - SWIG_Python_AppendOutput
    - SWIG_AddTmpMask
    - wrap_WebPEncodeRGBA
    - SWIG_From_int
    - SWIG_IsTmpObj
    - SWIG_NewPointerObj
    - PyBuffer_Release
    - ReturnedBufferSize
    - SWIG_IsOK
    - SWIG_ArgError
    - PyObject_CheckBuffer
    - SWIG_as_voidptrptr
    - SWIG_ConvertPtr
    - SWIG_IsNewObj
    - PyObject_GetBuffer
    - PyString_FromStringAndSize
    - free
    - SWIG_AsVal_int
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN *_wrap_wrap_WebPEncodeRGBA(PyObject *SWIGUNUSEDPARM(self),
      PyObject *args)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4365,1
    - Dst: PyObject_CheckBuffer
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4370,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4371,1
    - Dst: PyObject_GetBuffer
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4375,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4376,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4381,1
    - Dst: SWIG_ConvertPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4381,1
    - Dst: SWIG_as_voidptrptr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4381,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4383,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4384,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4385,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4385,1
    - Dst: SWIG_AddTmpMask
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4389,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4391,1
    - Dst: SWIG_ConvertPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4391,1
    - Dst: SWIG_as_voidptrptr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4391,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4393,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4394,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4395,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4395,1
    - Dst: SWIG_AddTmpMask
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4399,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4401,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4402,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4403,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4403,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4406,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4407,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4408,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4408,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4411,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4412,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4413,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4413,1
    - Dst: SWIG_AsVal_float
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4416,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4417,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4418,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4418,1
    - Dst: wrap_WebPEncodeBGRA
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4421,1
    - Dst: PyString_FromStringAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4423,1
    - Dst: ReturnedBufferSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4425,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4427,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4428,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4428,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4430,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4431,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4431,1
    - Dst: PyBuffer_Release
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4434,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4436,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4436,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4437,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4437,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4438,1
    - Dst: PyBuffer_Release
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4442,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4444,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4444,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4445,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4445,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 73
    argCount: 2
    argNames:
    - SWIGUNUSEDPARM(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4447
      start: 4330
    functionDepth: 5
    functionLinenumber: 4330
    functionLinenumberEnd: 4447
    functionName: _wrap_wrap_WebPEncodeBGRA
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_AsVal_float
    - SWIG_exception_fail
    - PyArg_ParseTuple
    - SWIG_Python_AppendOutput
    - SWIG_AddTmpMask
    - SWIG_From_int
    - SWIG_IsTmpObj
    - SWIG_NewPointerObj
    - PyBuffer_Release
    - ReturnedBufferSize
    - SWIG_IsOK
    - SWIG_ArgError
    - PyObject_CheckBuffer
    - SWIG_as_voidptrptr
    - SWIG_ConvertPtr
    - SWIG_IsNewObj
    - PyObject_GetBuffer
    - PyString_FromStringAndSize
    - free
    - wrap_WebPEncodeBGRA
    - SWIG_AsVal_int
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN *_wrap_wrap_WebPEncodeBGRA(PyObject *SWIGUNUSEDPARM(self),
      PyObject *args)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4481,1
    - Dst: PyObject_CheckBuffer
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4486,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4487,1
    - Dst: PyObject_GetBuffer
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4491,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4492,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4497,1
    - Dst: SWIG_ConvertPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4497,1
    - Dst: SWIG_as_voidptrptr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4497,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4499,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4500,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4501,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4501,1
    - Dst: SWIG_AddTmpMask
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4505,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4507,1
    - Dst: SWIG_ConvertPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4507,1
    - Dst: SWIG_as_voidptrptr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4507,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4509,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4510,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4511,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4511,1
    - Dst: SWIG_AddTmpMask
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4515,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4517,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4518,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4519,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4519,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4522,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4523,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4524,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4524,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4527,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4528,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4529,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4529,1
    - Dst: wrap_WebPEncodeLosslessRGB
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4532,1
    - Dst: PyString_FromStringAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4534,1
    - Dst: ReturnedBufferSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4536,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4538,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4539,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4539,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4541,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4542,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4542,1
    - Dst: PyBuffer_Release
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4545,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4547,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4547,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4548,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4548,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4549,1
    - Dst: PyBuffer_Release
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4553,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4555,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4555,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4556,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4556,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 68
    argCount: 2
    argNames:
    - SWIGUNUSEDPARM(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4558
      start: 4450
    functionDepth: 5
    functionLinenumber: 4450
    functionLinenumberEnd: 4558
    functionName: _wrap_wrap_WebPEncodeLosslessRGB
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_exception_fail
    - PyArg_ParseTuple
    - SWIG_Python_AppendOutput
    - SWIG_AddTmpMask
    - SWIG_From_int
    - SWIG_IsTmpObj
    - SWIG_NewPointerObj
    - PyBuffer_Release
    - ReturnedBufferSize
    - SWIG_IsOK
    - SWIG_ArgError
    - wrap_WebPEncodeLosslessRGB
    - PyObject_CheckBuffer
    - SWIG_as_voidptrptr
    - SWIG_ConvertPtr
    - SWIG_IsNewObj
    - PyObject_GetBuffer
    - PyString_FromStringAndSize
    - free
    - SWIG_AsVal_int
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN *_wrap_wrap_WebPEncodeLosslessRGB(PyObject *SWIGUNUSEDPARM(self),
      PyObject *args)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4592,1
    - Dst: PyObject_CheckBuffer
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4597,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4598,1
    - Dst: PyObject_GetBuffer
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4602,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4603,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4608,1
    - Dst: SWIG_ConvertPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4608,1
    - Dst: SWIG_as_voidptrptr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4608,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4610,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4611,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4612,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4612,1
    - Dst: SWIG_AddTmpMask
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4616,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4618,1
    - Dst: SWIG_ConvertPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4618,1
    - Dst: SWIG_as_voidptrptr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4618,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4620,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4621,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4622,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4622,1
    - Dst: SWIG_AddTmpMask
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4626,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4628,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4629,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4630,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4630,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4633,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4634,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4635,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4635,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4638,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4639,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4640,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4640,1
    - Dst: wrap_WebPEncodeLosslessBGR
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4643,1
    - Dst: PyString_FromStringAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4645,1
    - Dst: ReturnedBufferSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4647,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4649,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4650,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4650,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4652,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4653,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4653,1
    - Dst: PyBuffer_Release
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4656,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4658,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4658,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4659,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4659,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4660,1
    - Dst: PyBuffer_Release
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4664,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4666,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4666,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4667,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4667,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 68
    argCount: 2
    argNames:
    - SWIGUNUSEDPARM(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4669
      start: 4561
    functionDepth: 5
    functionLinenumber: 4561
    functionLinenumberEnd: 4669
    functionName: _wrap_wrap_WebPEncodeLosslessBGR
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_exception_fail
    - PyArg_ParseTuple
    - SWIG_Python_AppendOutput
    - SWIG_AddTmpMask
    - SWIG_From_int
    - SWIG_IsTmpObj
    - SWIG_NewPointerObj
    - PyBuffer_Release
    - ReturnedBufferSize
    - SWIG_IsOK
    - SWIG_ArgError
    - PyObject_CheckBuffer
    - SWIG_as_voidptrptr
    - SWIG_ConvertPtr
    - SWIG_IsNewObj
    - PyObject_GetBuffer
    - wrap_WebPEncodeLosslessBGR
    - PyString_FromStringAndSize
    - free
    - SWIG_AsVal_int
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN *_wrap_wrap_WebPEncodeLosslessBGR(PyObject *SWIGUNUSEDPARM(self),
      PyObject *args)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4703,1
    - Dst: PyObject_CheckBuffer
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4708,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4709,1
    - Dst: PyObject_GetBuffer
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4713,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4714,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4719,1
    - Dst: SWIG_ConvertPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4719,1
    - Dst: SWIG_as_voidptrptr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4719,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4721,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4722,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4723,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4723,1
    - Dst: SWIG_AddTmpMask
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4727,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4729,1
    - Dst: SWIG_ConvertPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4729,1
    - Dst: SWIG_as_voidptrptr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4729,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4731,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4732,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4733,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4733,1
    - Dst: SWIG_AddTmpMask
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4737,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4739,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4740,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4741,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4741,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4744,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4745,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4746,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4746,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4749,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4750,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4751,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4751,1
    - Dst: wrap_WebPEncodeLosslessRGBA
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4754,1
    - Dst: PyString_FromStringAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4756,1
    - Dst: ReturnedBufferSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4758,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4760,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4761,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4761,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4763,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4764,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4764,1
    - Dst: PyBuffer_Release
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4767,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4769,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4769,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4770,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4770,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4771,1
    - Dst: PyBuffer_Release
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4775,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4777,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4777,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4778,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4778,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 68
    argCount: 2
    argNames:
    - SWIGUNUSEDPARM(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4780
      start: 4672
    functionDepth: 5
    functionLinenumber: 4672
    functionLinenumberEnd: 4780
    functionName: _wrap_wrap_WebPEncodeLosslessRGBA
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_exception_fail
    - PyArg_ParseTuple
    - SWIG_Python_AppendOutput
    - wrap_WebPEncodeLosslessRGBA
    - SWIG_AddTmpMask
    - SWIG_From_int
    - SWIG_IsTmpObj
    - SWIG_NewPointerObj
    - PyBuffer_Release
    - ReturnedBufferSize
    - SWIG_IsOK
    - SWIG_ArgError
    - PyObject_CheckBuffer
    - SWIG_as_voidptrptr
    - SWIG_ConvertPtr
    - SWIG_IsNewObj
    - PyObject_GetBuffer
    - PyString_FromStringAndSize
    - free
    - SWIG_AsVal_int
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN *_wrap_wrap_WebPEncodeLosslessRGBA(PyObject *SWIGUNUSEDPARM(self),
      PyObject *args)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4814,1
    - Dst: PyObject_CheckBuffer
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4819,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4820,1
    - Dst: PyObject_GetBuffer
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4824,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4825,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4830,1
    - Dst: SWIG_ConvertPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4830,1
    - Dst: SWIG_as_voidptrptr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4830,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4832,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4833,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4834,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4834,1
    - Dst: SWIG_AddTmpMask
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4838,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4840,1
    - Dst: SWIG_ConvertPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4840,1
    - Dst: SWIG_as_voidptrptr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4840,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4842,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4843,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4844,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4844,1
    - Dst: SWIG_AddTmpMask
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4848,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4850,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4851,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4852,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4852,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4855,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4856,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4857,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4857,1
    - Dst: SWIG_AsVal_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4860,1
    - Dst: SWIG_IsOK
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4861,1
    - Dst: SWIG_exception_fail
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4862,1
    - Dst: SWIG_ArgError
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4862,1
    - Dst: wrap_WebPEncodeLosslessBGRA
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4865,1
    - Dst: PyString_FromStringAndSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4867,1
    - Dst: ReturnedBufferSize
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4869,1
    - Dst: SWIG_IsTmpObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4871,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4872,1
    - Dst: SWIG_From_int
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4872,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4874,1
    - Dst: SWIG_Python_AppendOutput
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4875,1
    - Dst: SWIG_NewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4875,1
    - Dst: PyBuffer_Release
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4878,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4880,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4880,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4881,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4881,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4882,1
    - Dst: PyBuffer_Release
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4886,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4888,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4888,1
    - Dst: SWIG_IsNewObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4889,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:4889,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 68
    argCount: 2
    argNames:
    - SWIGUNUSEDPARM(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4891
      start: 4783
    functionDepth: 5
    functionLinenumber: 4783
    functionLinenumberEnd: 4891
    functionName: _wrap_wrap_WebPEncodeLosslessBGRA
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_exception_fail
    - PyArg_ParseTuple
    - SWIG_Python_AppendOutput
    - SWIG_AddTmpMask
    - SWIG_From_int
    - SWIG_IsTmpObj
    - SWIG_NewPointerObj
    - PyBuffer_Release
    - wrap_WebPEncodeLosslessBGRA
    - ReturnedBufferSize
    - SWIG_IsOK
    - SWIG_ArgError
    - PyObject_CheckBuffer
    - SWIG_as_voidptrptr
    - SWIG_ConvertPtr
    - SWIG_IsNewObj
    - PyObject_GetBuffer
    - PyString_FromStringAndSize
    - free
    - SWIG_AsVal_int
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN *_wrap_wrap_WebPEncodeLosslessBGRA(PyObject *SWIGUNUSEDPARM(self),
      PyObject *args)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_GetModule
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5018,1
    - Dst: SWIG_SetModule
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5022,1
    - Dst: printf
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5047,1
    - Dst: printf
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5055,1
    - Dst: SWIG_MangledTypeQueryModule
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5060,1
    - Dst: printf
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5065,1
    - Dst: printf
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5070,1
    - Dst: printf
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5083,1
    - Dst: SWIG_MangledTypeQueryModule
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5086,1
    - Dst: printf
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5088,1
    - Dst: printf
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5094,1
    - Dst: SWIG_TypeCheck
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5100,1
    - Dst: printf
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5102,1
    - Dst: printf
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5110,1
    - Dst: printf
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5126,1
    - Dst: printf
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5130,1
    - Dst: printf
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5132,1
    - Dst: printf
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5136,1
    - Dst: printf
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5138,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 85
    argCount: 1
    argNames:
    - clientdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5140
      start: 5000
    functionDepth: 1
    functionLinenumber: 5000
    functionLinenumberEnd: 5140
    functionName: SWIG_InitializeModule
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - printf
    - SWIG_SetModule
    - SWIG_GetModule
    - SWIG_TypeCheck
    - SWIG_MangledTypeQueryModule
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SWIG_InitializeModule(void *clientdata)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_TypeClientData
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5162,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5168
      start: 5147
    functionDepth: 2
    functionLinenumber: 5147
    functionLinenumberEnd: 5168
    functionName: SWIG_PropagateClientData
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_TypeClientData
    linkageType: ''
    returnType: SWIGRUNTIME
    signature: SWIGRUNTIME SWIG_PropagateClientData(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5186
      start: 5185
    functionDepth: 0
    functionLinenumber: 5185
    functionLinenumberEnd: 5186
    functionName: SWIG_newvarlink
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_newvarlink()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - name
    - ','
    - get_attr
    - ','
    - set_attr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5187
      start: 5186
    functionDepth: 0
    functionLinenumber: 5186
    functionLinenumberEnd: 5187
    functionName: SWIG_addvarlink
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_addvarlink(p, name, get_attr, set_attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - constants
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5188
      start: 5187
    functionDepth: 0
    functionLinenumber: 5187
    functionLinenumberEnd: 5188
    functionName: SWIG_InstallConstants
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIG_InstallConstants(d, constants)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5208,1
    - Dst: PyString_FromString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - SWIGUNUSEDPARM(v)
    argTypes:
    - swig_varlinkobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5212
      start: 5205
    functionDepth: 1
    functionLinenumber: 5205
    functionLinenumberEnd: 5212
    functionName: swig_varlink_repr
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyUnicode_InternFromString
    - PyString_FromString
    linkageType: ''
    returnType: SWIGINTERN
    signature: "SWIGINTERN *\n  swig_varlink_repr(swig_varlinkobject *SWIGUNUSEDPARM(v))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5217,1
    - Dst: PyUnicode_FromString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5222,1
    - Dst: PyUnicode_Concat
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5223,1
    - Dst: Py_DecRef
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5224,1
    - Dst: Py_DecRef
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5225,1
    - Dst: PyUnicode_InternFromString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5228,1
    - Dst: PyUnicode_Concat
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5229,1
    - Dst: Py_DecRef
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5230,1
    - Dst: Py_DecRef
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5231,1
    - Dst: PyUnicode_InternFromString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5235,1
    - Dst: PyUnicode_Concat
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5236,1
    - Dst: Py_DecRef
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5237,1
    - Dst: Py_DecRef
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5238,1
    - Dst: PyString_FromString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5241,1
    - Dst: PyString_ConcatAndDel
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5244,1
    - Dst: PyString_FromString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5244,1
    - Dst: PyString_ConcatAndDel
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5245,1
    - Dst: PyString_FromString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5245,1
    - Dst: PyString_ConcatAndDel
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5247,1
    - Dst: PyString_FromString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5247,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - v
    argTypes:
    - swig_varlinkobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5250
      start: 5214
    functionDepth: 1
    functionLinenumber: 5214
    functionLinenumberEnd: 5250
    functionName: swig_varlink_str
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - Py_DecRef
    - PyString_ConcatAndDel
    - PyString_FromString
    - PyUnicode_FromString
    - PyUnicode_InternFromString
    - PyUnicode_Concat
    linkageType: ''
    returnType: SWIGINTERN
    signature: "SWIGINTERN *\n  swig_varlink_str(swig_varlinkobject *v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swig_varlink_str
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5255,1
    - Dst: fprintf
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5256,1
    - Dst: fprintf
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5257,1
    - Dst: SWIG_Python_str_AsChar
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5257,1
    - Dst: SWIG_Python_str_DelForPy3
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5258,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - v
    - fp
    - SWIGUNUSEDPARM
    argTypes:
    - swig_varlinkobject*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5261
      start: 5252
    functionDepth: 4
    functionLinenumber: 5252
    functionLinenumberEnd: 5261
    functionName: swig_varlink_print
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_Python_str_AsChar
    - Py_DECREF
    - fprintf
    - SWIG_Python_str_DelForPy3
    - swig_varlink_str
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN swig_varlink_print(swig_varlinkobject *v, FILE *fp, int
      SWIGUNUSEDPARM(flags))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5268,1
    - Dst: free
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - swig_varlinkobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5272
      start: 5263
    functionDepth: 0
    functionLinenumber: 5263
    functionLinenumberEnd: 5272
    functionName: swig_varlink_dealloc
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN swig_varlink_dealloc(swig_varlinkobject *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5279,1
    - Dst: PyErr_Occurred
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5285,1
    - Dst: PyErr_Format
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5286,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - v
    - n
    argTypes:
    - swig_varlinkobject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5289
      start: 5274
    functionDepth: 0
    functionLinenumber: 5274
    functionLinenumberEnd: 5289
    functionName: swig_varlink_getattr
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyErr_Occurred
    - strcmp
    linkageType: ''
    returnType: SWIGINTERN
    signature: "SWIGINTERN *\n  swig_varlink_getattr(swig_varlinkobject *v, char *n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5296,1
    - Dst: PyErr_Occurred
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5302,1
    - Dst: PyErr_Format
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5303,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - v
    - n
    - p
    argTypes:
    - swig_varlinkobject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5306
      start: 5291
    functionDepth: 0
    functionLinenumber: 5291
    functionLinenumberEnd: 5306
    functionName: swig_varlink_setattr
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyErr_Occurred
    - strcmp
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject
      *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5316,1
    - Dst: PyObject_HEAD_INIT
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5318,1
    - Dst: PyType_Ready
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5377
      start: 5308
    functionDepth: 0
    functionLinenumber: 5308
    functionLinenumberEnd: 5377
    functionName: "PyTypeObject*\n  swig_varlink_type(void)"
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - PyObject_HEAD_INIT
    - PyType_Ready
    - PyVarObject_HEAD_INIT
    linkageType: ''
    returnType: SWIGINTERN
    signature: "SWIGINTERN PyTypeObject*\n  swig_varlink_type(void)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_NEW
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5382,1
    - Dst: swig_varlink_type
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5387
      start: 5380
    functionDepth: 0
    functionLinenumber: 5380
    functionLinenumberEnd: 5387
    functionName: SWIG_Python_newvarlink
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - swig_varlink_type
    - PyObject_NEW
    linkageType: ''
    returnType: SWIGINTERN
    signature: "SWIGINTERN *\n  SWIG_Python_newvarlink(void)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5392,1
    - Dst: strlen
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5394,1
    - Dst: malloc
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5395,1
    - Dst: strncpy
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - p
    - name
    - (*get_attr)(void)
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5404
      start: 5389
    functionDepth: 3
    functionLinenumber: 5389
    functionLinenumberEnd: 5404
    functionName: SWIG_Python_addvarlink
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - malloc
    - strncpy
    - strlen
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN SWIG_Python_addvarlink(PyObject *p, char *name, PyObject
      *(*get_attr)(void), int (*set_attr)(PyObject *p))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_newvarlink
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5411
      start: 5406
    functionDepth: 1
    functionLinenumber: 5406
    functionLinenumberEnd: 5411
    functionName: SWIG_globals
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_newvarlink
    linkageType: ''
    returnType: SWIGINTERN
    signature: "SWIGINTERN *\n  SWIG_globals(void)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SWIG_InternalNewPointerObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5425,1
    - Dst: SWIG_NewPackedObj
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5428,1
    - Dst: PyDict_SetItemString
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5435,1
    - Dst: Py_DECREF
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5436,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - d
    - constants
    argTypes:
    - PyObject*
    - swig_const_info[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5439
      start: 5418
    functionDepth: 1
    functionLinenumber: 5418
    functionLinenumberEnd: 5439
    functionName: SWIG_Python_InstallConstants
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - SWIG_InternalNewPointerObj
    - SWIG_NewPackedObj
    - Py_DECREF
    - PyDict_SetItemString
    linkageType: ''
    returnType: SWIGINTERN
    signature: SWIGINTERN SWIG_Python_InstallConstants(PyObject *d, swig_const_info
      constants[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5454,1
    - Dst: strncmp
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5460,1
    - Dst: strlen
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5461,1
    - Dst: strlen
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5472,1
    - Dst: malloc
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5473,1
    - Dst: memcpy
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5476,1
    - Dst: memcpy
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5478,1
    - Dst: SWIG_PackVoidPtr
      Src: /src/libwebp/swig/libwebp_python_wrap.c:5480,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - methods
    - const_table
    - types
    - types_initial
    argTypes:
    - PyMethodDef*
    - swig_const_info*
    - swig_type_info**
    - swig_type_info**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5487
      start: 5445
    functionDepth: 3
    functionLinenumber: 5445
    functionLinenumberEnd: 5487
    functionName: SWIG_Python_FixMethods
    functionSourceFile: /src/libwebp/swig/libwebp_python_wrap.c
    functionUses: 0
    functionsReached:
    - malloc
    - strncmp
    - strstr
    - memcpy
    - strlen
    - SWIG_PackVoidPtr
    linkageType: ''
    returnType: SWIGINTERN
    signature: "SWIGINTERN SWIG_Python_FixMethods(PyMethodDef *methods,\n    swig_const_info
      *const_table,\n    swig_type_info **types,\n    swig_type_info **types_initial)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: "runtime\xB7cgocall"
      Src: /src/libwebp/swig/libwebp_gc.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - "struct {\n  uint8 x[SWIG_PARM_SIZE];\n}"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: WebPGetDecoderVersion
    functionSourceFile: /src/libwebp/swig/libwebp_gc.c
    functionUses: 6
    functionsReached:
    - "runtime\xB7cgocall"
    linkageType: ''
    returnType: void
    signature: "void WebPGetDecoderVersion(struct {\n  uint8 x[SWIG_PARM_SIZE];\n}
      p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: "runtime\xB7cgocall"
      Src: /src/libwebp/swig/libwebp_gc.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - "struct {\n  uint8 x[(2 * SWIG_PARM_SIZE) + (3 * SWIG_PARM_SIZE) + (3 * SWIG_PARM_SIZE)
      + SWIG_PARM_SIZE];\n}"
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: Wrapped_WebPGetInfo
    functionSourceFile: /src/libwebp/swig/libwebp_gc.c
    functionUses: 0
    functionsReached:
    - "runtime\xB7cgocall"
    linkageType: ''
    returnType: void
    signature: "void Wrapped_WebPGetInfo(struct {\n  uint8 x[(2 * SWIG_PARM_SIZE)
      + (3 * SWIG_PARM_SIZE) + (3 * SWIG_PARM_SIZE) + SWIG_PARM_SIZE];\n} p)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _setmode
      Src: /src/libwebp/imageio/imageio_util.c:31,1
    - Dst: _fileno
      Src: /src/libwebp/imageio/imageio_util.c:31,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/imageio_util.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - file
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: ImgIoUtilSetBinaryMode
    functionSourceFile: /src/libwebp/imageio/imageio_util.c
    functionUses: 2
    functionsReached:
    - _setmode
    - _fileno
    - fprintf
    linkageType: ''
    returnType: FILE
    signature: FILE * ImgIoUtilSetBinaryMode(FILE* file)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ImgIoUtilSetBinaryMode
      Src: /src/libwebp/imageio/imageio_util.c:49,1
    - Dst: feof
      Src: /src/libwebp/imageio/imageio_util.c:51,1
    - Dst: realloc
      Src: /src/libwebp/imageio/imageio_util.c:55,1
    - Dst: fread
      Src: /src/libwebp/imageio/imageio_util.c:59,1
    - Dst: ferror
      Src: /src/libwebp/imageio/imageio_util.c:62,1
    - Dst: free
      Src: /src/libwebp/imageio/imageio_util.c:69,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/imageio_util.c:70,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - data
    - data_size
    argTypes:
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 72
    functionName: ImgIoUtilReadFromStdin
    functionSourceFile: /src/libwebp/imageio/imageio_util.c
    functionUses: 0
    functionsReached:
    - feof
    - ferror
    - fprintf
    - free
    - realloc
    - fread
    - ImgIoUtilSetBinaryMode
    linkageType: ''
    returnType: int
    signature: int ImgIoUtilReadFromStdin(const uint8_t** data, size_t* data_size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WSTRCMP
      Src: /src/libwebp/imageio/imageio_util.c:80,1
    - Dst: ImgIoUtilReadFromStdin
      Src: /src/libwebp/imageio/imageio_util.c:82,1
    - Dst: WFOPEN
      Src: /src/libwebp/imageio/imageio_util.c:88,1
    - Dst: WFPRINTF
      Src: /src/libwebp/imageio/imageio_util.c:90,1
    - Dst: fseek
      Src: /src/libwebp/imageio/imageio_util.c:93,1
    - Dst: ftell
      Src: /src/libwebp/imageio/imageio_util.c:94,1
    - Dst: fclose
      Src: /src/libwebp/imageio/imageio_util.c:96,1
    - Dst: WFPRINTF
      Src: /src/libwebp/imageio/imageio_util.c:97,1
    - Dst: fseek
      Src: /src/libwebp/imageio/imageio_util.c:100,1
    - Dst: WebPMalloc
      Src: /src/libwebp/imageio/imageio_util.c:102,1
    - Dst: fclose
      Src: /src/libwebp/imageio/imageio_util.c:104,1
    - Dst: WFPRINTF
      Src: /src/libwebp/imageio/imageio_util.c:105,1
    - Dst: fread
      Src: /src/libwebp/imageio/imageio_util.c:109,1
    - Dst: fclose
      Src: /src/libwebp/imageio/imageio_util.c:110,1
    - Dst: WFPRINTF
      Src: /src/libwebp/imageio/imageio_util.c:113,1
    - Dst: WebPFree
      Src: /src/libwebp/imageio/imageio_util.c:115,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - file_name
    - data
    - data_size
    argTypes:
    - char*
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 122
    functionName: ImgIoUtilReadFile
    functionSourceFile: /src/libwebp/imageio/imageio_util.c
    functionUses: 10
    functionsReached:
    - WFPRINTF
    - ftell
    - WFOPEN
    - WebPFree
    - fclose
    - fseek
    - WSTRCMP
    - ImgIoUtilReadFromStdin
    - WebPMalloc
    - fread
    linkageType: ''
    returnType: int
    signature: "int ImgIoUtilReadFile(const char* const file_name, const uint8_t**
      data,\n                      size_t* data_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WSTRCMP
      Src: /src/libwebp/imageio/imageio_util.c:130,1
    - Dst: ImgIoUtilSetBinaryMode
      Src: /src/libwebp/imageio/imageio_util.c:135,1
    - Dst: WFOPEN
      Src: /src/libwebp/imageio/imageio_util.c:135,1
    - Dst: WFPRINTF
      Src: /src/libwebp/imageio/imageio_util.c:137,1
    - Dst: fwrite
      Src: /src/libwebp/imageio/imageio_util.c:141,1
    - Dst: fclose
      Src: /src/libwebp/imageio/imageio_util.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - file_name
    - data
    - data_size
    argTypes:
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 144
    functionName: ImgIoUtilWriteFile
    functionSourceFile: /src/libwebp/imageio/imageio_util.c
    functionUses: 3
    functionsReached:
    - WFPRINTF
    - WFOPEN
    - fwrite
    - fclose
    - WSTRCMP
    - ImgIoUtilSetBinaryMode
    linkageType: ''
    returnType: int
    signature: "int ImgIoUtilWriteFile(const char* const file_name, const uint8_t*
      data,\n                       size_t data_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libwebp/imageio/imageio_util.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - src
    - src_stride
    - dst
    - dst_stride
    - width
    - height
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: ImgIoUtilCopyPlane
    functionSourceFile: /src/libwebp/imageio/imageio_util.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void ImgIoUtilCopyPlane(const uint8_t* src, int src_stride, uint8_t*
      dst,\n                        int dst_stride, int width, int height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - stride
    - height
    argTypes:
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: ImgIoUtilCheckSizeArgumentsOverflow
    functionSourceFile: /src/libwebp/imageio/imageio_util.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ImgIoUtilCheckSizeArgumentsOverflow(uint64_t stride, size_t height)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: IFS
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IFS(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: MAKE_REFGUID
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAKE_REFGUID(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: MAKE_REFGUID
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAKE_REFGUID(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IFS
      Src: /src/libwebp/imageio/image_enc.c:68,1
    - Dst: CreateStreamOnHGlobal
      Src: /src/libwebp/imageio/image_enc.c:68,1
    - Dst: IFS
      Src: /src/libwebp/imageio/image_enc.c:70,1
    - Dst: SHCreateStreamOnFile
      Src: /src/libwebp/imageio/image_enc.c:70,1
    - Dst: FAILED
      Src: /src/libwebp/imageio/image_enc.c:73,1
    - Dst: _ftprintf
      Src: /src/libwebp/imageio/image_enc.c:74,1
    - Dst: _T
      Src: /src/libwebp/imageio/image_enc.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - out_file_name
    - write_to_mem
    - stream
    argTypes:
    - char*
    - int
    - IStream**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: CreateOutputStream
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 0
    functionsReached:
    - FAILED
    - _ftprintf
    - CreateStreamOnHGlobal
    - SHCreateStreamOnFile
    - _T
    - IFS
    linkageType: ''
    returnType: HRESULT
    signature: "HRESULT CreateOutputStream(const char* out_file_name, int write_to_mem,\n
      \                                 IStream** stream)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: IFS
      Src: /src/libwebp/imageio/image_enc.c:93,1
    - Dst: CoInitialize
      Src: /src/libwebp/imageio/image_enc.c:93,1
    - Dst: IFS
      Src: /src/libwebp/imageio/image_enc.c:94,1
    - Dst: CoCreateInstance
      Src: /src/libwebp/imageio/image_enc.c:94,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/image_enc.c:95,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/image_enc.c:96,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/image_enc.c:98,1
    - Dst: IFS
      Src: /src/libwebp/imageio/image_enc.c:103,1
    - Dst: CreateOutputStream
      Src: /src/libwebp/imageio/image_enc.c:103,1
    - Dst: IFS
      Src: /src/libwebp/imageio/image_enc.c:104,1
    - Dst: IWICImagingFactory_CreateEncoder
      Src: /src/libwebp/imageio/image_enc.c:104,1
    - Dst: IFS
      Src: /src/libwebp/imageio/image_enc.c:106,1
    - Dst: IWICBitmapEncoder_Initialize
      Src: /src/libwebp/imageio/image_enc.c:106,1
    - Dst: IFS
      Src: /src/libwebp/imageio/image_enc.c:107,1
    - Dst: IWICBitmapEncoder_CreateNewFrame
      Src: /src/libwebp/imageio/image_enc.c:107,1
    - Dst: IFS
      Src: /src/libwebp/imageio/image_enc.c:108,1
    - Dst: IWICBitmapFrameEncode_Initialize
      Src: /src/libwebp/imageio/image_enc.c:108,1
    - Dst: IFS
      Src: /src/libwebp/imageio/image_enc.c:109,1
    - Dst: IWICBitmapFrameEncode_SetSize
      Src: /src/libwebp/imageio/image_enc.c:109,1
    - Dst: IFS
      Src: /src/libwebp/imageio/image_enc.c:110,1
    - Dst: IWICBitmapFrameEncode_SetPixelFormat
      Src: /src/libwebp/imageio/image_enc.c:110,1
    - Dst: IFS
      Src: /src/libwebp/imageio/image_enc.c:111,1
    - Dst: IWICBitmapFrameEncode_WritePixels
      Src: /src/libwebp/imageio/image_enc.c:111,1
    - Dst: IFS
      Src: /src/libwebp/imageio/image_enc.c:113,1
    - Dst: IWICBitmapFrameEncode_Commit
      Src: /src/libwebp/imageio/image_enc.c:113,1
    - Dst: IFS
      Src: /src/libwebp/imageio/image_enc.c:114,1
    - Dst: IWICBitmapEncoder_Commit
      Src: /src/libwebp/imageio/image_enc.c:114,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/image_enc.c:116,1
    - Dst: IFS
      Src: /src/libwebp/imageio/image_enc.c:118,1
    - Dst: GetHGlobalFromStream
      Src: /src/libwebp/imageio/image_enc.c:118,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/image_enc.c:119,1
    - Dst: GetStdHandle
      Src: /src/libwebp/imageio/image_enc.c:120,1
    - Dst: GetConsoleMode
      Src: /src/libwebp/imageio/image_enc.c:122,1
    - Dst: GlobalLock
      Src: /src/libwebp/imageio/image_enc.c:123,1
    - Dst: SetConsoleMode
      Src: /src/libwebp/imageio/image_enc.c:127,1
    - Dst: WriteFile
      Src: /src/libwebp/imageio/image_enc.c:128,1
    - Dst: GlobalSize
      Src: /src/libwebp/imageio/image_enc.c:128,1
    - Dst: GlobalSize
      Src: /src/libwebp/imageio/image_enc.c:130,1
    - Dst: SetConsoleMode
      Src: /src/libwebp/imageio/image_enc.c:133,1
    - Dst: GlobalUnlock
      Src: /src/libwebp/imageio/image_enc.c:134,1
    - Dst: IUnknown_Release
      Src: /src/libwebp/imageio/image_enc.c:138,1
    - Dst: IUnknown_Release
      Src: /src/libwebp/imageio/image_enc.c:139,1
    - Dst: IUnknown_Release
      Src: /src/libwebp/imageio/image_enc.c:140,1
    - Dst: IUnknown_Release
      Src: /src/libwebp/imageio/image_enc.c:141,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 8
    argNames:
    - out_file_name
    - use_stdout
    - container_guid
    - rgb
    - stride
    - width
    - height
    - has_alpha
    argTypes:
    - char*
    - int
    - REFGUID
    - uint8_t*
    - int
    - uint32_t
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 143
    functionName: WriteUsingWIC
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 0
    functionsReached:
    - IWICBitmapEncoder_CreateNewFrame
    - CoInitialize
    - fprintf
    - SetConsoleMode
    - SUCCEEDED
    - IWICBitmapFrameEncode_SetSize
    - IWICBitmapFrameEncode_Initialize
    - GetConsoleMode
    - GlobalSize
    - GlobalUnlock
    - IWICBitmapEncoder_Commit
    - IWICBitmapFrameEncode_Commit
    - GlobalLock
    - GetHGlobalFromStream
    - GetStdHandle
    - IWICBitmapFrameEncode_SetPixelFormat
    - CoCreateInstance
    - IWICImagingFactory_CreateEncoder
    - MAKE_REFGUID
    - IFS
    - IWICBitmapFrameEncode_WritePixels
    - IWICBitmapEncoder_Initialize
    - WriteFile
    - IUnknown_Release
    - CreateOutputStream
    linkageType: ''
    returnType: HRESULT
    signature: "HRESULT WriteUsingWIC(const char* out_file_name, int use_stdout,\n
      \                            REFGUID container_guid, uint8_t* rgb, int stride,\n
      \                            uint32_t width, uint32_t height, int has_alpha)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPIsAlphaMode
      Src: /src/libwebp/imageio/image_enc.c:151,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/image_enc.c:153,1
    - Dst: WriteUsingWIC
      Src: /src/libwebp/imageio/image_enc.c:153,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/image_enc.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out_file_name
    - use_stdout
    - buffer
    argTypes:
    - char*
    - int
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 156
    functionName: WebPWritePNG
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 0
    functionsReached:
    - MAKE_REFGUID
    - WebPIsAlphaMode
    - WriteUsingWIC
    - SUCCEEDED
    linkageType: ''
    returnType: int
    signature: "int WebPWritePNG(const char* out_file_name, int use_stdout,\n                 const
      WebPDecBuffer* const buffer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: longjmp
      Src: /src/libwebp/imageio/image_enc.c:161,1
    - Dst: png_jmpbuf
      Src: /src/libwebp/imageio/image_enc.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - png
    - unused
    argTypes:
    - png_structp
    - png_const_charp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: PNGErrorFunction
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 0
    functionsReached:
    - longjmp
    - png_jmpbuf
    linkageType: ''
    returnType: void
    signature: void PNGErrorFunction(png_structp png, png_const_charp unused)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: png_create_write_struct
      Src: /src/libwebp/imageio/image_enc.c:170,1
    - Dst: png_create_info_struct
      Src: /src/libwebp/imageio/image_enc.c:175,1
    - Dst: png_destroy_write_struct
      Src: /src/libwebp/imageio/image_enc.c:177,1
    - Dst: setjmp
      Src: /src/libwebp/imageio/image_enc.c:180,1
    - Dst: png_jmpbuf
      Src: /src/libwebp/imageio/image_enc.c:180,1
    - Dst: png_destroy_write_struct
      Src: /src/libwebp/imageio/image_enc.c:181,1
    - Dst: png_init_io
      Src: /src/libwebp/imageio/image_enc.c:184,1
    - Dst: WebPIsAlphaMode
      Src: /src/libwebp/imageio/image_enc.c:190,1
    - Dst: png_set_IHDR
      Src: /src/libwebp/imageio/image_enc.c:193,1
    - Dst: png_write_info
      Src: /src/libwebp/imageio/image_enc.c:197,1
    - Dst: png_write_rows
      Src: /src/libwebp/imageio/image_enc.c:199,1
    - Dst: png_write_end
      Src: /src/libwebp/imageio/image_enc.c:203,1
    - Dst: png_destroy_write_struct
      Src: /src/libwebp/imageio/image_enc.c:204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - out_file
    - buffer
    argTypes:
    - FILE*
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 206
    functionName: WebPWritePNG
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 0
    functionsReached:
    - WebPIsAlphaMode
    - png_init_io
    - png_jmpbuf
    - png_create_write_struct
    - png_set_IHDR
    - png_write_info
    - setjmp
    - png_write_rows
    - png_write_end
    - png_destroy_write_struct
    - png_create_info_struct
    linkageType: ''
    returnType: int
    signature: int WebPWritePNG(FILE* out_file, const WebPDecBuffer* const buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/imageio/image_enc.c:211,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/image_enc.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - fout
    - buffer
    argTypes:
    - FILE*
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 216
    functionName: WebPWritePNG
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int WebPWritePNG(FILE* fout, const WebPDecBuffer* const buffer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/imageio/image_enc.c:237,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/image_enc.c:242,1
    - Dst: fwrite
      Src: /src/libwebp/imageio/image_enc.c:245,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - fout
    - buffer
    - alpha
    argTypes:
    - FILE*
    - WebPDecBuffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 252
    functionName: WritePPMPAM
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 0
    functionsReached:
    - fwrite
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int WritePPMPAM(FILE* fout, const WebPDecBuffer* const buffer,\n                       int
      alpha)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WritePPMPAM
      Src: /src/libwebp/imageio/image_enc.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fout
    - buffer
    argTypes:
    - FILE*
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: WebPWritePPM
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 0
    functionsReached:
    - WritePPMPAM
    linkageType: ''
    returnType: int
    signature: int WebPWritePPM(FILE* fout, const WebPDecBuffer* const buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WritePPMPAM
      Src: /src/libwebp/imageio/image_enc.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fout
    - buffer
    argTypes:
    - FILE*
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: WebPWritePAM
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 0
    functionsReached:
    - WritePPMPAM
    linkageType: ''
    returnType: int
    signature: int WebPWritePAM(FILE* fout, const WebPDecBuffer* const buffer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/imageio/image_enc.c:282,1
    - Dst: fwrite
      Src: /src/libwebp/imageio/image_enc.c:284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - fout
    - buffer
    argTypes:
    - FILE*
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 290
    functionName: WebPWrite16bAsPGM
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 0
    functionsReached:
    - fwrite
    - fprintf
    linkageType: ''
    returnType: int
    signature: int WebPWrite16bAsPGM(FILE* fout, const WebPDecBuffer* const buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - value
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 298
    functionName: PutLE16
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PutLE16(uint8_t* const dst, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PutLE16
      Src: /src/libwebp/imageio/image_enc.c:301,1
    - Dst: PutLE16
      Src: /src/libwebp/imageio/image_enc.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - value
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: PutLE32
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 11
    functionsReached:
    - PutLE16
    linkageType: ''
    returnType: void
    signature: void PutLE32(uint8_t* const dst, uint32_t value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: WebPIsAlphaMode
      Src: /src/libwebp/imageio/image_enc.c:318,1
    - Dst: PutLE16
      Src: /src/libwebp/imageio/image_enc.c:333,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:334,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:335,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:336,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:338,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:339,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:340,1
    - Dst: PutLE16
      Src: /src/libwebp/imageio/image_enc.c:341,1
    - Dst: PutLE16
      Src: /src/libwebp/imageio/image_enc.c:342,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:343,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:344,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:345,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:346,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:347,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:348,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:350,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:351,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:352,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:353,1
    - Dst: fwrite
      Src: /src/libwebp/imageio/image_enc.c:359,1
    - Dst: fwrite
      Src: /src/libwebp/imageio/image_enc.c:366,1
    - Dst: fwrite
      Src: /src/libwebp/imageio/image_enc.c:372,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 51
    argCount: 2
    argNames:
    - fout
    - buffer
    argTypes:
    - FILE*
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 378
    functionName: WebPWriteBMP
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 0
    functionsReached:
    - PutLE16
    - WebPIsAlphaMode
    - fwrite
    - PutLE32
    linkageType: ''
    returnType: int
    signature: int WebPWriteBMP(FILE* fout, const WebPDecBuffer* const buffer)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WebPIsAlphaMode
      Src: /src/libwebp/imageio/image_enc.c:435,1
    - Dst: WebPIsPremultipliedMode
      Src: /src/libwebp/imageio/image_enc.c:446,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:449,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:450,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:451,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:452,1
    - Dst: PutLE32
      Src: /src/libwebp/imageio/image_enc.c:453,1
    - Dst: fwrite
      Src: /src/libwebp/imageio/image_enc.c:456,1
    - Dst: fwrite
      Src: /src/libwebp/imageio/image_enc.c:461,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - fout
    - buffer
    argTypes:
    - FILE*
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 468
    functionName: WebPWriteTIFF
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 0
    functionsReached:
    - WebPIsAlphaMode
    - WebPIsPremultipliedMode
    - PutLE32
    - fwrite
    linkageType: ''
    returnType: int
    signature: int WebPWriteTIFF(FILE* fout, const WebPDecBuffer* const buffer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/imageio/image_enc.c:490,1
    - Dst: fwrite
      Src: /src/libwebp/imageio/image_enc.c:492,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - fout
    - buffer
    argTypes:
    - FILE*
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 497
    functionName: WebPWriteAlphaPlane
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 0
    functionsReached:
    - fwrite
    - fprintf
    linkageType: ''
    returnType: int
    signature: int WebPWriteAlphaPlane(FILE* fout, const WebPDecBuffer* const buffer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/imageio/image_enc.c:521,1
    - Dst: fwrite
      Src: /src/libwebp/imageio/image_enc.c:524,1
    - Dst: fputc
      Src: /src/libwebp/imageio/image_enc.c:525,1
    - Dst: fwrite
      Src: /src/libwebp/imageio/image_enc.c:529,1
    - Dst: fwrite
      Src: /src/libwebp/imageio/image_enc.c:530,1
    - Dst: fwrite
      Src: /src/libwebp/imageio/image_enc.c:535,1
    - Dst: fputc
      Src: /src/libwebp/imageio/image_enc.c:536,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 2
    argNames:
    - fout
    - buffer
    argTypes:
    - FILE*
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 541
    functionName: WebPWritePGM
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 0
    functionsReached:
    - fwrite
    - fprintf
    - fputc
    linkageType: ''
    returnType: int
    signature: int WebPWritePGM(FILE* fout, const WebPDecBuffer* const buffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/libwebp/imageio/image_enc.c:566,1
    - Dst: fwrite
      Src: /src/libwebp/imageio/image_enc.c:570,1
    - Dst: fwrite
      Src: /src/libwebp/imageio/image_enc.c:574,1
    - Dst: fwrite
      Src: /src/libwebp/imageio/image_enc.c:578,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 2
    argNames:
    - fout
    - buffer
    argTypes:
    - FILE*
    - WebPDecBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 583
    functionName: WebPWriteYUV
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: int
    signature: int WebPWriteYUV(FILE* fout, const WebPDecBuffer* const buffer)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: WSTRCMP
      Src: /src/libwebp/imageio/image_enc.c:594,1
    - Dst: ImgIoUtilSetBinaryMode
      Src: /src/libwebp/imageio/image_enc.c:604,1
    - Dst: WFOPEN
      Src: /src/libwebp/imageio/image_enc.c:605,1
    - Dst: WFPRINTF
      Src: /src/libwebp/imageio/image_enc.c:607,1
    - Dst: WebPWritePNG
      Src: /src/libwebp/imageio/image_enc.c:616,1
    - Dst: WebPWritePNG
      Src: /src/libwebp/imageio/image_enc.c:618,1
    - Dst: WebPWritePAM
      Src: /src/libwebp/imageio/image_enc.c:621,1
    - Dst: WebPWritePPM
      Src: /src/libwebp/imageio/image_enc.c:623,1
    - Dst: WebPWrite16bAsPGM
      Src: /src/libwebp/imageio/image_enc.c:625,1
    - Dst: WebPWriteBMP
      Src: /src/libwebp/imageio/image_enc.c:627,1
    - Dst: WebPWriteTIFF
      Src: /src/libwebp/imageio/image_enc.c:629,1
    - Dst: WebPWriteYUV
      Src: /src/libwebp/imageio/image_enc.c:631,1
    - Dst: WebPWritePGM
      Src: /src/libwebp/imageio/image_enc.c:633,1
    - Dst: WebPWriteAlphaPlane
      Src: /src/libwebp/imageio/image_enc.c:635,1
    - Dst: fclose
      Src: /src/libwebp/imageio/image_enc.c:638,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 43
    argCount: 3
    argNames:
    - buffer
    - format
    - out_file_name
    argTypes:
    - WebPDecBuffer*
    - WebPOutputFileFormat
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 588
    functionDepth: 3
    functionLinenumber: 588
    functionLinenumberEnd: 641
    functionName: WebPSaveImage
    functionSourceFile: /src/libwebp/imageio/image_enc.c
    functionUses: 2
    functionsReached:
    - WebPWriteBMP
    - WebPWritePGM
    - WFPRINTF
    - WebPWrite16bAsPGM
    - WFOPEN
    - WebPWriteTIFF
    - WebPWritePPM
    - WebPWriteYUV
    - fclose
    - WSTRCMP
    - WebPWritePNG
    - WebPWritePAM
    - ImgIoUtilSetBinaryMode
    - WebPWriteAlphaPlane
    linkageType: ''
    returnType: int
    signature: "int WebPSaveImage(const WebPDecBuffer* const buffer,\n                  WebPOutputFileFormat
      format,\n                  const char* const out_file_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/imageio/webpdec.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - config
    argTypes:
    - WebPDecoderConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: PrintAnimationWarning
    functionSourceFile: /src/libwebp/imageio/webpdec.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void PrintAnimationWarning(const WebPDecoderConfig* const config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WFPRINTF
      Src: /src/libwebp/imageio/webpdec.c:53,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/webpdec.c:54,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/webpdec.c:56,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/webpdec.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - in_file
    - status
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: PrintWebPError
    functionSourceFile: /src/libwebp/imageio/webpdec.c
    functionUses: 1
    functionsReached:
    - WFPRINTF
    - fprintf
    linkageType: ''
    returnType: void
    signature: void PrintWebPError(const char* const in_file, int status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ImgIoUtilReadFile
      Src: /src/libwebp/imageio/webpdec.c:65,1
    - Dst: WebPGetFeatures
      Src: /src/libwebp/imageio/webpdec.c:71,1
    - Dst: WebPFree
      Src: /src/libwebp/imageio/webpdec.c:73,1
    - Dst: PrintWebPError
      Src: /src/libwebp/imageio/webpdec.c:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - in_file
    - data
    - data_size
    - bitstream
    argTypes:
    - char*
    - uint8_t**
    - size_t*
    - WebPBitstreamFeatures*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 61
    functionDepth: 5
    functionLinenumber: 61
    functionLinenumberEnd: 80
    functionName: LoadWebP
    functionSourceFile: /src/libwebp/imageio/webpdec.c
    functionUses: 1
    functionsReached:
    - ImgIoUtilReadFile
    - PrintWebPError
    - WebPGetFeatures
    - WebPFree
    linkageType: ''
    returnType: int
    signature: "int LoadWebP(const char* const in_file, const uint8_t** data, size_t*
      data_size,\n             WebPBitstreamFeatures* bitstream)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PrintAnimationWarning
      Src: /src/libwebp/imageio/webpdec.c:87,1
    - Dst: WebPDecode
      Src: /src/libwebp/imageio/webpdec.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - data
    - data_size
    - config
    argTypes:
    - uint8_t*
    - size_t
    - WebPDecoderConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 5
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: DecodeWebP
    functionSourceFile: /src/libwebp/imageio/webpdec.c
    functionUses: 1
    functionsReached:
    - WebPDecode
    - PrintAnimationWarning
    linkageType: ''
    returnType: VP8StatusCode
    signature: "VP8StatusCode DecodeWebP(const uint8_t* const data, size_t data_size,\n
      \                        WebPDecoderConfig* const config)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PrintAnimationWarning
      Src: /src/libwebp/imageio/webpdec.c:96,1
    - Dst: WebPIDecode
      Src: /src/libwebp/imageio/webpdec.c:100,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/webpdec.c:102,1
    - Dst: WebPIUpdate
      Src: /src/libwebp/imageio/webpdec.c:105,1
    - Dst: WebPIDelete
      Src: /src/libwebp/imageio/webpdec.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - data
    - data_size
    - config
    argTypes:
    - uint8_t*
    - size_t
    - WebPDecoderConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 91
    functionDepth: 7
    functionLinenumber: 91
    functionLinenumberEnd: 110
    functionName: DecodeWebPIncremental
    functionSourceFile: /src/libwebp/imageio/webpdec.c
    functionUses: 1
    functionsReached:
    - WebPIUpdate
    - WebPIDecode
    - fprintf
    - WebPIDelete
    - PrintAnimationWarning
    linkageType: ''
    returnType: VP8StatusCode
    signature: "VP8StatusCode DecodeWebPIncremental(const uint8_t* const data, size_t
      data_size,\n                                    WebPDecoderConfig* const config)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WebPDemux
      Src: /src/libwebp/imageio/webpdec.c:118,1
    - Dst: assert
      Src: /src/libwebp/imageio/webpdec.c:123,1
    - Dst: WebPDemuxGetI
      Src: /src/libwebp/imageio/webpdec.c:125,1
    - Dst: WebPDemuxGetChunk
      Src: /src/libwebp/imageio/webpdec.c:127,1
    - Dst: MetadataCopy
      Src: /src/libwebp/imageio/webpdec.c:128,1
    - Dst: WebPDemuxReleaseChunkIterator
      Src: /src/libwebp/imageio/webpdec.c:130,1
    - Dst: WebPDemuxGetChunk
      Src: /src/libwebp/imageio/webpdec.c:132,1
    - Dst: MetadataCopy
      Src: /src/libwebp/imageio/webpdec.c:133,1
    - Dst: WebPDemuxReleaseChunkIterator
      Src: /src/libwebp/imageio/webpdec.c:135,1
    - Dst: WebPDemuxGetChunk
      Src: /src/libwebp/imageio/webpdec.c:137,1
    - Dst: MetadataCopy
      Src: /src/libwebp/imageio/webpdec.c:138,1
    - Dst: WebPDemuxReleaseChunkIterator
      Src: /src/libwebp/imageio/webpdec.c:140,1
    - Dst: WebPDemuxDelete
      Src: /src/libwebp/imageio/webpdec.c:142,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - data
    - data_size
    - metadata
    argTypes:
    - uint8_t*
    - size_t
    - Metadata*
    assertStmts:
    - condition: (metadata != NULL)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/libwebp/imageio/webpdec.c
    constantsTouched: []
    func_position:
      end: 144
      start: 115
    functionDepth: 4
    functionLinenumber: 115
    functionLinenumberEnd: 144
    functionName: ExtractMetadata
    functionSourceFile: /src/libwebp/imageio/webpdec.c
    functionUses: 0
    functionsReached:
    - WebPDemux
    - WebPDemuxGetI
    - assert
    - MetadataCopy
    - WebPDemuxDelete
    - WebPDemuxGetChunk
    - WebPDemuxReleaseChunkIterator
    linkageType: ''
    returnType: int
    signature: "int ExtractMetadata(const uint8_t* const data, size_t data_size,\n
      \                          Metadata* const metadata)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: WebPInitDecoderConfig
      Src: /src/libwebp/imageio/webpdec.c:158,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/webpdec.c:159,1
    - Dst: WebPGetFeatures
      Src: /src/libwebp/imageio/webpdec.c:163,1
    - Dst: PrintWebPError
      Src: /src/libwebp/imageio/webpdec.c:165,1
    - Dst: ImgIoUtilCheckSizeArgumentsOverflow
      Src: /src/libwebp/imageio/webpdec.c:181,1
    - Dst: WebPPictureAlloc
      Src: /src/libwebp/imageio/webpdec.c:186,1
    - Dst: DecodeWebP
      Src: /src/libwebp/imageio/webpdec.c:220,1
    - Dst: PrintWebPError
      Src: /src/libwebp/imageio/webpdec.c:234,1
    - Dst: WebPFreeDecBuffer
      Src: /src/libwebp/imageio/webpdec.c:238,1
    - Dst: ExtractMetadata
      Src: /src/libwebp/imageio/webpdec.c:241,1
    - Dst: PrintWebPError
      Src: /src/libwebp/imageio/webpdec.c:243,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/imageio/webpdec.c:246,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 5
    argNames:
    - data
    - data_size
    - pic
    - keep_alpha
    - metadata
    argTypes:
    - uint8_t*
    - size_t
    - WebPPicture*
    - int
    - Metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 148
    functionDepth: 4
    functionLinenumber: 148
    functionLinenumberEnd: 248
    functionName: ReadWebP
    functionSourceFile: /src/libwebp/imageio/webpdec.c
    functionUses: 2
    functionsReached:
    - WebPInitDecoderConfig
    - WebPFreeDecBuffer
    - fprintf
    - WebPPictureAlloc
    - ImgIoUtilCheckSizeArgumentsOverflow
    - ExtractMetadata
    - DecodeWebP
    - WebPPictureFree
    - PrintWebPError
    - WebPGetFeatures
    linkageType: ''
    returnType: int
    signature: "int ReadWebP(const uint8_t* const data, size_t data_size,\n             WebPPicture*
      const pic, int keep_alpha, Metadata* const metadata)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TIFFGetField
      Src: /src/libwebp/imageio/tiffdec.c:52,1
    - Dst: MetadataCopy
      Src: /src/libwebp/imageio/tiffdec.c:53,1
    - Dst: TIFFGetField
      Src: /src/libwebp/imageio/tiffdec.c:64,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/tiffdec.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - tif
    - metadata
    argTypes:
    - TIFF*
    - Metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 68
    functionName: ExtractMetadataFromTIFF
    functionSourceFile: /src/libwebp/imageio/tiffdec.c
    functionUses: 0
    functionsReached:
    - TIFFGetField
    - fprintf
    - MetadataCopy
    linkageType: ''
    returnType: int
    signature: int ExtractMetadataFromTIFF(TIFF* const tif, Metadata* const metadata)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - opaque
    argTypes:
    - thandle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: MyClose
    functionSourceFile: /src/libwebp/imageio/tiffdec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int MyClose(thandle_t opaque)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - opaque
    argTypes:
    - thandle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: MySize
    functionSourceFile: /src/libwebp/imageio/tiffdec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: toff_t
    signature: toff_t MySize(thandle_t opaque)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - opaque
    - offset
    - whence
    argTypes:
    - thandle_t
    - toff_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: MySeek
    functionSourceFile: /src/libwebp/imageio/tiffdec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: toff_t
    signature: toff_t MySeek(thandle_t opaque, toff_t offset, int whence)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - opaque
    - base
    - size
    argTypes:
    - thandle_t
    - void**
    - toff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: MyMapFile
    functionSourceFile: /src/libwebp/imageio/tiffdec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int MyMapFile(thandle_t opaque, void** base, toff_t* size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - opaque
    - base
    - size
    argTypes:
    - thandle_t
    - void*
    - toff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: MyUnmapFile
    functionSourceFile: /src/libwebp/imageio/tiffdec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MyUnmapFile(thandle_t opaque, void* base, toff_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libwebp/imageio/tiffdec.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - opaque
    - dst
    - size
    argTypes:
    - thandle_t
    - void*
    - tsize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: MyRead
    functionSourceFile: /src/libwebp/imageio/tiffdec.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: tsize_t
    signature: tsize_t MyRead(thandle_t opaque, void* dst, tsize_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - mult
    argTypes:
    - uint8_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: Unmult
    functionSourceFile: /src/libwebp/imageio/tiffdec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Unmult(uint8_t x, uint32_t mult)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: GetScale
    functionSourceFile: /src/libwebp/imageio/tiffdec.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GetScale(uint32_t a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetScale
      Src: /src/libwebp/imageio/tiffdec.c:144,1
    - Dst: Unmult
      Src: /src/libwebp/imageio/tiffdec.c:145,1
    - Dst: Unmult
      Src: /src/libwebp/imageio/tiffdec.c:146,1
    - Dst: Unmult
      Src: /src/libwebp/imageio/tiffdec.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ptr
    - width
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 151
    functionName: MultARGBRow
    functionSourceFile: /src/libwebp/imageio/tiffdec.c
    functionUses: 4
    functionsReached:
    - Unmult
    - GetScale
    linkageType: ''
    returnType: void
    signature: void MultARGBRow(uint8_t* ptr, int width)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TIFFClientOpen
      Src: /src/libwebp/imageio/tiffdec.c:171,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/tiffdec.c:174,1
    - Dst: TIFFNumberOfDirectories
      Src: /src/libwebp/imageio/tiffdec.c:178,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/tiffdec.c:180,1
    - Dst: TIFFGetFieldDefaulted
      Src: /src/libwebp/imageio/tiffdec.c:185,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/tiffdec.c:186,1
    - Dst: TIFFGetField
      Src: /src/libwebp/imageio/tiffdec.c:193,1
    - Dst: TIFFGetField
      Src: /src/libwebp/imageio/tiffdec.c:194,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/tiffdec.c:195,1
    - Dst: ImgIoUtilCheckSizeArgumentsOverflow
      Src: /src/libwebp/imageio/tiffdec.c:199,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/tiffdec.c:200,1
    - Dst: TIFFGetField
      Src: /src/libwebp/imageio/tiffdec.c:211,1
    - Dst: TIFFGetField
      Src: /src/libwebp/imageio/tiffdec.c:212,1
    - Dst: ImgIoUtilCheckSizeArgumentsOverflow
      Src: /src/libwebp/imageio/tiffdec.c:215,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/tiffdec.c:217,1
    - Dst: TIFFGetField
      Src: /src/libwebp/imageio/tiffdec.c:223,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/tiffdec.c:225,1
    - Dst: _TIFFmalloc
      Src: /src/libwebp/imageio/tiffdec.c:233,1
    - Dst: TIFFReadRGBAImageOriented
      Src: /src/libwebp/imageio/tiffdec.c:235,1
    - Dst: TIFFSwabArrayOfLong
      Src: /src/libwebp/imageio/tiffdec.c:241,1
    - Dst: MultARGBRow
      Src: /src/libwebp/imageio/tiffdec.c:249,1
    - Dst: WebPPictureImportRGBA
      Src: /src/libwebp/imageio/tiffdec.c:255,1
    - Dst: WebPPictureImportRGBX
      Src: /src/libwebp/imageio/tiffdec.c:256,1
    - Dst: _TIFFfree
      Src: /src/libwebp/imageio/tiffdec.c:258,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/tiffdec.c:260,1
    - Dst: ExtractMetadataFromTIFF
      Src: /src/libwebp/imageio/tiffdec.c:265,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/tiffdec.c:267,1
    - Dst: MetadataFree
      Src: /src/libwebp/imageio/tiffdec.c:268,1
    - Dst: WebPPictureFree
      Src: /src/libwebp/imageio/tiffdec.c:269,1
    - Dst: TIFFClose
      Src: /src/libwebp/imageio/tiffdec.c:274,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 81
    argCount: 5
    argNames:
    - data
    - data_size
    - pic
    - keep_alpha
    - metadata
    argTypes:
    - uint8_t*
    - size_t
    - WebPPicture*
    - int
    - Metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 153
    functionDepth: 5
    functionLinenumber: 153
    functionLinenumberEnd: 276
    functionName: ReadTIFF
    functionSourceFile: /src/libwebp/imageio/tiffdec.c
    functionUses: 0
    functionsReached:
    - ExtractMetadataFromTIFF
    - TIFFReadRGBAImageOriented
    - TIFFGetFieldDefaulted
    - TIFFClose
    - TIFFNumberOfDirectories
    - MetadataFree
    - MultARGBRow
    - fprintf
    - WebPPictureImportRGBX
    - _TIFFmalloc
    - ImgIoUtilCheckSizeArgumentsOverflow
    - WebPPictureImportRGBA
    - TIFFClientOpen
    - _TIFFfree
    - WebPPictureFree
    - TIFFGetField
    - TIFFSwabArrayOfLong
    linkageType: ''
    returnType: int
    signature: "int ReadTIFF(const uint8_t* const data, size_t data_size,\n             WebPPicture*
      const pic, int keep_alpha, Metadata* const metadata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/imageio/tiffdec.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - data
    - data_size
    - pic
    - keep_alpha
    - metadata
    argTypes:
    - uint8_t*
    - size_t
    - struct WebPPicture*
    - int
    - struct Metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 290
    functionName: ReadTIFF
    functionSourceFile: /src/libwebp/imageio/tiffdec.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int ReadTIFF(const uint8_t* const data, size_t data_size,\n             struct
      WebPPicture* const pic, int keep_alpha,\n             struct Metadata* const
      metadata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: METADATA_OFFSET
    functionSourceFile: /src/libwebp/imageio/metadata.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: METADATA_OFFSET(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jpeg_save_markers
      Src: /src/libwebp/imageio/jpegdec.c:50,1
    - Dst: jpeg_save_markers
      Src: /src/libwebp/imageio/jpegdec.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dinfo
    argTypes:
    - j_decompress_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: SaveMetadataMarkers
    functionSourceFile: /src/libwebp/imageio/jpegdec.c
    functionUses: 0
    functionsReached:
    - jpeg_save_markers
    linkageType: ''
    returnType: void
    signature: void SaveMetadataMarkers(j_decompress_ptr dinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: CompareICCPSegments
    functionSourceFile: /src/libwebp/imageio/jpegdec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CompareICCPSegments(const void* a, const void* b)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/imageio/jpegdec.c:75,1
    - Dst: memcmp
      Src: /src/libwebp/imageio/jpegdec.c:78,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/jpegdec.c:86,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/jpegdec.c:96,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/jpegdec.c:103,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/jpegdec.c:118,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/jpegdec.c:123,1
    - Dst: qsort
      Src: /src/libwebp/imageio/jpegdec.c:130,1
    - Dst: malloc
      Src: /src/libwebp/imageio/jpegdec.c:133,1
    - Dst: memcpy
      Src: /src/libwebp/imageio/jpegdec.c:141,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 2
    argNames:
    - dinfo
    - iccp
    argTypes:
    - j_decompress_ptr
    - MetadataPayload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 147
    functionName: StoreICCP
    functionSourceFile: /src/libwebp/imageio/jpegdec.c
    functionUses: 0
    functionsReached:
    - malloc
    - memcpy
    - qsort
    - fprintf
    - memset
    - memcmp
    linkageType: ''
    returnType: int
    signature: int StoreICCP(j_decompress_ptr dinfo, MetadataPayload* const iccp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: METADATA_OFFSET
      Src: /src/libwebp/imageio/jpegdec.c:160,1
    - Dst: METADATA_OFFSET
      Src: /src/libwebp/imageio/jpegdec.c:163,1
    - Dst: StoreICCP
      Src: /src/libwebp/imageio/jpegdec.c:168,1
    - Dst: memcmp
      Src: /src/libwebp/imageio/jpegdec.c:175,1
    - Dst: MetadataCopy
      Src: /src/libwebp/imageio/jpegdec.c:186,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/jpegdec.c:188,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - dinfo
    - metadata
    argTypes:
    - j_decompress_ptr
    - Metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 151
    functionDepth: 4
    functionLinenumber: 151
    functionLinenumberEnd: 195
    functionName: ExtractMetadataFromJPEG
    functionSourceFile: /src/libwebp/imageio/jpegdec.c
    functionUses: 0
    functionsReached:
    - METADATA_OFFSET
    - StoreICCP
    - fprintf
    - MetadataCopy
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int ExtractMetadataFromJPEG(j_decompress_ptr dinfo,\n                                   Metadata*
      const metadata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/imageio/jpegdec.c:216,1
    - Dst: j_common_ptr::err::output_message
      Src: /src/libwebp/imageio/jpegdec.c:217,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/jpegdec.c:219,1
    - Dst: longjmp
      Src: /src/libwebp/imageio/jpegdec.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - dinfo
    argTypes:
    - j_common_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 223
    functionName: my_error_exit
    functionSourceFile: /src/libwebp/imageio/jpegdec.c
    functionUses: 0
    functionsReached:
    - longjmp
    - j_common_ptr::err::output_message
    - fprintf
    linkageType: ''
    returnType: void
    signature: void my_error_exit(j_common_ptr dinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_decompress_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: ContextInit
    functionSourceFile: /src/libwebp/imageio/jpegdec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ContextInit(j_decompress_ptr cinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERREXIT
      Src: /src/libwebp/imageio/jpegdec.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_decompress_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: ContextFill
    functionSourceFile: /src/libwebp/imageio/jpegdec.c
    functionUses: 0
    functionsReached:
    - ERREXIT
    linkageType: ''
    returnType: boolean
    signature: boolean ContextFill(j_decompress_ptr cinfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cinfo
    - jump_size
    argTypes:
    - j_decompress_ptr
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 251
    functionName: ContextSkip
    functionSourceFile: /src/libwebp/imageio/jpegdec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ContextSkip(j_decompress_ptr cinfo, long jump_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - j_decompress_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: ContextTerm
    functionSourceFile: /src/libwebp/imageio/jpegdec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ContextTerm(j_decompress_ptr cinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - cinfo
    - ctx
    argTypes:
    - struct jpeg_decompress_struct*
    - JPEGReadContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 265
    functionName: ContextSetup
    functionSourceFile: /src/libwebp/imageio/jpegdec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ContextSetup(volatile struct jpeg_decompress_struct* const cinfo,\n
      \                        JPEGReadContext* const ctx)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/imageio/jpegdec.c:281,1
    - Dst: memset
      Src: /src/libwebp/imageio/jpegdec.c:285,1
    - Dst: jpeg_std_error
      Src: /src/libwebp/imageio/jpegdec.c:286,1
    - Dst: setjmp
      Src: /src/libwebp/imageio/jpegdec.c:289,1
    - Dst: MetadataFree
      Src: /src/libwebp/imageio/jpegdec.c:291,1
    - Dst: jpeg_destroy_decompress
      Src: /src/libwebp/imageio/jpegdec.c:292,1
    - Dst: jpeg_create_decompress
      Src: /src/libwebp/imageio/jpegdec.c:296,1
    - Dst: ContextSetup
      Src: /src/libwebp/imageio/jpegdec.c:297,1
    - Dst: SaveMetadataMarkers
      Src: /src/libwebp/imageio/jpegdec.c:298,1
    - Dst: jpeg_read_header
      Src: /src/libwebp/imageio/jpegdec.c:299,1
    - Dst: jpeg_start_decompress
      Src: /src/libwebp/imageio/jpegdec.c:304,1
    - Dst: ImgIoUtilCheckSizeArgumentsOverflow
      Src: /src/libwebp/imageio/jpegdec.c:315,1
    - Dst: malloc
      Src: /src/libwebp/imageio/jpegdec.c:319,1
    - Dst: jpeg_read_scanlines
      Src: /src/libwebp/imageio/jpegdec.c:326,1
    - Dst: ExtractMetadataFromJPEG
      Src: /src/libwebp/imageio/jpegdec.c:333,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/jpegdec.c:335,1
    - Dst: jpeg_finish_decompress
      Src: /src/libwebp/imageio/jpegdec.c:340,1
    - Dst: jpeg_destroy_decompress
      Src: /src/libwebp/imageio/jpegdec.c:341,1
    - Dst: WebPPictureImportRGB
      Src: /src/libwebp/imageio/jpegdec.c:346,1
    - Dst: MetadataFree
      Src: /src/libwebp/imageio/jpegdec.c:350,1
    - Dst: free
      Src: /src/libwebp/imageio/jpegdec.c:354,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 5
    argNames:
    - data
    - data_size
    - pic
    - keep_alpha
    - metadata
    argTypes:
    - uint8_t*
    - size_t
    - WebPPicture*
    - int
    - Metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 267
    functionDepth: 5
    functionLinenumber: 267
    functionLinenumberEnd: 356
    functionName: ReadJPEG
    functionSourceFile: /src/libwebp/imageio/jpegdec.c
    functionUses: 0
    functionsReached:
    - malloc
    - jpeg_read_header
    - WebPPictureImportRGB
    - MetadataFree
    - ExtractMetadataFromJPEG
    - fprintf
    - free
    - memset
    - ImgIoUtilCheckSizeArgumentsOverflow
    - jpeg_std_error
    - setjmp
    - ContextSetup
    - jpeg_start_decompress
    - jpeg_create_decompress
    - jpeg_read_scanlines
    - jpeg_finish_decompress
    - SaveMetadataMarkers
    - jpeg_destroy_decompress
    linkageType: ''
    returnType: int
    signature: "int ReadJPEG(const uint8_t* const data, size_t data_size,\n             WebPPicture*
      const pic, int keep_alpha, Metadata* const metadata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/imageio/jpegdec.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - data
    - data_size
    - pic
    - keep_alpha
    - metadata
    argTypes:
    - uint8_t*
    - size_t
    - struct WebPPicture*
    - int
    - struct Metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 370
    functionName: ReadJPEG
    functionSourceFile: /src/libwebp/imageio/jpegdec.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int ReadJPEG(const uint8_t* const data, size_t data_size,\n             struct
      WebPPicture* const pic, int keep_alpha,\n             struct Metadata* const
      metadata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 36
    functionName: WebPGetEnabledInputFileFormats
    functionSourceFile: /src/libwebp/imageio/image_dec.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * WebPGetEnabledInputFileFormats(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: GetBE32
    functionSourceFile: /src/libwebp/imageio/image_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEBP_INLINE
    signature: WEBP_INLINE GetBE32(const uint8_t buf[])
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GetBE32
      Src: /src/libwebp/imageio/image_dec.c:46,1
    - Dst: GetBE32
      Src: /src/libwebp/imageio/image_dec.c:47,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 2
    argNames:
    - data
    - data_size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 63
    functionName: WebPGuessImageType
    functionSourceFile: /src/libwebp/imageio/image_dec.c
    functionUses: 2
    functionsReached:
    - GetBE32
    linkageType: ''
    returnType: WebPInputFileFormat
    signature: "WebPInputFileFormat WebPGuessImageType(const uint8_t* const data,\n
      \                                      size_t data_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - data
    - data_size
    - pic
    - keep_alpha
    - metadata
    argTypes:
    - uint8_t*
    - size_t
    - struct WebPPicture*
    - int
    - struct Metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: FailReader
    functionSourceFile: /src/libwebp/imageio/image_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int FailReader(const uint8_t* const data, size_t data_size,\n                      struct
      WebPPicture* const pic, int keep_alpha,\n                      struct Metadata*
      const metadata)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - format
    argTypes:
    - WebPInputFileFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 91
    functionName: WebPGetImageReader
    functionSourceFile: /src/libwebp/imageio/image_dec.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: WebPImageReader
    signature: WebPImageReader WebPGetImageReader(WebPInputFileFormat format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WebPGetImageReader
      Src: /src/libwebp/imageio/image_dec.c:95,1
    - Dst: WebPGuessImageType
      Src: /src/libwebp/imageio/image_dec.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - data_size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: WebPGuessImageReader
    functionSourceFile: /src/libwebp/imageio/image_dec.c
    functionUses: 7
    functionsReached:
    - WebPGuessImageType
    - WebPGetImageReader
    linkageType: ''
    returnType: WebPImageReader
    signature: "WebPImageReader WebPGuessImageReader(const uint8_t* const data,\n
      \                                    size_t data_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libwebp/imageio/metadata.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - metadata
    argTypes:
    - Metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: MetadataInit
    functionSourceFile: /src/libwebp/imageio/metadata.c
    functionUses: 3
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void MetadataInit(Metadata* const metadata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libwebp/imageio/metadata.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - payload
    argTypes:
    - MetadataPayload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: MetadataPayloadDelete
    functionSourceFile: /src/libwebp/imageio/metadata.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void MetadataPayloadDelete(MetadataPayload* const payload)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MetadataPayloadDelete
      Src: /src/libwebp/imageio/metadata.c:34,1
    - Dst: MetadataPayloadDelete
      Src: /src/libwebp/imageio/metadata.c:35,1
    - Dst: MetadataPayloadDelete
      Src: /src/libwebp/imageio/metadata.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - metadata
    argTypes:
    - Metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: MetadataFree
    functionSourceFile: /src/libwebp/imageio/metadata.c
    functionUses: 5
    functionsReached:
    - MetadataPayloadDelete
    linkageType: ''
    returnType: void
    signature: void MetadataFree(Metadata* const metadata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libwebp/imageio/metadata.c:42,1
    - Dst: memcpy
      Src: /src/libwebp/imageio/metadata.c:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - metadata
    - metadata_len
    - payload
    argTypes:
    - char*
    - size_t
    - MetadataPayload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: MetadataCopy
    functionSourceFile: /src/libwebp/imageio/metadata.c
    functionUses: 3
    functionsReached:
    - malloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int MetadataCopy(const char* metadata, size_t metadata_len,\n                 MetadataPayload*
      const payload)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 5
    argNames:
    - data
    - 'off'
    - data_size
    - out
    - out_size
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - char[]
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: ReadLine
    functionSourceFile: /src/libwebp/imageio/pnmdec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t ReadLine(const uint8_t* const data, size_t off, size_t data_size,\n
      \                      char out[MAX_LINE_SIZE + 1], size_t* const out_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/imageio/pnmdec.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flag
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: FlagError
    functionSourceFile: /src/libwebp/imageio/pnmdec.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: size_t
    signature: size_t FlagError(const char flag[])
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libwebp/imageio/pnmdec.c:83,1
    - Dst: ReadLine
      Src: /src/libwebp/imageio/pnmdec.c:85,1
    - Dst: sscanf
      Src: /src/libwebp/imageio/pnmdec.c:87,1
    - Dst: FlagError
      Src: /src/libwebp/imageio/pnmdec.c:88,1
    - Dst: sscanf
      Src: /src/libwebp/imageio/pnmdec.c:91,1
    - Dst: FlagError
      Src: /src/libwebp/imageio/pnmdec.c:92,1
    - Dst: sscanf
      Src: /src/libwebp/imageio/pnmdec.c:95,1
    - Dst: FlagError
      Src: /src/libwebp/imageio/pnmdec.c:96,1
    - Dst: sscanf
      Src: /src/libwebp/imageio/pnmdec.c:99,1
    - Dst: FlagError
      Src: /src/libwebp/imageio/pnmdec.c:100,1
    - Dst: strcmp
      Src: /src/libwebp/imageio/pnmdec.c:103,1
    - Dst: strcmp
      Src: /src/libwebp/imageio/pnmdec.c:106,1
    - Dst: strcmp
      Src: /src/libwebp/imageio/pnmdec.c:109,1
    - Dst: strcmp
      Src: /src/libwebp/imageio/pnmdec.c:112,1
    - Dst: strcmp
      Src: /src/libwebp/imageio/pnmdec.c:115,1
    - Dst: strlen
      Src: /src/libwebp/imageio/pnmdec.c:119,1
    - Dst: snprintf
      Src: /src/libwebp/imageio/pnmdec.c:121,1
    - Dst: strlen
      Src: /src/libwebp/imageio/pnmdec.c:122,1
    - Dst: isprint
      Src: /src/libwebp/imageio/pnmdec.c:124,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/pnmdec.c:126,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/pnmdec.c:131,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/pnmdec.c:139,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 2
    argNames:
    - info
    - 'off'
    argTypes:
    - PNMInfo*
    - size_t
    assertStmts:
    - condition: (info != NULL)
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/libwebp/imageio/pnmdec.c
    constantsTouched: []
    func_position:
      end: 144
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 144
    functionName: ReadPAMFields
    functionSourceFile: /src/libwebp/imageio/pnmdec.c
    functionUses: 0
    functionsReached:
    - isprint
    - assert
    - strlen
    - strcmp
    - fprintf
    - snprintf
    - FlagError
    - ReadLine
    - sscanf
    linkageType: ''
    returnType: size_t
    signature: size_t ReadPAMFields(PNMInfo* const info, size_t off)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ReadLine
      Src: /src/libwebp/imageio/pnmdec.c:160,1
    - Dst: sscanf
      Src: /src/libwebp/imageio/pnmdec.c:161,1
    - Dst: ReadPAMFields
      Src: /src/libwebp/imageio/pnmdec.c:163,1
    - Dst: ReadLine
      Src: /src/libwebp/imageio/pnmdec.c:165,1
    - Dst: sscanf
      Src: /src/libwebp/imageio/pnmdec.c:166,1
    - Dst: ReadLine
      Src: /src/libwebp/imageio/pnmdec.c:169,1
    - Dst: sscanf
      Src: /src/libwebp/imageio/pnmdec.c:170,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 31
    argCount: 1
    argNames:
    - info
    argTypes:
    - PNMInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 183
    functionName: ReadHeader
    functionSourceFile: /src/libwebp/imageio/pnmdec.c
    functionUses: 1
    functionsReached:
    - ReadLine
    - sscanf
    - ReadPAMFields
    linkageType: ''
    returnType: size_t
    signature: size_t ReadHeader(PNMInfo* const info)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ReadHeader
      Src: /src/libwebp/imageio/pnmdec.c:196,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/pnmdec.c:198,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/pnmdec.c:203,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/pnmdec.c:210,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/pnmdec.c:217,1
    - Dst: ImgIoUtilCheckSizeArgumentsOverflow
      Src: /src/libwebp/imageio/pnmdec.c:225,1
    - Dst: malloc
      Src: /src/libwebp/imageio/pnmdec.c:229,1
    - Dst: assert
      Src: /src/libwebp/imageio/pnmdec.c:238,1
    - Dst: memcpy
      Src: /src/libwebp/imageio/pnmdec.c:242,1
    - Dst: assert
      Src: /src/libwebp/imageio/pnmdec.c:244,1
    - Dst: WebPPictureImportRGBA
      Src: /src/libwebp/imageio/pnmdec.c:287,1
    - Dst: WebPPictureImportRGB
      Src: /src/libwebp/imageio/pnmdec.c:288,1
    - Dst: free
      Src: /src/libwebp/imageio/pnmdec.c:293,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 93
    argCount: 5
    argNames:
    - data
    - data_size
    - pic
    - keep_alpha
    - metadata
    argTypes:
    - uint8_t*
    - size_t
    - WebPPicture*
    - int
    - struct Metadata*
    assertStmts:
    - condition: (offset <= data_size)
      pos:
        line_end: 237
        line_start: 237
        source_file: /src/libwebp/imageio/pnmdec.c
    - condition: (info.depth == 4 && !keep_alpha)
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/libwebp/imageio/pnmdec.c
    constantsTouched: []
    func_position:
      end: 298
      start: 185
    functionDepth: 5
    functionLinenumber: 185
    functionLinenumberEnd: 298
    functionName: ReadPNM
    functionSourceFile: /src/libwebp/imageio/pnmdec.c
    functionUses: 0
    functionsReached:
    - malloc
    - WebPPictureImportRGB
    - ReadHeader
    - assert
    - memcpy
    - fprintf
    - free
    - ImgIoUtilCheckSizeArgumentsOverflow
    - WebPPictureImportRGBA
    linkageType: ''
    returnType: int
    signature: "int ReadPNM(const uint8_t* const data, size_t data_size, WebPPicture*
      const pic,\n            int keep_alpha, struct Metadata* const metadata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maj
    - ','
    - min
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: LOCAL_PNG_PREREQ
    functionSourceFile: /src/libwebp/imageio/pngdec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCAL_PNG_PREREQ(maj, min)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/imageio/pngdec.c:38,1
    - Dst: longjmp
      Src: /src/libwebp/imageio/pngdec.c:39,1
    - Dst: png_jmpbuf
      Src: /src/libwebp/imageio/pngdec.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - png
    - error
    argTypes:
    - png_structp
    - png_const_charp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: error_function
    functionSourceFile: /src/libwebp/imageio/pngdec.c
    functionUses: 0
    functionsReached:
    - longjmp
    - fprintf
    - png_jmpbuf
    linkageType: ''
    returnType: void
    signature: void error_function(png_structp png, png_const_charp error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ImgIoUtilCheckSizeArgumentsOverflow
      Src: /src/libwebp/imageio/pngdec.c:51,1
    - Dst: malloc
      Src: /src/libwebp/imageio/pngdec.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - png_ptr
    - size
    argTypes:
    - png_structp
    - LocalPngAllocSize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: MallocFunc
    functionSourceFile: /src/libwebp/imageio/pngdec.c
    functionUses: 0
    functionsReached:
    - malloc
    - ImgIoUtilCheckSizeArgumentsOverflow
    linkageType: ''
    returnType: png_voidp
    signature: png_voidp MallocFunc(png_structp png_ptr, LocalPngAllocSize size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libwebp/imageio/pngdec.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - png_ptr
    - ptr
    argTypes:
    - png_structp
    - png_voidp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: FreeFunc
    functionSourceFile: /src/libwebp/imageio/pngdec.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void FreeFunc(png_structp png_ptr, png_voidp ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libwebp/imageio/pngdec.c:73,1
    - Dst: strtol
      Src: /src/libwebp/imageio/pngdec.c:85,1
    - Dst: free
      Src: /src/libwebp/imageio/pngdec.c:91,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - hexstring
    - expected_length
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 95
    functionName: HexStringToBytes
    functionSourceFile: /src/libwebp/imageio/pngdec.c
    functionUses: 0
    functionsReached:
    - malloc
    - strtol
    - free
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t * HexStringToBytes(const char* hexstring,\n                                 size_t
      expected_length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/imageio/pngdec.c:108,1
    - Dst: strtol
      Src: /src/libwebp/imageio/pngdec.c:116,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/pngdec.c:118,1
    - Dst: HexStringToBytes
      Src: /src/libwebp/imageio/pngdec.c:125,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - profile
    - profile_len
    - payload
    argTypes:
    - char*
    - size_t
    - MetadataPayload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 97
    functionDepth: 4
    functionLinenumber: 97
    functionLinenumberEnd: 129
    functionName: ProcessRawProfile
    functionSourceFile: /src/libwebp/imageio/pngdec.c
    functionUses: 0
    functionsReached:
    - strtol
    - HexStringToBytes
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int ProcessRawProfile(const char* profile, size_t profile_len,\n                             MetadataPayload*
      const payload)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: png_get_text
      Src: /src/libwebp/imageio/pngdec.c:162,1
    - Dst: png_get_eXIf_1
      Src: /src/libwebp/imageio/pngdec.c:172,1
    - Dst: MetadataCopy
      Src: /src/libwebp/imageio/pngdec.c:173,1
    - Dst: strcmp
      Src: /src/libwebp/imageio/pngdec.c:182,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/pngdec.c:201,1
    - Dst: process
      Src: /src/libwebp/imageio/pngdec.c:202,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/pngdec.c:204,1
    - Dst: LOCAL_PNG_PREREQ
      Src: /src/libwebp/imageio/pngdec.c:216,1
    - Dst: png_get_iCCP
      Src: /src/libwebp/imageio/pngdec.c:223,1
    - Dst: MetadataCopy
      Src: /src/libwebp/imageio/pngdec.c:225,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 4
    argNames:
    - png
    - head_info
    - end_info
    - metadata
    argTypes:
    - png_structp
    - png_infop
    - png_infop
    - Metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 154
    functionDepth: 4
    functionLinenumber: 154
    functionLinenumberEnd: 231
    functionName: ExtractMetadataFromPNG
    functionSourceFile: /src/libwebp/imageio/pngdec.c
    functionUses: 0
    functionsReached:
    - png_get_iCCP
    - png_get_text
    - LOCAL_PNG_PREREQ
    - fprintf
    - strcmp
    - MetadataCopy
    - png_get_eXIf_1
    - process
    linkageType: ''
    returnType: int
    signature: "int ExtractMetadataFromPNG(png_structp png, png_infop const head_info,\n
      \                                 png_infop const end_info,\n                                  Metadata*
      const metadata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: png_get_io_ptr
      Src: /src/libwebp/imageio/pngdec.c:240,1
    - Dst: png_error
      Src: /src/libwebp/imageio/pngdec.c:242,1
    - Dst: memcpy
      Src: /src/libwebp/imageio/pngdec.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - png_ptr
    - data
    - length
    argTypes:
    - png_structp
    - png_bytep
    - png_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 246
    functionName: ReadFunc
    functionSourceFile: /src/libwebp/imageio/pngdec.c
    functionUses: 0
    functionsReached:
    - memcpy
    - png_error
    - png_get_io_ptr
    linkageType: ''
    returnType: void
    signature: void ReadFunc(png_structp png_ptr, png_bytep data, png_size_t length)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: png_create_read_struct_2
      Src: /src/libwebp/imageio/pngdec.c:269,1
    - Dst: png_set_error_fn
      Src: /src/libwebp/imageio/pngdec.c:273,1
    - Dst: setjmp
      Src: /src/libwebp/imageio/pngdec.c:274,1
    - Dst: png_jmpbuf
      Src: /src/libwebp/imageio/pngdec.c:274,1
    - Dst: MetadataFree
      Src: /src/libwebp/imageio/pngdec.c:276,1
    - Dst: LOCAL_PNG_PREREQ
      Src: /src/libwebp/imageio/pngdec.c:280,1
    - Dst: LOCAL_PNG_PREREQ
      Src: /src/libwebp/imageio/pngdec.c:281,1
    - Dst: png_get_chunk_malloc_max
      Src: /src/libwebp/imageio/pngdec.c:284,1
    - Dst: png_set_chunk_malloc_max
      Src: /src/libwebp/imageio/pngdec.c:285,1
    - Dst: png_create_info_struct
      Src: /src/libwebp/imageio/pngdec.c:289,1
    - Dst: png_create_info_struct
      Src: /src/libwebp/imageio/pngdec.c:291,1
    - Dst: png_set_read_fn
      Src: /src/libwebp/imageio/pngdec.c:294,1
    - Dst: png_read_info
      Src: /src/libwebp/imageio/pngdec.c:295,1
    - Dst: png_get_IHDR
      Src: /src/libwebp/imageio/pngdec.c:296,1
    - Dst: png_set_strip_16
      Src: /src/libwebp/imageio/pngdec.c:300,1
    - Dst: png_set_packing
      Src: /src/libwebp/imageio/pngdec.c:301,1
    - Dst: png_set_palette_to_rgb
      Src: /src/libwebp/imageio/pngdec.c:303,1
    - Dst: png_set_expand_gray_1_2_4_to_8
      Src: /src/libwebp/imageio/pngdec.c:308,1
    - Dst: png_set_gray_to_rgb
      Src: /src/libwebp/imageio/pngdec.c:310,1
    - Dst: png_get_valid
      Src: /src/libwebp/imageio/pngdec.c:312,1
    - Dst: png_set_tRNS_to_alpha
      Src: /src/libwebp/imageio/pngdec.c:313,1
    - Dst: png_get_sRGB
      Src: /src/libwebp/imageio/pngdec.c:320,1
    - Dst: png_get_gAMA
      Src: /src/libwebp/imageio/pngdec.c:321,1
    - Dst: png_set_gamma
      Src: /src/libwebp/imageio/pngdec.c:322,1
    - Dst: png_set_strip_alpha
      Src: /src/libwebp/imageio/pngdec.c:327,1
    - Dst: png_set_interlace_handling
      Src: /src/libwebp/imageio/pngdec.c:330,1
    - Dst: png_read_update_info
      Src: /src/libwebp/imageio/pngdec.c:331,1
    - Dst: png_get_channels
      Src: /src/libwebp/imageio/pngdec.c:333,1
    - Dst: ImgIoUtilCheckSizeArgumentsOverflow
      Src: /src/libwebp/imageio/pngdec.c:339,1
    - Dst: malloc
      Src: /src/libwebp/imageio/pngdec.c:343,1
    - Dst: png_read_rows
      Src: /src/libwebp/imageio/pngdec.c:348,1
    - Dst: png_read_end
      Src: /src/libwebp/imageio/pngdec.c:352,1
    - Dst: ExtractMetadataFromPNG
      Src: /src/libwebp/imageio/pngdec.c:355,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/pngdec.c:356,1
    - Dst: WebPPictureImportRGBA
      Src: /src/libwebp/imageio/pngdec.c:362,1
    - Dst: WebPPictureImportRGB
      Src: /src/libwebp/imageio/pngdec.c:363,1
    - Dst: png_destroy_read_struct
      Src: /src/libwebp/imageio/pngdec.c:371,1
    - Dst: free
      Src: /src/libwebp/imageio/pngdec.c:374,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 96
    argCount: 5
    argNames:
    - data
    - data_size
    - pic
    - keep_alpha
    - metadata
    argTypes:
    - uint8_t*
    - size_t
    - struct WebPPicture*
    - int
    - struct Metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 248
    functionDepth: 5
    functionLinenumber: 248
    functionLinenumberEnd: 376
    functionName: ReadPNG
    functionSourceFile: /src/libwebp/imageio/pngdec.c
    functionUses: 0
    functionsReached:
    - malloc
    - png_set_interlace_handling
    - LOCAL_PNG_PREREQ
    - WebPPictureImportRGB
    - png_set_packing
    - fprintf
    - png_get_gAMA
    - ImgIoUtilCheckSizeArgumentsOverflow
    - WebPPictureImportRGBA
    - setjmp
    - png_get_chunk_malloc_max
    - png_get_valid
    - png_set_tRNS_to_alpha
    - png_get_channels
    - png_set_error_fn
    - MetadataFree
    - png_read_rows
    - png_set_chunk_malloc_max
    - png_read_info
    - png_set_gray_to_rgb
    - png_set_gamma
    - png_set_palette_to_rgb
    - png_set_expand_gray_1_2_4_to_8
    - png_create_read_struct_2
    - png_create_info_struct
    - png_destroy_read_struct
    - png_set_strip_16
    - ExtractMetadataFromPNG
    - png_set_strip_alpha
    - png_read_update_info
    - png_get_sRGB
    - png_get_IHDR
    - png_jmpbuf
    - png_read_end
    - free
    - png_set_read_fn
    linkageType: ''
    returnType: int
    signature: "int ReadPNG(const uint8_t* const data, size_t data_size,\n            struct
      WebPPicture* const pic, int keep_alpha,\n            struct Metadata* const
      metadata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/imageio/pngdec.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - data
    - data_size
    - pic
    - keep_alpha
    - metadata
    argTypes:
    - uint8_t*
    - size_t
    - struct WebPPicture*
    - int
    - struct Metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 390
    functionName: ReadPNG
    functionSourceFile: /src/libwebp/imageio/pngdec.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int ReadPNG(const uint8_t* const data, size_t data_size,\n            struct
      WebPPicture* const pic, int keep_alpha,\n            struct Metadata* const
      metadata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: IFS
    functionSourceFile: /src/libwebp/imageio/wicdec.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IFS(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - name
    - ','
    - l
    - ','
    - w1
    - ','
    - w2
    - ','
    - b1
    - ','
    - b2
    - ','
    - b3
    - ','
    - b4
    - ','
    - b5
    - ','
    - b6
    - ','
    - b7
    - ','
    - b8
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: WEBP_DEFINE_GUID
    functionSourceFile: /src/libwebp/imageio/wicdec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEBP_DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: MAKE_REFGUID
    functionSourceFile: /src/libwebp/imageio/wicdec.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAKE_REFGUID(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: MAKE_REFGUID
    functionSourceFile: /src/libwebp/imageio/wicdec.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAKE_REFGUID(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WSTRCMP
      Src: /src/libwebp/imageio/wicdec.c:84,1
    - Dst: ImgIoUtilReadFile
      Src: /src/libwebp/imageio/wicdec.c:87,1
    - Dst: GlobalAlloc
      Src: /src/libwebp/imageio/wicdec.c:89,1
    - Dst: GlobalLock
      Src: /src/libwebp/imageio/wicdec.c:91,1
    - Dst: memcpy
      Src: /src/libwebp/imageio/wicdec.c:93,1
    - Dst: GlobalUnlock
      Src: /src/libwebp/imageio/wicdec.c:94,1
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:95,1
    - Dst: CreateStreamOnHGlobal
      Src: /src/libwebp/imageio/wicdec.c:95,1
    - Dst: free
      Src: /src/libwebp/imageio/wicdec.c:102,1
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:107,1
    - Dst: SHCreateStreamOnFile
      Src: /src/libwebp/imageio/wicdec.c:107,1
    - Dst: FAILED
      Src: /src/libwebp/imageio/wicdec.c:110,1
    - Dst: _ftprintf
      Src: /src/libwebp/imageio/wicdec.c:111,1
    - Dst: _T
      Src: /src/libwebp/imageio/wicdec.c:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - filename
    - stream
    argTypes:
    - char*
    - IStream**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 82
    functionDepth: 5
    functionLinenumber: 82
    functionLinenumberEnd: 115
    functionName: OpenInputStream
    functionSourceFile: /src/libwebp/imageio/wicdec.c
    functionUses: 0
    functionsReached:
    - ImgIoUtilReadFile
    - CreateStreamOnHGlobal
    - FAILED
    - _ftprintf
    - memcpy
    - GlobalLock
    - GlobalAlloc
    - free
    - WSTRCMP
    - SHCreateStreamOnFile
    - _T
    - GlobalUnlock
    - IFS
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT OpenInputStream(const char* filename, IStream** stream)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:130,1
    - Dst: IWICBitmapFrameDecode_GetColorContexts
      Src: /src/libwebp/imageio/wicdec.c:130,1
    - Dst: FAILED
      Src: /src/libwebp/imageio/wicdec.c:131,1
    - Dst: calloc
      Src: /src/libwebp/imageio/wicdec.c:136,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/wicdec.c:138,1
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:139,1
    - Dst: IWICImagingFactory_CreateColorContext
      Src: /src/libwebp/imageio/wicdec.c:139,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/wicdec.c:142,1
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:144,1
    - Dst: IWICBitmapFrameDecode_GetColorContexts
      Src: /src/libwebp/imageio/wicdec.c:144,1
    - Dst: assert
      Src: /src/libwebp/imageio/wicdec.c:146,1
    - Dst: FAILED
      Src: /src/libwebp/imageio/wicdec.c:146,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/wicdec.c:147,1
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:149,1
    - Dst: IWICColorContext_GetType
      Src: /src/libwebp/imageio/wicdec.c:149,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/wicdec.c:150,1
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:152,1
    - Dst: IWICColorContext_GetProfileBytes
      Src: /src/libwebp/imageio/wicdec.c:152,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/wicdec.c:154,1
    - Dst: malloc
      Src: /src/libwebp/imageio/wicdec.c:155,1
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:161,1
    - Dst: IWICColorContext_GetProfileBytes
      Src: /src/libwebp/imageio/wicdec.c:161,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/wicdec.c:163,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/wicdec.c:164,1
    - Dst: IUnknown_Release
      Src: /src/libwebp/imageio/wicdec.c:174,1
    - Dst: free
      Src: /src/libwebp/imageio/wicdec.c:176,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 3
    argNames:
    - factory
    - frame
    - iccp
    argTypes:
    - IWICImagingFactory*
    - IWICBitmapFrameDecode*
    - MetadataPayload*
    assertStmts:
    - condition: (FAILED(hr) || num_color_contexts <= count)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/libwebp/imageio/wicdec.c
    constantsTouched: []
    func_position:
      end: 178
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 178
    functionName: ExtractICCP
    functionSourceFile: /src/libwebp/imageio/wicdec.c
    functionUses: 0
    functionsReached:
    - IWICBitmapFrameDecode_GetColorContexts
    - IWICColorContext_GetProfileBytes
    - malloc
    - FAILED
    - calloc
    - assert
    - IUnknown_Release
    - fprintf
    - free
    - IWICColorContext_GetType
    - IFS
    - SUCCEEDED
    - IWICImagingFactory_CreateColorContext
    linkageType: ''
    returnType: HRESULT
    signature: "HRESULT ExtractICCP(IWICImagingFactory* const factory,\n                           IWICBitmapFrameDecode*
      const frame,\n                           MetadataPayload* const iccp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExtractICCP
      Src: /src/libwebp/imageio/wicdec.c:184,1
    - Dst: FAILED
      Src: /src/libwebp/imageio/wicdec.c:185,1
    - Dst: MetadataFree
      Src: /src/libwebp/imageio/wicdec.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - factory
    - frame
    - metadata
    argTypes:
    - IWICImagingFactory*
    - IWICBitmapFrameDecode*
    - Metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: ExtractMetadata
    functionSourceFile: /src/libwebp/imageio/wicdec.c
    functionUses: 1
    functionsReached:
    - ExtractICCP
    - MetadataFree
    - FAILED
    linkageType: ''
    returnType: HRESULT
    signature: "HRESULT ExtractMetadata(IWICImagingFactory* const factory,\n                               IWICBitmapFrameDecode*
      const frame,\n                               Metadata* const metadata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsEqualGUID
      Src: /src/libwebp/imageio/wicdec.c:192,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:192,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:193,1
    - Dst: IsEqualGUID
      Src: /src/libwebp/imageio/wicdec.c:194,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:194,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:195,1
    - Dst: IsEqualGUID
      Src: /src/libwebp/imageio/wicdec.c:196,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:196,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:197,1
    - Dst: IsEqualGUID
      Src: /src/libwebp/imageio/wicdec.c:198,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:198,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - pixel_format
    argTypes:
    - GUID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 200
    functionName: HasPalette
    functionSourceFile: /src/libwebp/imageio/wicdec.c
    functionUses: 0
    functionsReached:
    - MAKE_REFGUID
    - IsEqualGUID
    linkageType: ''
    returnType: int
    signature: int HasPalette(GUID pixel_format)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HasPalette
      Src: /src/libwebp/imageio/wicdec.c:206,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/wicdec.c:214,1
    - Dst: IWICImagingFactory_CreatePalette
      Src: /src/libwebp/imageio/wicdec.c:214,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/wicdec.c:215,1
    - Dst: IWICBitmapFrameDecode_CopyPalette
      Src: /src/libwebp/imageio/wicdec.c:215,1
    - Dst: IWICPalette_HasAlpha
      Src: /src/libwebp/imageio/wicdec.c:216,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/wicdec.c:218,1
    - Dst: IWICImagingFactory_CreatePalette
      Src: /src/libwebp/imageio/wicdec.c:218,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/wicdec.c:219,1
    - Dst: IWICBitmapDecoder_CopyPalette
      Src: /src/libwebp/imageio/wicdec.c:219,1
    - Dst: IWICPalette_HasAlpha
      Src: /src/libwebp/imageio/wicdec.c:220,1
    - Dst: IUnknown_Release
      Src: /src/libwebp/imageio/wicdec.c:224,1
    - Dst: IUnknown_Release
      Src: /src/libwebp/imageio/wicdec.c:225,1
    - Dst: IsEqualGUID
      Src: /src/libwebp/imageio/wicdec.c:227,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:227,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:228,1
    - Dst: IsEqualGUID
      Src: /src/libwebp/imageio/wicdec.c:229,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:229,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:230,1
    - Dst: IsEqualGUID
      Src: /src/libwebp/imageio/wicdec.c:231,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:231,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:232,1
    - Dst: IsEqualGUID
      Src: /src/libwebp/imageio/wicdec.c:233,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:233,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:234,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 4
    argNames:
    - factory
    - decoder
    - frame
    - pixel_format
    argTypes:
    - IWICImagingFactory*
    - IWICBitmapDecoder*
    - IWICBitmapFrameDecode*
    - GUID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 237
    functionName: HasAlpha
    functionSourceFile: /src/libwebp/imageio/wicdec.c
    functionUses: 3
    functionsReached:
    - IWICBitmapDecoder_CopyPalette
    - IWICImagingFactory_CreatePalette
    - IUnknown_Release
    - HasPalette
    - IWICPalette_HasAlpha
    - MAKE_REFGUID
    - IWICBitmapFrameDecode_CopyPalette
    - SUCCEEDED
    - IsEqualGUID
    linkageType: ''
    returnType: int
    signature: "int HasAlpha(IWICImagingFactory* const factory,\n                    IWICBitmapDecoder*
      const decoder,\n                    IWICBitmapFrameDecode* const frame, GUID
      pixel_format)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: WEBP_DEFINE_GUID
      Src: /src/libwebp/imageio/wicdec.c:243,1
    - Dst: WEBP_DEFINE_GUID
      Src: /src/libwebp/imageio/wicdec.c:267,1
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:277,1
    - Dst: CoInitialize
      Src: /src/libwebp/imageio/wicdec.c:277,1
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:278,1
    - Dst: CoCreateInstance
      Src: /src/libwebp/imageio/wicdec.c:278,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:279,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:280,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/wicdec.c:282,1
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:288,1
    - Dst: OpenInputStream
      Src: /src/libwebp/imageio/wicdec.c:288,1
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:289,1
    - Dst: IWICImagingFactory_CreateDecoderFromStream
      Src: /src/libwebp/imageio/wicdec.c:289,1
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:291,1
    - Dst: IWICBitmapDecoder_GetFrameCount
      Src: /src/libwebp/imageio/wicdec.c:291,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/wicdec.c:292,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/wicdec.c:294,1
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:302,1
    - Dst: IWICBitmapDecoder_GetFrame
      Src: /src/libwebp/imageio/wicdec.c:302,1
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:303,1
    - Dst: IWICBitmapFrameDecode_GetPixelFormat
      Src: /src/libwebp/imageio/wicdec.c:303,1
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:304,1
    - Dst: IWICBitmapDecoder_GetContainerFormat
      Src: /src/libwebp/imageio/wicdec.c:304,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/wicdec.c:306,1
    - Dst: IsEqualGUID
      Src: /src/libwebp/imageio/wicdec.c:309,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:309,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:310,1
    - Dst: HasAlpha
      Src: /src/libwebp/imageio/wicdec.c:311,1
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:318,1
    - Dst: IWICImagingFactory_CreateFormatConverter
      Src: /src/libwebp/imageio/wicdec.c:318,1
    - Dst: IWICFormatConverter_CanConvert
      Src: /src/libwebp/imageio/wicdec.c:323,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:324,1
    - Dst: MAKE_REFGUID
      Src: /src/libwebp/imageio/wicdec.c:325,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/wicdec.c:326,1
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:330,1
    - Dst: IWICFormatConverter_Initialize
      Src: /src/libwebp/imageio/wicdec.c:330,1
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:335,1
    - Dst: IWICFormatConverter_GetSize
      Src: /src/libwebp/imageio/wicdec.c:335,1
    - Dst: ImgIoUtilCheckSizeArgumentsOverflow
      Src: /src/libwebp/imageio/wicdec.c:338,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/wicdec.c:342,1
    - Dst: malloc
      Src: /src/libwebp/imageio/wicdec.c:343,1
    - Dst: IFS
      Src: /src/libwebp/imageio/wicdec.c:346,1
    - Dst: IWICFormatConverter_CopyPixels
      Src: /src/libwebp/imageio/wicdec.c:346,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/wicdec.c:350,1
    - Dst: WICFormatImporter*::import
      Src: /src/libwebp/imageio/wicdec.c:355,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/wicdec.c:358,1
    - Dst: ExtractMetadata
      Src: /src/libwebp/imageio/wicdec.c:360,1
    - Dst: FAILED
      Src: /src/libwebp/imageio/wicdec.c:361,1
    - Dst: fprintf
      Src: /src/libwebp/imageio/wicdec.c:362,1
    - Dst: IUnknown_Release
      Src: /src/libwebp/imageio/wicdec.c:368,1
    - Dst: IUnknown_Release
      Src: /src/libwebp/imageio/wicdec.c:369,1
    - Dst: IUnknown_Release
      Src: /src/libwebp/imageio/wicdec.c:370,1
    - Dst: IUnknown_Release
      Src: /src/libwebp/imageio/wicdec.c:371,1
    - Dst: IUnknown_Release
      Src: /src/libwebp/imageio/wicdec.c:372,1
    - Dst: free
      Src: /src/libwebp/imageio/wicdec.c:373,1
    - Dst: SUCCEEDED
      Src: /src/libwebp/imageio/wicdec.c:374,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 80
    argCount: 4
    argNames:
    - filename
    - pic
    - keep_alpha
    - metadata
    argTypes:
    - char*
    - WebPPicture*
    - int
    - Metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 239
    functionDepth: 6
    functionLinenumber: 239
    functionLinenumberEnd: 375
    functionName: ReadPictureWithWIC
    functionSourceFile: /src/libwebp/imageio/wicdec.c
    functionUses: 3
    functionsReached:
    - malloc
    - WEBP_DEFINE_GUID
    - IWICFormatConverter_CopyPixels
    - CoInitialize
    - fprintf
    - IWICFormatConverter_GetSize
    - ImgIoUtilCheckSizeArgumentsOverflow
    - WICFormatImporter*::import
    - SUCCEEDED
    - IWICFormatConverter_CanConvert
    - IsEqualGUID
    - IWICBitmapDecoder_GetContainerFormat
    - IWICImagingFactory_CreateFormatConverter
    - ExtractMetadata
    - OpenInputStream
    - IWICFormatConverter_Initialize
    - FAILED
    - CoCreateInstance
    - MAKE_REFGUID
    - IFS
    - IWICBitmapDecoder_GetFrame
    - HasAlpha
    - IWICBitmapDecoder_GetFrameCount
    - IUnknown_Release
    - free
    - IWICImagingFactory_CreateDecoderFromStream
    - IWICBitmapFrameDecode_GetPixelFormat
    linkageType: ''
    returnType: int
    signature: "int ReadPictureWithWIC(const char* const filename, WebPPicture* const
      pic,\n                       int keep_alpha, Metadata* const metadata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libwebp/imageio/wicdec.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - filename
    - pic
    - keep_alpha
    - metadata
    argTypes:
    - char*
    - struct WebPPicture*
    - int
    - struct Metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 390
    functionName: ReadPictureWithWIC
    functionSourceFile: /src/libwebp/imageio/wicdec.c
    functionUses: 3
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int ReadPictureWithWIC(const char* const filename,\n                       struct
      WebPPicture* const pic, int keep_alpha,\n                       struct Metadata*
      const metadata)"
Fuzzer filename: empty-file.cpp
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- src/webp/types.h
- math.h
- ./image_enc.h
- src/utils/quant_levels_utils.h
- src/enc/vp8i_enc.h
- examples/webpinfo.c
- webp/mux_types.h
- ./jpegdec.h
- wchar.h
- src/dec/common_dec.h
- src/dsp/yuv.h
- GL/glut.h
- msa.h
- ieeefp.h
- cstdio
- src/dsp/dsp.h
- qcms.h
- optional
- ./unicode.h
- ../imageio/webpdec.h
- src/enc/backward_references_enc.h
- memory
- sharpyuv/sharpyuv_cpu.h
- io.h
- ./tiffdec.h
- ../imageio/image_enc.h
- fuzztest/fuzztest.h
- stdbool.h
- webp/mux.h
- ./image_dec.h
- stddef.h
- src/utils/huffman_utils.h
- limits.h
- testing/fuzzing/fuzztest.h
- sys/time.h
- src/enc/histogram_enc.h
- src/webp/decode.h
- ./img_alpha.h
- unistd.h
- ./img_peak.h
- ptrcheck.h
- jpeglib.h
- ./img_grid.h
- src/utils/huffman_encode_utils.h
- stdlib.h
- ../imageio/image_dec.h
- src/dsp/common_sse41.h
- fcntl.h
- src/webp/mux.h
- gif_lib.h
- ./stopwatch.h
- cstdlib
- ./pngdec.h
- cpu-features.h
- sharpyuv/sharpyuv_csp.h
- src/enc/vp8li_enc.h
- ./nalloc.h
- cstdint
- ../examples/unicode.h
- src/utils/quant_levels_dec_utils.h
- ctype.h
- src/webp/format_constants.h
- src/utils/color_cache_utils.h
- ./fuzz_utils.h
- tiffio.h
- float.h
- process.h
- errno.h
- tests/fuzzer/fuzz_utils.h
- webp/demux.h
- SDL2/SDL.h
- src/webp/mux_types.h
- tchar.h
- jni.h
- imageio/metadata.h
- webp/config.h
- tuple
- ./sharpyuv.h
- stdint.h
- imageio/imageio_util.h
- webp/types.h
- src/enc/cost_enc.h
- ole2.h
- jerror.h
- src/utils/bit_reader_utils.h
- src/utils/rescaler_utils.h
- immintrin.h
- ./mux_types.h
- src/mux/animi.h
- iostream
- webp/format_constants.h
- pthread.h
- src/utils/thread_utils.h
- intrin.h
- cassert
- ./anim_util.h
- ./imageio_util.h
- ./sharpyuv_dsp.h
- src/webp/encode.h
- testing/base/public/gunit.h
- runtime.h
- sys/types.h
- algorithm
- ./example_util.h
- GL/freeglut.h
- vector
- webp/decode.h
- src/mux/muxi.h
- examples/anim_util.h
- GLUT/glut.h
- cstring
- src/utils/bit_reader_inl_utils.h
- webp_to_sdl.h
- utility
- src/utils/bit_writer_utils.h
- ./metadata.h
- smmintrin.h
- setjmp.h
- ./gifdec.h
- ./unicode_gif.h
- emmintrin.h
- string.h
- src/utils/palette.h
- Python.h
- src/dec/alphai_dec.h
- string
- windows.h
- sharpyuv/sharpyuv_dsp.h
- src/dsp/lossless_common.h
- ./sharpyuv_risk_table.h
- src/dsp/lossless.h
- src/dsp/msa_macro.h
- ./sharpyuv_cpu.h
- src/utils/random_utils.h
- ./sharpyuv_gamma.h
- assert.h
- ./pnmdec.h
- SDL.h
- src/dec/vp8_dec.h
- arm_neon.h
- imageio/image_dec.h
- sharpyuv/sharpyuv.h
- src/dsp/cpu.h
- ./extras.h
- webp/encode.h
- stdio.h
- ./webpdec.h
- ./decode.h
- src/utils/endian_inl_utils.h
- src/dsp/quant.h
- shlwapi.h
- src/utils/utils.h
- wincodec.h
- src/utils/bounds_safety.h
- inttypes.h
- cgocall.h
- gtest/gtest.h
- src/dec/vp8i_dec.h
- src/webp/demux.h
- ./wicdec.h
- shellapi.h
- src/webp/config.h
- src/dsp/mips_macro.h
- ../imageio/imageio_util.h
- src/dec/webpi_dec.h
- src/utils/filters_utils.h
- cstddef
- png.h
- string_view
- src/dec/vp8li_dec.h
- ./types.h
- array
- src/dsp/neon.h
- src/dsp/cpu.c
- src/dsp/common_sse2.h
report: name
sources:
- function_names:
  - SharpYuvConvertFuzz
  - AnyTransferFunction
  - SharpYuvDomain
  - SharpYuvConvertFuzzWrapped
  - SharpYuvConvertFuzz
  - AnyTransferFunction
  - SharpYuvDomain
  - SharpYuvConvertFuzzWrapped
  source_file: /src/libwebp/fuzzer/sharpyuv_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ReadAnimatedImageTest
  - ReadAnimatedImageTest
  source_file: /src/libwebp/tests/fuzzer/anim_util_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DecodeWebP
  - DecodeWebP
  source_file: /src/libwebp/tests/fuzzer/dec_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/tests/fuzzer/img_peak.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - AnimationApiTest
  - AnimationApiTest
  - TEST
  source_file: /src/libwebp/tests/fuzzer/animation_api_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SharpYuvConvertFuzz
  - AnyTransferFunction
  - SharpYuvDomain
  - SharpYuvConvertFuzzWrapped
  - SharpYuvConvertFuzz
  - AnyTransferFunction
  - SharpYuvDomain
  - SharpYuvConvertFuzzWrapped
  source_file: /src/libwebp/tests/fuzzer/sharpyuv_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EncTestImpl
  - EncFileTest
  - EncArbitraryTest
  - EncTestImpl
  - EncFileTest
  - EncArbitraryTest
  source_file: /src/libwebp/tests/fuzzer/enc_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Enc
  - EncDecValidTest
  - EncDecTest
  - Enc
  - EncDecValidTest
  - EncDecTest
  source_file: /src/libwebp/tests/fuzzer/enc_dec_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - nalloc_init
  - nalloc_random_update
  - nalloc_start
  - nalloc_end
  - nalloc_backtrace_exclude
  - nalloc_fail
  - nalloc_malloc
  - nalloc_calloc
  - nalloc_realloc
  - nalloc_reallocarray
  - nalloc_read
  - nalloc_write
  - nalloc_recv
  - nalloc_send
  - nalloc_malloc
  - nalloc_calloc
  - nalloc_realloc
  - nalloc_reallocarray
  - nalloc_read
  - nalloc_write
  - nalloc_recv
  - nalloc_send
  - read
  - write
  - recv
  - send
  - calloc
  - malloc
  - realloc
  - reallocarray
  source_file: /src/libwebp/tests/fuzzer/nalloc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NALLOC_ASAN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/libwebp/tests/fuzzer/nalloc.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fuzz_utils::GetSourcePicture
  - fuzz_utils::CropOrScale
  - fuzz_utils::GetCPUInfoNoSSE41
  - fuzz_utils::GetCPUInfoNoAVX
  - fuzz_utils::GetCPUInfoForceSlowSSSE3
  - fuzz_utils::GetCPUInfoOnlyC
  - fuzz_utils::SetOptimization
  - fuzz_utils::ReadFilesFromDirectory
  - fuzz_utils::GetSOFData
  - fuzz_utils::SjpegDimensions
  - fuzz_utils::GetSOFData
  - fuzz_utils::SjpegDimensions
  - fuzz_utils::IsImageTooBig
  - fuzz_utils::GetSourcePicture
  - fuzz_utils::CropOrScale
  - fuzz_utils::GetCPUInfoNoSSE41
  - fuzz_utils::GetCPUInfoNoAVX
  - fuzz_utils::GetCPUInfoForceSlowSSSE3
  - fuzz_utils::GetCPUInfoOnlyC
  - fuzz_utils::SetOptimization
  - fuzz_utils::ReadFilesFromDirectory
  - fuzz_utils::GetSOFData
  - fuzz_utils::SjpegDimensions
  - fuzz_utils::GetSOFData
  - fuzz_utils::SjpegDimensions
  - fuzz_utils::IsImageTooBig
  source_file: /src/libwebp/tests/fuzzer/fuzz_utils.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: M_SOF0
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.cc
      type_or_value: '0xffc0'
    - item_type: preproc_def
      name: M_SOF1
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.cc
      type_or_value: '0xffc1'
    - item_type: preproc_def
      name: M_SOF0
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.cc
      type_or_value: '0xffc0'
    - item_type: preproc_def
      name: M_SOF1
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.cc
      type_or_value: '0xffc1'
    - item_type: preproc_def
      name: M_SOF0
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.cc
      type_or_value: '0xffc0'
    - item_type: preproc_def
      name: M_SOF1
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.cc
      type_or_value: '0xffc1'
    - item_type: preproc_def
      name: M_SOF0
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.cc
      type_or_value: '0xffc0'
    - item_type: preproc_def
      name: M_SOF1
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.cc
      type_or_value: '0xffc1'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/tests/fuzzer/img_grid.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HuffmanTest
  - HuffmanTest
  source_file: /src/libwebp/tests/fuzzer/huffman_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - AnimDecoderTest
  - AnimDecoderTest
  - TEST
  source_file: /src/libwebp/tests/fuzzer/animdecoder_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/tests/fuzzer/img_alpha.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fuzz_utils::FuzzHash
  - operator()(WebPMemoryWriter* writer) const
  - operator()(WebPPicture* pic) const
  - operator()(WebPDecoderConfig* config) const
  - fuzz_utils::WebPPictureCpp
  - '& ref() const'
  - fuzz_utils::ArbitraryWebPPicture
  - fuzz_utils::ArbitraryWebPPictureFromIndex
  - fuzz_utils::ArbitraryWebPConfig
  - fuzz_utils::ArbitraryValidWebPDecoderOptions
  - fuzz_utils::ArbitraryWebPDecoderOptions
  - fuzz_utils::ArbitraryCropOrScaleParams
  - fuzz_utils::FuzzHash
  - operator()(WebPMemoryWriter* writer) const
  - operator()(WebPPicture* pic) const
  - operator()(WebPDecoderConfig* config) const
  - fuzz_utils::WebPPictureCpp
  - '& ref() const'
  - fuzz_utils::ArbitraryWebPPicture
  - fuzz_utils::ArbitraryWebPPictureFromIndex
  - fuzz_utils::ArbitraryWebPConfig
  - fuzz_utils::ArbitraryValidWebPDecoderOptions
  - fuzz_utils::ArbitraryWebPDecoderOptions
  - fuzz_utils::ArbitraryCropOrScaleParams
  source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: UniquePtrDeleter
      pos:
        line_end: 95
        line_start: 87
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    - fields:
      - name: pic
        type: std::shared_ptr<WebPPicture>
      item_type: struct
      name: WebPPictureCpp
      pos:
        line_end: 128
        line_start: 99
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    - fields:
      - name: bypass_filtering
        type: int
      - name: no_fancy_upsampling
        type: int
      - name: use_cropping
        type: int
      - name: crop_left
        type: int
      - name: crop_width
        type: int
      - name: use_scaling
        type: int
      - name: scaled_width
        type: int
      - name: use_threads
        type: int
      - name: dithering_strength
        type: int
      - name: flip
        type: int
      - name: alpha_dithering_strength
        type: int
      - name: pad
        type: std::array<uint32_t, 5>
      item_type: struct
      name: WebPDecoderOptionsCpp
      pos:
        line_end: 288
        line_start: 272
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    - fields:
      - name: alter_input
        type: bool
      - name: crop_or_scale
        type: bool
      - name: width_ratio
        type: int
      - name: height_ratio
        type: int
      - name: left_ratio
        type: int
      - name: top_ratio
        type: int
      item_type: struct
      name: CropOrScaleParams
      pos:
        line_end: 385
        line_start: 378
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    - fields: []
      item_type: struct
      name: UniquePtrDeleter
      pos:
        line_end: 95
        line_start: 87
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    - fields:
      - name: pic
        type: std::shared_ptr<WebPPicture>
      item_type: struct
      name: WebPPictureCpp
      pos:
        line_end: 128
        line_start: 99
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    - fields:
      - name: bypass_filtering
        type: int
      - name: no_fancy_upsampling
        type: int
      - name: use_cropping
        type: int
      - name: crop_left
        type: int
      - name: crop_width
        type: int
      - name: use_scaling
        type: int
      - name: scaled_width
        type: int
      - name: use_threads
        type: int
      - name: dithering_strength
        type: int
      - name: flip
        type: int
      - name: alpha_dithering_strength
        type: int
      - name: pad
        type: std::array<uint32_t, 5>
      item_type: struct
      name: WebPDecoderOptionsCpp
      pos:
        line_end: 288
        line_start: 272
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    - fields:
      - name: alter_input
        type: bool
      - name: crop_or_scale
        type: bool
      - name: width_ratio
        type: int
      - name: height_ratio
        type: int
      - name: left_ratio
        type: int
      - name: top_ratio
        type: int
      item_type: struct
      name: CropOrScaleParams
      pos:
        line_end: 385
        line_start: 378
        source_file: /src/libwebp/tests/fuzzer/fuzz_utils.h
    typedefs: []
    union: []
- function_names:
  - ArbitraryKMinKMax
  - AddFrame
  - AnimEncoderTest
  - ArbitraryKMinKMax
  - AddFrame
  - AnimEncoderTest
  - TEST
  source_file: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: use_argb
        type: int
      - name: timestamp
        type: int
      - name: webp_config
        type: WebPConfig
      - name: crop_or_scale_params
        type: fuzz_utils::CropOrScaleParams
      - name: pic_cpp
        type: fuzz_utils::WebPPictureCpp
      item_type: struct
      name: FrameConfig
      pos:
        line_end: 39
        line_start: 33
        source_file: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc
    - fields:
      - name: use_argb
        type: int
      - name: timestamp
        type: int
      - name: webp_config
        type: WebPConfig
      - name: crop_or_scale_params
        type: fuzz_utils::CropOrScaleParams
      - name: pic_cpp
        type: fuzz_utils::WebPPictureCpp
      item_type: struct
      name: FrameConfig
      pos:
        line_end: 39
        line_start: 33
        source_file: /src/libwebp/tests/fuzzer/animencoder_fuzzer.cc
    typedefs: []
    union: []
- function_names:
  - MuxDemuxApiTest
  - MuxDemuxApiTest
  source_file: /src/libwebp/tests/fuzzer/mux_demux_api_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - WebPInfoTest
  source_file: /src/libwebp/tests/fuzzer/webp_info_fuzzer.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: main
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/libwebp/tests/fuzzer/webp_info_fuzzer.cc
      type_or_value: exec_main
    structs: []
    typedefs: []
    union: []
- function_names:
  - SimpleApiTest
  - SimpleApiTest
  - TEST
  source_file: /src/libwebp/tests/fuzzer/simple_api_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TestReader
  - Decode
  - TestReader
  - Decode
  source_file: /src/libwebp/tests/fuzzer/imageio_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - AdvancedApiTest
  - AdvancedApiTest
  - TEST
  source_file: /src/libwebp/tests/fuzzer/advanced_api_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/src/mux/animi.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SizeWithPadding
  - ChunkDiskSize
  - IsWPI
  source_file: /src/libwebp/src/mux/muxi.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MUX_MAJ_VERSION
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/libwebp/src/mux/muxi.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MUX_MIN_VERSION
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/libwebp/src/mux/muxi.h
      type_or_value: '6'
    - item_type: preproc_def
      name: MUX_REV_VERSION
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libwebp/src/mux/muxi.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NIL_TAG
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/libwebp/src/mux/muxi.h
      type_or_value: 0x00000000u  // To signal void chunk.
    structs:
    - fields:
      - name: tag
        type: uint32_t
      - name: owner
        type: int
      - name: data
        type: WebPData
      - name: '* next'
        type: WebPChunk
      item_type: struct
      name: WebPChunk
      pos:
        line_end: 46
        line_start: 39
        source_file: /src/libwebp/src/mux/muxi.h
    - fields:
      - name: '* header'
        type: WebPChunk
      - name: '* alpha'
        type: WebPChunk
      - name: '* img'
        type: WebPChunk
      - name: '* unknown'
        type: WebPChunk
      - name: width
        type: int
      - name: height
        type: int
      - name: has_alpha
        type: int
      - name: is_partial
        type: int
      - name: '* next'
        type: WebPMuxImage
      item_type: struct
      name: WebPMuxImage
      pos:
        line_end: 61
        line_start: 51
        source_file: /src/libwebp/src/mux/muxi.h
    - fields:
      - name: '* images'
        type: WebPMuxImage
      - name: '* iccp'
        type: WebPChunk
      - name: '* exif'
        type: WebPChunk
      - name: '* xmp'
        type: WebPChunk
      - name: '* anim'
        type: WebPChunk
      - name: '* vp8x'
        type: WebPChunk
      - name: '* unknown'
        type: WebPChunk
      - name: canvas_width
        type: int
      - name: canvas_height
        type: int
      item_type: struct
      name: WebPMux
      pos:
        line_end: 75
        line_start: 64
        source_file: /src/libwebp/src/mux/muxi.h
    - fields:
      - name: tag
        type: uint32_t
      - name: id
        type: WebPChunkId
      - name: size
        type: uint32_t
      item_type: struct
      name: ChunkInfo
      pos:
        line_end: 103
        line_start: 99
        source_file: /src/libwebp/src/mux/muxi.h
    typedefs:
    - item_type: typedef
      name: WebPChunk
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/libwebp/src/mux/muxi.h
      type: WebPChunk
    - item_type: typedef
      name: WebPMuxImage
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/libwebp/src/mux/muxi.h
      type: WebPMuxImage
    union: []
- function_names:
  - SWITCH_ID_LIST
  - MuxGet
  - ChunkVerifyAndAssign
  - MuxImageFinalize
  - MuxImageParse
  - WebPMuxCreateInternal
  - ValidateForSingleImage
  - MuxGetCanvasInfo
  - WebPMuxGetCanvasSize
  - WebPMuxGetFeatures
  - EmitVP8XChunk
  - SynthesizeBitstream
  - WebPMuxGetChunk
  - MuxGetImageInternal
  - MuxGetFrameInternal
  - WebPMuxGetFrame
  - WebPMuxGetAnimationParams
  - ChunkGetIndexFromId
  - CountChunks
  - WebPMuxNumChunks
  source_file: /src/libwebp/src/mux/muxread.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ResetCounters
  - DisableKeyframes
  - SanitizeEncoderOptions
  - DefaultEncoderOptions
  - WebPAnimEncoderOptionsInitInternal
  - ClearRectangle
  - WebPUtilClearPic
  - MarkNoError
  - MarkError
  - MarkError2
  - WebPAnimEncoderNewInternal
  - FrameRelease
  - WebPAnimEncoderDelete
  - GetFrame
  - ComparePixelsLossless
  - PixelsAreSimilar
  - ComparePixelsLossy
  - IsEmptyRect
  - QualityToMaxDiff
  - MinimizeChangeRectangle
  - SnapToEvenOffsets
  - SubFrameParamsInit
  - SubFrameParamsFree
  - GetSubRect
  - GetSubRects
  - clip
  - WebPAnimEncoderRefineRect
  - DisposeFrameRectangle
  - RectArea
  - IsLosslessBlendingPossible
  - IsLossyBlendingPossible
  - IncreaseTransparency
  - FlattenSimilarBlocks
  - EncodeFrame
  - EncodeCandidate
  - CopyCurrentCanvas
  - GetEncodedData
  - GetPreviousDisposeMethod
  - SetPreviousDisposeMethod
  - PickBestCandidate
  - GenerateCandidates
  - IncreasePreviousDuration
  - CopyIdenticalPixels
  - CopyMaskedPixels
  - SetFrame
  - KeyFramePenalty
  - CacheFrame
  - FlushFrames
  - WebPAnimEncoderAdd
  - DecodeFrameOntoCanvas
  - FrameToFullCanvas
  - OptimizeSingleFrame
  - WebPAnimEncoderAssemble
  - WebPAnimEncoderGetError
  - WebPAnimEncoderSetChunk
  - WebPAnimEncoderGetChunk
  - WebPAnimEncoderDeleteChunk
  source_file: /src/libwebp/src/mux/anim_encode.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libwebp/src/mux/anim_encode.c
      type_or_value: _snprintf
    - item_type: preproc_def
      name: ERROR_STR_MAX_LENGTH
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/libwebp/src/mux/anim_encode.c
      type_or_value: '100'
    - item_type: preproc_def
      name: DELTA_INFINITY
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/libwebp/src/mux/anim_encode.c
      type_or_value: (1ULL << 32)
    - item_type: preproc_def
      name: KEYFRAME_NONE
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/libwebp/src/mux/anim_encode.c
      type_or_value: (-1)
    - item_type: preproc_def
      name: MAX_CACHED_FRAMES
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/libwebp/src/mux/anim_encode.c
      type_or_value: '30'
    - item_type: preproc_def
      name: TRANSPARENT_COLOR
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/libwebp/src/mux/anim_encode.c
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: MIN_COLORS_LOSSY
      pos:
        line_end: 897
        line_start: 896
        source_file: /src/libwebp/src/mux/anim_encode.c
      type_or_value: 31      // Don't try lossy below this threshold.
    - item_type: preproc_def
      name: MAX_COLORS_LOSSLESS
      pos:
        line_end: 898
        line_start: 897
        source_file: /src/libwebp/src/mux/anim_encode.c
      type_or_value: 194  // Don't try lossless above this threshold.
    structs:
    - fields:
      - name: x_offset
        type: int
      item_type: struct
      name: FrameRectangle
      pos:
        line_end: 40
        line_start: 38
        source_file: /src/libwebp/src/mux/anim_encode.c
    - fields:
      - name: sub_frame
        type: WebPMuxFrameInfo
      - name: key_frame
        type: WebPMuxFrameInfo
      - name: is_key_frame
        type: int
      item_type: struct
      name: EncodedFrame
      pos:
        line_end: 48
        line_start: 44
        source_file: /src/libwebp/src/mux/anim_encode.c
    - fields:
      - name: canvas_width
        type: int
      - name: canvas_height
        type: int
      - name: options
        type: WebPAnimEncoderOptions
      - name: last_config
        type: WebPConfig
      - name: last_config_reversed
        type: WebPConfig
      - name: '* curr_canvas'
        type: WebPPicture
      - name: curr_canvas_copy
        type: WebPPicture
      - name: curr_canvas_copy_modified
        type: int
      - name: prev_canvas
        type: WebPPicture
      - name: canvas_carryover
        type: WebPPicture
      - name: '* candidate_carryover_mask'
        type: uint8_t
      - name: best_candidate_carries_over
        type: int
      - name: '* best_candidate_carryover_mask'
        type: uint8_t
      - name: '* encoded_frames'
        type: EncodedFrame
      - name: size
        type: size_t
      - name: start
        type: size_t
      - name: count
        type: size_t
      - name: flush_count
        type: size_t
      - name: best_delta
        type: int64_t
      - name: keyframe
        type: int
      - name: count_since_key_frame
        type: int
      - name: first_timestamp
        type: int
      - name: prev_timestamp
        type: int
      - name: prev_candidate_undecided
        type: int
      - name: prev_rect
        type: FrameRectangle
      - name: is_first_frame
        type: int
      - name: got_null_frame
        type: int
      - name: in_frame_count
        type: size_t
      - name: out_frame_count
        type: size_t
      - name: '* mux'
        type: WebPMux
      - name: error_str[ERROR_STR_MAX_LENGTH]
        type: char
      item_type: struct
      name: WebPAnimEncoder
      pos:
        line_end: 122
        line_start: 50
        source_file: /src/libwebp/src/mux/anim_encode.c
    - fields:
      - name: should_try
        type: int
      - name: empty_rect_allowed
        type: int
      - name: rect_ll
        type: FrameRectangle
      - name: sub_frame_ll
        type: WebPPicture
      - name: rect_lossy
        type: FrameRectangle
      - name: sub_frame_lossy
        type: WebPPicture
      item_type: struct
      name: SubFrameParams
      pos:
        line_end: 546
        line_start: 537
        source_file: /src/libwebp/src/mux/anim_encode.c
    - fields:
      - name: mem
        type: WebPMemoryWriter
      - name: info
        type: WebPMuxFrameInfo
      - name: rect
        type: FrameRectangle
      - name: carries_over
        type: int
      - name: evaluate
        type: int
      item_type: struct
      name: Candidate
      pos:
        line_end: 834
        line_start: 824
        source_file: /src/libwebp/src/mux/anim_encode.c
    typedefs:
    - item_type: typedef
      name: "(*ComparePixelsFunc)(const uint32_t*, int, const uint32_t*, int,\n                                 int,
        int)"
      pos:
        line_end: 377
        line_start: 376
        source_file: /src/libwebp/src/mux/anim_encode.c
      type: int
    union: []
- function_names:
  - WebPGetMuxVersion
  - ChunkInit
  - ChunkRelease
  - ChunkGetIndexFromTag
  - ChunkGetIdFromTag
  - ChunkGetTagFromFourCC
  - ChunkGetIndexFromFourCC
  - ChunkSearchNextInList
  - ChunkSearchList
  - ChunkAssignData
  - ChunkSetHead
  - ChunkAppend
  - ChunkDelete
  - ChunkListDelete
  - ChunkEmit
  - ChunkListEmit
  - ChunkListDiskSize
  - MuxImageInit
  - MuxImageRelease
  - GetChunkListFromId
  - MuxImageCount
  - SearchImageToGetOrDelete
  - MuxImagePush
  - MuxImageDelete
  - MuxImageDeleteNth
  - MuxImageGetNth
  - MuxImageDiskSize
  - ChunkEmitSpecial
  - MuxImageEmit
  - MuxHasAlpha
  - MuxEmitRiffHeader
  - MuxGetChunkListFromId
  - IsNotCompatible
  - ValidateChunk
  - MuxValidate
  source_file: /src/libwebp/src/mux/muxinternal.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UNDEFINED_CHUNK_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/libwebp/src/mux/muxinternal.c
      type_or_value: ((uint32_t)(-1))
    - item_type: preproc_def
      name: NO_FLAG
      pos:
        line_end: 452
        line_start: 451
        source_file: /src/libwebp/src/mux/muxinternal.c
      type_or_value: ((WebPFeatureFlags)0)
    structs: []
    typedefs: []
    union: []
- function_names:
  - MuxInit
  - WebPNewInternal
  - DeleteAllImages
  - MuxRelease
  - WebPMuxDelete
  - SWITCH_ID_LIST
  - MuxSet
  - CreateFrameData
  - GetImageData
  - DeleteChunks
  - MuxDeleteAllNamedData
  - WebPMuxSetChunk
  - AddDataToChunkList
  - SetAlphaAndImageChunks
  - WebPMuxSetImage
  - WebPMuxPushFrame
  - WebPMuxSetAnimationParams
  - WebPMuxSetCanvasSize
  - WebPMuxDeleteChunk
  - WebPMuxDeleteFrame
  - GetFrameInfo
  - GetImageInfo
  - GetAdjustedCanvasSize
  - CreateVP8XChunk
  - MuxCleanup
  - ImageListDiskSize
  - ImageListEmit
  - WebPMuxAssemble
  source_file: /src/libwebp/src/mux/muxedit.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/src/enc/vp8li_enc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WEBP_NEAR_LOSSLESS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/libwebp/src/enc/vp8li_enc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MAX_TRANSFORM_BITS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/libwebp/src/enc/vp8li_enc.h
      type_or_value: (MIN_TRANSFORM_BITS + (1 << NUM_TRANSFORM_BITS) - 1)
    structs:
    - fields:
      - name: '* config'
        type: WebPConfig
      - name: '* pic'
        type: WebPPicture
      - name: '* argb'
        type: uint32_t
      - name: argb_content
        type: VP8LEncoderARGBContent
      - name: '* argb_scratch'
        type: uint32_t
      - name: '* transform_data'
        type: uint32_t
      - name: '* transform_mem'
        type: uint32_t
      - name: transform_mem_size
        type: size_t
      - name: current_width
        type: int
      - name: histo_bits
        type: int
      - name: predictor_transform_bits
        type: int
      - name: cross_color_transform_bits
        type: int
      - name: cache_bits
        type: int
      - name: use_cross_color
        type: int
      - name: use_subtract_green
        type: int
      - name: use_predict
        type: int
      - name: use_palette
        type: int
      - name: palette_size
        type: int
      - name: palette[MAX_PALETTE_SIZE]
        type: uint32_t
      - name: palette_sorted[MAX_PALETTE_SIZE]
        type: uint32_t
      - name: refs[4]
        type: struct VP8LBackwardRefs
      - name: hash_chain
        type: VP8LHashChain
      item_type: struct
      name: VP8LEncoder
      pos:
        line_end: 83
        line_start: 49
        source_file: /src/libwebp/src/enc/vp8li_enc.h
    typedefs: []
    union: []
- function_names:
  - VP8LDistanceToPlaneCode
  - FindMatchLength
  - VP8LClearBackwardRefs
  - VP8LBackwardRefsClear
  - BackwardRefsSwap
  - VP8LBackwardRefsInit
  - VP8LRefsCursorInit
  - VP8LRefsCursorNextBlock
  - BackwardRefsNewBlock
  - BackwardRefsClone
  - VP8LBackwardRefsCursorAdd
  - VP8LHashChainInit
  - VP8LHashChainClear
  - GetPixPairHash64
  - GetMaxItersForQuality
  - GetWindowSizeForHashChain
  - MaxFindCopyLength
  - VP8LHashChainFill
  - AddSingleLiteral
  - BackwardReferencesRle
  - BackwardReferencesLz77
  - BackwardReferencesLz77Box
  - BackwardReferences2DLocality
  - CalculateBestCacheSize
  - BackwardRefsWithLocalCache
  - GetBackwardReferencesLowEffort
  - GetBackwardReferences
  - VP8LGetBackwardReferences
  source_file: /src/libwebp/src/enc/backward_references_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MIN_BLOCK_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libwebp/src/enc/backward_references_enc.c
      type_or_value: 256  // minimum block size for backward references
    - item_type: preproc_def
      name: WINDOW_SIZE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/libwebp/src/enc/backward_references_enc.c
      type_or_value: ((1 << WINDOW_SIZE_BITS) - 120)
    - item_type: preproc_def
      name: MIN_LENGTH
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libwebp/src/enc/backward_references_enc.c
      type_or_value: '4'
    - item_type: preproc_def
      name: WINDOW_OFFSETS_SIZE_MAX
      pos:
        line_end: 583
        line_start: 582
        source_file: /src/libwebp/src/enc/backward_references_enc.c
      type_or_value: '32'
    structs:
    - fields:
      - name: '* next'
        type: PixOrCopyBlock
      - name: '* start'
        type: PixOrCopy
      - name: size
        type: int
      item_type: struct
      name: PixOrCopyBlock
      pos:
        line_end: 83
        line_start: 79
        source_file: /src/libwebp/src/enc/backward_references_enc.c
    typedefs: []
    union: []
- function_names:
  - InitLeft
  - InitTop
  - VP8IteratorSetRow
  - VP8IteratorReset
  - VP8IteratorSetCountDown
  - VP8IteratorIsDone
  - VP8IteratorInit
  - VP8IteratorProgress
  - MinSize
  - ImportBlock
  - ImportLine
  - VP8IteratorImport
  - ExportBlock
  - VP8IteratorExport
  - BIT
  - VP8IteratorNzToBytes
  - VP8IteratorBytesToNz
  - VP8IteratorSaveBoundary
  - VP8IteratorNext
  - VP8SetIntra16Mode
  - VP8SetIntra4Mode
  - VP8SetIntraUVMode
  - VP8SetSkip
  - VP8SetSegment
  - VP8IteratorStartI4
  - VP8IteratorRotateI4
  source_file: /src/libwebp/src/enc/iterator_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HALVE
  - PictureGrabSpecs
  - SnapTopLeftPosition
  - AdjustAndCheckRectangle
  - WebPPictureCopy
  - WebPPictureIsView
  - WebPPictureView
  - WebPPictureCrop
  - RescalePlane
  - AlphaMultiplyARGB
  - AlphaMultiplyY
  - WebPPictureRescale
  - WebPPictureCopy
  - WebPPictureCrop
  - WebPPictureRescale
  source_file: /src/libwebp/src/enc/picture_rescale_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VP8DefaultProbas
  - PutI4Mode
  - PutI16Mode
  - PutUVMode
  - PutSegment
  - VP8CodeIntraModes
  - VP8WriteProbas
  source_file: /src/libwebp/src/enc/tree_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - WebPGetEncoderVersion
  - ResetSegmentHeader
  - ResetFilterHeader
  - ResetBoundaryPredictions
  - MapConfigToTools
  - InitVP8Encoder
  - DeleteVP8Encoder
  - GetPSNR
  - FinalizePSNR
  - StoreStats
  - WebPEncodingSetError
  - WebPReportProgress
  - WebPEncode
  source_file: /src/libwebp/src/enc/webp_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - AddSingleSubGreen
  - AddSingle
  - HashPix
  - AnalyzeEntropy
  - ClampBits
  - GetHistoBits
  - GetTransformBits
  - EncoderAnalyze
  - EncoderInit
  - GetHuffBitLengthsAndCodes
  - StoreHuffmanTreeOfHuffmanTreeToBitMask
  - ClearHuffmanTreeIfOnlyOneSymbol
  - StoreHuffmanTreeToBitMask
  - StoreFullHuffmanCode
  - StoreHuffmanCode
  - WriteHuffmanCode
  - WriteHuffmanCodeWithExtraBits
  - StoreImageToBitMask
  - EncodeImageNoHuffman
  - EncodeImageInternal
  - ApplySubtractGreen
  - ApplyPredictFilter
  - ApplyCrossColorFilter
  - WriteRiffHeader
  - WriteImageSize
  - WriteRealAlphaAndVersion
  - WriteImage
  - ClearTransformBuffer
  - AllocateTransformBuffer
  - MakeInputImageCopy
  - SearchColorGreedy
  - ApplyPaletteHash0
  - ApplyPaletteHash1
  - ApplyPaletteHash2
  - APPLY_PALETTE_FOR
  - ApplyPalette
  - MapImageFromPalette
  - EncodePalette
  - VP8LEncoderNew
  - VP8LEncoderDelete
  - EncodeStreamHook
  - VP8LEncodeStream
  - VP8LEncodeImage
  source_file: /src/libwebp/src/enc/vp8l_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_HUFFMAN_BITS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/libwebp/src/enc/vp8l_enc.c
      type_or_value: (MIN_HUFFMAN_BITS + (1 << NUM_HUFFMAN_BITS) - 1)
    - item_type: preproc_def
      name: MAX_PREDICTOR_IMAGE_SIZE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/libwebp/src/enc/vp8l_enc.c
      type_or_value: (1 << 14)
    - item_type: preproc_def
      name: NUM_BUCKETS
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libwebp/src/enc/vp8l_enc.c
      type_or_value: '256'
    - item_type: preproc_def
      name: CRUNCH_SUBCONFIGS_MAX
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/libwebp/src/enc/vp8l_enc.c
      type_or_value: '2'
    - item_type: preproc_def
      name: CRUNCH_CONFIGS_MAX
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/libwebp/src/enc/vp8l_enc.c
      type_or_value: (kNumEntropyIx + 2 * kPaletteSortingNum)
    - item_type: preproc_def
      name: APPLY_PALETTE_GREEDY_MAX
      pos:
        line_end: 1271
        line_start: 1270
        source_file: /src/libwebp/src/enc/vp8l_enc.c
      type_or_value: '4'
    - item_type: preproc_def
      name: PALETTE_INV_SIZE_BITS
      pos:
        line_end: 1290
        line_start: 1289
        source_file: /src/libwebp/src/enc/vp8l_enc.c
      type_or_value: '11'
    - item_type: preproc_def
      name: PALETTE_INV_SIZE
      pos:
        line_end: 1291
        line_start: 1290
        source_file: /src/libwebp/src/enc/vp8l_enc.c
      type_or_value: (1 << PALETTE_INV_SIZE_BITS)
    structs:
    - fields:
      - name: category[kHistoTotal]
        type: HistogramBuckets
      item_type: struct
      name: Histograms
      pos:
        line_end: 79
        line_start: 77
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    - fields:
      - name: lz77
        type: int
      - name: do_no_cache
        type: int
      item_type: struct
      name: CrunchSubConfig
      pos:
        line_end: 277
        line_start: 274
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    - fields:
      - name: entropy_idx
        type: int
      - name: palette_sorting_type
        type: PaletteSorting
      - name: sub_configs[CRUNCH_SUBCONFIGS_MAX]
        type: CrunchSubConfig
      - name: sub_configs_size
        type: int
      item_type: struct
      name: CrunchConfig
      pos:
        line_end: 283
        line_start: 278
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    - fields:
      - name: '* config'
        type: WebPConfig
      - name: '* picture'
        type: WebPPicture
      - name: '* bw'
        type: VP8LBitWriter
      - name: '* enc'
        type: VP8LEncoder
      - name: crunch_configs[CRUNCH_CONFIGS_MAX]
        type: CrunchConfig
      - name: num_crunch_configs
        type: int
      - name: red_and_blue_always_zero
        type: int
      - name: '* stats'
        type: WebPAuxStats
      item_type: struct
      name: StreamEncodeContext
      pos:
        line_end: 1487
        line_start: 1478
        source_file: /src/libwebp/src/enc/vp8l_enc.c
    typedefs:
    - item_type: typedef
      name: HistogramBuckets[NUM_BUCKETS]
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/libwebp/src/enc/vp8l_enc.c
      type: uint32_t
    union: []
- function_names:
  - AccumulateLSIM
  - AccumulateSSE
  - AccumulateSSIM
  - GetPSNR
  - GetLogSSIM
  - WebPPlaneDistortion
  - WebPPictureDistortion
  - WebPPlaneDistortion
  - WebPPictureDistortion
  source_file: /src/libwebp/src/enc/picture_psnr_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RADIUS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libwebp/src/enc/picture_psnr_enc.c
      type_or_value: 2  // search radius. Shouldn't be too large.
    - item_type: preproc_def
      name: BLUE_OFFSET
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/libwebp/src/enc/picture_psnr_enc.c
      type_or_value: 3  // uint32_t 0x000000ff is 0x00,00,00,ff in memory
    - item_type: preproc_def
      name: BLUE_OFFSET
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/libwebp/src/enc/picture_psnr_enc.c
      type_or_value: 0  // uint32_t 0x000000ff is 0xff,00,00,00 in memory
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*AccumulateFunc)(const uint8_t* src, int src_stride,\n                                 const
        uint8_t* ref, int ref_stride, int w,\n                                 int
        h)"
      pos:
        line_end: 27
        line_start: 25
        source_file: /src/libwebp/src/enc/picture_psnr_enc.c
      type: double
    union: []
- function_names:
  - VariableLevelCost
  - VP8CalculateLevelCosts
  - VP8InitResidual
  - VP8GetCostLuma4
  - VP8GetCostLuma16
  - VP8GetCostUV
  - VP8RecordCoeffs
  source_file: /src/libwebp/src/enc/cost_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CheckNonOpaque
  - WebPPictureHasTransparency
  - PreprocessARGB
  - ConvertRowToY
  - ConvertRowsToUV
  - ImportYUVAFromRGBA
  - PictureARGBToYUVA
  - WebPPictureARGBToYUVADithered
  - WebPPictureARGBToYUVA
  - WebPPictureSharpARGBToYUVA
  - WebPPictureSmartARGBToYUVA
  - WebPPictureYUVAToARGB
  - Import
  - WebPPictureImportBGR
  - WebPPictureImportBGRA
  - WebPPictureImportBGRX
  - WebPPictureImportRGB
  - WebPPictureImportRGBA
  - WebPPictureImportRGBX
  source_file: /src/libwebp/src/enc/picture_csp_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALPHA_OFFSET
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/libwebp/src/enc/picture_csp_enc.c
      type_or_value: CHANNEL_OFFSET(0)
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetHistogramSize
  - HistogramStatsClear
  - HistogramClear
  - HistogramSwap
  - HistogramCopy
  - VP8LFreeHistogram
  - VP8LFreeHistogramSet
  - VP8LHistogramCreate
  - VP8LHistogramInit
  - VP8LAllocateHistogram
  - HistogramSetResetPointers
  - HistogramSetTotalSize
  - VP8LAllocateHistogramSet
  - VP8LHistogramSetClear
  - HistogramSetRemoveHistogram
  - HistogramAddSinglePixOrCopy
  - VP8LHistogramStoreRefs
  - BitsEntropyRefine
  - VP8LBitsEntropy
  - InitialHuffmanCost
  - FinalHuffmanCost
  - PopulationCost
  - GetPopulationInfo
  - GetCombinedEntropy
  - VP8LHistogramEstimateBits
  - SaturateAdd
  - GetCombinedHistogramEntropy
  - HistogramAdd
  - UpdateHistogramCost
  - HistogramAddEval
  - HistogramAddThresh
  - DominantCostRangeInit
  - UpdateDominantCostRange
  - ComputeHistogramCost
  - GetBinIdForEntropy
  - GetHistoBinIndex
  - HistogramBuild
  - HistogramCopyAndAnalyze
  - HistogramAnalyzeEntropyBin
  - HistogramCombineEntropyBin
  - MyRand
  - HistoQueueInit
  - HistoQueueClear
  - HistoQueuePopPair
  - HistoQueueUpdateHead
  - HistoQueueFixPair
  - HistoQueueUpdatePair
  - HistoQueuePush
  - HistogramCombineGreedy
  - HistogramCombineStochastic
  - HistogramRemap
  - GetCombineCostFactor
  - VP8LGetHistoImageSymbols
  source_file: /src/libwebp/src/enc/histogram_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_PARTITIONS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/libwebp/src/enc/histogram_enc.c
      type_or_value: '4'
    - item_type: preproc_def
      name: BIN_SIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/libwebp/src/enc/histogram_enc.c
      type_or_value: (NUM_PARTITIONS * NUM_PARTITIONS * NUM_PARTITIONS)
    - item_type: preproc_def
      name: MAX_HISTO_GREEDY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libwebp/src/enc/histogram_enc.c
      type_or_value: '100'
    structs:
    - fields:
      - name: literal_max
        type: uint64_t
      - name: literal_min
        type: uint64_t
      - name: red_max
        type: uint64_t
      - name: red_min
        type: uint64_t
      - name: blue_max
        type: uint64_t
      - name: blue_min
        type: uint64_t
      item_type: struct
      name: DominantCostRange
      pos:
        line_end: 548
        line_start: 541
        source_file: /src/libwebp/src/enc/histogram_enc.c
    - fields:
      - name: first
        type: int16_t
      - name: num_combine_failures
        type: uint16_t
      item_type: struct
      name: bin_info[BIN_SIZE]
      pos:
        line_end: 696
        line_start: 692
        source_file: /src/libwebp/src/enc/histogram_enc.c
    - fields:
      - name: idx1
        type: int
      - name: idx2
        type: int
      - name: cost_diff
        type: int64_t
      - name: cost_combo
        type: uint64_t
      - name: costs[5]
        type: uint64_t
      item_type: struct
      name: HistogramPair
      pos:
        line_end: 780
        line_start: 774
        source_file: /src/libwebp/src/enc/histogram_enc.c
    - fields:
      - name: '* queue'
        type: HistogramPair
      - name: size
        type: int
      - name: max_size
        type: int
      item_type: struct
      name: HistoQueue
      pos:
        line_end: 786
        line_start: 782
        source_file: /src/libwebp/src/enc/histogram_enc.c
    typedefs: []
    union: []
- function_names:
  - ConvertPopulationCountTableToBitEstimates
  - CostModelBuild
  - GetLiteralCost
  - GetCacheCost
  - GetLengthCost
  - GetDistanceCost
  - AddSingleLiteralWithCostModel
  - CostIntervalAddToFreeList
  - CostIntervalIsInFreeList
  - CostManagerInitFreeList
  - DeleteIntervalList
  - CostManagerClear
  - CostManagerInit
  - UpdateCost
  - UpdateCostPerInterval
  - ConnectIntervals
  - PopInterval
  - UpdateCostAtIndex
  - PositionOrphanInterval
  - InsertInterval
  - PushInterval
  - BackwardReferencesHashChainDistanceOnly
  - TraceBackwards
  - BackwardReferencesHashChainFollowChosenPath
  - VP8LBackwardReferencesTraceBackwards
  source_file: /src/libwebp/src/enc/backward_references_cost_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VALUES_IN_BYTE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/libwebp/src/enc/backward_references_cost_enc.c
      type_or_value: '256'
    - item_type: preproc_def
      name: COST_CACHE_INTERVAL_SIZE_MAX
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/libwebp/src/enc/backward_references_cost_enc.c
      type_or_value: '500'
    - item_type: preproc_def
      name: COST_MANAGER_MAX_FREE_LIST
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/libwebp/src/enc/backward_references_cost_enc.c
      type_or_value: '10'
    structs:
    - fields:
      - name: alpha[VALUES_IN_BYTE]
        type: uint32_t
      - name: red[VALUES_IN_BYTE]
        type: uint32_t
      - name: blue[VALUES_IN_BYTE]
        type: uint32_t
      - name: distance[NUM_DISTANCE_CODES]
        type: uint32_t
      - name: '* literal'
        type: uint32_t
      item_type: struct
      name: CostModel
      pos:
        line_end: 40
        line_start: 34
        source_file: /src/libwebp/src/enc/backward_references_cost_enc.c
    - fields:
      - name: cost
        type: int64_t
      - name: start
        type: int
      - name: end
        type: int
      - name: index
        type: int
      - name: '* previous'
        type: CostInterval
      - name: '* next'
        type: CostInterval
      item_type: struct
      name: CostInterval
      pos:
        line_end: 167
        line_start: 160
        source_file: /src/libwebp/src/enc/backward_references_cost_enc.c
    - fields:
      - name: cost
        type: int64_t
      - name: start
        type: int
      - name: end
        type: int
      item_type: struct
      name: CostCacheInterval
      pos:
        line_end: 174
        line_start: 170
        source_file: /src/libwebp/src/enc/backward_references_cost_enc.c
    - fields:
      - name: '* head'
        type: CostInterval
      - name: count
        type: int
      - name: '* cache_intervals'
        type: CostCacheInterval
      - name: cache_intervals_size
        type: size_t
      - name: cost_cache[MAX_LENGTH]
        type: int64_t
      - name: '* costs'
        type: int64_t
      - name: '* dist_array'
        type: uint16_t
      - name: intervals[COST_MANAGER_MAX_FREE_LIST]
        type: CostInterval
      - name: '* free_intervals'
        type: CostInterval
      - name: '* recycled_intervals'
        type: CostInterval
      item_type: struct
      name: CostManager
      pos:
        line_end: 197
        line_start: 181
        source_file: /src/libwebp/src/enc/backward_references_cost_enc.c
    typedefs:
    - item_type: typedef
      name: CostInterval
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/libwebp/src/enc/backward_references_cost_enc.c
      type: CostInterval
    union: []
- function_names:
  - WebPConfigInitInternal
  - WebPValidateConfig
  - WebPConfigLosslessPreset
  source_file: /src/libwebp/src/enc/config_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_LEVEL
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/libwebp/src/enc/config_enc.c
      type_or_value: '9'
    structs:
    - fields:
      - name: method
        type: uint8_t
      - name: quality
        type: uint8_t
      item_type: struct
      name: "kLosslessPresets[MAX_LEVEL + 1] = {{0, 0},  {1, 20}, {2, 25}, {3, 30},\n
        \                                    {3, 50}, {4, 50}, {4, 75}, {4, 90},\n
        \                                    {5, 90}, {6, 100}}"
      pos:
        line_end: 142
        line_start: 139
        source_file: /src/libwebp/src/enc/config_enc.c
    typedefs: []
    union: []
- function_names:
  - EncodeLossless
  - EncodeAlphaInternal
  - GetNumColors
  - GetFilterMap
  - InitFilterTrial
  - ApplyFiltersAndEncode
  - EncodeAlpha
  - CompressAlphaJob
  - VP8EncInitAlpha
  - VP8EncStartAlpha
  - VP8EncFinishAlpha
  - VP8EncDeleteAlpha
  source_file: /src/libwebp/src/enc/alpha_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FILTER_TRY_NONE
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/libwebp/src/enc/alpha_enc.c
      type_or_value: (1 << WEBP_FILTER_NONE)
    - item_type: preproc_def
      name: FILTER_TRY_ALL
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/libwebp/src/enc/alpha_enc.c
      type_or_value: ((1 << WEBP_FILTER_LAST) - 1)
    structs:
    - fields:
      - name: score
        type: size_t
      - name: bw
        type: VP8BitWriter
      - name: stats
        type: WebPAuxStats
      item_type: struct
      name: FilterTrial
      pos:
        line_end: 106
        line_start: 102
        source_file: /src/libwebp/src/enc/alpha_enc.c
    typedefs: []
    union: []
- function_names:
  - VP8RecordStats
  - VP8BitCost
  - VP8LevelCost
  source_file: /src/libwebp/src/enc/cost_enc.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: first
        type: int
      - name: last
        type: int
      - name: '* coeffs'
        type: int16_t
      - name: coeff_type
        type: int
      - name: '* prob'
        type: ProbaArray
      - name: '* stats'
        type: StatsArray
      - name: costs
        type: CostArrayPtr
      item_type: struct
      name: VP8Residual
      pos:
        line_end: 40
        line_start: 31
        source_file: /src/libwebp/src/enc/cost_enc.h
    typedefs:
    - item_type: typedef
      name: VP8Residual
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/libwebp/src/enc/cost_enc.h
      type: VP8Residual
    union: []
- function_names:
  - VP8LHistogramNumCodes
  source_file: /src/libwebp/src/enc/histogram_enc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VP8L_NON_TRIVIAL_SYM
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/libwebp/src/enc/histogram_enc.h
      type_or_value: ((uint16_t)(0xffff))
    structs:
    - fields:
      - name: '* literal'
        type: uint32_t
      - name: red[NUM_LITERAL_CODES]
        type: uint32_t
      - name: blue[NUM_LITERAL_CODES]
        type: uint32_t
      - name: alpha[NUM_LITERAL_CODES]
        type: uint32_t
      - name: distance[NUM_DISTANCE_CODES]
        type: uint32_t
      - name: palette_code_bits
        type: int
      - name: trivial_symbol[5]
        type: uint16_t
      - name: bit_cost
        type: uint64_t
      - name: costs[5]
        type: uint64_t
      - name: is_used[5]
        type: uint8_t
      - name: bin_id
        type: uint16_t
      item_type: struct
      name: VP8LHistogram
      pos:
        line_end: 49
        line_start: 29
        source_file: /src/libwebp/src/enc/histogram_enc.h
    - fields:
      - name: size
        type: int
      - name: max_size
        type: int
      - name: '** histograms'
        type: VP8LHistogram
      item_type: struct
      name: VP8LHistogramSet
      pos:
        line_end: 57
        line_start: 53
        source_file: /src/libwebp/src/enc/histogram_enc.h
    typedefs: []
    union: []
- function_names:
  - TOKEN_DATA
  - VP8TBufferInit
  - VP8TBufferClear
  - TBufferNewPage
  - TOKEN_ID
  - AddToken
  - AddConstantToken
  - VP8RecordCoeffTokens
  - VP8EmitTokens
  - VP8EstimateTokenSize
  - VP8TBufferInit
  - VP8TBufferClear
  source_file: /src/libwebp/src/enc/token_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MIN_PAGE_SIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/libwebp/src/enc/token_enc.c
      type_or_value: 8192  // minimum number of token per page
    - item_type: preproc_def
      name: FIXED_PROBA_BIT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/libwebp/src/enc/token_enc.c
      type_or_value: (1u << 14)
    structs:
    - fields:
      - name: '* next'
        type: VP8Tokens
      item_type: struct
      name: VP8Tokens
      pos:
        line_end: 41
        line_start: 39
        source_file: /src/libwebp/src/enc/token_enc.c
    typedefs:
    - item_type: typedef
      name: token_t
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/libwebp/src/enc/token_enc.c
      type: uint16_t
    union: []
- function_names:
  - IsVP8XNeeded
  - PutPaddingByte
  - PutRIFFHeader
  - PutVP8XHeader
  - PutAlphaChunk
  - PutVP8Header
  - PutVP8FrameHeader
  - PutWebPHeaders
  - PutSegmentHeader
  - PutFilterHeader
  - PutQuant
  - EmitPartitionsSize
  - GeneratePartition0
  - VP8EncFreeBitWriters
  - VP8EncWrite
  source_file: /src/libwebp/src/enc/syntax_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FindClosestDiscretized
  - ClosestDiscretizedArgb
  - IsNear
  - IsSmooth
  - NearLossless
  - VP8ApplyNearLossless
  - VP8LNearLosslessStub
  source_file: /src/libwebp/src/enc/near_lossless_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MIN_DIM_FOR_NEAR_LOSSLESS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libwebp/src/enc/near_lossless_enc.c
      type_or_value: '64'
    - item_type: preproc_def
      name: MAX_LIMIT_BITS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libwebp/src/enc/near_lossless_enc.c
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PixOrCopyCreateCopy
  - PixOrCopyCreateCacheIdx
  - PixOrCopyCreateLiteral
  - PixOrCopyIsLiteral
  - PixOrCopyIsCacheIdx
  - PixOrCopyIsCopy
  - PixOrCopyLiteral
  - PixOrCopyLength
  - PixOrCopyCacheIdx
  - PixOrCopyDistance
  - VP8LHashChainFindOffset
  - VP8LHashChainFindLength
  - VP8LHashChainFindCopy
  - VP8LRefsCursorOk
  - VP8LRefsCursorNext
  source_file: /src/libwebp/src/enc/backward_references_enc.h
  types:
    enum:
    - enumerators:
      - name: kLiteral
      - name: kCopy
      - name: kCacheIdx
      - name: kNone
      item_type: enum
      name: Mode
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/libwebp/src/enc/backward_references_enc.h
    - enumerators:
      - name: kLZ77Standard
        value: '1'
      - name: kLZ77RLE
        value: '2'
      - name: kLZ77Box
        value: '4'
      item_type: enum
      name: VP8LLZ77Type
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/libwebp/src/enc/backward_references_enc.h
    preproc_defs:
    - item_type: preproc_def
      name: MAX_COLOR_CACHE_BITS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/libwebp/src/enc/backward_references_enc.h
      type_or_value: '10'
    - item_type: preproc_def
      name: HASH_BITS
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libwebp/src/enc/backward_references_enc.h
      type_or_value: '18'
    - item_type: preproc_def
      name: HASH_SIZE
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/libwebp/src/enc/backward_references_enc.h
      type_or_value: (1 << HASH_BITS)
    - item_type: preproc_def
      name: MAX_LENGTH_BITS
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/libwebp/src/enc/backward_references_enc.h
      type_or_value: '12'
    - item_type: preproc_def
      name: WINDOW_SIZE_BITS
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/libwebp/src/enc/backward_references_enc.h
      type_or_value: '20'
    - item_type: preproc_def
      name: MAX_LENGTH
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/libwebp/src/enc/backward_references_enc.h
      type_or_value: ((1 << MAX_LENGTH_BITS) - 1)
    - item_type: preproc_def
      name: MAX_REFS_BLOCK_PER_IMAGE
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/libwebp/src/enc/backward_references_enc.h
      type_or_value: '16'
    structs:
    - fields:
      - name: mode
        type: uint8_t
      - name: len
        type: uint16_t
      - name: argb_or_distance
        type: uint32_t
      item_type: struct
      name: PixOrCopy
      pos:
        line_end: 39
        line_start: 34
        source_file: /src/libwebp/src/enc/backward_references_enc.h
    - fields:
      - name: '* offset_length'
        type: uint32_t
      - name: size
        type: int
      item_type: struct
      name: VP8LHashChain
      pos:
        line_end: 128
        line_start: 118
        source_file: /src/libwebp/src/enc/backward_references_enc.h
    - fields:
      - name: block_size
        type: int
      - name: error
        type: int
      - name: '* refs'
        type: PixOrCopyBlock
      - name: '** tail'
        type: PixOrCopyBlock
      - name: '* free_blocks'
        type: PixOrCopyBlock
      - name: '* last_block'
        type: PixOrCopyBlock
      item_type: struct
      name: VP8LBackwardRefs
      pos:
        line_end: 174
        line_start: 167
        source_file: /src/libwebp/src/enc/backward_references_enc.h
    - fields:
      - name: '* cur_pos'
        type: PixOrCopy
      - name: '* cur_block'
        type: PixOrCopyBlock
      - name: '* last_pos'
        type: PixOrCopy
      item_type: struct
      name: VP8LRefsCursor
      pos:
        line_end: 189
        line_start: 183
        source_file: /src/libwebp/src/enc/backward_references_enc.h
    typedefs:
    - item_type: typedef
      name: VP8LHashChain
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/libwebp/src/enc/backward_references_enc.h
      type: VP8LHashChain
    - item_type: typedef
      name: PixOrCopyBlock
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/libwebp/src/enc/backward_references_enc.h
      type: PixOrCopyBlock
    - item_type: typedef
      name: VP8LBackwardRefs
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/libwebp/src/enc/backward_references_enc.h
      type: VP8LBackwardRefs
    union: []
- function_names:
  - DummyWriter
  - WebPPictureInitInternal
  - WebPValidatePicture
  - WebPPictureResetBufferARGB
  - WebPPictureResetBufferYUVA
  - WebPPictureResetBuffers
  - WebPPictureAllocARGB
  - WebPPictureAllocYUVA
  - WebPPictureAlloc
  - WebPPictureFree
  - WebPMemoryWriterInit
  - WebPMemoryWrite
  - WebPMemoryWriterClear
  - Encode
  - ENCODE_FUNC
  - LOSSLESS_ENCODE_FUNC
  source_file: /src/libwebp/src/enc/picture_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LOSSLESS_DEFAULT_QUALITY
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/libwebp/src/enc/picture_enc.c
      type_or_value: '70.'
    structs: []
    typedefs:
    - item_type: typedef
      name: (*Importer)(WebPPicture* const, const uint8_t* const, int)
      pos:
        line_end: 235
        line_start: 235
        source_file: /src/libwebp/src/enc/picture_enc.c
      type: int
    union: []
- function_names:
  - Clamp
  - InitPassStats
  - ComputeNextQ
  - ResetStats
  - CalcSkipProba
  - FinalizeSkipProba
  - CalcTokenProba
  - BranchCost
  - ResetTokenStats
  - FinalizeTokenProbas
  - GetProba
  - ResetSegments
  - SetSegmentProbas
  - PutCoeffs
  - CodeResiduals
  - RecordResiduals
  - RecordTokens
  - SetBlock
  - ResetSSE
  - StoreSSE
  - StoreSideInfo
  - ResetSideInfo
  - ResetSSE
  - StoreSideInfo
  - ResetSideInfo
  - GetPSNR
  - SetLoopParams
  - OneStatPass
  - StatLoop
  - PreLoopInitialize
  - PostLoopFinalize
  - ResetAfterSkip
  - VP8EncLoop
  - VP8EncTokenLoop
  - VP8EncTokenLoop
  source_file: /src/libwebp/src/enc/frame_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEGMENT_VISU
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/libwebp/src/enc/frame_enc.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DEBUG_SEARCH
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/libwebp/src/enc/frame_enc.c
      type_or_value: 0  // useful to track search convergence
    - item_type: preproc_def
      name: HEADER_SIZE_ESTIMATE
      pos:
        line_end: 34
        line_start: 32
        source_file: /src/libwebp/src/enc/frame_enc.c
      type_or_value: (RIFF_HEADER_SIZE + CHUNK_HEADER_SIZE + VP8_FRAME_HEADER_SIZE)
    - item_type: preproc_def
      name: DQ_LIMIT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/libwebp/src/enc/frame_enc.c
      type_or_value: 0.4  // convergence is considered reached if dq < DQ_LIMIT
    - item_type: preproc_def
      name: PARTITION0_SIZE_LIMIT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/libwebp/src/enc/frame_enc.c
      type_or_value: ((VP8_MAX_PARTITION0_SIZE - 2048ULL) << 11)
    - item_type: preproc_def
      name: SKIP_PROBA_THRESHOLD
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/libwebp/src/enc/frame_enc.c
      type_or_value: 250  // value below which using skip_proba is OK.
    - item_type: preproc_def
      name: MIN_COUNT
      pos:
        line_end: 793
        line_start: 792
        source_file: /src/libwebp/src/enc/frame_enc.c
      type_or_value: 96  // minimum number of macroblocks before updating stats
    structs:
    - fields:
      - name: is_first
        type: int
      - name: dq
        type: float
      - name: q
        type: float
      - name: qmin
        type: float
      - name: value
        type: double
      - name: target
        type: double
      - name: do_size_search
        type: int
      item_type: struct
      name: PassStats
      pos:
        line_end: 50
        line_start: 42
        source_file: /src/libwebp/src/enc/frame_enc.c
    typedefs: []
    union: []
- function_names:
  - SmoothSegmentMap
  - clip
  - SetSegmentAlphas
  - IS_BETTER_ALPHA
  - FinalAlphaValue
  - GetAlpha
  - InitHistogram
  - AssignSegments
  - MBAnalyzeBestIntra16Mode
  - FastMBAnalyze
  - MBAnalyzeBestUVMode
  - MBAnalyze
  - DefaultMBInfo
  - ResetAllMBInfo
  - DoSegmentsJob
  - MergeJobs
  - InitSegmentJob
  - VP8EncAnalyze
  source_file: /src/libwebp/src/enc/analysis_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_ITERS_K_MEANS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/libwebp/src/enc/analysis_enc.c
      type_or_value: '6'
    - item_type: preproc_def
      name: MAX_ALPHA
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/libwebp/src/enc/analysis_enc.c
      type_or_value: 255                // 8b of precision for susceptibilities.
    - item_type: preproc_def
      name: ALPHA_SCALE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/libwebp/src/enc/analysis_enc.c
      type_or_value: (2 * MAX_ALPHA)  // scaling factor for alpha.
    - item_type: preproc_def
      name: DEFAULT_ALPHA
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/libwebp/src/enc/analysis_enc.c
      type_or_value: (-1)
    - item_type: preproc_def
      name: MAX_INTRA16_MODE
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/libwebp/src/enc/analysis_enc.c
      type_or_value: '2'
    - item_type: preproc_def
      name: MAX_INTRA4_MODE
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/libwebp/src/enc/analysis_enc.c
      type_or_value: '2'
    - item_type: preproc_def
      name: MAX_UV_MODE
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/libwebp/src/enc/analysis_enc.c
      type_or_value: '2'
    structs:
    - fields:
      - name: worker
        type: WebPWorker
      - name: alphas[MAX_ALPHA + 1]
        type: int
      - name: alpha
        type: int
      - name: it
        type: VP8EncIterator
      - name: delta_progress
        type: int
      item_type: struct
      name: SegmentJob
      pos:
        line_end: 382
        line_start: 376
        source_file: /src/libwebp/src/enc/analysis_enc.c
    typedefs: []
    union: []
- function_names:
  - MULT_8B
  - PrintBlockInfo
  - clip
  - ExpandMatrix
  - CheckLambdaValue
  - SetupMatrices
  - SetupFilterStrength
  - QualityToCompression
  - QualityToJPEGCompression
  - SegmentsAreEquivalent
  - SimplifySegments
  - VP8SetSegmentParams
  - VP8MakeLuma16Preds
  - VP8MakeChroma8Preds
  - MakeIntra4Preds
  - InitScore
  - NODE
  - SCORE_STATE
  - SetRDScore
  - RDScoreTrellis
  - TrellisQuantizeBlock
  - QuantizeSingle
  - CorrectDCValues
  - StoreMaxDelta
  - SwapModeScore
  - SwapPtr
  - SwapOut
  - GetCostModeI4
  source_file: /src/libwebp/src/enc/quant_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DO_TRELLIS_I4
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DO_TRELLIS_I16
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: 1  // not a huge gain, but ok at low bitrate.
    - item_type: preproc_def
      name: DO_TRELLIS_UV
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: 0   // disable trellis for UV. Risky. Not worth.
    - item_type: preproc_def
      name: USE_TDISTO
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: '1'
    - item_type: preproc_def
      name: MID_ALPHA
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: 64   // neutral value for susceptibility
    - item_type: preproc_def
      name: MIN_ALPHA
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: 30   // lowest usable value for susceptibility
    - item_type: preproc_def
      name: MAX_ALPHA
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: 100  // higher meaningful value for susceptibility
    - item_type: preproc_def
      name: SNS_TO_DQ
      pos:
        line_end: 36
        line_start: 34
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: 0.9  // Scaling constant between the sns value and the QP
    - item_type: preproc_def
      name: FLATNESS_LIMIT_I16
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: 0  // I16 mode (special case)
    - item_type: preproc_def
      name: FLATNESS_LIMIT_I4
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: 3   // I4 mode
    - item_type: preproc_def
      name: FLATNESS_LIMIT_UV
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: 2   // UV mode
    - item_type: preproc_def
      name: FLATNESS_PENALTY
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: 140  // roughly ~1bit per block
    - item_type: preproc_def
      name: RD_DISTO_MULT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: 256  // distortion multiplier (equivalent of lambda)
    - item_type: preproc_def
      name: SHARPEN_BITS
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: 11  // number of descaling bits for sharpening bias
    - item_type: preproc_def
      name: FSTRENGTH_CUTOFF
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: '2'
    - item_type: preproc_def
      name: MAX_DQ_UV
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: (6)
    - item_type: preproc_def
      name: MIN_DQ_UV
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: (-4)
    - item_type: preproc_def
      name: MIN_DELTA
      pos:
        line_end: 551
        line_start: 550
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: 0  // how much lower level to try
    - item_type: preproc_def
      name: MAX_DELTA
      pos:
        line_end: 552
        line_start: 551
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: 1  // how much higher
    - item_type: preproc_def
      name: NUM_NODES
      pos:
        line_end: 553
        line_start: 552
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: (MIN_DELTA + 1 + MAX_DELTA)
    - item_type: preproc_def
      name: C1
      pos:
        line_end: 833
        line_start: 832
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: 7  // fraction of error sent to the 4x4 block below
    - item_type: preproc_def
      name: C2
      pos:
        line_end: 834
        line_start: 833
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: 8  // fraction of error sent to the 4x4 block on the right
    - item_type: preproc_def
      name: DSHIFT
      pos:
        line_end: 835
        line_start: 834
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: '4'
    - item_type: preproc_def
      name: DSCALE
      pos:
        line_end: 836
        line_start: 835
        source_file: /src/libwebp/src/enc/quant_enc.c
      type_or_value: 1  // storage descaling, needed to make the error fit int8_t
    structs:
    - fields:
      - name: prev
        type: int8_t
      - name: sign
        type: int8_t
      - name: level
        type: int16_t
      item_type: struct
      name: Node
      pos:
        line_end: 539
        line_start: 535
        source_file: /src/libwebp/src/enc/quant_enc.c
    - fields:
      - name: score
        type: score_t
      - name: '* costs'
        type: uint16_t
      item_type: struct
      name: ScoreState
      pos:
        line_end: 545
        line_start: 542
        source_file: /src/libwebp/src/enc/quant_enc.c
    typedefs: []
    union: []
- function_names:
  - VP8FilterStrengthFromDelta
  - GetILevel
  - DoFilter
  - GetMBSSIM
  - VP8InitFilter
  - VP8StoreFilterStats
  - VP8AdjustFilterStrength
  source_file: /src/libwebp/src/enc/filter_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_DELTA_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/libwebp/src/enc/filter_enc.c
      type_or_value: '64'
    structs: []
    typedefs: []
    union: []
- function_names:
  - BIAS
  - QUANTDIV
  source_file: /src/libwebp/src/enc/vp8i_enc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ENC_MAJ_VERSION
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ENC_MIN_VERSION
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: '6'
    - item_type: preproc_def
      name: ENC_REV_VERSION
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: '0'
    - item_type: preproc_def
      name: YUV_SIZE_ENC
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (BPS * 16)
    - item_type: preproc_def
      name: PRED_SIZE_ENC
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (32 * BPS + 16 * BPS + 8 * BPS)  // I16+Chroma+I4 preds
    - item_type: preproc_def
      name: Y_OFF_ENC
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (0)
    - item_type: preproc_def
      name: U_OFF_ENC
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (16)
    - item_type: preproc_def
      name: V_OFF_ENC
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (16 + 8)
    - item_type: preproc_def
      name: I16DC16
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (0 * 16 * BPS)
    - item_type: preproc_def
      name: I16TM16
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (I16DC16 + 16)
    - item_type: preproc_def
      name: I16VE16
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (1 * 16 * BPS)
    - item_type: preproc_def
      name: I16HE16
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (I16VE16 + 16)
    - item_type: preproc_def
      name: C8DC8
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (2 * 16 * BPS)
    - item_type: preproc_def
      name: C8TM8
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (C8DC8 + 1 * 16)
    - item_type: preproc_def
      name: C8VE8
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (2 * 16 * BPS + 8 * BPS)
    - item_type: preproc_def
      name: C8HE8
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (C8VE8 + 1 * 16)
    - item_type: preproc_def
      name: I4DC4
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (3 * 16 * BPS + 0)
    - item_type: preproc_def
      name: I4TM4
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (I4DC4 + 4)
    - item_type: preproc_def
      name: I4VE4
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (I4DC4 + 8)
    - item_type: preproc_def
      name: I4HE4
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (I4DC4 + 12)
    - item_type: preproc_def
      name: I4RD4
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (I4DC4 + 16)
    - item_type: preproc_def
      name: I4VR4
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (I4DC4 + 20)
    - item_type: preproc_def
      name: I4LD4
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (I4DC4 + 24)
    - item_type: preproc_def
      name: I4VL4
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (I4DC4 + 28)
    - item_type: preproc_def
      name: I4HD4
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (3 * 16 * BPS + 4 * BPS)
    - item_type: preproc_def
      name: I4HU4
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (I4HD4 + 4)
    - item_type: preproc_def
      name: I4TMP
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: (I4HD4 + 8)
    - item_type: preproc_def
      name: MAX_COST
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: ((score_t)0x7fffffffffffffLL)
    - item_type: preproc_def
      name: QFIX
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: '17'
    - item_type: preproc_def
      name: ERROR_DIFFUSION_QUALITY
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type_or_value: '98'
    structs:
    - fields:
      - name: num_segments
        type: int
      - name: update_map
        type: int
      - name: size
        type: int
      item_type: struct
      name: VP8EncSegmentHeader
      pos:
        line_end: 147
        line_start: 142
        source_file: /src/libwebp/src/enc/vp8i_enc.h
    - fields:
      - name: segments[3]
        type: uint8_t
      - name: skip_proba
        type: uint8_t
      - name: coeffs[NUM_TYPES][NUM_BANDS]
        type: ProbaArray
      - name: stats[NUM_TYPES][NUM_BANDS]
        type: StatsArray
      - name: level_cost[NUM_TYPES][NUM_BANDS]
        type: CostArray
      - name: remapped_costs[NUM_TYPES]
        type: CostArrayMap
      - name: dirty
        type: int
      - name: use_skip_proba
        type: int
      - name: nb_skip
        type: int
      item_type: struct
      name: VP8EncProba
      pos:
        line_end: 160
        line_start: 150
        source_file: /src/libwebp/src/enc/vp8i_enc.h
    - fields:
      - name: simple
        type: int
      - name: level
        type: int
      - name: sharpness
        type: int
      - name: i4x4_lf_delta
        type: int
      item_type: struct
      name: VP8EncFilterHeader
      pos:
        line_end: 169
        line_start: 164
        source_file: /src/libwebp/src/enc/vp8i_enc.h
    - fields:
      - name: type
        type: unsigned int
      - name: uv_mode
        type: unsigned int
      - name: skip
        type: unsigned int
      - name: segment
        type: unsigned int
      - name: alpha
        type: uint8_t
      item_type: struct
      name: VP8MBInfo
      pos:
        line_end: 181
        line_start: 174
        source_file: /src/libwebp/src/enc/vp8i_enc.h
    - fields:
      - name: q[16]
        type: uint16_t
      - name: iq[16]
        type: uint16_t
      - name: bias[16]
        type: uint32_t
      - name: zthresh[16]
        type: uint32_t
      - name: sharpen[16]
        type: uint16_t
      item_type: struct
      name: VP8Matrix
      pos:
        line_end: 189
        line_start: 183
        source_file: /src/libwebp/src/enc/vp8i_enc.h
    - fields:
      - name: y1
        type: VP8Matrix
      - name: alpha
        type: int
      - name: beta
        type: int
      - name: quant
        type: int
      - name: fstrength
        type: int
      - name: max_edge
        type: int
      - name: min_disto
        type: int
      - name: lambda_i16
        type: int
      - name: lambda_mode
        type: int
      - name: lambda_trellis_i16
        type: int
      - name: i4_penalty
        type: score_t
      item_type: struct
      name: VP8SegmentInfo
      pos:
        line_end: 207
        line_start: 191
        source_file: /src/libwebp/src/enc/vp8i_enc.h
    - fields:
      - name: D
        type: score_t
      - name: H
        type: score_t
      - name: y_dc_levels[16]
        type: int16_t
      - name: y_ac_levels[16][16]
        type: int16_t
      - name: uv_levels[4 + 4][16]
        type: int16_t
      - name: mode_i16
        type: int
      - name: modes_i4[16]
        type: uint8_t
      - name: mode_uv
        type: int
      - name: nz
        type: uint32_t
      - name: derr[2][3]
        type: int8_t
      item_type: struct
      name: VP8ModeScore
      pos:
        line_end: 224
        line_start: 213
        source_file: /src/libwebp/src/enc/vp8i_enc.h
    - fields:
      - name: x
        type: int
      - name: '* yuv_in'
        type: uint8_t
      - name: '* yuv_out'
        type: uint8_t
      - name: '* yuv_out2'
        type: uint8_t
      - name: '* yuv_p'
        type: uint8_t
      - name: '* enc'
        type: VP8Encoder
      - name: '* mb'
        type: VP8MBInfo
      - name: '* bw'
        type: VP8BitWriter
      - name: '* preds'
        type: uint8_t
      - name: '* nz'
        type: uint32_t
      - name: '* i4_top'
        type: uint8_t
      - name: i4
        type: int
      - name: top_nz[9]
        type: int
      - name: left_nz[9]
        type: int
      - name: bit_count[4][3]
        type: uint64_t
      - name: luma_bits
        type: uint64_t
      - name: uv_bits
        type: uint64_t
      - name: '* lf_stats'
        type: LFStats
      - name: do_trellis
        type: int
      - name: count_down
        type: int
      - name: count_down0
        type: int
      - name: percent0
        type: int
      - name: left_derr
        type: DError
      - name: '* top_derr'
        type: DError
      - name: '* y_left'
        type: uint8_t
      - name: '* u_left'
        type: uint8_t
      - name: '* v_left'
        type: uint8_t
      - name: '* y_top'
        type: uint8_t
      - name: '* uv_top'
        type: uint8_t
      - name: yuv_left_mem[17 + 16 + 16 + 8 + WEBP_ALIGN_CST]
        type: uint8_t
      - name: yuv_mem[3 * YUV_SIZE_ENC + PRED_SIZE_ENC + WEBP_ALIGN_CST]
        type: uint8_t
      item_type: struct
      name: VP8EncIterator
      pos:
        line_end: 271
        line_start: 228
        source_file: /src/libwebp/src/enc/vp8i_enc.h
    - fields:
      - name: error
        type: int
      item_type: struct
      name: VP8TBuffer
      pos:
        line_end: 325
        line_start: 316
        source_file: /src/libwebp/src/enc/vp8i_enc.h
    - fields:
      - name: '* config'
        type: WebPConfig
      - name: '* pic'
        type: WebPPicture
      - name: filter_hdr
        type: VP8EncFilterHeader
      - name: segment_hdr
        type: VP8EncSegmentHeader
      - name: profile
        type: int
      - name: mb_w
        type: int
      - name: preds_w
        type: int
      - name: num_parts
        type: int
      - name: bw
        type: VP8BitWriter
      - name: parts[MAX_NUM_PARTITIONS]
        type: VP8BitWriter
      - name: tokens
        type: VP8TBuffer
      - name: percent
        type: int
      - name: has_alpha
        type: int
      - name: '* alpha_data'
        type: uint8_t
      - name: alpha_data_size
        type: uint32_t
      - name: alpha_worker
        type: WebPWorker
      - name: dqm[NUM_MB_SEGMENTS]
        type: VP8SegmentInfo
      - name: base_quant
        type: int
      - name: alpha
        type: int
      - name: uv_alpha
        type: int
      - name: dq_y1_dc
        type: int
      - name: dq_y2_dc
        type: int
      - name: dq_uv_dc
        type: int
      - name: proba
        type: VP8EncProba
      - name: sse[4]
        type: uint64_t
      - name: sse_count
        type: uint64_t
      - name: coded_size
        type: int
      - name: residual_bytes[3][4]
        type: int
      - name: block_count[3]
        type: int
      - name: method
        type: int
      - name: rd_opt_level
        type: VP8RDLevel
      - name: max_i4_header_bits
        type: int
      - name: mb_header_limit
        type: int
      - name: thread_level
        type: int
      - name: do_search
        type: int
      - name: use_tokens
        type: int
      - name: '* mb_info'
        type: VP8MBInfo
      - name: '* preds'
        type: uint8_t
      - name: '* nz'
        type: uint32_t
      - name: '* y_top'
        type: uint8_t
      - name: '* uv_top'
        type: uint8_t
      - name: '* lf_stats'
        type: LFStats
      - name: '* top_derr'
        type: DError
      item_type: struct
      name: VP8Encoder
      pos:
        line_end: 417
        line_start: 350
        source_file: /src/libwebp/src/enc/vp8i_enc.h
    typedefs:
    - item_type: typedef
      name: score_t
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type: int64_t
    - item_type: typedef
      name: proba_t
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type: uint32_t
    - item_type: typedef
      name: ProbaArray[NUM_CTX][NUM_PROBAS]
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type: uint8_t
    - item_type: typedef
      name: StatsArray[NUM_CTX][NUM_PROBAS]
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type: proba_t
    - item_type: typedef
      name: CostArray[NUM_CTX][MAX_VARIABLE_LEVEL + 1]
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type: uint16_t
    - item_type: typedef
      name: '* (*CostArrayPtr)[NUM_CTX]'
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type: uint16_t
    - item_type: typedef
      name: '* CostArrayMap[16][NUM_CTX]'
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type: uint16_t
    - item_type: typedef
      name: LFStats[NUM_MB_SEGMENTS][MAX_LF_LEVELS]
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type: double
    - item_type: typedef
      name: VP8Encoder
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type: VP8Encoder
    - item_type: typedef
      name: DError[2 /* u/v */][2 /* top or left */]
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type: int8_t
    - item_type: typedef
      name: VP8Tokens
      pos:
        line_end: 314
        line_start: 314
        source_file: /src/libwebp/src/enc/vp8i_enc.h
      type: VP8Tokens
    union: []
- function_names:
  - GetMin
  - GetMax
  - PredictionCostBias
  - PredictionCostSpatialHistogram
  - UpdateHisto
  - PredictBatch
  - MaxDiffBetweenPixels
  - MaxDiffAroundPixel
  - AddGreenToBlueAndRed
  - MaxDiffsForRow
  - NearLosslessComponent
  - NearLosslessDiff
  - NearLossless
  - GetResidual
  - GetHistoArgb
  - GetHistoArgbConst
  - GetAccumulatedHisto
  - GetBestPredictorForTile
  - ComputeResidualsForTile
  - CopyImageWithPrediction
  - VP8LOptimizeSampling
  - GetBestPredictorsAndSubSampling
  - VP8LResidualImage
  - MultipliersClear
  - ColorCodeToMultipliers
  - MultipliersToColorCode
  - PredictionCostCrossColor
  - GetPredictionCostCrossColorRed
  - GetBestGreenToRed
  - GetPredictionCostCrossColorBlue
  - GetBestGreenRedToBlue
  - GetBestColorTransformForTile
  - CopyTileWithColorTransform
  - VP8LColorSpaceTransform
  source_file: /src/libwebp/src/enc/predictor_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HISTO_SIZE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libwebp/src/enc/predictor_enc.c
      type_or_value: (4 * 256)
    - item_type: preproc_def
      name: kGreenRedToBlueNumAxis
      pos:
        line_end: 957
        line_start: 956
        source_file: /src/libwebp/src/enc/predictor_enc.c
      type_or_value: '8'
    - item_type: preproc_def
      name: kGreenRedToBlueMaxIters
      pos:
        line_end: 958
        line_start: 957
        source_file: /src/libwebp/src/enc/predictor_enc.c
      type_or_value: '7'
    structs: []
    typedefs: []
    union: []
- function_names:
  - IsTransparentARGBArea
  - Flatten
  - FlattenARGB
  - SmoothenBlock
  - WebPReplaceTransparentPixels
  - WebPCleanupTransparentArea
  - BLEND
  - BLEND_10BIT
  - MakeARGB32
  - WebPBlendAlpha
  source_file: /src/libwebp/src/enc/picture_tools_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIZE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/libwebp/src/enc/picture_tools_enc.c
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZE2
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/libwebp/src/enc/picture_tools_enc.c
      type_or_value: (SIZE / 2)
    structs: []
    typedefs: []
    union: []
- function_names:
  - CHANNEL_SHIFT
  - CHANNEL_SHIFT
  - DefaultDecoderOptions
  - WebPAnimDecoderOptionsInitInternal
  - ApplyDecoderOptions
  - WebPAnimDecoderNewInternal
  - WebPAnimDecoderGetInfo
  - IsFullFrame
  - ZeroFillCanvas
  - ZeroFillFrameRect
  - CopyCanvas
  - IsKeyFrame
  - BlendChannelNonPremult
  - BlendPixelNonPremult
  - BlendPixelRowNonPremult
  - ChannelwiseMultiply
  - BlendPixelPremult
  - BlendPixelRowPremult
  - FindBlendRangeAtRow
  - WebPAnimDecoderGetNext
  - WebPAnimDecoderHasMoreFrames
  - WebPAnimDecoderReset
  - WebPAnimDecoderGetDemuxer
  - WebPAnimDecoderDelete
  source_file: /src/libwebp/src/demux/anim_decode.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_CHANNELS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libwebp/src/demux/anim_decode.c
      type_or_value: '4'
    structs:
    - fields:
      - name: '* demux'
        type: WebPDemuxer
      - name: config
        type: WebPDecoderConfig
      - name: blend_func
        type: BlendRowFunc
      - name: info
        type: WebPAnimInfo
      - name: '* curr_frame'
        type: uint8_t
      - name: '* prev_frame_disposed'
        type: uint8_t
      - name: prev_frame_timestamp
        type: int
      - name: prev_iter
        type: WebPIterator
      - name: prev_frame_was_keyframe
        type: int
      - name: next_frame
        type: int
      item_type: struct
      name: WebPAnimDecoder
      pos:
        line_end: 58
        line_start: 44
        source_file: /src/libwebp/src/demux/anim_decode.c
    typedefs:
    - item_type: typedef
      name: (*BlendRowFunc)(uint32_t* const, const uint32_t* const, int)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/libwebp/src/demux/anim_decode.c
      type: void
    union: []
- function_names:
  - WebPGetDemuxVersion
  - RemapMemBuffer
  - InitMemBuffer
  - MemDataSize
  - SizeIsInvalid
  - Skip
  - Rewind
  - GetBuffer
  - ReadByte
  - ReadLE16s
  - ReadLE24s
  - ReadLE32
  - AddChunk
  - AddFrame
  - SetFrameInfo
  - StoreFrame
  - NewFrame
  - ParseAnimationFrame
  - StoreChunk
  - ReadHeader
  - ParseSingleImage
  - ParseVP8XChunks
  - ParseVP8X
  - IsValidSimpleFormat
  - CheckFrameBounds
  - IsValidExtendedFormat
  - InitDemux
  - CreateRawImageDemuxer
  - WebPDemuxInternal
  - WebPDemuxDelete
  - WebPDemuxGetI
  - GetFrame
  - GetFramePayload
  - SynthesizeFrame
  - SetFrame
  - WebPDemuxGetFrame
  - WebPDemuxNextFrame
  - WebPDemuxPrevFrame
  - WebPDemuxReleaseIterator
  - ChunkCount
  - GetChunk
  - SetChunk
  - WebPDemuxGetChunk
  - WebPDemuxNextChunk
  - WebPDemuxPrevChunk
  - WebPDemuxReleaseChunkIterator
  source_file: /src/libwebp/src/demux/demux.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DMUX_MAJ_VERSION
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/libwebp/src/demux/demux.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DMUX_MIN_VERSION
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/libwebp/src/demux/demux.c
      type_or_value: '6'
    - item_type: preproc_def
      name: DMUX_REV_VERSION
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/libwebp/src/demux/demux.c
      type_or_value: '0'
    structs:
    - fields:
      - name: start
        type: size_t
      - name: end
        type: size_t
      - name: riff_end
        type: size_t
      - name: buf_size
        type: size_t
      - name: '* buf'
        type: uint8_t
      item_type: struct
      name: MemBuffer
      pos:
        line_end: 40
        line_start: 34
        source_file: /src/libwebp/src/demux/demux.c
    - fields:
      - name: offset
        type: size_t
      - name: size
        type: size_t
      item_type: struct
      name: ChunkData
      pos:
        line_end: 45
        line_start: 42
        source_file: /src/libwebp/src/demux/demux.c
    - fields:
      - name: x_offset
        type: int
      - name: width
        type: int
      - name: has_alpha
        type: int
      - name: duration
        type: int
      - name: dispose_method
        type: WebPMuxAnimDispose
      - name: blend_method
        type: WebPMuxAnimBlend
      - name: frame_num
        type: int
      - name: complete
        type: int
      - name: img_components[2]
        type: ChunkData
      - name: '* next'
        type: struct Frame
      item_type: struct
      name: Frame
      pos:
        line_end: 58
        line_start: 47
        source_file: /src/libwebp/src/demux/demux.c
    - fields:
      - name: data
        type: ChunkData
      - name: '* next'
        type: struct Chunk
      item_type: struct
      name: Chunk
      pos:
        line_end: 63
        line_start: 60
        source_file: /src/libwebp/src/demux/demux.c
    - fields:
      - name: mem
        type: MemBuffer
      - name: state
        type: WebPDemuxState
      - name: is_ext_format
        type: int
      - name: feature_flags
        type: uint32_t
      - name: canvas_width
        type: int
      - name: loop_count
        type: int
      - name: bgcolor
        type: uint32_t
      - name: num_frames
        type: int
      - name: '* frames'
        type: Frame
      - name: '** frames_tail'
        type: Frame
      - name: '* chunks'
        type: Chunk
      - name: '** chunks_tail'
        type: Chunk
      item_type: struct
      name: WebPDemuxer
      pos:
        line_end: 78
        line_start: 65
        source_file: /src/libwebp/src/demux/demux.c
    - fields:
      - name: id[4]
        type: uint8_t
      - name: (*parse)(WebPDemuxer* const dmux)
        type: ParseStatus
      - name: (*valid)(const WebPDemuxer* const dmux)
        type: int
      item_type: struct
      name: ChunkParser
      pos:
        line_end: 86
        line_start: 82
        source_file: /src/libwebp/src/demux/demux.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/src/dec/common_dec.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_HUFF_IMAGE_SIZE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/libwebp/src/dec/common_dec.h
      type_or_value: '2600'
    structs: []
    typedefs: []
    union: []
- function_names:
  - WebPGetDecoderVersion
  - SetOk
  - VP8InitIoInternal
  - VP8New
  - VP8Status
  - VP8StatusMessage
  - VP8Delete
  - VP8SetError
  - VP8CheckSignature
  - VP8GetInfo
  - ResetSegmentHeader
  - ParseSegmentHeader
  - ParsePartitions
  - ParseFilterHeader
  - VP8GetHeaders
  - GetLargeValue
  - GetCoeffsFast
  - GetCoeffsAlt
  - WEBP_DSP_INIT_FUNC
  - NzCodeBits
  - ParseResiduals
  - VP8DecodeMB
  - VP8InitScanline
  - ParseFrame
  - VP8Decode
  - VP8Clear
  source_file: /src/libwebp/src/dec/vp8_dec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*GetCoeffsFunc)(VP8BitReader* const br,\n                             const
        VP8BandProbas* const prob[], int ctx,\n                             const
        quant_t dq, int n, int16_t* out)"
      pos:
        line_end: 47
        line_start: 45
        source_file: /src/libwebp/src/dec/vp8_dec.c
      type: int
    union: []
- function_names: []
  source_file: /src/libwebp/src/dec/vp8i_dec.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEC_MAJ_VERSION
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/libwebp/src/dec/vp8i_dec.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DEC_MIN_VERSION
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/libwebp/src/dec/vp8i_dec.h
      type_or_value: '6'
    - item_type: preproc_def
      name: DEC_REV_VERSION
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/libwebp/src/dec/vp8i_dec.h
      type_or_value: '0'
    - item_type: preproc_def
      name: YUV_SIZE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/libwebp/src/dec/vp8i_dec.h
      type_or_value: (BPS * 17 + BPS * 9)
    - item_type: preproc_def
      name: Y_OFF
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libwebp/src/dec/vp8i_dec.h
      type_or_value: (BPS * 1 + 8)
    - item_type: preproc_def
      name: U_OFF
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libwebp/src/dec/vp8i_dec.h
      type_or_value: (Y_OFF + BPS * 16 + BPS)
    - item_type: preproc_def
      name: V_OFF
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libwebp/src/dec/vp8i_dec.h
      type_or_value: (U_OFF + 16)
    - item_type: preproc_def
      name: MIN_WIDTH_FOR_THREADS
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/libwebp/src/dec/vp8i_dec.h
      type_or_value: '512'
    structs:
    - fields:
      - name: key_frame
        type: uint8_t
      - name: profile
        type: uint8_t
      - name: show
        type: uint8_t
      - name: partition_length
        type: uint32_t
      item_type: struct
      name: VP8FrameHeader
      pos:
        line_end: 81
        line_start: 76
        source_file: /src/libwebp/src/dec/vp8i_dec.h
    - fields:
      - name: width
        type: uint16_t
      - name: height
        type: uint16_t
      - name: xscale
        type: uint8_t
      - name: yscale
        type: uint8_t
      - name: colorspace
        type: uint8_t
      - name: clamp_type
        type: uint8_t
      item_type: struct
      name: VP8PictureHeader
      pos:
        line_end: 90
        line_start: 83
        source_file: /src/libwebp/src/dec/vp8i_dec.h
    - fields:
      - name: use_segment
        type: int
      - name: update_map
        type: int
      - name: absolute_delta
        type: int
      - name: quantizer[NUM_MB_SEGMENTS]
        type: int8_t
      - name: filter_strength[NUM_MB_SEGMENTS]
        type: int8_t
      item_type: struct
      name: VP8SegmentHeader
      pos:
        line_end: 99
        line_start: 93
        source_file: /src/libwebp/src/dec/vp8i_dec.h
    - fields:
      - name: probas[NUM_CTX]
        type: VP8ProbaArray
      item_type: struct
      name: VP8BandProbas
      pos:
        line_end: 106
        line_start: 104
        source_file: /src/libwebp/src/dec/vp8i_dec.h
    - fields:
      - name: segments[MB_FEATURE_TREE_PROBS]
        type: uint8_t
      - name: bands[NUM_TYPES][NUM_BANDS]
        type: VP8BandProbas
      - name: '* bands_ptr[NUM_TYPES][16 + 1]'
        type: VP8BandProbas
      item_type: struct
      name: VP8Proba
      pos:
        line_end: 114
        line_start: 109
        source_file: /src/libwebp/src/dec/vp8i_dec.h
    - fields:
      - name: simple
        type: int
      - name: level
        type: int
      - name: sharpness
        type: int
      - name: use_lf_delta
        type: int
      - name: ref_lf_delta[NUM_REF_LF_DELTAS]
        type: int
      - name: mode_lf_delta[NUM_MODE_LF_DELTAS]
        type: int
      item_type: struct
      name: VP8FilterHeader
      pos:
        line_end: 124
        line_start: 117
        source_file: /src/libwebp/src/dec/vp8i_dec.h
    - fields:
      - name: f_limit
        type: uint8_t
      - name: f_ilevel
        type: uint8_t
      - name: f_inner
        type: uint8_t
      - name: hev_thresh
        type: uint8_t
      item_type: struct
      name: VP8FInfo
      pos:
        line_end: 134
        line_start: 129
        source_file: /src/libwebp/src/dec/vp8i_dec.h
    - fields:
      - name: nz
        type: uint8_t
      - name: nz_dc
        type: uint8_t
      item_type: struct
      name: VP8MB
      pos:
        line_end: 139
        line_start: 136
        source_file: /src/libwebp/src/dec/vp8i_dec.h
    - fields:
      - name: y1_mat
        type: quant_t
      - name: uv_quant
        type: int
      - name: dither
        type: int
      item_type: struct
      name: VP8QuantMatrix
      pos:
        line_end: 148
        line_start: 143
        source_file: /src/libwebp/src/dec/vp8i_dec.h
    - fields:
      - name: coeffs[384]
        type: int16_t
      - name: is_i4x4
        type: uint8_t
      - name: imodes[16]
        type: uint8_t
      - name: uvmode
        type: uint8_t
      - name: non_zero_y
        type: uint32_t
      - name: non_zero_uv
        type: uint32_t
      - name: dither
        type: uint8_t
      - name: skip
        type: uint8_t
      - name: segment
        type: uint8_t
      item_type: struct
      name: VP8MBData
      pos:
        line_end: 168
        line_start: 151
        source_file: /src/libwebp/src/dec/vp8i_dec.h
    - fields:
      - name: id
        type: int
      - name: mb_y
        type: int
      - name: filter_row
        type: int
      - name: '* f_info'
        type: VP8FInfo
      - name: '* mb_data'
        type: VP8MBData
      - name: io
        type: VP8Io
      item_type: struct
      name: VP8ThreadContext
      pos:
        line_end: 178
        line_start: 171
        source_file: /src/libwebp/src/dec/vp8i_dec.h
    - fields:
      - name: y[16]
        type: uint8_t
      item_type: struct
      name: VP8TopSamples
      pos:
        line_end: 183
        line_start: 181
        source_file: /src/libwebp/src/dec/vp8i_dec.h
    - fields:
      - name: status
        type: VP8StatusCode
      - name: ready
        type: int
      - name: '* error_msg'
        type: char
      - name: br
        type: VP8BitReader
      - name: incremental
        type: int
      - name: frm_hdr
        type: VP8FrameHeader
      - name: pic_hdr
        type: VP8PictureHeader
      - name: filter_hdr
        type: VP8FilterHeader
      - name: segment_hdr
        type: VP8SegmentHeader
      - name: worker
        type: WebPWorker
      - name: mt_method
        type: int
      - name: cache_id
        type: int
      - name: num_caches
        type: int
      - name: thread_ctx
        type: VP8ThreadContext
      - name: mb_w
        type: int
      - name: tl_mb_x
        type: int
      - name: br_mb_x
        type: int
      - name: num_parts_minus_one
        type: uint32_t
      - name: parts[MAX_NUM_PARTITIONS]
        type: VP8BitReader
      - name: dither
        type: int
      - name: dithering_rg
        type: VP8Random
      - name: dqm[NUM_MB_SEGMENTS]
        type: VP8QuantMatrix
      - name: proba
        type: VP8Proba
      - name: use_skip_proba
        type: int
      - name: skip_p
        type: uint8_t
      - name: '* intra_t'
        type: uint8_t
      - name: intra_l[4]
        type: uint8_t
      - name: '* yuv_t'
        type: VP8TopSamples
      - name: '* mb_info'
        type: VP8MB
      - name: '* f_info'
        type: VP8FInfo
      - name: '* yuv_b'
        type: uint8_t
      - name: '* cache_y'
        type: uint8_t
      - name: '* cache_u'
        type: uint8_t
      - name: '* cache_v'
        type: uint8_t
      - name: cache_y_stride
        type: int
      - name: cache_uv_stride
        type: int
      - name: '* mem'
        type: void
      - name: mem_size
        type: size_t
      - name: mb_x
        type: int
      - name: '* mb_data'
        type: VP8MBData
      - name: filter_type
        type: int
      - name: fstrengths[NUM_MB_SEGMENTS][2]
        type: VP8FInfo
      - name: '* alph_dec'
        type: struct ALPHDecoder
      - name: '* WEBP_COUNTED_BY(alpha_data_size)'
        type: uint8_t
      - name: alpha_data_size
        type: size_t
      - name: is_alpha_decoded
        type: int
      - name: '* alpha_plane_mem'
        type: uint8_t
      - name: '* alpha_plane'
        type: uint8_t
      - name: '* alpha_prev_line'
        type: uint8_t
      - name: alpha_dithering
        type: int
      item_type: struct
      name: VP8Decoder
      pos:
        line_end: 273
        line_start: 188
        source_file: /src/libwebp/src/dec/vp8i_dec.h
    typedefs:
    - item_type: typedef
      name: VP8ProbaArray[NUM_PROBAS]
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/libwebp/src/dec/vp8i_dec.h
      type: uint8_t
    - item_type: typedef
      name: quant_t[2]
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/libwebp/src/dec/vp8i_dec.h
      type: int
    union: []
- function_names:
  - clip
  - VP8ParseQuant
  source_file: /src/libwebp/src/dec/quant_dec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VP8StatusCode::ParseRIFF
  - ParseVP8X
  - ParseOptionalChunks
  - ParseVP8Header
  - ParseHeadersInternal
  - WebPParseHeaders
  - WebPResetDecParams
  - VP8StatusCode::DecodeInto
  - DecodeIntoRGBABuffer
  - WebPDecodeRGBInto
  - WebPDecodeRGBAInto
  - WebPDecodeARGBInto
  - WebPDecodeBGRInto
  - WebPDecodeBGRAInto
  - WebPDecodeYUVInto
  - Decode
  - WebPDecodeRGB
  - WebPDecodeRGBA
  - WebPDecodeARGB
  - WebPDecodeBGR
  - WebPDecodeBGRA
  - WebPDecodeYUV
  - DefaultFeatures
  - GetFeatures
  - WebPGetInfo
  - WebPInitDecoderConfigInternal
  - WebPCheckCropDimensionsBasic
  - WebPValidateDecoderConfig
  - WebPGetFeaturesInternal
  - WebPDecode
  - WebPCheckCropDimensions
  - WebPIoInitFromOptions
  source_file: /src/libwebp/src/dec/webp_dec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/src/dec/alphai_dec.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: width
        type: int
      - name: height
        type: int
      - name: method
        type: int
      - name: filter
        type: WEBP_FILTER_TYPE
      - name: pre_processing
        type: int
      - name: '* vp8l_dec'
        type: struct VP8LDecoder
      - name: io
        type: VP8Io
      - name: use_8b_decode
        type: int
      - name: '* output'
        type: uint8_t
      - name: '* prev_line'
        type: uint8_t
      item_type: struct
      name: ALPHDecoder
      pos:
        line_end: 44
        line_start: 31
        source_file: /src/libwebp/src/dec/alphai_dec.h
    typedefs:
    - item_type: typedef
      name: ALPHDecoder
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/libwebp/src/dec/alphai_dec.h
      type: ALPHDecoder
    union: []
- function_names:
  - VP8InitIo
  source_file: /src/libwebp/src/dec/vp8_dec.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: width
        type: int
      - name: mb_y
        type: int
      - name: mb_w
        type: int
      - name: mb_h
        type: int
      - name: '*y'
        type: uint8_t
      - name: y_stride
        type: int
      - name: uv_stride
        type: int
      - name: '* opaque'
        type: void
      - name: put
        type: VP8IoPutHook
      - name: setup
        type: VP8IoSetupHook
      - name: teardown
        type: VP8IoTeardownHook
      - name: fancy_upsampling
        type: int
      - name: data_size
        type: size_t
      - name: '* data'
        type: uint8_t
      - name: bypass_filtering
        type: int
      - name: use_cropping
        type: int
      - name: crop_left
        type: int
      - name: use_scaling
        type: int
      - name: scaled_width
        type: int
      - name: '* a'
        type: uint8_t
      item_type: struct
      name: VP8Io
      pos:
        line_end: 112
        line_start: 51
        source_file: /src/libwebp/src/dec/vp8_dec.h
    typedefs:
    - item_type: typedef
      name: VP8Io
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/libwebp/src/dec/vp8_dec.h
      type: VP8Io
    - item_type: typedef
      name: (*VP8IoPutHook)(const VP8Io* io)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/libwebp/src/dec/vp8_dec.h
      type: int
    - item_type: typedef
      name: (*VP8IoSetupHook)(VP8Io* io)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/libwebp/src/dec/vp8_dec.h
      type: int
    - item_type: typedef
      name: (*VP8IoTeardownHook)(const VP8Io* io)
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/libwebp/src/dec/vp8_dec.h
      type: void
    - item_type: typedef
      name: VP8Decoder
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/libwebp/src/dec/vp8_dec.h
      type: VP8Decoder
    union: []
- function_names:
  - MemDataSize
  - NeedCompressedAlpha
  - DoRemap
  - AppendToMemBuffer
  - RemapMemBuffer
  - InitMemBuffer
  - ClearMemBuffer
  - CheckMemBufferMode
  - VP8StatusCode::FinishDecoding
  - SaveContext
  - RestoreContext
  - IDecError
  - ChangeState
  - DecodeWebPHeaders
  - DecodeVP8FrameHeader
  - CopyParts0Data
  - DecodePartition0
  - DecodeRemaining
  - ErrorStatusLossless
  - DecodeVP8LHeader
  - DecodeVP8LData
  - IDecode
  - "WebPIDecoder* NewDecoder(\n    WebPDecBuffer* const output_buffer,\n    const
    WebPBitstreamFeatures* const features)"
  - WebPINewDecoder
  - WebPIDecode
  - WebPIDelete
  - WebPINewRGB
  - WebPINewYUVA
  - WebPINewYUV
  - IDecCheckStatus
  - WebPIAppend
  - WebPIUpdate
  - GetOutputBuffer
  - WebPIDecodedArea
  - WebPIDecGetRGB
  - WebPIDecGetYUVA
  - WebPISetIOHooks
  source_file: /src/libwebp/src/dec/idec_dec.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHUNK_SIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/libwebp/src/dec/idec_dec.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: MAX_MB_SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/libwebp/src/dec/idec_dec.c
      type_or_value: '4096'
    structs:
    - fields:
      - name: mode
        type: MemBufferMode
      - name: start
        type: size_t
      - name: end
        type: size_t
      - name: buf_size
        type: size_t
      - name: '* buf'
        type: uint8_t
      - name: part0_size
        type: size_t
      - name: '* part0_buf'
        type: uint8_t
      item_type: struct
      name: MemBuffer
      pos:
        line_end: 67
        line_start: 58
        source_file: /src/libwebp/src/dec/idec_dec.c
    - fields:
      - name: state
        type: DecState
      - name: params
        type: WebPDecParams
      - name: is_lossless
        type: int
      - name: '* dec'
        type: void
      - name: io
        type: VP8Io
      - name: mem
        type: MemBuffer
      - name: output
        type: WebPDecBuffer
      - name: '* final_output'
        type: WebPDecBuffer
      - name: chunk_size
        type: size_t
      - name: last_mb_y
        type: int
      item_type: struct
      name: WebPIDecoder
      pos:
        line_end: 83
        line_start: 69
        source_file: /src/libwebp/src/dec/idec_dec.c
    - fields:
      - name: left
        type: VP8MB
      - name: info
        type: VP8MB
      - name: token_br
        type: VP8BitReader
      item_type: struct
      name: MBContext
      pos:
        line_end: 90
        line_start: 86
        source_file: /src/libwebp/src/dec/idec_dec.c
    typedefs: []
    union: []
- function_names:
  - IsValidColorspace
  - MIN_BUFFER_SIZE
  - CheckDecBuffer
  - AllocateBuffer
  - WebPFlipBuffer
  - WebPAllocateDecBuffer
  - WebPInitDecBufferInternal
  - WebPFreeDecBuffer
  - WebPCopyDecBuffer
  - WebPGrabDecBuffer
  - WebPCopyDecBufferPixels
  - WebPAvoidSlowMemory
  source_file: /src/libwebp/src/dec/buffer_dec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/src/dec/vp8li_dec.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: VP8LImageTransformType
      - name: bits
        type: int
      - name: xsize
        type: int
      - name: ysize
        type: int
      - name: '* data'
        type: uint32_t
      item_type: struct
      name: VP8LTransform
      pos:
        line_end: 44
        line_start: 38
        source_file: /src/libwebp/src/dec/vp8li_dec.h
    - fields:
      - name: color_cache_size
        type: int
      - name: color_cache
        type: VP8LColorCache
      - name: saved_color_cache
        type: VP8LColorCache
      - name: huffman_mask
        type: int
      - name: huffman_subsample_bits
        type: int
      - name: huffman_xsize
        type: int
      - name: '* huffman_image'
        type: uint32_t
      - name: num_htree_groups
        type: int
      - name: '* htree_groups'
        type: HTreeGroup
      - name: huffman_tables
        type: HuffmanTables
      item_type: struct
      name: VP8LMetadata
      pos:
        line_end: 58
        line_start: 46
        source_file: /src/libwebp/src/dec/vp8li_dec.h
    - fields:
      - name: status
        type: VP8StatusCode
      - name: state
        type: VP8LDecodeState
      - name: '* io'
        type: VP8Io
      - name: '* output'
        type: WebPDecBuffer
      - name: '* pixels'
        type: uint32_t
      - name: '* argb_cache'
        type: uint32_t
      - name: '* accumulated_rgb_pixels'
        type: uint16_t
      - name: br
        type: VP8LBitReader
      - name: incremental
        type: int
      - name: saved_br
        type: VP8LBitReader
      - name: saved_last_pixel
        type: int
      - name: width
        type: int
      - name: height
        type: int
      - name: last_row
        type: int
      - name: last_pixel
        type: int
      - name: last_out_row
        type: int
      - name: hdr
        type: VP8LMetadata
      - name: next_transform
        type: int
      - name: transforms[NUM_TRANSFORMS]
        type: VP8LTransform
      - name: transforms_seen
        type: uint32_t
      - name: '* rescaler_memory'
        type: uint8_t
      - name: '* rescaler'
        type: WebPRescaler
      item_type: struct
      name: VP8LDecoder
      pos:
        line_end: 96
        line_start: 61
        source_file: /src/libwebp/src/dec/vp8li_dec.h
    typedefs:
    - item_type: typedef
      name: VP8LTransform
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/libwebp/src/dec/vp8li_dec.h
      type: VP8LTransform
    - item_type: typedef
      name: VP8LDecoder
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/libwebp/src/dec/vp8li_dec.h
      type: VP8LDecoder
    union: []
- function_names:
  - VP8ResetProba
  - ParseIntraMode
  - VP8ParseIntraModeRow
  - VP8ParseProba
  source_file: /src/libwebp/src/dec/tree_dec.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: USE_GENERIC_TREE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libwebp/src/dec/tree_dec.c
      type_or_value: 1  // ALTERNATE_CODE
    - item_type: preproc_def
      name: USE_GENERIC_TREE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/libwebp/src/dec/tree_dec.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/src/dec/webpi_dec.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* output'
        type: WebPDecBuffer
      - name: '*tmp_y'
        type: uint8_t
      - name: last_y
        type: int
      - name: '* options'
        type: WebPDecoderOptions
      - name: status
        type: VP8StatusCode
      - name: '*scaler_y'
        type: WebPRescaler
      - name: '* memory'
        type: void
      - name: emit
        type: OutputFunc
      - name: emit_alpha
        type: OutputAlphaFunc
      - name: emit_alpha_row
        type: OutputRowFunc
      item_type: struct
      name: WebPDecParams
      pos:
        line_end: 56
        line_start: 39
        source_file: /src/libwebp/src/dec/webpi_dec.h
    - fields:
      - name: '* WEBP_COUNTED_BY(data_size)'
        type: uint8_t
      - name: data_size
        type: size_t
      - name: have_all_data
        type: int
      - name: offset
        type: size_t
      - name: '* WEBP_COUNTED_BY(alpha_data_size)'
        type: uint8_t
      - name: alpha_data_size
        type: size_t
      - name: compressed_size
        type: size_t
      - name: riff_size
        type: size_t
      - name: is_lossless
        type: int
      item_type: struct
      name: WebPHeaderStructure
      pos:
        line_end: 76
        line_start: 65
        source_file: /src/libwebp/src/dec/webpi_dec.h
    typedefs:
    - item_type: typedef
      name: (*OutputFunc)(const VP8Io* const io, WebPDecParams* const p)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/libwebp/src/dec/webpi_dec.h
      type: int
    - item_type: typedef
      name: "(*OutputAlphaFunc)(const VP8Io* const io, WebPDecParams* const p,\n                               int
        expected_num_out_lines)"
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/libwebp/src/dec/webpi_dec.h
      type: int
    - item_type: typedef
      name: "(*OutputRowFunc)(WebPDecParams* const p, int y_pos,\n                             int
        max_out_lines)"
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/libwebp/src/dec/webpi_dec.h
      type: int
    union: []
- function_names:
  - VP8LSetError
  - VP8LCheckSignature
  - ReadImageInfo
  - VP8LGetInfo
  - GetCopyDistance
  - GetCopyLength
  - PlaneCodeToDistance
  - ReadSymbol
  - ReadPackedSymbols
  - AccumulateHCode
  - BuildPackedTable
  - ReadHuffmanCodeLengths
  - ReadHuffmanCode
  - ReadHuffmanCodes
  - ReadHuffmanCodesHelper
  - AllocateAndInitRescaler
  - Export
  - EmitRescaledRowsRGBA
  - EmitRows
  - ConvertToYUVA
  - ExportYUVA
  - EmitRescaledRowsYUVA
  - CheckNonOpaque
  - EmitRowsYUVA
  - SetCropWindow
  - GetMetaIndex
  - GetHtreeGroupForPos
  - ApplyInverseTransforms
  - ProcessRows
  - Is8bOptimizable
  - AlphaApplyFilter
  - ExtractPalettedAlphaRows
  - Rotate8b
  - CopySmallPattern8b
  - CopyBlock8b
  - CopySmallPattern32b
  - CopyBlock32b
  - DecodeAlphaData
  - SaveState
  - RestoreState
  - DecodeImageData
  - ClearTransform
  - ExpandColorMap
  - ReadTransform
  - InitMetadata
  - ClearMetadata
  - VP8LNew
  - ClearInternalBuffers
  - VP8LClear
  - VP8LDelete
  - UpdateDecoder
  - DecodeImageStream
  - AllocateInternalBuffers32b
  - AllocateInternalBuffers8b
  - ExtractAlphaRows
  - VP8LDecodeAlphaHeader
  - VP8LDecodeAlphaImageStream
  - VP8LDecodeHeader
  - VP8LDecodeImage
  source_file: /src/libwebp/src/dec/vp8l_dec.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_ARGB_CACHE_ROWS
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/libwebp/src/dec/vp8l_dec.c
      type_or_value: '16'
    - item_type: preproc_def
      name: NUM_CODE_LENGTH_CODES
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/libwebp/src/dec/vp8l_dec.c
      type_or_value: '19'
    - item_type: preproc_def
      name: CODE_TO_PLANE_CODES
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/libwebp/src/dec/vp8l_dec.c
      type_or_value: '120'
    - item_type: preproc_def
      name: FIXED_TABLE_SIZE
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libwebp/src/dec/vp8l_dec.c
      type_or_value: (630 * 3 + 410)
    - item_type: preproc_def
      name: BITS_SPECIAL_MARKER
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/libwebp/src/dec/vp8l_dec.c
      type_or_value: 0x100  // something large enough (and a bit-mask)
    - item_type: preproc_def
      name: PACKED_NON_LITERAL_CODE
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/libwebp/src/dec/vp8l_dec.c
      type_or_value: 0  // must be < NUM_LITERAL_CODES
    - item_type: preproc_def
      name: SYNC_EVERY_N_ROWS
      pos:
        line_end: 1226
        line_start: 1225
        source_file: /src/libwebp/src/dec/vp8l_dec.c
      type_or_value: 8  // minimum number of rows between check-points
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*ProcessRowsFunc)(VP8LDecoder* const dec, int row,\n                                int
        wait_for_biggest_batch)"
      pos:
        line_end: 854
        line_start: 853
        source_file: /src/libwebp/src/dec/vp8l_dec.c
      type: void
    union: []
- function_names:
  - CheckMode
  - Copy32b
  - DoTransform
  - DoUVTransform
  - ReconstructRow
  - DoFilter
  - FilterRow
  - PrecomputeFilterStrengths
  - VP8InitDithering
  - Dither8x8
  - DitherRow
  - MACROBLOCK_VPOS
  - FinishRow
  - VP8ProcessRow
  - VP8EnterCritical
  - VP8ExitCritical
  - InitThreadContext
  - VP8GetThreadMethod
  - AllocateMemory
  - InitIo
  - VP8InitFrame
  source_file: /src/libwebp/src/dec/frame_dec.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MIN_DITHER_AMP
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/libwebp/src/dec/frame_dec.c
      type_or_value: '4'
    - item_type: preproc_def
      name: DITHER_AMP_TAB_SIZE
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/libwebp/src/dec/frame_dec.c
      type_or_value: '12'
    - item_type: preproc_def
      name: MT_CACHE_LINES
      pos:
        line_end: 656
        line_start: 655
        source_file: /src/libwebp/src/dec/frame_dec.c
      type_or_value: '3'
    - item_type: preproc_def
      name: ST_CACHE_LINES
      pos:
        line_end: 657
        line_start: 656
        source_file: /src/libwebp/src/dec/frame_dec.c
      type_or_value: 1  // 1 cache row only for single-threaded case
    structs: []
    typedefs: []
    union: []
- function_names:
  - EmitYUV
  - EmitSampledRGB
  - EmitFancyRGB
  - FillAlphaPlane
  - EmitAlphaYUV
  - GetAlphaSourceRow
  - EmitAlphaRGB
  - EmitAlphaRGBA4444
  - Rescale
  - EmitRescaledYUV
  - EmitRescaledAlphaYUV
  - InitYUVRescaler
  - ExportRGB
  - EmitRescaledRGB
  - ExportAlpha
  - ExportAlphaRGBA4444
  - EmitRescaledAlphaRGB
  - InitRGBRescaler
  - CustomSetup
  - CustomPut
  - CustomTeardown
  - WebPInitCustomIo
  source_file: /src/libwebp/src/dec/io_dec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ALPHNew
  - ALPHDelete
  - VP8StatusCode::ALPHInit
  - ALPHDecode
  - AllocateAlphaPlane
  - WebPDeallocateAlphaMemory
  - VP8DecompressAlphaRows
  source_file: /src/libwebp/src/dec/alpha_dec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_M
  - PACK_AND_STORE
  - UPSAMPLE_32PIXELS
  - UPSAMPLE_LAST_BLOCK
  - CONVERT2RGB_32
  - SSE4_UPSAMPLE_FUNC
  - WebPInitUpsamplersSSE41
  - YUV444_FUNC
  - WebPInitYUV444ConvertersSSE41
  source_file: /src/libwebp/src/dsp/upsampling_sse41.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SubtractGreenFromBlueAndRed_AVX2
  - CST_5b
  - MK_CST_16
  - TransformColor_AVX2
  - CollectColorBlueTransforms_AVX2
  - CollectColorRedTransforms_AVX2
  - AddVector_AVX2
  - AddVectorEq_AVX2
  - CombinedShannonEntropy_AVX2
  - VectorMismatch_AVX2
  - BundleColorMap_AVX2
  - Average2_m256i
  - PredictorSub0_AVX2
  - GENERATE_PREDICTOR_1
  - PredictorSub5_AVX2
  - GENERATE_PREDICTOR_2
  - PredictorSub10_AVX2
  - GetSumAbsDiff32_AVX2
  - PredictorSub11_AVX2
  - PredictorSub12_AVX2
  - PredictorSub13_AVX2
  - VP8LEncDspInitAVX2
  source_file: /src/libwebp/src/dsp/lossless_enc_avx2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPAN
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libwebp/src/dsp/lossless_enc_avx2.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - horizontal_add_uint32x4
  - IsFlat
  - IsFlat
  - IsFlatSource16
  source_file: /src/libwebp/src/dsp/quant.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IsFlat
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/libwebp/src/dsp/quant.h
      type_or_value: IsFlat_NEON
    - item_type: preproc_def
      name: IsFlat
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/libwebp/src/dsp/quant.h
      type_or_value: IsFlat_C
    structs: []
    typedefs: []
    union: []
- function_names:
  - YUV_TO_RGB
  - YuvToRgb
  - YuvToBgr
  - YuvToRgb565
  - YuvToRgba4444
  - YuvToArgb
  - YuvToBgra
  - YuvToRgba
  - LOAD_UV
  - UPSAMPLE_FUNC
  - WebPInitUpsamplersMIPSdspR2
  - YUV444_FUNC
  - WebPInitYUV444ConvertersMIPSdspR2
  source_file: /src/libwebp/src/dsp/upsampling_mips_dsp_r2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - STR
  - XSTR
  - ADD_SUB_HALVES
  - LOAD_IN_X2
  - LOAD_WITH_OFFSET_X4
  - MUL_SHIFT_C1
  - MUL_SHIFT_C2
  - MUL_SHIFT_C1_IO
  - MUL_SHIFT_SUM
  - INSERT_HALF_X2
  - SRA_16
  - SHIFT_R_SUM_X2
  - PACK_2_HALVES_TO_WORD
  - CONVERT_2_BYTES_TO_HALF
  - STORE_SAT_SUM_X2
  - OUTPUT_EARLY_CLOBBER_REGS_10
  - OUTPUT_EARLY_CLOBBER_REGS_18
  source_file: /src/libwebp/src/dsp/mips_macro.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - clip_8b
  - STORE
  - STORE2
  - TransformOne_C
  - TransformAC3_C
  - TransformTwo_C
  - TransformUV_C
  - TransformDC_C
  - TransformDCUV_C
  - TransformWHT_C
  - DST
  - TrueMotion
  - TM4_C
  - TM8uv_C
  - TM16_C
  - VE16_C
  - HE16_C
  - Put16
  - DC16_C
  - DC16NoTop_C
  - DC16NoLeft_C
  - DC16NoTopLeft_C
  - AVG3
  - AVG2
  - VE4_C
  - HE4_C
  - DC4_C
  - RD4_C
  - LD4_C
  - VR4_C
  - VL4_C
  - HU4_C
  - HD4_C
  - VE8uv_C
  - HE8uv_C
  - Put8x8uv
  - DC8uv_C
  - DC8uvNoLeft_C
  - DC8uvNoTop_C
  - DC8uvNoTopLeft_C
  - DoFilter2_C
  - DoFilter4_C
  - DoFilter6_C
  - Hev
  - NeedsFilter_C
  - NeedsFilter2_C
  - SimpleVFilter16_C
  - SimpleHFilter16_C
  - SimpleVFilter16i_C
  - SimpleHFilter16i_C
  - FilterLoop26_C
  - FilterLoop24_C
  - VFilter16_C
  - HFilter16_C
  - VFilter16i_C
  - HFilter16i_C
  - VFilter8_C
  - HFilter8_C
  - VFilter8i_C
  - HFilter8i_C
  - DitherCombine8x8_C
  - WEBP_DSP_INIT_FUNC
  source_file: /src/libwebp/src/dsp/dec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ConvertRGBToYImpl_NEON
  - ConvertRGBToY_NEON
  - ConvertBGRToY_NEON
  - ConvertARGBToY_NEON
  - MULTIPLY_16b_PREAMBLE
  - MULTIPLY_16b
  - CONVERT_RGB_TO_UV
  - ConvertRGBA32ToUV_NEON
  - ConvertARGBToUV_NEON
  - WebPInitConvertARGBToYUVNEON
  source_file: /src/libwebp/src/dsp/yuv_neon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - uint8x8x4_t::Load4x8_NEON
  - Load4x16_NEON
  - LOADQ_LANE_32b
  - Load4x16_NEON
  - Load8x16_NEON
  - Load16x4_NEON
  - Load16x8_NEON
  - Load8x8x2_NEON
  - LOAD_UV_8
  - Load8x8x2T_NEON
  - Store2x8_NEON
  - Store2x16_NEON
  - Store4x8_NEON
  - Store4x16_NEON
  - Store16x2_NEON
  - Store16x4_NEON
  - Store8x2x2_NEON
  - Store8x4x2_NEON
  - STORE6_LANE
  - Store6x8x2_NEON
  - Store4x8x2_NEON
  - ConvertU8ToS16_NEON
  - SaturateAndStore4x4_NEON
  - Add4x4_NEON
  - NeedsFilter_NEON
  - FlipSign_NEON
  - FlipSignBack_NEON
  - GetBaseDelta_NEON
  - GetBaseDelta0_NEON
  - ApplyFilter2NoFlip_NEON
  - ApplyFilter2_NEON
  - DoFilter2_NEON
  - SimpleVFilter16_NEON
  - SimpleHFilter16_NEON
  - LOAD8x4
  - STORE8x2
  - FLIP_SIGN_BIT2
  - FLIP_SIGN_BIT4
  - NEEDS_FILTER
  - GET_BASE_DELTA
  - DO_SIMPLE_FILTER
  - DO_FILTER2
  - SimpleVFilter16_NEON
  - NeedsHev_NEON
  - NeedsFilter2_NEON
  - ApplyFilter4_NEON
  - DoFilter4_NEON
  - ApplyFilter6_NEON
  - DoFilter6_NEON
  - VFilter16_NEON
  - HFilter16_NEON
  - VFilter16i_NEON
  - HFilter16i_NEON
  - VFilter8_NEON
  - VFilter8i_NEON
  - HFilter8_NEON
  - HFilter8i_NEON
  - Transpose8x2_NEON
  - TransformPass_NEON
  - TransformOne_NEON
  - TransformOne_NEON
  - TransformTwo_NEON
  - TransformDC_NEON
  - STORE_WHT
  - TransformWHT_NEON
  - TransformAC3_NEON
  - DC4_NEON
  - TrueMotion_NEON
  - TM4_NEON
  - VE4_NEON
  - RD4_NEON
  - LD4_NEON
  - VE8uv_NEON
  - HE8uv_NEON
  - DC8_NEON
  - DC8uv_NEON
  - DC8uvNoTop_NEON
  - DC8uvNoLeft_NEON
  - DC8uvNoTopLeft_NEON
  - TM8uv_NEON
  - VE16_NEON
  - HE16_NEON
  - DC16_NEON
  - DC16TopLeft_NEON
  - DC16NoTop_NEON
  - DC16NoLeft_NEON
  - DC16NoTopLeft_NEON
  - TM16_NEON
  - VP8DspInitNEON
  source_file: /src/libwebp/src/dsp/dec_neon.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QRegs
      pos:
        line_end: 551
        line_start: 549
        source_file: /src/libwebp/src/dsp/dec_neon.c
      type_or_value: "\"q0\", \"q1\", \"q2\", \"q3\",                                          \\\n
        \             \"q8\", \"q9\", \"q10\", \"q11\", \"q12\", \"q13\", \"q14\",
        \"q15\""
    structs: []
    typedefs: []
    union: []
- function_names:
  - ExtractAlpha_SSE41
  - WebPInitAlphaProcessingSSE41
  source_file: /src/libwebp/src/dsp/alpha_processing_sse41.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VP8GetARGBIndex
  - VP8GetAlphaIndex
  - VP8GetARGBValue
  - VP8GetAlphaValue
  - VP8LSubSampleSize
  - VP8LNearLosslessBits
  - VP8LFastLog2
  - VP8LFastSLog2
  - RightShiftRound
  - DivRound
  - VP8LPrefixEncodeBitsNoLUT
  - VP8LPrefixEncodeNoLUT
  - VP8LPrefixEncodeBits
  - VP8LPrefixEncode
  - VP8LAddPixels
  - VP8LSubPixels
  - GENERATE_PREDICTOR_ADD
  source_file: /src/libwebp/src/dsp/lossless_common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: APPROX_LOG_WITH_CORRECTION_MAX
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libwebp/src/dsp/lossless_common.h
      type_or_value: '65536'
    - item_type: preproc_def
      name: APPROX_LOG_MAX
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libwebp/src/dsp/lossless_common.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: LOG_2_PRECISION_BITS
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libwebp/src/dsp/lossless_common.h
      type_or_value: '23'
    - item_type: preproc_def
      name: LOG_2_RECIPROCAL
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libwebp/src/dsp/lossless_common.h
      type_or_value: '1.44269504088896338700465094007086'
    - item_type: preproc_def
      name: LOG_2_RECIPROCAL_FIXED_DOUBLE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libwebp/src/dsp/lossless_common.h
      type_or_value: '12102203.161561485379934310913085937500'
    - item_type: preproc_def
      name: LOG_2_RECIPROCAL_FIXED
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libwebp/src/dsp/lossless_common.h
      type_or_value: ((uint64_t)12102203)
    - item_type: preproc_def
      name: LOG_LOOKUP_IDX_MAX
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libwebp/src/dsp/lossless_common.h
      type_or_value: '256'
    - item_type: preproc_def
      name: WEBP_INT64_MAX
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/libwebp/src/dsp/lossless_common.h
      type_or_value: ((int64_t)((1ull << 63) - 1))
    - item_type: preproc_def
      name: WEBP_UINT64_MAX
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/libwebp/src/dsp/lossless_common.h
      type_or_value: (~0ull)
    - item_type: preproc_def
      name: PREFIX_LOOKUP_IDX_MAX
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/libwebp/src/dsp/lossless_common.h
      type_or_value: '512'
    structs:
    - fields:
      - name: code
        type: int8_t
      - name: extra_bits
        type: int8_t
      item_type: struct
      name: VP8LPrefixCode
      pos:
        line_end: 140
        line_start: 137
        source_file: /src/libwebp/src/dsp/lossless_common.h
    typedefs:
    - item_type: typedef
      name: (*VP8LFastLog2SlowFunc)(uint32_t v)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/libwebp/src/dsp/lossless_common.h
      type: uint32_t
    - item_type: typedef
      name: (*VP8LFastSLog2SlowFunc)(uint32_t v)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/libwebp/src/dsp/lossless_common.h
      type: uint64_t
    union: []
- function_names:
  - LOAD_UV
  - UPSAMPLE_FUNC
  - EmptyUpsampleFunc
  - DUAL_SAMPLE_FUNC
  - WebPGetLinePairConverter
  - YUV444_FUNC
  - EmptyYuv444Func
  - WEBP_DSP_INIT_FUNC
  - WEBP_DSP_INIT_FUNC
  source_file: /src/libwebp/src/dsp/upsampling.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UpsampleArgbLinePair_C
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/libwebp/src/dsp/upsampling.c
      type_or_value: EmptyUpsampleFunc
    - item_type: preproc_def
      name: UpsampleRgbLinePair_C
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/libwebp/src/dsp/upsampling.c
      type_or_value: EmptyUpsampleFunc
    - item_type: preproc_def
      name: UpsampleBgrLinePair_C
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/libwebp/src/dsp/upsampling.c
      type_or_value: EmptyUpsampleFunc
    - item_type: preproc_def
      name: UpsampleRgba4444LinePair_C
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/libwebp/src/dsp/upsampling.c
      type_or_value: EmptyUpsampleFunc
    - item_type: preproc_def
      name: UpsampleRgb565LinePair_C
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/libwebp/src/dsp/upsampling.c
      type_or_value: EmptyUpsampleFunc
    - item_type: preproc_def
      name: WebPYuv444ToRgb_C
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/libwebp/src/dsp/upsampling.c
      type_or_value: EmptyYuv444Func
    - item_type: preproc_def
      name: WebPYuv444ToBgr_C
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/libwebp/src/dsp/upsampling.c
      type_or_value: EmptyYuv444Func
    - item_type: preproc_def
      name: WebPYuv444ToArgb_C
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/libwebp/src/dsp/upsampling.c
      type_or_value: EmptyYuv444Func
    - item_type: preproc_def
      name: WebPYuv444ToRgba4444_C
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/libwebp/src/dsp/upsampling.c
      type_or_value: EmptyYuv444Func
    - item_type: preproc_def
      name: WebPYuv444ToRgb565_C
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/libwebp/src/dsp/upsampling.c
      type_or_value: EmptyYuv444Func
    structs: []
    typedefs: []
    union: []
- function_names:
  - MULT_FIX
  - MULT_FIX_FLOOR
  - CALC_MULT_FIX_16
  - CALC_MULT_FIX_4
  - CALC_MULT_FIX1_16
  - CALC_MULT_FIX1_4
  - CALC_MULT_FIX2_16
  - CALC_MULT_FIX2_4
  - ExportRowExpand_0
  - ExportRowExpand_1
  - RescalerExportRowExpand_MIPSdspR2
  - ExportRowShrink_0
  - ExportRowShrink_1
  - RescalerExportRowShrink_MIPSdspR2
  - WebPRescalerDspInitMSA
  source_file: /src/libwebp/src/dsp/rescaler_msa.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ROUNDER
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/libwebp/src/dsp/rescaler_msa.c
      type_or_value: (WEBP_RESCALER_ONE >> 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - CHANNEL_OFFSET
  - CHANNEL_OFFSET
  - MultHi
  - VP8Clip8
  - VP8YUVToR
  - VP8YUVToG
  - VP8YUVToB
  - VP8YuvToRgb
  - VP8YuvToBgr
  - VP8YuvToRgb565
  - VP8YuvToRgba4444
  - VP8YuvToArgb
  - VP8YuvToBgra
  - VP8YuvToRgba
  - VP8ClipUV
  - VP8RGBToY
  - VP8RGBToU
  - VP8RGBToV
  source_file: /src/libwebp/src/dsp/yuv.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ADDVI_H
  - ADDVI_W
  - SRAI_B
  - SRAI_H
  - SRAI_W
  - SRLI_H
  - SLLI_B
  - ANDI_B
  - ORI_B
  - ADDVI_H
  - ADDVI_W
  - SRAI_B
  - SRAI_H
  - SRAI_W
  - SRLI_H
  - SLLI_B
  - ANDI_B
  - ORI_B
  - LD_B
  - LD_UB
  - LD_SB
  - LD_H
  - LD_UH
  - LD_SH
  - LD_W
  - LD_UW
  - LD_SW
  - ST_B
  - ST_UB
  - ST_SB
  - ST_H
  - ST_UH
  - ST_SH
  - ST_W
  - ST_UW
  - ST_SW
  - MSA_LOAD_FUNC
  - MSA_LOAD
  - MSA_STORE_FUNC
  - MSA_STORE
  - LH
  - LW
  - LD
  - LD
  - SH
  - SW
  - SD
  - LH
  - LW
  - LD
  - LD
  - SH
  - SW
  - SD
  - LW4
  - SW4
  - SW3
  - SW2
  - SD4
  - LD_B2
  - LD_UB2
  - LD_SB2
  - LD_B3
  - LD_UB3
  - LD_SB3
  - LD_B4
  - LD_UB4
  - LD_SB4
  - LD_B8
  - LD_UB8
  - LD_SB8
  - LD_H2
  - LD_UH2
  - LD_SH2
  - LD_W2
  - LD_UW2
  - LD_SW2
  - LD_W3
  - LD_UW3
  - LD_SW3
  - LD_W4
  - LD_UW4
  - LD_SW4
  - ST_B2
  - ST_UB2
  - ST_SB2
  - ST_B4
  - ST_UB4
  - ST_SB4
  - ST_B8
  - ST_UB8
  - ST_W2
  - ST_UW2
  - ST_SW2
  - ST_W3
  - ST_UW3
  - ST_SW3
  - ST_W4
  - ST_UW4
  - ST_SW4
  - ST_H2
  - ST_UH2
  - ST_SH2
  - ST2x4_UB
  - ST4x4_UB
  - ST4x8_UB
  - SLDI_B
  - SLDI_UB
  - SLDI_SB
  - SLDI_SH
  - VSHF_B
  - VSHF_UB
  - VSHF_SB
  - VSHF_UH
  - VSHF_SH
  - VSHF_B2
  - VSHF_B2_UB
  - VSHF_B2_SB
  - VSHF_B2_UH
  - VSHF_B2_SH
  - VSHF_H2
  - VSHF_H2_UH
  - VSHF_H2_SH
  - DOTP_SB2
  - DOTP_SB2_SH
  - DOTP_SH2
  - DOTP_SH2_SW
  - DOTP_UW2
  - DOTP_UW2_UD
  - DPADD_SH2
  - DPADD_SH2_SW
  - CLIP_SH_0_255
  - CLIP_SH2_0_255
  - CLIP_SH4_0_255
  - CLIP_UH_0_255
  - CLIP_UH2_0_255
  - CLIP_SW_0_255
  - CLIP_SW4_0_255
  - func_hadd_sw_s32
  - HADD_SW_S32
  - func_hadd_sh_s32
  - HADD_SH_S32
  - func_hadd_uh_u32
  - HADD_UH_U32
  - HADD_SH2
  - HADD_SH2_SW
  - HADD_SH4
  - HADD_SH4_SW
  - HSUB_UB2
  - HSUB_UB2_UH
  - HSUB_UB2_SH
  - HSUB_UB2_SW
  - INSERT_W2
  - INSERT_W2_UB
  - INSERT_W2_SB
  - INSERT_W4
  - INSERT_W4_UB
  - INSERT_W4_SB
  - INSERT_W4_SW
  - INSERT_D2
  - INSERT_D2_UB
  - INSERT_D2_SB
  - ILVEV_B2
  - ILVEV_B2_UB
  - ILVEV_B2_SB
  - ILVEV_B2_UH
  - ILVEV_B2_SH
  - ILVEV_B2_SD
  - ILVOD_B2
  - ILVOD_B2_UB
  - ILVOD_B2_SB
  - ILVOD_B2_UH
  - ILVOD_B2_SH
  - ILVOD_B2_SD
  - ILVEV_H2
  - ILVEV_H2_UB
  - ILVEV_H2_UH
  - ILVEV_H2_SH
  - ILVEV_H2_SW
  - ILVOD_H2
  - ILVOD_H2_UB
  - ILVOD_H2_UH
  - ILVOD_H2_SH
  - ILVOD_H2_SW
  - ILVEV_W2
  - ILVEV_W2_UB
  - ILVEV_W2_SB
  - ILVEV_W2_UH
  - ILVEV_W2_SD
  - ILVEVOD_W2
  - ILVEVOD_W2_UB
  - ILVEVOD_W2_UH
  - ILVEVOD_W2_SH
  - ILVEVOD_W2_SW
  - ILVEVOD_H2
  - ILVEVOD_H2_UB
  - ILVEVOD_H2_UH
  - ILVEVOD_H2_SH
  - ILVEVOD_H2_SW
  - ILVEV_D2
  - ILVEV_D2_UB
  - ILVEV_D2_SB
  - ILVEV_D2_SW
  - ILVEV_D2_SD
  - ILVL_B2
  - ILVL_B2_UB
  - ILVL_B2_SB
  - ILVL_B2_UH
  - ILVL_B2_SH
  - ILVL_B2_SW
  - ILVR_B2
  - ILVR_B2_UB
  - ILVR_B2_SB
  - ILVR_B2_UH
  - ILVR_B2_SH
  - ILVR_B2_SW
  - ILVR_B4
  - ILVR_B4_UB
  - ILVR_B4_SB
  - ILVR_B4_UH
  - ILVR_B4_SH
  - ILVR_B4_SW
  - ILVR_H2
  - ILVR_H2_UB
  - ILVR_H2_SH
  - ILVR_H2_SW
  - ILVR_H4
  - ILVR_H4_UB
  - ILVR_H4_SH
  - ILVR_H4_SW
  - ILVR_D2
  - ILVR_D2_UB
  - ILVR_D2_SB
  - ILVR_D2_SH
  - ILVR_D4
  - ILVR_D4_SB
  - ILVR_D4_UB
  - ILVRL_B2
  - ILVRL_B2_UB
  - ILVRL_B2_SB
  - ILVRL_B2_UH
  - ILVRL_B2_SH
  - ILVRL_B2_SW
  - ILVRL_H2
  - ILVRL_H2_UB
  - ILVRL_H2_SB
  - ILVRL_H2_SH
  - ILVRL_H2_SW
  - ILVRL_H2_UW
  - ILVRL_W2
  - ILVRL_W2_UB
  - ILVRL_W2_SH
  - ILVRL_W2_SW
  - ILVRL_W2_UW
  - PCKEV_B2
  - PCKEV_B2_SB
  - PCKEV_B2_UB
  - PCKEV_B2_SH
  - PCKEV_B2_SW
  - PCKEV_B4
  - PCKEV_B4_SB
  - PCKEV_B4_UB
  - PCKEV_B4_SH
  - PCKEV_B4_SW
  - PCKEV_H2
  - PCKEV_H2_UH
  - PCKEV_H2_SH
  - PCKEV_H2_SW
  - PCKEV_H2_UW
  - PCKEV_W2
  - PCKEV_W2_UH
  - PCKEV_W2_SH
  - PCKEV_W2_SW
  - PCKEV_W2_UW
  - PCKOD_H2
  - PCKOD_H2_UH
  - PCKOD_H2_SH
  - PCKOD_H2_SW
  - PCKOD_H2_UW
  - SRAI_W2
  - SRAI_W2_SW
  - SRAI_W2_UW
  - SRAI_W4
  - SRAI_W4_SW
  - SRAI_W4_UW
  - SRAI_H2
  - SRAI_H2_SH
  - SRAI_H2_UH
  - SRARI_W2
  - SRARI_W2_SW
  - SRARI_W4
  - SRARI_W4_SH
  - SRARI_W4_UW
  - SRARI_W4_SW
  - SRAR_D2
  - SRAR_D2_SW
  - SRAR_D2_SD
  - SRAR_D2_UD
  - SRAR_D4
  - SRAR_D4_SD
  - SRAR_D4_UD
  - ADDVI_H2
  - ADDVI_H2_SH
  - ADDVI_H2_UH
  - ADDVI_W2
  - ADDVI_W2_SW
  - FILL_W2
  - FILL_W2_SW
  - ADD2
  - ADD4
  - SUB2
  - SUB3
  - SUB4
  - ADDSUB2
  - MUL2
  - MUL4
  - UNPCK_R_SH_SW
  - UNPCK_SH_SW
  - BUTTERFLY_4
  - TRANSPOSE16x4_UB_UB
  - TRANSPOSE16x8_UB_UB
  - TRANSPOSE4x4_W
  - TRANSPOSE4x4_SW_SW
  - ADDBLK_ST4x4_UB
  - PCKEV_ST4x4_UB
  - AVER_UB2
  - AVER_UB2_UB
  source_file: /src/libwebp/src/dsp/msa_macro.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALPHAVAL
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libwebp/src/dsp/msa_macro.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: ALPHAVAL
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/libwebp/src/dsp/msa_macro.h
      type_or_value: (0xff)
    structs: []
    typedefs: []
    union: []
- function_names:
  - DCHECK
  - U8_TO_S16
  - LOAD_U8_TO_S16
  - SHIFT_RIGHT_N_Q
  - SHIFT_LEFT_N_Q
  - ROTATE_LEFT_N
  - ROTATE_RIGHT_N
  - PredictLine_NEON
  - PredictLineLeft_NEON
  - DoHorizontalFilter_NEON
  - HorizontalFilter_NEON
  - DoVerticalFilter_NEON
  - VerticalFilter_NEON
  - GradientPredictor_C
  - GradientPredictDirect_NEON
  - DoGradientFilter_NEON
  - GradientFilter_NEON
  - HorizontalUnfilter_NEON
  - VerticalUnfilter_NEON
  - GRAD_PROCESS_LANE
  - GradientUnfilter_NEON
  - VP8FiltersInitNEON
  source_file: /src/libwebp/src/dsp/filters_neon.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: USE_GRADIENT_UNFILTER
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/libwebp/src/dsp/filters_neon.c
      type_or_value: 0  // ALTERNATE_CODE
    structs: []
    typedefs: []
    union: []
- function_names:
  - SubtractGreenFromBlueAndRed_MIPSdspR2
  - ColorTransformDelta
  - TransformColor_MIPSdspR2
  - TransformColorBlue
  - CollectColorBlueTransforms_MIPSdspR2
  - TransformColorRed
  - CollectColorRedTransforms_MIPSdspR2
  - VP8LEncDspInitMIPSdspR2
  source_file: /src/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DCHECK
  - DO_PREDICT_LINE
  - PredictLine_MIPSdspR2
  - DO_PREDICT_LINE_VERTICAL
  - PREDICT_LINE_ONE_PASS
  - DoHorizontalFilter_MIPSdspR2
  - HorizontalFilter_MIPSdspR2
  - DoVerticalFilter_MIPSdspR2
  - VerticalFilter_MIPSdspR2
  - GradientPredictor_MIPSdspR2
  - FILTER_LINE_BY_LINE
  - DoGradientFilter_MIPSdspR2
  - GradientFilter_MIPSdspR2
  - HorizontalUnfilter_MIPSdspR2
  - VerticalUnfilter_MIPSdspR2
  - GradientUnfilter_MIPSdspR2
  - VP8FiltersInitMIPSdspR2
  source_file: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FILTER_LINE_BY_LINE
      pos:
        line_end: 203
        line_start: 193
        source_file: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
      type_or_value: "do {                                                \\\n    for
        (row = 1; row < height; ++row) {              \\\n      PREDICT_LINE_ONE_PASS(in,
        preds - stride, out); \\\n      DO_PREDICT_LINE(in + 1, out + 1, width - 1,
        0); \\\n      preds += stride;                                \\\n      in
        += stride;                                   \\\n      out += stride;                                  \\\n
        \   }                                                 \\\n  } while (0)"
    - item_type: preproc_def
      name: FILTER_LINE_BY_LINE
      pos:
        line_end: 241
        line_start: 232
        source_file: /src/libwebp/src/dsp/filters_mips_dsp_r2.c
      type_or_value: "do {                                                    \\\n
        \   for (row = 1; row < height; ++row) {                  \\\n      DO_PREDICT_LINE_VERTICAL(in,
        preds, out, width, 0); \\\n      preds += stride;                                    \\\n
        \     in += stride;                                       \\\n      out +=
        stride;                                      \\\n    }                                                     \\\n
        \ } while (0)"
    structs: []
    typedefs: []
    union: []
- function_names:
  - MULT_FIX
  - MULT_FIX_FLOOR
  - LoadTwoPixels_SSE2
  - LoadEightPixels_SSE2
  - LoadDispatchAndMult_SSE2
  - ProcessRow_SSE2
  - RescalerExportRowExpand_SSE2
  - RescalerExportRowShrink_SSE2
  - WebPRescalerDspInitSSE2
  source_file: /src/libwebp/src/dsp/rescaler_sse2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ROUNDER
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libwebp/src/dsp/rescaler_sse2.c
      type_or_value: (WEBP_RESCALER_ONE >> 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - MULT_FIX
  - MULT_FIX_FLOOR
  - ExportRowShrink_MIPSdspR2
  - ExportRowExpand_MIPSdspR2
  - WebPRescalerDspInitMIPSdspR2
  source_file: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ROUNDER
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/libwebp/src/dsp/rescaler_mips_dsp_r2.c
      type_or_value: (WEBP_RESCALER_ONE >> 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetCPUInfo
  - GetCPUInfo
  - GetCPUInfo
  - xgetbv
  - xgetbv
  - xgetbv
  - xgetbv
  - CheckSlowModel
  - x86CPUInfo
  - AndroidCPUInfo
  - wasmCPUInfo
  - armCPUInfo
  - mipsCPUInfo
  - ppcCPUInfo
  source_file: /src/libwebp/src/dsp/cpu.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GetCPUInfo
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/libwebp/src/dsp/cpu.c
      type_or_value: __cpuid
    structs: []
    typedefs: []
    union: []
- function_names:
  - ADD_SUB_HALVES_X4
  - ABS_X8
  - MUL_HALF
  - OUTPUT_EARLY_CLOBBER_REGS_17
  - HORIZONTAL_PASS
  - VERTICAL_PASS
  - FTransform_MIPSdspR2
  - ITransformOne
  - ITransform_MIPSdspR2
  - Disto4x4_MIPSdspR2
  - Disto16x16_MIPSdspR2
  - FILL_PART
  - FILL_8_OR_16
  - VERTICAL_PRED
  - HORIZONTAL_PRED
  - CLIPPING
  - CLIP_8B_TO_DST
  - CLIP_TO_DST
  - TRUE_MOTION
  - DCMode16
  - DCMode8
  - DC4
  - TM4
  - VE4
  - HE4
  - RD4
  - VR4
  - LD4
  - VL4
  - HD4
  - HU4
  - IntraChromaPreds_MIPSdspR2
  - Intra16Preds_MIPSdspR2
  - Intra4Preds_MIPSdspR2
  - GET_SSE_INNER
  - GET_SSE
  - SSE16x16_MIPSdspR2
  - SSE16x8_MIPSdspR2
  - SSE8x8_MIPSdspR2
  - SSE4x4_MIPSdspR2
  - QUANTIZE_ONE
  - QuantizeBlock_MIPSdspR2
  - Quantize2Blocks_MIPSdspR2
  - HORIZONTAL_PASS_WHT
  - VERTICAL_PASS_WHT
  - FTransformWHT_MIPSdspR2
  - CONVERT_COEFFS_TO_BIN
  - VP8EncDspInitMIPSdspR2
  source_file: /src/libwebp/src/dsp/enc_mips_dsp_r2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ExportRowExpand_MIPS32
  - ExportRowShrink_MIPS32
  - WebPRescalerDspInitMIPS32
  source_file: /src/libwebp/src/dsp/rescaler_mips32.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Average2
  - Average3
  - Average4
  - Clip255
  - AddSubtractComponentFull
  - ClampedAddSubtractFull
  - AddSubtractComponentHalf
  - ClampedAddSubtractHalf
  - Sub3
  - Select
  - VP8LPredictor0_C
  - VP8LPredictor1_C
  - VP8LPredictor2_C
  - VP8LPredictor3_C
  - VP8LPredictor4_C
  - VP8LPredictor5_C
  - VP8LPredictor6_C
  - VP8LPredictor7_C
  - VP8LPredictor8_C
  - VP8LPredictor9_C
  - VP8LPredictor10_C
  - VP8LPredictor11_C
  - VP8LPredictor12_C
  - VP8LPredictor13_C
  - PredictorAdd0_C
  - PredictorAdd1_C
  - PredictorInverseTransform_C
  - VP8LAddGreenToBlueAndRed_C
  - ColorTransformDelta
  - ColorCodeToMultipliers
  - VP8LTransformColorInverse_C
  - ColorSpaceInverseTransform_C
  - COLOR_INDEX_INVERSE
  - VP8LInverseTransform
  - is_big_endian
  - VP8LConvertBGRAToRGB_C
  - VP8LConvertBGRAToRGBA_C
  - VP8LConvertBGRAToRGBA4444_C
  - VP8LConvertBGRAToRGB565_C
  - VP8LConvertBGRAToBGR_C
  - CopyOrSwap
  - VP8LConvertFromBGRA
  - COPY_PREDICTOR_ARRAY
  - WEBP_DSP_INIT_FUNC
  source_file: /src/libwebp/src/dsp/lossless.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LOCAL_INLINE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libwebp/src/dsp/lossless.c
      type_or_value: __attribute__((noinline))
    - item_type: preproc_def
      name: LOCAL_INLINE
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libwebp/src/dsp/lossless.c
      type_or_value: WEBP_INLINE
    structs: []
    typedefs: []
    union:
    - fields:
      - name: w
        type: uint16_t
      - name: b[2]
        type: uint8_t
      item_type: union
      name: tmp = {1}
      pos:
        line_end: 473
        line_start: 470
        source_file: /src/libwebp/src/dsp/lossless.c
- function_names:
  - SubtractAndSquare_SSE2
  - AccumulateSSE_SSE2
  - HorizontalAdd16b_SSE2
  - HorizontalAdd32b_SSE2
  - ACCUMULATE_ROW
  - VP8SSIMDspInitSSE2
  source_file: /src/libwebp/src/dsp/ssim_sse2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetResidualCost_MIPSdspR2
  - VP8EncDspCostInitMIPSdspR2
  source_file: /src/libwebp/src/dsp/cost_mips_dsp_r2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LOCAL_GCC_PREREQ
  - LOCAL_GCC_PREREQ
  - LOCAL_CLANG_PREREQ
  - LOCAL_CLANG_PREREQ
  - __has_builtin
  - _mm256_extract_epi32
  - _mm256_cvtsi256_si32
  - WEBP_DSP_INIT_VARS
  - WEBP_DSP_INIT
  - WEBP_DSP_INIT_VARS
  - WEBP_DSP_INIT
  - WEBP_DSP_INIT_VARS
  - WEBP_DSP_INIT
  - WEBP_DSP_INIT_FUNC
  - WEBP_OFFSET_PTR
  source_file: /src/libwebp/src/dsp/cpu.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LOCAL_GCC_VERSION
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/libwebp/src/dsp/cpu.h
      type_or_value: ((__GNUC__ << 8) | __GNUC_MINOR__)
    - item_type: preproc_def
      name: LOCAL_GCC_VERSION
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libwebp/src/dsp/cpu.h
      type_or_value: '0'
    - item_type: preproc_def
      name: LOCAL_CLANG_VERSION
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/libwebp/src/dsp/cpu.h
      type_or_value: ((__clang_major__ << 8) | __clang_minor__)
    - item_type: preproc_def
      name: LOCAL_CLANG_VERSION
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/libwebp/src/dsp/cpu.h
      type_or_value: '0'
    - item_type: preproc_def
      name: WEBP_AARCH64
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/libwebp/src/dsp/cpu.h
      type_or_value: '1'
    - item_type: preproc_def
      name: WEBP_AARCH64
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/libwebp/src/dsp/cpu.h
      type_or_value: '0'
    - item_type: preproc_def
      name: WEBP_DSP_OMIT_C_CODE
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/libwebp/src/dsp/cpu.h
      type_or_value: '1'
    - item_type: preproc_def
      name: WEBP_NEON_OMIT_C_CODE
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/libwebp/src/dsp/cpu.h
      type_or_value: '1'
    - item_type: preproc_def
      name: WEBP_NEON_OMIT_C_CODE
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/libwebp/src/dsp/cpu.h
      type_or_value: '0'
    - item_type: preproc_def
      name: WEBP_NEON_WORK_AROUND_GCC
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/libwebp/src/dsp/cpu.h
      type_or_value: '1'
    - item_type: preproc_def
      name: WEBP_NEON_WORK_AROUND_GCC
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/libwebp/src/dsp/cpu.h
      type_or_value: '0'
    - item_type: preproc_def
      name: WEBP_TSAN_IGNORE_FUNCTION
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/libwebp/src/dsp/cpu.h
      type_or_value: __attribute__((no_sanitize_thread))
    - item_type: preproc_def
      name: WEBP_UBSAN_IGNORE_UNDEF
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/libwebp/src/dsp/cpu.h
      type_or_value: __attribute__((no_sanitize("undefined")))
    - item_type: preproc_def
      name: WEBP_UBSAN_IGNORE_UNSIGNED_OVERFLOW
      pos:
        line_end: 293
        line_start: 291
        source_file: /src/libwebp/src/dsp/cpu.h
      type_or_value: __attribute__((no_sanitize("unsigned-integer-overflow")))
    - item_type: preproc_def
      name: WEBP_SWAP_16BIT_CSP
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/libwebp/src/dsp/cpu.h
      type_or_value: '0'
    structs: []
    typedefs:
    - item_type: typedef
      name: (*VP8CPUInfo)(CPUFeature feature)
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/libwebp/src/dsp/cpu.h
      type: int
    union: []
- function_names:
  - HE16_SSE41
  - VP8DspInitSSE41
  source_file: /src/libwebp/src/dsp/dec_sse41.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SetResidualCoeffs_NEON
  - GetResidualCost_NEON
  - VP8EncDspCostInitNEON
  source_file: /src/libwebp/src/dsp/cost_neon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ROW_FUNC
  - WebPSamplerProcessPlane
  - WEBP_DSP_INIT_FUNC
  - ConvertARGBToY_C
  - WebPConvertARGBToUV_C
  - ConvertRGBToY_C
  - ConvertBGRToY_C
  - WebPConvertRGBA32ToUV_C
  - WEBP_DSP_INIT_FUNC
  - GammaToLinear
  - Interpolate
  - LinearToGamma
  - WebPInitGammaTables
  - GammaToLinear
  - LinearToGamma
  - SUM4
  - SUM2
  - SUM4
  - SUM2
  - SUM2ALPHA
  - SUM4ALPHA
  - DIVIDE_BY_ALPHA
  - DIVIDE_BY_ALPHA
  - LinearToGammaWeighted
  - WebPAccumulateRGBA
  - WebPAccumulateRGB
  - ImportYUVAFromRGBA_C
  - ImportYUVAFromRGBALastLine_C
  - WEBP_DSP_INIT_FUNC
  source_file: /src/libwebp/src/dsp/yuv.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GAMMA_FIX
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/libwebp/src/dsp/yuv.c
      type_or_value: 12     // fixed-point precision for linear values
    - item_type: preproc_def
      name: GAMMA_TAB_FIX
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/libwebp/src/dsp/yuv.c
      type_or_value: 7  // fixed-point fractional bits precision
    - item_type: preproc_def
      name: GAMMA_TAB_SIZE
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/libwebp/src/dsp/yuv.c
      type_or_value: (1 << (GAMMA_FIX - GAMMA_TAB_FIX))
    structs: []
    typedefs: []
    union: []
- function_names:
  - DoGreenShuffle_NEON
  - DoGreenShuffle_NEON
  - SubtractGreenFromBlueAndRed_NEON
  - TransformColor_NEON
  - CST
  - VP8LEncDspInitNEON
  source_file: /src/libwebp/src/dsp/lossless_enc_neon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TransformColorInverse_SSE41
  - CST
  - ConvertBGRAToRGB_SSE41
  - ConvertBGRAToBGR_SSE41
  - VP8LDspInitSSE41
  source_file: /src/libwebp/src/dsp/lossless_sse41.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARGB_TO_RGB_SSE41
      pos:
        line_end: 80
        line_start: 58
        source_file: /src/libwebp/src/dsp/lossless_sse41.c
      type_or_value: "do {                                                  \\\n    while
        (num_pixels >= 16) {                          \\\n      const __m128i in0
        = _mm_loadu_si128(in + 0);      \\\n      const __m128i in1 = _mm_loadu_si128(in
        + 1);      \\\n      const __m128i in2 = _mm_loadu_si128(in + 2);      \\\n
        \     const __m128i in3 = _mm_loadu_si128(in + 3);      \\\n      const __m128i
        a0 = _mm_shuffle_epi8(in0, perm0);  \\\n      const __m128i a1 = _mm_shuffle_epi8(in1,
        perm1);  \\\n      const __m128i a2 = _mm_shuffle_epi8(in2, perm2);  \\\n
        \     const __m128i a3 = _mm_shuffle_epi8(in3, perm3);  \\\n      const __m128i
        b0 = _mm_blend_epi16(a0, a1, 0xc0); \\\n      const __m128i b1 = _mm_blend_epi16(a1,
        a2, 0xf0); \\\n      const __m128i b2 = _mm_blend_epi16(a2, a3, 0xfc); \\\n
        \     _mm_storeu_si128(out + 0, b0);                    \\\n      _mm_storeu_si128(out
        + 1, b1);                    \\\n      _mm_storeu_si128(out + 2, b2);                    \\\n
        \     in += 4;                                          \\\n      out += 3;
        \                                        \\\n      num_pixels -= 16;                                 \\\n
        \   }                                                   \\\n  } while (0)"
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetResidualCost_C
  - SetResidualCoeffs_C
  - WEBP_DSP_INIT_FUNC
  source_file: /src/libwebp/src/dsp/cost.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ILVR_UW2
  - ILVRL_UW4
  - MULTHI_16
  - MULTHI_8
  - CALC_R16
  - CALC_R8
  - CALC_G16
  - CALC_G8
  - CALC_B16
  - CALC_B8
  - CALC_RGB16
  - CALC_RGB8
  - STORE16_3
  - STORE8_3
  - STORE16_4
  - STORE8_4
  - STORE2_16
  - STORE2_8
  - CALC_RGBA4444
  - CALC_RGB565
  - Clip8
  - YuvToRgb
  - YuvToBgr
  - YuvToRgb565
  - YuvToRgba4444
  - YuvToArgb
  - YuvToBgra
  - YuvToRgba
  - YuvToRgbLine
  - YuvToBgrLine
  - YuvToRgbaLine
  - YuvToBgraLine
  - YuvToArgbLine
  - YuvToRgba4444Line
  - YuvToRgb565Line
  - UPSAMPLE_32PIXELS
  - UPSAMPLE_FUNC
  - WebPInitUpsamplersMSA
  source_file: /src/libwebp/src/dsp/upsampling_msa.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - clip_8b
  - clip_max
  - VP8SetHistogramData
  - CollectHistogram_C
  - InitTables
  - STORE
  - ITransformOne
  - ITransform_C
  - FTransform_C
  - FTransform2_C
  - FTransformWHT_C
  - Fill
  - VerticalPred
  - HorizontalPred
  - TrueMotion
  - DCMode
  - IntraChromaPreds_C
  - Intra16Preds_C
  - DST
  - AVG3
  - AVG2
  - VE4
  - HE4
  - DC4
  - RD4
  - LD4
  - VR4
  - VL4
  - HU4
  - HD4
  - TM4
  - Intra4Preds_C
  - GetSSE
  - SSE16x16_C
  - SSE16x8_C
  - SSE8x8_C
  - SSE4x4_C
  - Mean16x4_C
  - TTransform
  - Disto4x4_C
  - Disto16x16_C
  - QuantizeBlock_C
  - Quantize2Blocks_C
  - Copy
  - Copy4x4_C
  - Copy16x8_C
  - WEBP_DSP_INIT_FUNC
  source_file: /src/libwebp/src/dsp/enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Mult
  - GetScale
  - GetScale
  - WebPMultARGBRow_C
  - WebPMultRow_C
  - WebPMultARGBRows
  - WebPMultRows
  - MULTIPLIER
  - PREMULTIPLY
  - MULTIPLIER
  - PREMULTIPLY
  - ApplyAlphaMultiply_C
  - MULTIPLIER
  - dither_hi
  - dither_lo
  - multiply
  - ApplyAlphaMultiply4444_C
  - ApplyAlphaMultiply_16b_C
  - DispatchAlpha_C
  - DispatchAlphaToGreen_C
  - ExtractAlpha_C
  - ExtractGreen_C
  - HasAlpha8b_C
  - HasAlpha32b_C
  - AlphaReplace_C
  - MakeARGB32
  - PackARGB_C
  - PackRGB_C
  - WEBP_DSP_INIT_FUNC
  source_file: /src/libwebp/src/dsp/alpha_processing.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: USE_TABLES_FOR_ALPHA_MULT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/libwebp/src/dsp/alpha_processing.c
      type_or_value: 0  // ALTERNATE_CODE
    - item_type: preproc_def
      name: MFIX
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/libwebp/src/dsp/alpha_processing.c
      type_or_value: 24  // 24bit fixed-point arithmetic
    - item_type: preproc_def
      name: HALF
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libwebp/src/dsp/alpha_processing.c
      type_or_value: ((1u << MFIX) >> 1)
    - item_type: preproc_def
      name: KINV_255
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libwebp/src/dsp/alpha_processing.c
      type_or_value: ((1u << MFIX) / 255u)
    structs: []
    typedefs: []
    union: []
- function_names:
  - INIT_VECTOR2
  - INIT_VECTOR3
  - INIT_VECTOR4
  - int32x4x4_t::Transpose4x4_NEON
  - PRINT_REG
  source_file: /src/libwebp/src/dsp/neon.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HorizontalSum_SSE41
  - ExtraCost_SSE41
  - SubtractGreenFromBlueAndRed_SSE41
  - CST_5b
  - MK_CST_16
  - CollectColorBlueTransforms_SSE41
  - CollectColorRedTransforms_SSE41
  - VP8LEncDspInitSSE41
  source_file: /src/libwebp/src/dsp/lossless_enc_sse41.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VP8InitClipTables
  source_file: /src/libwebp/src/dsp/dec_clip_tables.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: USE_STATIC_TABLES
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/libwebp/src/dsp/dec_clip_tables.c
      type_or_value: 1  // ALTERNATE_CODE
    structs: []
    typedefs: []
    union: []
- function_names:
  - ConvertYUV444ToRGB_SSE41
  - Load_HI_16_SSE41
  - Load_UV_HI_8_SSE41
  - YUV444ToRGB_SSE41
  - YUV420ToRGB_SSE41
  - PlanarTo24b_SSE41
  - VP8YuvToRgb32_SSE41
  - VP8YuvToBgr32_SSE41
  - YuvToRgbRow_SSE41
  - YuvToBgrRow_SSE41
  - WebPInitSamplersSSE41
  - LOAD_16
  - STORE_16
  - WEBP_SSE41_SHUFF
  - RGBPackedToPlanar_SSE41
  - RGBAPackedToRGBPlanar_SSE41
  - ARGBPackedToRGBPlanar16_SSE41
  - TRANSFORM
  - MK_CST_16
  - ConvertRGBToYImpl_SSE41
  - ConvertRGBToUV_SSE41
  - ConvertRGBToYHelper_SSE41
  - ConvertRGBToY_SSE41
  - ConvertBGRToY_SSE41
  - ConvertARGBToY_SSE41
  - HorizontalAddPack_SSE41
  - ConvertARGBToUV_SSE41
  - RGBA32PackedToPlanar_16b_SSE41
  - ConvertRGBA32ToUV_SSE41
  - WebPInitConvertARGBToYUVSSE41
  source_file: /src/libwebp/src/dsp/yuv_sse41.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PrintReg
  - VP8HorizontalAdd8b
  - VP8Transpose_2_4x4_16b
  - VP8PlanarTo24bHelper
  - VP8PlanarTo24b_SSE2
  - VP8L32bToPlanar_SSE2
  source_file: /src/libwebp/src/dsp/common_sse2.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: r
        type: __m128i
      - name: i8[16]
        type: uint8_t
      - name: i16[8]
        type: uint16_t
      - name: i32[4]
        type: uint32_t
      - name: i64[2]
        type: uint64_t
      item_type: union
      name: tmp
      pos:
        line_end: 38
        line_start: 32
        source_file: /src/libwebp/src/dsp/common_sse2.h
- function_names:
  - abs_mips32
  - do_filter2
  - do_filter4
  - do_filter6
  - hev
  - needs_filter
  - needs_filter2
  - FilterLoop26
  - FilterLoop24
  - VFilter16
  - HFilter16
  - VFilter8
  - HFilter8
  - VFilter8i
  - HFilter8i
  - VFilter16i
  - HFilter16i
  - SimpleVFilter16
  - SimpleHFilter16
  - SimpleVFilter16i
  - SimpleHFilter16i
  - TransformOne
  - TransformTwo
  - VP8DspInitMIPS32
  source_file: /src/libwebp/src/dsp/dec_mips32.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DispatchAlpha_MIPSdspR2
  - MultARGBRow_MIPSdspR2
  - PackARGB_MIPSdspR2
  - PackRGB_MIPSdspR2
  - WebPInitAlphaProcessingMIPSdspR2
  source_file: /src/libwebp/src/dsp/alpha_processing_mips_dsp_r2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - WEBP_SSE41_SHUFF
  - VP8PlanarTo24b_SSE41
  - VP8L32bToPlanar_SSE41
  source_file: /src/libwebp/src/dsp/common_sse41.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FastSLog2Slow_C
  - FastLog2Slow_C
  - CombinedShannonEntropy_C
  - ShannonEntropy_C
  - VP8LBitEntropyInit
  - VP8LBitsEntropyUnrefined
  - GetEntropyUnrefinedHelper
  - GetEntropyUnrefined_C
  - GetCombinedEntropyUnrefined_C
  - VP8LSubtractGreenFromBlueAndRed_C
  - ColorTransformDelta
  - U32ToS8
  - VP8LTransformColor_C
  - TransformColorRed
  - TransformColorBlue
  - VP8LCollectColorRedTransforms_C
  - VP8LCollectColorBlueTransforms_C
  - VectorMismatch_C
  - VP8LBundleColorMap_C
  - ExtraCost_C
  - AddVector_C
  - AddVectorEq_C
  - PredictorSub0_C
  - PredictorSub1_C
  - GENERATE_PREDICTOR_SUB
  - WEBP_DSP_INIT_FUNC
  source_file: /src/libwebp/src/dsp/lossless_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ROW_FUNC
  - WebPInitSamplersMIPS32
  source_file: /src/libwebp/src/dsp/yuv_mips32.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DCHECK
  - PredictLineTop_SSE2
  - PredictLineLeft_SSE2
  - DoHorizontalFilter_SSE2
  - DoVerticalFilter_SSE2
  - GradientPredictor_SSE2
  - GradientPredictDirect_SSE2
  - DoGradientFilter_SSE2
  - HorizontalFilter_SSE2
  - VerticalFilter_SSE2
  - GradientFilter_SSE2
  - HorizontalUnfilter_SSE2
  - VerticalUnfilter_SSE2
  - GradientPredictInverse_SSE2
  - GradientUnfilter_SSE2
  - VP8FiltersInitSSE2
  source_file: /src/libwebp/src/dsp/filters_sse2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Average2_m256i
  - PredictorAdd0_AVX2
  - PredictorAdd1_AVX2
  - GENERATE_PREDICTOR_1
  - GENERATE_PREDICTOR_2
  - DO_PRED10
  - PredictorAdd10_AVX2
  - DO_PRED11
  - PredictorAdd11_AVX2
  - DO_PRED12
  - PredictorAdd12_AVX2
  - AddGreenToBlueAndRed_AVX2
  - TransformColorInverse_AVX2
  - CST
  - ConvertBGRAToRGBA_AVX2
  - VP8LDspInitAVX2
  source_file: /src/libwebp/src/dsp/lossless_avx2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: avgTTR
      pos:
        line_end: 160
        line_start: 153
        source_file: /src/libwebp/src/dsp/lossless_avx2.c
      type_or_value: "= _mm256_srli_si256(avgTTR, 4);                      \\\n    TL
        = _mm256_srli_si256(TL, 4);                              \\\n    src = _mm256_srli_si256(src,
        4);                            \\\n  } while (0)"
    - item_type: preproc_def
      name: T
      pos:
        line_end: 218
        line_start: 210
        source_file: /src/libwebp/src/dsp/lossless_avx2.c
      type_or_value: "= _mm256_srli_si256(T, 4);                              \\\n
        \   TL = _mm256_srli_si256(TL, 4);                            \\\n    src
        = _mm256_srli_si256(src, 4);                          \\\n    pa = _mm256_srli_si256(pa,
        4);                            \\\n  } while (0)"
    - item_type: preproc_def
      name: if
      pos:
        line_end: 282
        line_start: 276
        source_file: /src/libwebp/src/dsp/lossless_avx2.c
      type_or_value: "((LANE) == 0) (DIFF) = _mm256_srli_si256(DIFF, 8);     \\\n
        \   src = _mm256_srli_si256(src, 4);                          \\\n  } while
        (0)"
    structs: []
    typedefs: []
    union: []
- function_names:
  - ConvertU8ToS16_NEON
  - SaturateAndStore4x4_NEON
  - Add4x4_NEON
  - Transpose8x2_NEON
  - TransformPass_NEON
  - ITransformOne_NEON
  - ITransformOne_NEON
  - ITransform_NEON
  - Load4x4_NEON
  - Transpose4x4_S16_NEON
  - DiffU8ToS16_NEON
  - FTransform_NEON
  - FTransform_NEON
  - LOAD_LANE_16b
  - FTransformWHT_NEON
  - int16x8x4_t::DistoTranspose4x4S16_NEON
  - int16x8x4_t::DistoHorizontalPass_NEON
  - int16x8x4_t::DistoVerticalPass_NEON
  - int16x4x4_t::DistoLoadW_NEON
  - DistoSum_NEON
  - LOAD_LANE_32b
  - Disto4x4_NEON
  - Disto16x16_NEON
  - CollectHistogram_NEON
  - AccumulateSSE16_NEON
  - SumToInt_NEON
  - SSE16x16_NEON
  - SSE16x8_NEON
  - SSE8x8_NEON
  - SSE4x4_NEON
  - Quantize_NEON
  - QuantizeBlock_NEON
  - Quantize2Blocks_NEON
  - DC4_VE4_HE4_TM4_NEON
  - RD4_VR4_LD4_VL4_NEON
  - uint8x8x2_t::Vld1U8x2
  - uint8x16x4_t::Vld1qU8x4
  - Intra4Preds_NEON
  - Fill_NEON
  - Fill16_NEON
  - HorizontalPred16_NEON
  - VerticalPred16_NEON
  - DCMode_NEON
  - TrueMotionHelper_NEON
  - TrueMotion_NEON
  - Intra16Preds_NEON
  - VP8EncDspInitNEON
  source_file: /src/libwebp/src/dsp/enc_neon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MULTIPLIER
  - PREMULTIPLY
  - MULTIPLY_BY_ALPHA
  - DispatchAlpha_NEON
  - DispatchAlphaToGreen_NEON
  - ExtractAlpha_NEON
  - ExtractGreen_NEON
  - WebPInitAlphaProcessingNEON
  source_file: /src/libwebp/src/dsp/alpha_processing_neon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DCHECK
  - PredictLine_C
  - DoHorizontalFilter_C
  - DoVerticalFilter_C
  - GradientPredictor_C
  - DoGradientFilter_C
  - HorizontalFilter_C
  - VerticalFilter_C
  - GradientFilter_C
  - NoneUnfilter_C
  - HorizontalUnfilter_C
  - VerticalUnfilter_C
  - GradientUnfilter_C
  - WEBP_DSP_INIT_FUNC
  source_file: /src/libwebp/src/dsp/filters.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetResidualCost_MIPS32
  - SetResidualCoeffs_MIPS32
  - VP8EncDspCostInitMIPS32
  source_file: /src/libwebp/src/dsp/cost_mips32.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CST_5b
  - SubtractGreenFromBlueAndRed_SSE2
  - MK_CST_16
  - TransformColor_SSE2
  - CollectColorBlueTransforms_SSE2
  - CollectColorRedTransforms_SSE2
  - AddVector_SSE2
  - AddVectorEq_SSE2
  - CombinedShannonEntropy_SSE2
  - VectorMismatch_SSE2
  - BundleColorMap_SSE2
  - Average2_m128i
  - PredictorSub0_SSE2
  - GENERATE_PREDICTOR_1
  - PredictorSub5_SSE2
  - GENERATE_PREDICTOR_2
  - PredictorSub10_SSE2
  - GetSumAbsDiff32_SSE2
  - PredictorSub11_SSE2
  - PredictorSub12_SSE2
  - PredictorSub13_SSE2
  - VP8LEncDspInitSSE2
  source_file: /src/libwebp/src/dsp/lossless_enc_sse2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPAN
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libwebp/src/dsp/lossless_enc_sse2.c
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names:
  - CollectHistogram_SSE41
  - TTransform_SSE41
  - Disto4x4_SSE41
  - Disto16x16_SSE41
  - PSHUFB_CST
  - DoQuantizeBlock_SSE41
  - QuantizeBlock_SSE41
  - QuantizeBlockWHT_SSE41
  - Quantize2Blocks_SSE41
  - VP8EncDspInitSSE41
  source_file: /src/libwebp/src/dsp/enc_sse41.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MULT_FIX_C
  - MULT_FIX_FLOOR_C
  - LOAD_32x4
  - LOAD_32x8
  - STORE_32x8
  - MAKE_HALF_CST
  - MULT_FIX
  - MULT_FIX_FLOOR
  - Interpolate_NEON
  - RescalerExportRowExpand_NEON
  - RescalerExportRowShrink_NEON
  - WebPRescalerDspInitNEON
  source_file: /src/libwebp/src/dsp/rescaler_neon.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ROUNDER
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/libwebp/src/dsp/rescaler_neon.c
      type_or_value: (WEBP_RESCALER_ONE >> 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - CONVERT16_BGRA_XXX
  - CONVERT12_BGRA_XXX
  - CONVERT8_BGRA_XXX
  - CONVERT4_BGRA_XXX
  - CONVERT1_BGRA_BGR
  - CONVERT1_BGRA_RGB
  - TRANSFORM_COLOR_INVERSE_8
  - TRANSFORM_COLOR_INVERSE_4
  - ConvertBGRAToRGBA_MSA
  - ConvertBGRAToBGR_MSA
  - ConvertBGRAToRGB_MSA
  - AddGreenToBlueAndRed_MSA
  - TransformColorInverse_MSA
  - VP8LDspInitMSA
  source_file: /src/libwebp/src/dsp/lossless_msa.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SetResidualCoeffs_SSE2
  - GetResidualCost_SSE2
  - VP8EncDspCostInitSSE2
  source_file: /src/libwebp/src/dsp/cost_sse2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ROW_FUNC_PART_1
  - ROW_FUNC_PART_2
  - ASM_CLOBBER_LIST
  - ROW_FUNC
  - WebPInitSamplersMIPSdspR2
  source_file: /src/libwebp/src/dsp/yuv_mips_dsp_r2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/src/dsp/lossless.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: green_to_red
        type: uint8_t
      - name: green_to_blue
        type: uint8_t
      - name: red_to_blue
        type: uint8_t
      item_type: struct
      name: VP8LMultipliers
      pos:
        line_end: 78
        line_start: 72
        source_file: /src/libwebp/src/dsp/lossless.h
    - fields:
      - name: counts[2]
        type: int
      - name: streaks[2][2]
        type: int
      item_type: struct
      name: VP8LStreaks
      pos:
        line_end: 203
        line_start: 200
        source_file: /src/libwebp/src/dsp/lossless.h
    - fields:
      - name: entropy
        type: uint64_t
      - name: sum
        type: uint32_t
      - name: nonzeros
        type: int
      - name: max_val
        type: uint32_t
      - name: nonzero_code
        type: uint32_t
      item_type: struct
      name: VP8LBitEntropy
      pos:
        line_end: 211
        line_start: 205
        source_file: /src/libwebp/src/dsp/lossless.h
    typedefs:
    - item_type: typedef
      name: "(*VP8LPredictorFunc)(const uint32_t* const left,\n                                      const
        uint32_t* const top)"
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/libwebp/src/dsp/lossless.h
      type: uint32_t
    - item_type: typedef
      name: "(*VP8LPredictorAddSubFunc)(const uint32_t* in,\n                                        const
        uint32_t* upper, int num_pixels,\n                                        uint32_t*
        WEBP_RESTRICT out)"
      pos:
        line_end: 62
        line_start: 60
        source_file: /src/libwebp/src/dsp/lossless.h
      type: void
    - item_type: typedef
      name: "(*VP8LProcessDecBlueAndRedFunc)(const uint32_t* src,\n                                             int
        num_pixels, uint32_t* dst)"
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libwebp/src/dsp/lossless.h
      type: void
    - item_type: typedef
      name: "(*VP8LTransformColorInverseFunc)(const VP8LMultipliers* const m,\n                                              const
        uint32_t* src,\n                                              int num_pixels,
        uint32_t* dst)"
      pos:
        line_end: 81
        line_start: 79
        source_file: /src/libwebp/src/dsp/lossless.h
      type: void
    - item_type: typedef
      name: "(*VP8LConvertFunc)(const uint32_t* WEBP_RESTRICT src,\n                                int
        num_pixels, uint8_t* WEBP_RESTRICT dst)"
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/libwebp/src/dsp/lossless.h
      type: void
    - item_type: typedef
      name: "(*VP8LMapARGBFunc)(const uint32_t* src,\n                                const
        uint32_t* const color_map, uint32_t* dst,\n                                int
        y_start, int y_end, int width)"
      pos:
        line_end: 112
        line_start: 110
        source_file: /src/libwebp/src/dsp/lossless.h
      type: void
    - item_type: typedef
      name: "(*VP8LMapAlphaFunc)(const uint8_t* src,\n                                 const
        uint32_t* const color_map, uint8_t* dst,\n                                 int
        y_start, int y_end, int width)"
      pos:
        line_end: 115
        line_start: 113
        source_file: /src/libwebp/src/dsp/lossless.h
      type: void
    - item_type: typedef
      name: (*VP8LProcessEncBlueAndRedFunc)(uint32_t* dst, int num_pixels)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/libwebp/src/dsp/lossless.h
      type: void
    - item_type: typedef
      name: "(*VP8LTransformColorFunc)(\n    const VP8LMultipliers* WEBP_RESTRICT
        const m, uint32_t* WEBP_RESTRICT dst,\n    int num_pixels)"
      pos:
        line_end: 156
        line_start: 154
        source_file: /src/libwebp/src/dsp/lossless.h
      type: void
    - item_type: typedef
      name: "(*VP8LCollectColorBlueTransformsFunc)(\n    const uint32_t* WEBP_RESTRICT
        argb, int stride, int tile_width,\n    int tile_height, int green_to_blue,
        int red_to_blue, uint32_t histo[])"
      pos:
        line_end: 161
        line_start: 159
        source_file: /src/libwebp/src/dsp/lossless.h
      type: void
    - item_type: typedef
      name: "(*VP8LCollectColorRedTransformsFunc)(\n    const uint32_t* WEBP_RESTRICT
        argb, int stride, int tile_width,\n    int tile_height, int green_to_red,
        uint32_t histo[])"
      pos:
        line_end: 167
        line_start: 165
        source_file: /src/libwebp/src/dsp/lossless.h
      type: void
    - item_type: typedef
      name: (*VP8LCostFunc)(const uint32_t* population, int length)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/libwebp/src/dsp/lossless.h
      type: uint32_t
    - item_type: typedef
      name: "(*VP8LCombinedShannonEntropyFunc)(const uint32_t X[256],\n                                                   const
        uint32_t Y[256])"
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/libwebp/src/dsp/lossless.h
      type: uint64_t
    - item_type: typedef
      name: (*VP8LShannonEntropyFunc)(const uint32_t* X, int length)
      pos:
        line_end: 194
        line_start: 194
        source_file: /src/libwebp/src/dsp/lossless.h
      type: uint64_t
    - item_type: typedef
      name: "(*VP8LGetCombinedEntropyUnrefinedFunc)(\n    const uint32_t X[], const
        uint32_t Y[], int length,\n    VP8LBitEntropy* WEBP_RESTRICT const bit_entropy,\n
        \   VP8LStreaks* WEBP_RESTRICT const stats)"
      pos:
        line_end: 221
        line_start: 218
        source_file: /src/libwebp/src/dsp/lossless.h
      type: void
    - item_type: typedef
      name: "(*VP8LGetEntropyUnrefinedFunc)(\n    const uint32_t X[], int length,\n
        \   VP8LBitEntropy* WEBP_RESTRICT const bit_entropy,\n    VP8LStreaks* WEBP_RESTRICT
        const stats)"
      pos:
        line_end: 228
        line_start: 225
        source_file: /src/libwebp/src/dsp/lossless.h
      type: void
    - item_type: typedef
      name: "(*VP8LAddVectorFunc)(const uint32_t* WEBP_RESTRICT a,\n                                  const
        uint32_t* WEBP_RESTRICT b,\n                                  uint32_t* WEBP_RESTRICT
        out, int size)"
      pos:
        line_end: 236
        line_start: 234
        source_file: /src/libwebp/src/dsp/lossless.h
      type: void
    - item_type: typedef
      name: "(*VP8LAddVectorEqFunc)(const uint32_t* WEBP_RESTRICT a,\n                                    uint32_t*
        WEBP_RESTRICT out, int size)"
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/libwebp/src/dsp/lossless.h
      type: void
    - item_type: typedef
      name: "(*VP8LVectorMismatchFunc)(const uint32_t* const array1,\n                                      const
        uint32_t* const array2, int length)"
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/libwebp/src/dsp/lossless.h
      type: int
    - item_type: typedef
      name: "(*VP8LBundleColorMapFunc)(const uint8_t* WEBP_RESTRICT const row,\n                                       int
        width, int xbits,\n                                       uint32_t* WEBP_RESTRICT
        dst)"
      pos:
        line_end: 252
        line_start: 250
        source_file: /src/libwebp/src/dsp/lossless.h
      type: void
    union: []
- function_names:
  - FastSLog2Slow_MIPS32
  - FastLog2Slow_MIPS32
  - ExtraCost_MIPS32
  - GetEntropyUnrefinedHelper
  - GetEntropyUnrefined_MIPS32
  - GetCombinedEntropyUnrefined_MIPS32
  - ADD_TO_OUT
  - AddVector_MIPS32
  - AddVectorEq_MIPS32
  - VP8LEncDspInitMIPS32
  source_file: /src/libwebp/src/dsp/lossless_enc_mips32.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HUFFMAN_COST_PASS
      pos:
        line_end: 154
        line_start: 130
        source_file: /src/libwebp/src/dsp/lossless_enc_mips32.c
      type_or_value: "__asm__ volatile(                                                        \\\n
        \     \"sll   %[temp1],  %[temp0],    3           \\n\\t\"                     \\\n
        \     \"addiu %[temp3],  %[streak],   -3          \\n\\t\"                     \\\n
        \     \"addu  %[temp2],  %[pstreaks], %[temp1]    \\n\\t\"                     \\\n
        \     \"blez  %[temp3],  1f                       \\n\\t\"                     \\\n
        \     \"srl   %[temp1],  %[temp1],    1           \\n\\t\"                     \\\n
        \     \"addu  %[temp3],  %[pcnts],    %[temp1]    \\n\\t\"                     \\\n
        \     \"lw    %[temp0],  4(%[temp2])              \\n\\t\"                     \\\n
        \     \"lw    %[temp1],  0(%[temp3])              \\n\\t\"                     \\\n
        \     \"addu  %[temp0],  %[temp0],    %[streak]   \\n\\t\"                     \\\n
        \     \"addiu %[temp1],  %[temp1],    1           \\n\\t\"                     \\\n
        \     \"sw    %[temp0],  4(%[temp2])              \\n\\t\"                     \\\n
        \     \"sw    %[temp1],  0(%[temp3])              \\n\\t\"                     \\\n
        \     \"b     2f                                  \\n\\t\"                     \\\n
        \     \"1:                                        \\n\\t\"                     \\\n
        \     \"lw    %[temp0],  0(%[temp2])              \\n\\t\"                     \\\n
        \     \"addu  %[temp0],  %[temp0],    %[streak]   \\n\\t\"                     \\\n
        \     \"sw    %[temp0],  0(%[temp2])              \\n\\t\"                     \\\n
        \     \"2:                                        \\n\\t\"                     \\\n
        \     : [temp1] \"=&r\"(temp1), [temp2] \"=&r\"(temp2), [temp3] \"=&r\"(temp3),
        \ \\\n        [temp0] \"+r\"(temp0)                                                \\\n
        \     : [pstreaks] \"r\"(pstreaks), [pcnts] \"r\"(pcnts), [streak] \"r\"(streak)
        \\\n      : \"memory\");"
    - item_type: preproc_def
      name: ASM_START
      pos:
        line_end: 235
        line_start: 229
        source_file: /src/libwebp/src/dsp/lossless_enc_mips32.c
      type_or_value: "__asm__ volatile(                                     \\\n    \".set
        \  push                            \\n\\t\"       \\\n    \".set   at                              \\n\\t\"
        \      \\\n    \".set   macro                           \\n\\t\"       \\\n
        \ \"1:                                       \\n\\t\""
    - item_type: preproc_def
      name: ASM_END_COMMON_0
      pos:
        line_end: 275
        line_start: 269
        source_file: /src/libwebp/src/dsp/lossless_enc_mips32.c
      type_or_value: ": [temp0]\"=&r\"(temp0), [temp1]\"=&r\"(temp1),         \\\n
        \     [temp2]\"=&r\"(temp2), [temp3]\"=&r\"(temp3),         \\\n      [temp4]\"=&r\"(temp4),
        [temp5]\"=&r\"(temp5),         \\\n      [temp6]\"=&r\"(temp6), [temp7]\"=&r\"(temp7),
        \        \\\n      [pa]\"+r\"(pa), [pout]\"+r\"(pout)"
    - item_type: preproc_def
      name: ASM_END_COMMON_1
      pos:
        line_end: 280
        line_start: 276
        source_file: /src/libwebp/src/dsp/lossless_enc_mips32.c
      type_or_value: ": [LoopEnd]\"r\"(LoopEnd)                             \\\n    :
        \"memory\", \"at\"                                    \\\n  );"
    - item_type: preproc_def
      name: ASM_END_0
      pos:
        line_end: 284
        line_start: 281
        source_file: /src/libwebp/src/dsp/lossless_enc_mips32.c
      type_or_value: "ASM_END_COMMON_0 \\\n  , [pb] \"+r\"(pb)ASM_END_COMMON_1"
    - item_type: preproc_def
      name: ASM_END_1
      pos:
        line_end: 288
        line_start: 285
        source_file: /src/libwebp/src/dsp/lossless_enc_mips32.c
      type_or_value: "ASM_END_COMMON_0 \\\n  ASM_END_COMMON_1"
    structs: []
    typedefs: []
    union: []
- function_names:
  - ClampedAddSubtractFull_SSE2
  - ClampedAddSubtractHalf_SSE2
  - Select_SSE2
  - Average2_m128i
  - Average2_uint32_SSE2
  - Average2_uint32_16_SSE2
  - Average2_SSE2
  - Average3_SSE2
  - Average4_SSE2
  - Predictor5_SSE2
  - Predictor6_SSE2
  - Predictor7_SSE2
  - Predictor8_SSE2
  - Predictor9_SSE2
  - Predictor10_SSE2
  - Predictor11_SSE2
  - Predictor12_SSE2
  - Predictor13_SSE2
  - PredictorAdd0_SSE2
  - PredictorAdd1_SSE2
  - GENERATE_PREDICTOR_1
  - GENERATE_PREDICTOR_2
  - DO_PRED10
  - PredictorAdd10_SSE2
  - DO_PRED11
  - PredictorAdd11_SSE2
  - DO_PRED12
  - PredictorAdd12_SSE2
  - AddGreenToBlueAndRed_SSE2
  - TransformColorInverse_SSE2
  - CST
  - MK_CST_16
  - ConvertBGRAToRGB_SSE2
  - ConvertBGRAToRGBA_SSE2
  - ConvertBGRAToRGBA4444_SSE2
  - ConvertBGRAToRGB565_SSE2
  - ConvertBGRAToBGR_SSE2
  - VP8LDspInitSSE2
  source_file: /src/libwebp/src/dsp/lossless_sse2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: avgTTR
      pos:
        line_end: 294
        line_start: 287
        source_file: /src/libwebp/src/dsp/lossless_sse2.c
      type_or_value: "= _mm_srli_si128(avgTTR, 4);                         \\\n    TL
        = _mm_srli_si128(TL, 4);                                 \\\n    src = _mm_srli_si128(src,
        4);                               \\\n  } while (0)"
    - item_type: preproc_def
      name: T
      pos:
        line_end: 343
        line_start: 335
        source_file: /src/libwebp/src/dsp/lossless_sse2.c
      type_or_value: "= _mm_srli_si128(T, 4);                                 \\\n
        \   TL = _mm_srli_si128(TL, 4);                               \\\n    src
        = _mm_srli_si128(src, 4);                             \\\n    pa = _mm_srli_si128(pa,
        4);                               \\\n  } while (0)"
    - item_type: preproc_def
      name: if
      pos:
        line_end: 396
        line_start: 390
        source_file: /src/libwebp/src/dsp/lossless_sse2.c
      type_or_value: "((LANE) == 0) (DIFF) = _mm_srli_si128((DIFF), 8);      \\\n
        \   src = _mm_srli_si128(src, 4);                             \\\n  } while
        (0)"
    structs: []
    typedefs: []
    union: []
- function_names:
  - IDCT_1D_W
  - ITransformOne
  - ITransform_MSA
  - FTransform_MSA
  - FTransformWHT_MSA
  - TTransform_MSA
  - Disto4x4_MSA
  - Disto16x16_MSA
  - CollectHistogram_MSA
  - DST
  - AVG3
  - AVG2
  - VE4
  - HE4
  - DC4
  - RD4
  - LD4
  - VR4
  - VL4
  - HU4
  - HD4
  - TM4
  - Intra4Preds_MSA
  - STORE16x16
  - VerticalPred16x16
  - HorizontalPred16x16
  - TrueMotion16x16
  - DCMode16x16
  - Intra16Preds_MSA
  - CALC_DC8
  - STORE8x8
  - VerticalPred8x8
  - HorizontalPred8x8
  - TrueMotion8x8
  - DCMode8x8
  - IntraChromaPreds_MSA
  - PACK_DOTP_UB4_SW
  - PACK_DPADD_UB4_SW
  - SSE16x16_MSA
  - SSE16x8_MSA
  - SSE8x8_MSA
  - SSE4x4_MSA
  - QuantizeBlock_MSA
  - Quantize2Blocks_MSA
  - VP8EncDspInitMSA
  source_file: /src/libwebp/src/dsp/enc_msa.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Transform_SSE2
  - TransformAC3_SSE2
  - MM_ABS
  - SignedShift8b_SSE2
  - FLIP_SIGN_BIT2
  - FLIP_SIGN_BIT4
  - GetNotHEV_SSE2
  - GetBaseDelta_SSE2
  - DoSimpleFilter_SSE2
  - Update2Pixels_SSE2
  - NeedsFilter_SSE2
  - DoFilter2_SSE2
  - DoFilter4_SSE2
  - DoFilter6_SSE2
  - Load8x4_SSE2
  - Load16x4_SSE2
  - Store4x4_SSE2
  - Store16x4_SSE2
  - SimpleVFilter16_SSE2
  - SimpleHFilter16_SSE2
  - SimpleVFilter16i_SSE2
  - SimpleHFilter16i_SSE2
  - MAX_DIFF1
  - MAX_DIFF2
  - LOAD_H_EDGES4
  - LOADUV_H_EDGE
  - LOADUV_H_EDGES4
  - STOREUV
  - ComplexMask_SSE2
  - VFilter16_SSE2
  - HFilter16_SSE2
  - VFilter16i_SSE2
  - HFilter16i_SSE2
  - VFilter8_SSE2
  - HFilter8_SSE2
  - VFilter8i_SSE2
  - HFilter8i_SSE2
  - DST
  - AVG3
  - VE4_SSE2
  - LD4_SSE2
  - VR4_SSE2
  - VL4_SSE2
  - RD4_SSE2
  - TrueMotion_SSE2
  - TM4_SSE2
  - TM8uv_SSE2
  - TM16_SSE2
  - VE16_SSE2
  - HE16_SSE2
  - Put16_SSE2
  - DC16_SSE2
  - DC16NoTop_SSE2
  - DC16NoLeft_SSE2
  - DC16NoTopLeft_SSE2
  - VE8uv_SSE2
  - Put8x8uv_SSE2
  - DC8uv_SSE2
  - DC8uvNoLeft_SSE2
  - DC8uvNoTop_SSE2
  - DC8uvNoTopLeft_SSE2
  - VP8DspInitSSE2
  source_file: /src/libwebp/src/dsp/dec_sse2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: USE_TRANSFORM_AC3
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/libwebp/src/dsp/dec_sse2.c
      type_or_value: 0  // ALTERNATE_CODE
    structs: []
    typedefs: []
    union: []
- function_names:
  - ITransform_One_SSE2
  - ITransform_Two_SSE2
  - ITransform_SSE2
  - FTransformPass1_SSE2
  - FTransformPass2_SSE2
  - FTransform_SSE2
  - FTransform2_SSE2
  - FTransformWHTRow_SSE2
  - FTransformWHT_SSE2
  - CollectHistogram_SSE2
  - Put8x8uv_SSE2
  - Put16_SSE2
  - Fill_SSE2
  - VE8uv_SSE2
  - VE16_SSE2
  - VerticalPred_SSE2
  - HE8uv_SSE2
  - HE16_SSE2
  - HorizontalPred_SSE2
  - TM_SSE2
  - TrueMotion_SSE2
  - DC8uv_SSE2
  - DC8uvNoLeft_SSE2
  - DC8uvNoTop_SSE2
  - DC8uvNoTopLeft_SSE2
  - DC8uvMode_SSE2
  - DC16_SSE2
  - DC16NoLeft_SSE2
  - DC16NoTop_SSE2
  - DC16NoTopLeft_SSE2
  - DC16Mode_SSE2
  - DST
  - AVG3
  - AVG2
  - VE4_SSE2
  - HE4_SSE2
  - DC4_SSE2
  - LD4_SSE2
  - VR4_SSE2
  - VL4_SSE2
  - RD4_SSE2
  - HU4_SSE2
  - HD4_SSE2
  - TM4_SSE2
  - Intra4Preds_SSE2
  - IntraChromaPreds_SSE2
  - Intra16Preds_SSE2
  - SubtractAndAccumulate_SSE2
  - SSE_16xN_SSE2
  - SSE16x16_SSE2
  - SSE16x8_SSE2
  - LOAD_8x16b
  - SSE8x8_SSE2
  - SSE4x4_SSE2
  - Mean16x4_SSE2
  - TTransform_SSE2
  - Disto4x4_SSE2
  - Disto16x16_SSE2
  - DoQuantizeBlock_SSE2
  - QuantizeBlock_SSE2
  - QuantizeBlockWHT_SSE2
  - Quantize2Blocks_SSE2
  - VP8EncDspInitSSE2
  source_file: /src/libwebp/src/dsp/enc_sse2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SSIMCalculation
  - VP8SSIMFromStats
  - VP8SSIMFromStatsClipped
  - SSIMGetClipped_C
  - SSIMGet_C
  - AccumulateSSE_C
  - WEBP_DSP_INIT_FUNC
  source_file: /src/libwebp/src/dsp/ssim.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_M
  - PACK_AND_STORE
  - UPSAMPLE_32PIXELS
  - UPSAMPLE_LAST_BLOCK
  - CONVERT2RGB_32
  - SSE2_UPSAMPLE_FUNC
  - WebPInitUpsamplersSSE2
  - YUV444_FUNC
  - WebPInitYUV444ConvertersSSE2
  source_file: /src/libwebp/src/dsp/upsampling_sse2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - UPSAMPLE_16PIXELS
  - UPSAMPLE_LAST_BLOCK
  - STORE_Rgb
  - STORE_Bgr
  - STORE_Rgba
  - STORE_Bgra
  - STORE_Argb
  - ZIP_U8
  - ZIP_U8
  - STORE_Rgba4444
  - STORE_Rgb565
  - CONVERT8
  - CONVERT1
  - CONVERT2RGB_8
  - CONVERT2RGB_1
  - NEON_UPSAMPLE_FUNC
  - WebPInitUpsamplersNEON
  source_file: /src/libwebp/src/dsp/upsampling_neon.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: v255
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libwebp/src/dsp/upsampling_neon.c
      type_or_value: vdup_n_u8(255)
    structs: []
    typedefs: []
    union: []
- function_names:
  - TRANSFORM_COLOR_8
  - TRANSFORM_COLOR_4
  - TransformColor_MSA
  - SubtractGreenFromBlueAndRed_MSA
  - VP8LEncDspInitMSA
  source_file: /src/libwebp/src/dsp/lossless_enc_msa.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DispatchAlpha_SSE2
  - DispatchAlphaToGreen_SSE2
  - ExtractAlpha_SSE2
  - ExtractGreen_SSE2
  - MULTIPLIER
  - PREMULTIPLY
  - APPLY_ALPHA
  - HasAlpha8b_SSE2
  - HasAlpha32b_SSE2
  - AlphaReplace_SSE2
  - MultARGBRow_SSE2
  - MultRow_SSE2
  - WebPInitAlphaProcessingSSE2
  source_file: /src/libwebp/src/dsp/alpha_processing_sse2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ConvertBGRAToRGBA_NEON
  - ConvertBGRAToBGR_NEON
  - ConvertBGRAToRGB_NEON
  - ConvertBGRAToRGBA_NEON
  - ConvertBGRAToBGR_NEON
  - ConvertBGRAToRGB_NEON
  - LOAD_U32_AS_U8
  - LOAD_U32P_AS_U8
  - LOADQ_U32_AS_U8
  - LOADQ_U32P_AS_U8
  - GET_U8_AS_U32
  - GETQ_U8_AS_U32
  - STOREQ_U8_AS_U32P
  - ROTATE32_LEFT
  - Average2_u8_NEON
  - ClampedAddSubtractHalf_NEON
  - Average2_NEON
  - Average3_NEON
  - Predictor5_NEON
  - Predictor6_NEON
  - Predictor7_NEON
  - Predictor13_NEON
  - PredictorAdd0_NEON
  - PredictorAdd1_NEON
  - GENERATE_PREDICTOR_1
  - DO_PRED5
  - PredictorAdd5_NEON
  - DO_PRED67
  - PredictorAdd6_NEON
  - PredictorAdd7_NEON
  - GENERATE_PREDICTOR_2
  - DO_PRED10
  - PredictorAdd10_NEON
  - DO_PRED11
  - DO_PRED12
  - DO_PRED13
  - DoGreenShuffle_NEON
  - DoGreenShuffle_NEON
  - AddGreenToBlueAndRed_NEON
  - TransformColorInverse_NEON
  - CST
  - VP8LDspInitNEON
  source_file: /src/libwebp/src/dsp/lossless_neon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MAP_COLOR_FUNCS
  - ClampedAddSubtractFull
  - ClampedAddSubtractHalf
  - Select
  - Average2
  - Average3
  - Average4
  - Predictor5_MIPSdspR2
  - Predictor6_MIPSdspR2
  - Predictor7_MIPSdspR2
  - Predictor8_MIPSdspR2
  - Predictor9_MIPSdspR2
  - Predictor10_MIPSdspR2
  - Predictor11_MIPSdspR2
  - Predictor12_MIPSdspR2
  - Predictor13_MIPSdspR2
  - AddGreenToBlueAndRed_MIPSdspR2
  - TransformColorInverse_MIPSdspR2
  - ConvertBGRAToRGB_MIPSdspR2
  - ConvertBGRAToRGBA_MIPSdspR2
  - ConvertBGRAToRGBA4444_MIPSdspR2
  - ConvertBGRAToRGB565_MIPSdspR2
  - ConvertBGRAToBGR_MIPSdspR2
  - VP8LDspInitMIPSdspR2
  source_file: /src/libwebp/src/dsp/lossless_mips_dsp_r2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TransformDC
  - TransformAC3
  - TransformOne
  - TransformTwo
  - FilterLoop26
  - FilterLoop24
  - VFilter16
  - HFilter16
  - VFilter8
  - HFilter8
  - VFilter16i
  - HFilter16i
  - VFilter8i
  - HFilter8i
  - SimpleVFilter16
  - LOAD_4_BYTES
  - SimpleHFilter16
  - SimpleVFilter16i
  - SimpleHFilter16i
  - STORE_8_BYTES
  - VE4
  - DC4
  - RD4
  - LOAD_8_BYTES
  - LD4
  - DC8uv
  - DC8uvNoLeft
  - DC8uvNoTop
  - CLIPPING
  - CLIP_8B_TO_DST
  - CLIP_TO_DST
  - TRUE_MOTION
  - VP8DspInitMIPSdspR2
  source_file: /src/libwebp/src/dsp/dec_mips_dsp_r2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PredictLineInverse0
  - DCHECK
  - HorizontalFilter_MSA
  - PredictLineGradient
  - GradientFilter_MSA
  - VerticalFilter_MSA
  - VP8FiltersInitMSA
  source_file: /src/libwebp/src/dsp/filters_msa.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VERTICAL_PASS
  - HORIZONTAL_PASS
  - ITransformOne_MIPS32
  - QUANTIZE_ONE
  - QuantizeBlock_MIPS32
  - Quantize2Blocks_MIPS32
  - HORIZONTAL_PASS
  - VERTICAL_PASS
  - Disto4x4_MIPS32
  - Disto16x16_MIPS32
  - HORIZONTAL_PASS
  - VERTICAL_PASS
  - FTransform_MIPS32
  - GET_SSE_INNER
  - GET_SSE
  - SSE16x16_MIPS32
  - SSE16x8_MIPS32
  - SSE8x8_MIPS32
  - SSE4x4_MIPS32
  - VP8EncDspInitMIPS32
  source_file: /src/libwebp/src/dsp/enc_mips32.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IDCT_1D_W
  - TransformOne
  - TransformTwo
  - TransformWHT
  - TransformDC
  - TransformAC3
  - FLIP_SIGN2
  - FLIP_SIGN4
  - FILT_VAL
  - FILT2
  - LPF_FILTER4_4W
  - LPF_MBFILTER
  - LPF_MASK_HEV
  - ST6x1_UB
  - ST6x4_UB
  - LPF_SIMPLE_FILT
  - LPF_SIMPLE_MASK
  - VFilter16
  - HFilter16
  - VFilterHorEdge16i
  - VFilter16i
  - HFilterVertEdge16i
  - HFilter16i
  - VFilter8
  - HFilter8
  - VFilter8i
  - HFilter8i
  - SimpleVFilter16
  - SimpleHFilter16
  - SimpleVFilter16i
  - SimpleHFilter16i
  - DC4
  - TM4
  - VE4
  - RD4
  - LD4
  - DC16
  - TM16
  - VE16
  - HE16
  - DC16NoTop
  - DC16NoLeft
  - DC16NoTopLeft
  - STORE8x8
  - DC8uv
  - TM8uv
  - VE8uv
  - HE8uv
  - DC8uvNoLeft
  - DC8uvNoTop
  - DC8uvNoTopLeft
  - VP8DspInitMSA
  source_file: /src/libwebp/src/dsp/dec_msa.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - WEBP_DSP_INIT_STUB
  - WEBP_TRANSFORM_AC3_MUL1
  - WEBP_TRANSFORM_AC3_MUL2
  source_file: /src/libwebp/src/dsp/dsp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BPS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/libwebp/src/dsp/dsp.h
      type_or_value: 32  // this is the common stride for enc/dec
    - item_type: preproc_def
      name: WEBP_RESTRICT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/libwebp/src/dsp/dsp.h
      type_or_value: __restrict__
    - item_type: preproc_def
      name: WEBP_RESTRICT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/libwebp/src/dsp/dsp.h
      type_or_value: __restrict
    - item_type: preproc_def
      name: MAX_COEFF_THRESH
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/libwebp/src/dsp/dsp.h
      type_or_value: 31  // size of histogram used by CollectHistogram.
    - item_type: preproc_def
      name: VP8_SSIM_KERNEL
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/libwebp/src/dsp/dsp.h
      type_or_value: '3  // total size of the kernel: 2 * VP8_SSIM_KERNEL + 1'
    - item_type: preproc_def
      name: WEBP_TRANSFORM_AC3_C1
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/libwebp/src/dsp/dsp.h
      type_or_value: '20091'
    - item_type: preproc_def
      name: WEBP_TRANSFORM_AC3_C2
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/libwebp/src/dsp/dsp.h
      type_or_value: '35468'
    - item_type: preproc_def
      name: VP8_DITHER_DESCALE
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/libwebp/src/dsp/dsp.h
      type_or_value: '4'
    - item_type: preproc_def
      name: VP8_DITHER_DESCALE_ROUNDER
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/libwebp/src/dsp/dsp.h
      type_or_value: (1 << (VP8_DITHER_DESCALE - 1))
    - item_type: preproc_def
      name: VP8_DITHER_AMP_BITS
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/libwebp/src/dsp/dsp.h
      type_or_value: '7'
    - item_type: preproc_def
      name: VP8_DITHER_AMP_CENTER
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/libwebp/src/dsp/dsp.h
      type_or_value: (1 << VP8_DITHER_AMP_BITS)
    structs:
    - fields:
      - name: max_value
        type: int
      - name: last_non_zero
        type: int
      item_type: struct
      name: VP8Histogram
      pos:
        line_end: 135
        line_start: 131
        source_file: /src/libwebp/src/dsp/dsp.h
    - fields:
      - name: w
        type: uint32_t
      - name: xm
        type: uint32_t
      - name: xxm
        type: uint32_t
      item_type: struct
      name: VP8DistoStats
      pos:
        line_end: 178
        line_start: 174
        source_file: /src/libwebp/src/dsp/dsp.h
    typedefs:
    - item_type: typedef
      name: "(*VP8Idct)(const uint8_t* WEBP_RESTRICT ref,\n                        const
        int16_t* WEBP_RESTRICT in,\n                        uint8_t* WEBP_RESTRICT
        dst, int do_two)"
      pos:
        line_end: 68
        line_start: 66
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: "(*VP8Fdct)(const uint8_t* WEBP_RESTRICT src,\n                        const
        uint8_t* WEBP_RESTRICT ref,\n                        int16_t* WEBP_RESTRICT
        out)"
      pos:
        line_end: 71
        line_start: 69
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: "(*VP8WHT)(const int16_t* WEBP_RESTRICT in,\n                       int16_t*
        WEBP_RESTRICT out)"
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: "(*VP8IntraPreds)(uint8_t* WEBP_RESTRICT dst,\n                              const
        uint8_t* WEBP_RESTRICT left,\n                              const uint8_t*
        WEBP_RESTRICT top)"
      pos:
        line_end: 82
        line_start: 80
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: "(*VP8Intra4Preds)(uint8_t* WEBP_RESTRICT dst,\n                               const
        uint8_t* WEBP_RESTRICT top)"
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: "(*VP8Metric)(const uint8_t* WEBP_RESTRICT pix,\n                         const
        uint8_t* WEBP_RESTRICT ref)"
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libwebp/src/dsp/dsp.h
      type: int
    - item_type: typedef
      name: "(*VP8WMetric)(const uint8_t* WEBP_RESTRICT pix,\n                          const
        uint8_t* WEBP_RESTRICT ref,\n                          const uint16_t* WEBP_RESTRICT
        const weights)"
      pos:
        line_end: 94
        line_start: 92
        source_file: /src/libwebp/src/dsp/dsp.h
      type: int
    - item_type: typedef
      name: (*VP8MeanMetric)(const uint8_t* WEBP_RESTRICT ref, uint32_t dc[4])
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: "(*VP8BlockCopy)(const uint8_t* WEBP_RESTRICT src,\n                             uint8_t*
        WEBP_RESTRICT dst)"
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: "(*VP8QuantizeBlock)(\n    int16_t in[16], int16_t out[16],\n    const
        struct VP8Matrix* WEBP_RESTRICT const mtx)"
      pos:
        line_end: 112
        line_start: 110
        source_file: /src/libwebp/src/dsp/dsp.h
      type: int
    - item_type: typedef
      name: "(*VP8Quantize2Blocks)(\n    int16_t in[32], int16_t out[32],\n    const
        struct VP8Matrix* WEBP_RESTRICT const mtx)"
      pos:
        line_end: 116
        line_start: 114
        source_file: /src/libwebp/src/dsp/dsp.h
      type: int
    - item_type: typedef
      name: "(*VP8QuantizeBlockWHT)(\n    int16_t in[16], int16_t out[16],\n    const
        struct VP8Matrix* WEBP_RESTRICT const mtx)"
      pos:
        line_end: 124
        line_start: 122
        source_file: /src/libwebp/src/dsp/dsp.h
      type: int
    - item_type: typedef
      name: "(*VP8CHisto)(const uint8_t* WEBP_RESTRICT ref,\n                          const
        uint8_t* WEBP_RESTRICT pred, int start_block,\n                          int
        end_block,\n                          VP8Histogram* WEBP_RESTRICT const histo)"
      pos:
        line_end: 139
        line_start: 136
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: "(*VP8SetResidualCoeffsFunc)(\n    const int16_t* WEBP_RESTRICT const
        coeffs,\n    struct VP8Residual* WEBP_RESTRICT const res)"
      pos:
        line_end: 159
        line_start: 157
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: "(*VP8GetResidualCostFunc)(int ctx0,\n                                      const
        struct VP8Residual* const res)"
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/libwebp/src/dsp/dsp.h
      type: int
    - item_type: typedef
      name: "(*VP8SSIMGetClippedFunc)(const uint8_t* src1, int stride1,\n                                        const
        uint8_t* src2, int stride2,\n                                        int xo,
        int yo,  // center position\n                                        int W,
        int H)"
      pos:
        line_end: 189
        line_start: 186
        source_file: /src/libwebp/src/dsp/dsp.h
      type: double
    - item_type: typedef
      name: "(*VP8SSIMGetFunc)(const uint8_t* src1, int stride1,\n                                 const
        uint8_t* src2, int stride2)"
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/libwebp/src/dsp/dsp.h
      type: double
    - item_type: typedef
      name: "(*VP8AccumulateSSEFunc)(const uint8_t* src1,\n                                         const
        uint8_t* src2, int len)"
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/libwebp/src/dsp/dsp.h
      type: uint32_t
    - item_type: typedef
      name: "(*VP8DecIdct)(const int16_t* WEBP_RESTRICT coeffs,\n                           uint8_t*
        WEBP_RESTRICT dst)"
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: "(*VP8DecIdct2)(const int16_t* WEBP_RESTRICT coeffs,\n                            uint8_t*
        WEBP_RESTRICT dst, int do_two)"
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: (*VP8PredFunc)(uint8_t* dst)
      pos:
        line_end: 232
        line_start: 232
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: (*VP8SimpleFilterFunc)(uint8_t* p, int stride, int thresh)
      pos:
        line_end: 246
        line_start: 246
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: "(*VP8LumaFilterFunc)(uint8_t* luma, int stride, int thresh,\n                                  int
        ithresh, int hev_t)"
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: "(*VP8ChromaFilterFunc)(uint8_t* WEBP_RESTRICT u,\n                                    uint8_t*
        WEBP_RESTRICT v, int stride,\n                                    int thresh,
        int ithresh, int hev_t)"
      pos:
        line_end: 257
        line_start: 255
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: "(*WebPUpsampleLinePairFunc)(\n    const uint8_t* WEBP_RESTRICT top_y,
        const uint8_t* WEBP_RESTRICT bottom_y,\n    const uint8_t* WEBP_RESTRICT top_u,
        const uint8_t* WEBP_RESTRICT top_v,\n    const uint8_t* WEBP_RESTRICT cur_u,
        const uint8_t* WEBP_RESTRICT cur_v,\n    uint8_t* WEBP_RESTRICT top_dst, uint8_t*
        WEBP_RESTRICT bottom_dst, int len)"
      pos:
        line_end: 293
        line_start: 289
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: "(*WebPSamplerRowFunc)(const uint8_t* WEBP_RESTRICT y,\n                                   const
        uint8_t* WEBP_RESTRICT u,\n                                   const uint8_t*
        WEBP_RESTRICT v,\n                                   uint8_t* WEBP_RESTRICT
        dst, int len)"
      pos:
        line_end: 306
        line_start: 303
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: "(*WebPYUV444Converter)(const uint8_t* WEBP_RESTRICT y,\n                                    const
        uint8_t* WEBP_RESTRICT u,\n                                    const uint8_t*
        WEBP_RESTRICT v,\n                                    uint8_t* WEBP_RESTRICT
        dst, int len)"
      pos:
        line_end: 326
        line_start: 323
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: "(*WebPRescalerImportRowFunc)(\n    struct WebPRescaler* WEBP_RESTRICT
        const wrk,\n    const uint8_t* WEBP_RESTRICT src)"
      pos:
        line_end: 385
        line_start: 383
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: (*WebPRescalerExportRowFunc)(struct WebPRescaler* const wrk)
      pos:
        line_end: 393
        line_start: 393
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: "(*WebPFilterFunc)(const uint8_t* WEBP_RESTRICT in, int width,\n                               int
        height, int stride,\n                               uint8_t* WEBP_RESTRICT
        out)"
      pos:
        line_end: 519
        line_start: 517
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    - item_type: typedef
      name: "(*WebPUnfilterFunc)(const uint8_t* prev_line, const uint8_t* preds,\n
        \                                uint8_t* cur_line, int width)"
      pos:
        line_end: 523
        line_start: 522
        source_file: /src/libwebp/src/dsp/dsp.h
      type: void
    union: []
- function_names:
  - MULT_FIX
  - MULT_FIX_FLOOR
  - WebPRescalerExportRowExpand_C
  - WebPRescalerExportRowShrink_C
  - WebPRescalerExportRow
  - WEBP_DSP_INIT_FUNC
  source_file: /src/libwebp/src/dsp/rescaler.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ROUNDER
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/libwebp/src/dsp/rescaler.c
      type_or_value: (WEBP_RESCALER_ONE >> 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - ConvertYUV444ToRGB_SSE2
  - Load_HI_16_SSE2
  - Load_UV_HI_8_SSE2
  - YUV444ToRGB_SSE2
  - YUV420ToRGB_SSE2
  - PackAndStore4_SSE2
  - PackAndStore4444_SSE2
  - PackAndStore565_SSE2
  - PlanarTo24b_SSE2
  - VP8YuvToRgba32_SSE2
  - VP8YuvToBgra32_SSE2
  - VP8YuvToArgb32_SSE2
  - VP8YuvToRgba444432_SSE2
  - VP8YuvToRgb56532_SSE2
  - VP8YuvToRgb32_SSE2
  - VP8YuvToBgr32_SSE2
  - YuvToRgbaRow_SSE2
  - YuvToBgraRow_SSE2
  - YuvToArgbRow_SSE2
  - YuvToRgbRow_SSE2
  - YuvToBgrRow_SSE2
  - WebPInitSamplersSSE2
  - LOAD_16
  - STORE_16
  - RGB24PackedToPlanarHelper_SSE2
  - RGBPackedToPlanar_SSE2
  - RGBAPackedToRGBPlanar_SSE2
  - RGB32PackedToPlanar16_SSE2
  - TRANSFORM
  - MK_CST_16
  - ConvertRGBToYImpl_SSE2
  - ConvertRGBToUV_SSE2
  - ConvertRGBToYHelper_SSE2
  - ConvertRGBToY_SSE2
  - ConvertBGRToY_SSE2
  - ConvertARGBToY_SSE2
  - HorizontalAddPack_SSE2
  - ConvertARGBToUV_SSE2
  - RGBA32PackedToPlanar_16b_SSE2
  - ConvertRGBA32ToUV_SSE2
  - WebPInitConvertARGBToYUVSSE2
  source_file: /src/libwebp/src/dsp/yuv_sse2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - WebPIsPremultipliedMode
  - WebPIsAlphaMode
  - WebPIsRGBMode
  - WebPInitDecBuffer
  - WebPIDecGetYUV
  - VP8StatusCode::WebPGetFeatures
  - WebPInitDecoderConfig
  source_file: /src/libwebp/src/webp/decode.h
  types:
    enum:
    - enumerators:
      - name: MODE_RGB
        value: '0'
      - name: MODE_RGBA
        value: '1'
      - name: MODE_ARGB
        value: '4'
      - name: MODE_BGR
        value: '2'
      - name: MODE_BGRA
        value: '3'
      - name: MODE_RGBA_4444
        value: '5'
      - name: MODE_RGB_565
        value: '6'
      - name: MODE_rgbA
        value: '7'
      - name: MODE_bgrA
        value: '8'
      - name: MODE_Argb
        value: '9'
      - name: MODE_rgbA_4444
        value: '10'
      - name: MODE_YUV
        value: '11'
      - name: MODE_YUVA
        value: '12'
      - name: MODE_LAST
        value: '13'
      item_type: enum
      name: WEBP_CSP_MODE
      pos:
        line_end: 188
        line_start: 171
        source_file: /src/libwebp/src/webp/decode.h
    preproc_defs:
    - item_type: preproc_def
      name: WEBP_DECODER_ABI_VERSION
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/libwebp/src/webp/decode.h
      type_or_value: 0x0210  // MAJOR(8b) + MINOR(8b)
    structs:
    - fields:
      - name: '* rgba'
        type: uint8_t
      - name: stride
        type: int
      - name: size
        type: size_t
      item_type: struct
      name: WebPRGBABuffer
      pos:
        line_end: 213
        line_start: 209
        source_file: /src/libwebp/src/webp/decode.h
    - fields:
      - name: '*y'
        type: uint8_t
      - name: y_stride
        type: int
      - name: u_stride
        type: int
      - name: a_stride
        type: int
      - name: y_size
        type: size_t
      - name: u_size
        type: size_t
      - name: a_size
        type: size_t
      item_type: struct
      name: WebPYUVABuffer
      pos:
        line_end: 223
        line_start: 215
        source_file: /src/libwebp/src/webp/decode.h
    - fields:
      - name: colorspace
        type: WEBP_CSP_MODE
      - name: width
        type: int
      - name: is_external_memory
        type: int
      - name: u
        type: "union {\n    WebPRGBABuffer RGBA;\n    WebPYUVABuffer YUVA;\n  }"
      - name: pad[4]
        type: uint32_t
      - name: '* private_memory'
        type: uint8_t
      item_type: struct
      name: WebPDecBuffer
      pos:
        line_end: 242
        line_start: 226
        source_file: /src/libwebp/src/webp/decode.h
    - fields:
      - name: width
        type: int
      - name: height
        type: int
      - name: has_alpha
        type: int
      - name: has_animation
        type: int
      - name: format
        type: int
      - name: pad[5]
        type: uint32_t
      item_type: struct
      name: WebPBitstreamFeatures
      pos:
        line_end: 455
        line_start: 447
        source_file: /src/libwebp/src/webp/decode.h
    - fields:
      - name: bypass_filtering
        type: int
      - name: no_fancy_upsampling
        type: int
      - name: use_cropping
        type: int
      - name: crop_left
        type: int
      - name: crop_width
        type: int
      - name: use_scaling
        type: int
      - name: scaled_width
        type: int
      - name: use_threads
        type: int
      - name: dithering_strength
        type: int
      - name: flip
        type: int
      - name: alpha_dithering_strength
        type: int
      - name: pad[5]
        type: uint32_t
      item_type: struct
      name: WebPDecoderOptions
      pos:
        line_end: 498
        line_start: 481
        source_file: /src/libwebp/src/webp/decode.h
    - fields:
      - name: input
        type: WebPBitstreamFeatures
      - name: output
        type: WebPDecBuffer
      - name: options
        type: WebPDecoderOptions
      item_type: struct
      name: WebPDecoderConfig
      pos:
        line_end: 505
        line_start: 501
        source_file: /src/libwebp/src/webp/decode.h
    typedefs:
    - item_type: typedef
      name: WebPRGBABuffer
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/libwebp/src/webp/decode.h
      type: WebPRGBABuffer
    - item_type: typedef
      name: WebPYUVABuffer
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/libwebp/src/webp/decode.h
      type: WebPYUVABuffer
    - item_type: typedef
      name: WebPDecBuffer
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/libwebp/src/webp/decode.h
      type: WebPDecBuffer
    - item_type: typedef
      name: WebPIDecoder
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/libwebp/src/webp/decode.h
      type: WebPIDecoder
    - item_type: typedef
      name: WebPBitstreamFeatures
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/libwebp/src/webp/decode.h
      type: WebPBitstreamFeatures
    - item_type: typedef
      name: WebPDecoderOptions
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/libwebp/src/webp/decode.h
      type: WebPDecoderOptions
    - item_type: typedef
      name: WebPDecoderConfig
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/libwebp/src/webp/decode.h
      type: WebPDecoderConfig
    - item_type: typedef
      name: VP8StatusCode
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/libwebp/src/webp/decode.h
      type: WEBP_NODISCARD
    union: []
- function_names:
  - WebPConfigInit
  - WebPConfigPreset
  - WebPPictureInit
  source_file: /src/libwebp/src/webp/encode.h
  types:
    enum:
    - enumerators:
      - name: WEBP_HINT_DEFAULT
        value: '0'
      - name: WEBP_HINT_PICTURE
      - name: WEBP_HINT_GRAPH
      - name: WEBP_HINT_PHOTO
      - name: WEBP_HINT_LAST
      item_type: enum
      name: WebPImageHint
      pos:
        line_end: 94
        line_start: 88
        source_file: /src/libwebp/src/webp/encode.h
    - enumerators:
      - name: WEBP_PRESET_DEFAULT
        value: '0'
      - name: WEBP_PRESET_DRAWING
      - name: WEBP_PRESET_PHOTO
      - name: WEBP_PRESET_ICON
      - name: WEBP_PRESET_PICTURE
      - name: WEBP_PRESET_TEXT
      item_type: enum
      name: WebPPreset
      pos:
        line_end: 166
        line_start: 159
        source_file: /src/libwebp/src/webp/encode.h
    - enumerators:
      - name: WEBP_YUV420
        value: '0'
      - name: WEBP_CSP_UV_MASK
        value: '3'
      - name: WEBP_YUV420A
        value: '4'
      - name: WEBP_CSP_ALPHA_BIT
        value: '4'
      item_type: enum
      name: WebPEncCSP
      pos:
        line_end: 280
        line_start: 274
        source_file: /src/libwebp/src/webp/encode.h
    - enumerators:
      - name: VP8_ENC_OK
        value: '0'
      - name: VP8_ENC_ERROR_BITSTREAM_OUT_OF_MEMORY
      - name: VP8_ENC_ERROR_NULL_PARAMETER
      - name: VP8_ENC_ERROR_INVALID_CONFIGURATION
      - name: VP8_ENC_ERROR_OUT_OF_MEMORY
      - name: VP8_ENC_ERROR_BAD_DIMENSION
      - name: VP8_ENC_ERROR_PARTITION0_OVERFLOW
      - name: VP8_ENC_ERROR_PARTITION_OVERFLOW
      - name: VP8_ENC_ERROR_BAD_WRITE
      - name: VP8_ENC_ERROR_FILE_TOO_BIG
      - name: VP8_ENC_ERROR_USER_ABORT
      - name: VP8_ENC_ERROR_LAST
      item_type: enum
      name: WebPEncodingError
      pos:
        line_end: 296
        line_start: 283
        source_file: /src/libwebp/src/webp/encode.h
    preproc_defs:
    - item_type: preproc_def
      name: WEBP_ENCODER_ABI_VERSION
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/libwebp/src/webp/encode.h
      type_or_value: 0x0210  // MAJOR(8b) + MINOR(8b)
    - item_type: preproc_def
      name: WEBP_MAX_DIMENSION
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/libwebp/src/webp/encode.h
      type_or_value: '16383'
    structs:
    - fields:
      - name: lossless
        type: int
      - name: quality
        type: float
      - name: method
        type: int
      - name: image_hint
        type: WebPImageHint
      - name: target_size
        type: int
      - name: target_PSNR
        type: float
      - name: segments
        type: int
      - name: sns_strength
        type: int
      - name: filter_strength
        type: int
      - name: filter_sharpness
        type: int
      - name: filter_type
        type: int
      - name: autofilter
        type: int
      - name: alpha_compression
        type: int
      - name: alpha_filtering
        type: int
      - name: alpha_quality
        type: int
      - name: pass
        type: int
      - name: show_compressed
        type: int
      - name: preprocessing
        type: int
      - name: partitions
        type: int
      - name: partition_limit
        type: int
      - name: emulate_jpeg_size
        type: int
      - name: thread_level
        type: int
      - name: low_memory
        type: int
      - name: near_lossless
        type: int
      - name: exact
        type: int
      - name: use_delta_palette
        type: int
      - name: use_sharp_yuv
        type: int
      - name: qmin
        type: int
      - name: qmax
        type: int
      item_type: struct
      name: WebPConfig
      pos:
        line_end: 155
        line_start: 97
        source_file: /src/libwebp/src/webp/encode.h
    - fields:
      - name: coded_size
        type: int
      - name: PSNR[5]
        type: float
      - name: block_count[3]
        type: int
      - name: header_bytes[2]
        type: int
      - name: residual_bytes[3][4]
        type: int
      - name: segment_size[4]
        type: int
      - name: segment_quant[4]
        type: int
      - name: segment_level[4]
        type: int
      - name: alpha_data_size
        type: int
      - name: layer_data_size
        type: int
      - name: lossless_features
        type: uint32_t
      - name: histogram_bits
        type: int
      - name: transform_bits
        type: int
      - name: cache_bits
        type: int
      - name: palette_size
        type: int
      - name: lossless_size
        type: int
      - name: lossless_hdr_size
        type: int
      - name: lossless_data_size
        type: int
      - name: cross_color_transform_bits
        type: int
      - name: pad[1]
        type: uint32_t
      item_type: struct
      name: WebPAuxStats
      pos:
        line_end: 238
        line_start: 209
        source_file: /src/libwebp/src/webp/encode.h
    - fields:
      - name: '* mem'
        type: uint8_t
      - name: size
        type: size_t
      - name: max_size
        type: size_t
      - name: pad[1]
        type: uint32_t
      item_type: struct
      name: WebPMemoryWriter
      pos:
        line_end: 253
        line_start: 248
        source_file: /src/libwebp/src/webp/encode.h
    - fields:
      - name: use_argb
        type: int
      - name: colorspace
        type: WebPEncCSP
      - name: width
        type: int
      - name: '*y'
        type: uint8_t
      - name: y_stride
        type: int
      - name: '* a'
        type: uint8_t
      - name: a_stride
        type: int
      - name: pad1[2]
        type: uint32_t
      - name: '* argb'
        type: uint32_t
      - name: argb_stride
        type: int
      - name: pad2[3]
        type: uint32_t
      - name: writer
        type: WebPWriterFunction
      - name: '* custom_ptr'
        type: void
      - name: extra_info_type
        type: int
      - name: '* extra_info'
        type: uint8_t
      - name: '* stats'
        type: WebPAuxStats
      - name: error_code
        type: WebPEncodingError
      - name: progress_hook
        type: WebPProgressHook
      - name: '* user_data'
        type: void
      - name: pad3[3]
        type: uint32_t
      - name: '*pad4'
        type: uint8_t
      - name: pad6[8]
        type: uint32_t
      - name: '* memory_'
        type: void
      - name: '* memory_argb_'
        type: void
      - name: '* pad7[2]'
        type: void
      item_type: struct
      name: WebPPicture
      pos:
        line_end: 371
        line_start: 307
        source_file: /src/libwebp/src/webp/encode.h
    typedefs:
    - item_type: typedef
      name: WebPConfig
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/libwebp/src/webp/encode.h
      type: WebPConfig
    - item_type: typedef
      name: WebPPicture
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/libwebp/src/webp/encode.h
      type: WebPPicture
    - item_type: typedef
      name: WebPAuxStats
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/libwebp/src/webp/encode.h
      type: WebPAuxStats
    - item_type: typedef
      name: WebPMemoryWriter
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/libwebp/src/webp/encode.h
      type: WebPMemoryWriter
    - item_type: typedef
      name: "(*WebPWriterFunction)(const uint8_t* data, size_t data_size,\n                                  const
        WebPPicture* picture)"
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/libwebp/src/webp/encode.h
      type: int
    - item_type: typedef
      name: (*WebPProgressHook)(int percent, const WebPPicture* picture)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/libwebp/src/webp/encode.h
      type: int
    union: []
- function_names:
  - MKFOURCC
  source_file: /src/libwebp/src/webp/format_constants.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VP8_SIGNATURE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: 0x9d012a             // Signature in VP8 data.
    - item_type: preproc_def
      name: VP8_MAX_PARTITION0_SIZE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: (1 << 19)  // max size of mode partition
    - item_type: preproc_def
      name: VP8_MAX_PARTITION_SIZE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: (1 << 24)   // max size for token partition
    - item_type: preproc_def
      name: VP8_FRAME_HEADER_SIZE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: 10  // Size of the frame header within VP8 data.
    - item_type: preproc_def
      name: VP8L_SIGNATURE_SIZE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: 1  // VP8L signature size.
    - item_type: preproc_def
      name: VP8L_MAGIC_BYTE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: 0x2f   // VP8L signature byte.
    - item_type: preproc_def
      name: VP8L_IMAGE_SIZE_BITS
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: 14                         // Number of bits used to store width
        and height.
    - item_type: preproc_def
      name: VP8L_VERSION_BITS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: 3  // 3 bits reserved for version.
    - item_type: preproc_def
      name: VP8L_VERSION
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: 0       // version 0
    - item_type: preproc_def
      name: VP8L_FRAME_HEADER_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: 5  // Size of the VP8L frame header.
    - item_type: preproc_def
      name: MAX_PALETTE_SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: '256'
    - item_type: preproc_def
      name: MAX_CACHE_BITS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: '11'
    - item_type: preproc_def
      name: HUFFMAN_CODES_PER_META_CODE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: '5'
    - item_type: preproc_def
      name: ARGB_BLACK
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: '0xff000000'
    - item_type: preproc_def
      name: DEFAULT_CODE_LENGTH
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: '8'
    - item_type: preproc_def
      name: MAX_ALLOWED_CODE_LENGTH
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: '15'
    - item_type: preproc_def
      name: NUM_LITERAL_CODES
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: '256'
    - item_type: preproc_def
      name: NUM_LENGTH_CODES
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: '24'
    - item_type: preproc_def
      name: NUM_DISTANCE_CODES
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: '40'
    - item_type: preproc_def
      name: CODE_LENGTH_CODES
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: '19'
    - item_type: preproc_def
      name: MIN_HUFFMAN_BITS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: 2  // min number of Huffman bits
    - item_type: preproc_def
      name: NUM_HUFFMAN_BITS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: '3'
    - item_type: preproc_def
      name: MIN_TRANSFORM_BITS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NUM_TRANSFORM_BITS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TRANSFORM_PRESENT
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: 1  // The bit to be written when next data to be read is a transform.
    - item_type: preproc_def
      name: NUM_TRANSFORMS
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: 4  // Maximum number of allowed transform in a bitstream.
    - item_type: preproc_def
      name: ALPHA_HEADER_LEN
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ALPHA_NO_COMPRESSION
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ALPHA_LOSSLESS_COMPRESSION
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ALPHA_PREPROCESSED_LEVELS
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TAG_SIZE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: 4           // Size of a chunk tag (e.g. "VP8L").
    - item_type: preproc_def
      name: CHUNK_SIZE_BYTES
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: 4   // Size needed to store chunk's size.
    - item_type: preproc_def
      name: CHUNK_HEADER_SIZE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: 8  // Size of a chunk header.
    - item_type: preproc_def
      name: RIFF_HEADER_SIZE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: 12  // Size of the RIFF header ("RIFFnnnnWEBP").
    - item_type: preproc_def
      name: ANMF_CHUNK_SIZE
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: 16   // Size of an ANMF chunk.
    - item_type: preproc_def
      name: ANIM_CHUNK_SIZE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: 6    // Size of an ANIM chunk.
    - item_type: preproc_def
      name: VP8X_CHUNK_SIZE
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: 10   // Size of a VP8X chunk.
    - item_type: preproc_def
      name: MAX_CANVAS_SIZE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: (1 << 24)      // 24-bit max for VP8X width/height.
    - item_type: preproc_def
      name: MAX_IMAGE_AREA
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: (1ULL << 32)    // 32-bit max for width x height.
    - item_type: preproc_def
      name: MAX_LOOP_COUNT
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: (1 << 16)       // maximum value for loop-count
    - item_type: preproc_def
      name: MAX_DURATION
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: (1 << 24)         // maximum duration
    - item_type: preproc_def
      name: MAX_POSITION_OFFSET
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: (1 << 24)  // maximum frame x/y offset
    - item_type: preproc_def
      name: MAX_CHUNK_PAYLOAD
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libwebp/src/webp/format_constants.h
      type_or_value: (~0U - CHUNK_HEADER_SIZE - 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - WebPDataInit
  - WebPDataClear
  - WebPDataCopy
  source_file: /src/libwebp/src/webp/mux_types.h
  types:
    enum:
    - enumerators:
      - name: ANIMATION_FLAG
        value: '0x00000002'
      - name: ALPHA_FLAG
        value: '0x00000010'
      - name: EXIF_FLAG
        value: '0x00000008'
      - name: XMP_FLAG
        value: '0x00000004'
      - name: ICCP_FLAG
        value: '0x00000020'
      - name: ALL_VALID_FLAGS
        value: '0x0000003e'
      item_type: enum
      name: WebPFeatureFlags
      pos:
        line_end: 40
        line_start: 32
        source_file: /src/libwebp/src/webp/mux_types.h
    - enumerators:
      - name: WEBP_MUX_DISPOSE_NONE
      - name: WEBP_MUX_DISPOSE_BACKGROUND
      item_type: enum
      name: WebPMuxAnimDispose
      pos:
        line_end: 47
        line_start: 44
        source_file: /src/libwebp/src/webp/mux_types.h
    - enumerators:
      - name: WEBP_MUX_BLEND
      - name: WEBP_MUX_NO_BLEND
      item_type: enum
      name: WebPMuxAnimBlend
      pos:
        line_end: 54
        line_start: 51
        source_file: /src/libwebp/src/webp/mux_types.h
    preproc_defs: []
    structs:
    - fields:
      - name: '* bytes'
        type: uint8_t
      - name: size
        type: size_t
      item_type: struct
      name: WebPData
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/libwebp/src/webp/mux_types.h
    typedefs:
    - item_type: typedef
      name: WebPData
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/libwebp/src/webp/mux_types.h
      type: WebPData
    union: []
- function_names:
  - WebPDemux
  - WebPDemuxPartial
  - WebPAnimDecoderOptionsInit
  - WebPAnimDecoderNew
  source_file: /src/libwebp/src/webp/demux.h
  types:
    enum:
    - enumerators:
      - name: WEBP_DEMUX_PARSE_ERROR
        value: '-1'
      - name: WEBP_DEMUX_PARSED_HEADER
        value: '1'
      - name: WEBP_DEMUX_PARSING_HEADER
        value: '0'
      - name: WEBP_DEMUX_DONE
        value: '2'
      item_type: enum
      name: WebPDemuxState
      pos:
        line_end: 87
        line_start: 81
        source_file: /src/libwebp/src/webp/demux.h
    - enumerators:
      - name: WEBP_FF_FORMAT_FLAGS
      - name: WEBP_FF_LOOP_COUNT
      - name: WEBP_FF_CANVAS_HEIGHT
      - name: WEBP_FF_BACKGROUND_COLOR
      - name: WEBP_FF_CANVAS_WIDTH
      - name: WEBP_FF_FRAME_COUNT
      item_type: enum
      name: WebPFormatFeature
      pos:
        line_end: 130
        line_start: 119
        source_file: /src/libwebp/src/webp/demux.h
    preproc_defs:
    - item_type: preproc_def
      name: WEBP_DEMUX_ABI_VERSION
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/libwebp/src/webp/demux.h
      type_or_value: 0x0107  // MAJOR(8b) + MINOR(8b)
    structs:
    - fields:
      - name: frame_num
        type: int
      - name: num_frames
        type: int
      - name: x_offset
        type: int
      - name: width
        type: int
      - name: duration
        type: int
      - name: dispose_method
        type: WebPMuxAnimDispose
      - name: complete
        type: int
      - name: fragment
        type: WebPData
      - name: has_alpha
        type: int
      - name: blend_method
        type: WebPMuxAnimBlend
      - name: pad[2]
        type: uint32_t
      - name: '* private_'
        type: void
      item_type: struct
      name: WebPIterator
      pos:
        line_end: 161
        line_start: 145
        source_file: /src/libwebp/src/webp/demux.h
    - fields:
      - name: chunk_num
        type: int
      - name: num_chunks
        type: int
      - name: chunk
        type: WebPData
      - name: pad[6]
        type: uint32_t
      - name: '* private_'
        type: void
      item_type: struct
      name: WebPChunkIterator
      pos:
        line_end: 197
        line_start: 188
        source_file: /src/libwebp/src/webp/demux.h
    - fields:
      - name: color_mode
        type: WEBP_CSP_MODE
      - name: use_threads
        type: int
      - name: padding[7]
        type: uint32_t
      item_type: struct
      name: WebPAnimDecoderOptions
      pos:
        line_end: 261
        line_start: 255
        source_file: /src/libwebp/src/webp/demux.h
    - fields:
      - name: canvas_width
        type: uint32_t
      - name: canvas_height
        type: uint32_t
      - name: loop_count
        type: uint32_t
      - name: bgcolor
        type: uint32_t
      - name: frame_count
        type: uint32_t
      - name: pad[4]
        type: uint32_t
      item_type: struct
      name: WebPAnimInfo
      pos:
        line_end: 305
        line_start: 298
        source_file: /src/libwebp/src/webp/demux.h
    typedefs:
    - item_type: typedef
      name: WebPDemuxer
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/libwebp/src/webp/demux.h
      type: WebPDemuxer
    - item_type: typedef
      name: WebPIterator
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/libwebp/src/webp/demux.h
      type: WebPIterator
    - item_type: typedef
      name: WebPChunkIterator
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/libwebp/src/webp/demux.h
      type: WebPChunkIterator
    - item_type: typedef
      name: WebPAnimInfo
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/libwebp/src/webp/demux.h
      type: WebPAnimInfo
    - item_type: typedef
      name: WebPAnimDecoderOptions
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/libwebp/src/webp/demux.h
      type: WebPAnimDecoderOptions
    - item_type: typedef
      name: WebPAnimDecoder
      pos:
        line_end: 252
        line_start: 252
        source_file: /src/libwebp/src/webp/demux.h
      type: WebPAnimDecoder
    union: []
- function_names:
  - WEBP_ABI_IS_INCOMPATIBLE
  - WEBP_COUNTED_BY
  - WEBP_COUNTED_BY_OR_NULL
  - WEBP_SIZED_BY
  - WEBP_SIZED_BY_OR_NULL
  - WEBP_ENDED_BY
  - WEBP_UNSAFE_FORGE_SINGLE
  - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
  - WEBP_UNSAFE_MEMCPY
  - WEBP_UNSAFE_MEMSET
  - WEBP_UNSAFE_MEMMOVE
  - WEBP_UNSAFE_MEMCMP
  - WEBP_UNSAFE_MEMCPY
  - WEBP_UNSAFE_MEMSET
  - WEBP_UNSAFE_MEMMOVE
  - WEBP_UNSAFE_MEMCMP
  - WEBP_UNSAFE_FORGE_SINGLE
  - WEBP_UNSAFE_FORGE_BIDI_INDEXABLE
  - WEBP_SELF_ASSIGN
  source_file: /src/libwebp/src/webp/types.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WEBP_INLINE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/libwebp/src/webp/types.h
      type_or_value: inline
    - item_type: preproc_def
      name: WEBP_INLINE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libwebp/src/webp/types.h
      type_or_value: __forceinline
    - item_type: preproc_def
      name: WEBP_NODISCARD
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/libwebp/src/webp/types.h
      type_or_value: '[[nodiscard]]'
    - item_type: preproc_def
      name: WEBP_NODISCARD
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/libwebp/src/webp/types.h
      type_or_value: __attribute__((warn_unused_result))
    - item_type: preproc_def
      name: WEBP_EXTERN
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/libwebp/src/webp/types.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: WEBP_EXTERN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libwebp/src/webp/types.h
      type_or_value: extern __attribute__((visibility("default")))
    - item_type: preproc_def
      name: WEBP_EXTERN
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libwebp/src/webp/types.h
      type_or_value: extern
    - item_type: preproc_def
      name: WEBP_FALLTHROUGH
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libwebp/src/webp/types.h
      type_or_value: '[[fallthrough]]'
    - item_type: preproc_def
      name: WEBP_ASSUME_UNSAFE_INDEXABLE_ABI
      pos:
        line_end: 123
        line_start: 121
        source_file: /src/libwebp/src/webp/types.h
      type_or_value: __ptrcheck_abi_assume_unsafe_indexable()
    - item_type: preproc_def
      name: WEBP_UNSAFE_INDEXABLE
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/libwebp/src/webp/types.h
      type_or_value: __unsafe_indexable
    - item_type: preproc_def
      name: WEBP_SINGLE
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/libwebp/src/webp/types.h
      type_or_value: __single
    structs: []
    typedefs:
    - item_type: typedef
      name: int8_t
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/libwebp/src/webp/types.h
      type: signed char
    - item_type: typedef
      name: uint8_t
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/libwebp/src/webp/types.h
      type: unsigned char
    - item_type: typedef
      name: int16_t
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/libwebp/src/webp/types.h
      type: signed short
    - item_type: typedef
      name: uint16_t
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/libwebp/src/webp/types.h
      type: unsigned short
    - item_type: typedef
      name: int32_t
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/libwebp/src/webp/types.h
      type: signed int
    - item_type: typedef
      name: uint32_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/libwebp/src/webp/types.h
      type: unsigned int
    - item_type: typedef
      name: uint64_t
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/libwebp/src/webp/types.h
      type: unsigned long long int
    - item_type: typedef
      name: int64_t
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/libwebp/src/webp/types.h
      type: long long int
    union: []
- function_names:
  - WebPMuxNew
  - WebPMuxCreate
  - WebPAnimEncoderOptionsInit
  - "WebPAnimEncoder* WebPAnimEncoderNew(\n    int width, int height, const WebPAnimEncoderOptions*
    enc_options)"
  source_file: /src/libwebp/src/webp/mux.h
  types:
    enum:
    - enumerators:
      - name: WEBP_CHUNK_VP8X
      - name: WEBP_CHUNK_DEPRECATED
      - name: WEBP_CHUNK_ANMF
      - name: WEBP_CHUNK_ANIM
      - name: WEBP_CHUNK_ICCP
      - name: WEBP_CHUNK_ALPHA
      - name: WEBP_CHUNK_IMAGE
      - name: WEBP_CHUNK_EXIF
      - name: WEBP_CHUNK_XMP
      - name: WEBP_CHUNK_UNKNOWN
      - name: WEBP_CHUNK_NIL
      item_type: enum
      name: WebPChunkId
      pos:
        line_end: 95
        line_start: 83
        source_file: /src/libwebp/src/webp/mux.h
    preproc_defs:
    - item_type: preproc_def
      name: WEBP_MUX_ABI_VERSION
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/libwebp/src/webp/mux.h
      type_or_value: 0x0109  // MAJOR(8b) + MINOR(8b)
    structs:
    - fields:
      - name: bitstream
        type: WebPData
      - name: x_offset
        type: int
      - name: y_offset
        type: int
      - name: duration
        type: int
      - name: id
        type: WebPChunkId
      - name: dispose_method
        type: WebPMuxAnimDispose
      - name: blend_method
        type: WebPMuxAnimBlend
      - name: pad[1]
        type: uint32_t
      item_type: struct
      name: WebPMuxFrameInfo
      pos:
        line_end: 221
        line_start: 209
        source_file: /src/libwebp/src/webp/mux.h
    - fields:
      - name: bgcolor
        type: uint32_t
      - name: loop_count
        type: int
      item_type: struct
      name: WebPMuxAnimParams
      pos:
        line_end: 304
        line_start: 297
        source_file: /src/libwebp/src/webp/mux.h
    - fields:
      - name: anim_params
        type: WebPMuxAnimParams
      - name: minimize_size
        type: int
      - name: kmin
        type: int
      - name: kmax
        type: int
      - name: allow_mixed
        type: int
      - name: verbose
        type: int
      - name: padding[4]
        type: uint32_t
      item_type: struct
      name: WebPAnimEncoderOptions
      pos:
        line_end: 458
        line_start: 440
        source_file: /src/libwebp/src/webp/mux.h
    typedefs:
    - item_type: typedef
      name: WebPMux
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/libwebp/src/webp/mux.h
      type: WebPMux
    - item_type: typedef
      name: WebPMuxFrameInfo
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/libwebp/src/webp/mux.h
      type: WebPMuxFrameInfo
    - item_type: typedef
      name: WebPMuxAnimParams
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/libwebp/src/webp/mux.h
      type: WebPMuxAnimParams
    - item_type: typedef
      name: WebPAnimEncoderOptions
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/libwebp/src/webp/mux.h
      type: WebPAnimEncoderOptions
    - item_type: typedef
      name: WebPMuxError
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/libwebp/src/webp/mux.h
      type: WEBP_NODISCARD
    - item_type: typedef
      name: WebPAnimEncoder
      pos:
        line_end: 433
        line_start: 433
        source_file: /src/libwebp/src/webp/mux.h
      type: WebPAnimEncoder
    union: []
- function_names: []
  source_file: /src/libwebp/src/utils/huffman_utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HUFFMAN_TABLE_BITS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libwebp/src/utils/huffman_utils.h
      type_or_value: '8'
    - item_type: preproc_def
      name: HUFFMAN_TABLE_MASK
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libwebp/src/utils/huffman_utils.h
      type_or_value: ((1 << HUFFMAN_TABLE_BITS) - 1)
    - item_type: preproc_def
      name: LENGTHS_TABLE_BITS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/libwebp/src/utils/huffman_utils.h
      type_or_value: '7'
    - item_type: preproc_def
      name: LENGTHS_TABLE_MASK
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/libwebp/src/utils/huffman_utils.h
      type_or_value: ((1 << LENGTHS_TABLE_BITS) - 1)
    - item_type: preproc_def
      name: HUFFMAN_PACKED_BITS
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libwebp/src/utils/huffman_utils.h
      type_or_value: '6'
    - item_type: preproc_def
      name: HUFFMAN_PACKED_TABLE_SIZE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libwebp/src/utils/huffman_utils.h
      type_or_value: (1u << HUFFMAN_PACKED_BITS)
    structs:
    - fields:
      - name: bits
        type: uint8_t
      - name: value
        type: uint16_t
      item_type: struct
      name: HuffmanCode
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/libwebp/src/utils/huffman_utils.h
    - fields:
      - name: bits
        type: int
      - name: value
        type: uint32_t
      item_type: struct
      name: HuffmanCode32
      pos:
        line_end: 46
        line_start: 41
        source_file: /src/libwebp/src/utils/huffman_utils.h
    - fields:
      - name: '* WEBP_COUNTED_BY_OR_NULL(size)'
        type: HuffmanCode
      - name: '* WEBP_UNSAFE_INDEXABLE'
        type: HuffmanCode
      - name: '* next'
        type: struct HuffmanTablesSegment
      - name: size
        type: int
      item_type: struct
      name: HuffmanTablesSegment
      pos:
        line_end: 57
        line_start: 49
        source_file: /src/libwebp/src/utils/huffman_utils.h
    - fields:
      - name: root
        type: HuffmanTablesSegment
      - name: '* curr_segment'
        type: HuffmanTablesSegment
      item_type: struct
      name: HuffmanTables
      pos:
        line_end: 64
        line_start: 60
        source_file: /src/libwebp/src/utils/huffman_utils.h
    - fields:
      - name: '* htrees[HUFFMAN_CODES_PER_META_CODE]'
        type: HuffmanCode
      - name: is_trivial_literal
        type: int
      - name: literal_arb
        type: uint32_t
      - name: is_trivial_code
        type: int
      - name: use_packed_table
        type: int
      - name: packed_table[HUFFMAN_PACKED_TABLE_SIZE]
        type: HuffmanCode32
      item_type: struct
      name: HTreeGroup
      pos:
        line_end: 94
        line_start: 83
        source_file: /src/libwebp/src/utils/huffman_utils.h
    typedefs:
    - item_type: typedef
      name: HTreeGroup
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/libwebp/src/utils/huffman_utils.h
      type: HTreeGroup
    union: []
- function_names:
  - VP8BitReaderSetBuffer
  - VP8InitBitReader
  - VP8RemapBitReader
  - VP8LoadFinalBytes
  - VP8GetValue
  - VP8GetSignedValue
  - VP8LInitBitReader
  - VP8LBitReaderSetBuffer
  - VP8LSetEndOfStream
  - ShiftBytes
  - VP8LDoFillBitWindow
  - VP8LReadBits
  - PrintBitTraces
  - BitTrace
  source_file: /src/libwebp/src/utils/bit_reader_utils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VP8L_LOG8_WBITS
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/libwebp/src/utils/bit_reader_utils.c
      type_or_value: 4  // Number of bytes needed to store VP8L_WBITS bits.
    - item_type: preproc_def
      name: MAX_NUM_LABELS
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/libwebp/src/utils/bit_reader_utils.c
      type_or_value: '32'
    structs:
    - fields:
      - name: '* label'
        type: char
      - name: size
        type: int
      - name: count
        type: int
      item_type: struct
      name: kLabels[MAX_NUM_LABELS]
      pos:
        line_end: 233
        line_start: 229
        source_file: /src/libwebp/src/utils/bit_reader_utils.c
    typedefs: []
    union: []
- function_names:
  - VP8LHtreeGroupsNew
  - VP8LHtreeGroupsFree
  - GetNextKey
  - NextTableBitSize
  - BuildHuffmanTable
  - VP8LBuildHuffmanTable
  - BuildHuffmanTable
  - VP8LHuffmanTablesAllocate
  - VP8LHuffmanTablesDeallocate
  source_file: /src/libwebp/src/utils/huffman_utils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_HTREE_GROUPS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libwebp/src/utils/huffman_utils.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: MAX_CODE_LENGTHS_SIZE
      pos:
        line_end: 232
        line_start: 230
        source_file: /src/libwebp/src/utils/huffman_utils.c
      type_or_value: ((1 << MAX_CACHE_BITS) + NUM_LITERAL_CODES + NUM_LENGTH_CODES)
    - item_type: preproc_def
      name: SORTED_SIZE_CUTOFF
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/libwebp/src/utils/huffman_utils.c
      type_or_value: '512'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/src/utils/quant_levels_utils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_SYMBOLS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/libwebp/src/utils/quant_levels_utils.c
      type_or_value: '256'
    - item_type: preproc_def
      name: MAX_ITER
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/libwebp/src/utils/quant_levels_utils.c
      type_or_value: 6            // Maximum number of convergence steps.
    - item_type: preproc_def
      name: ERROR_THRESHOLD
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/libwebp/src/utils/quant_levels_utils.c
      type_or_value: 1e-4  // MSE stopping criterion.
    structs: []
    typedefs: []
    union: []
- function_names:
  - WebPRescalerInit
  - WebPRescalerGetScaledDimensions
  - WebPRescaleNeededLines
  - WebPRescalerImport
  - WebPRescalerExport
  source_file: /src/libwebp/src/utils/rescaler_utils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/src/utils/quant_levels_dec_utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/src/utils/filters_utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VP8LHashPix
  - VP8LColorCacheLookup
  - VP8LColorCacheSet
  - VP8LColorCacheInsert
  - VP8LColorCacheGetIndex
  - VP8LColorCacheContains
  source_file: /src/libwebp/src/utils/color_cache_utils.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* WEBP_COUNTED_BY_OR_NULL(1u << hash_bits)'
        type: uint32_t
      - name: hash_shift
        type: int
      - name: hash_bits
        type: int
      item_type: struct
      name: VP8LColorCache
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/libwebp/src/utils/color_cache_utils.h
    typedefs: []
    union: []
- function_names:
  - CheckSizeOverflow
  - WEBP_ALIGN
  - WebPMemToUint32
  - WebPMemToInt32
  - WebPUint32ToMem
  - WebPInt32ToMem
  - GetLE16
  - GetLE24
  - GetLE32
  - PutLE16
  - PutLE24
  - PutLE32
  - BitsLog2Floor
  - BitsCtz
  - BitsLog2Floor
  - BitsCtz
  - WebPLog2FloorC
  - BitsLog2Floor
  - BitsCtz
  source_file: /src/libwebp/src/utils/utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WEBP_MAX_ALLOCABLE_MEMORY
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/libwebp/src/utils/utils.h
      type_or_value: (1ULL << 34)
    - item_type: preproc_def
      name: WEBP_MAX_ALLOCABLE_MEMORY
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/libwebp/src/utils/utils.h
      type_or_value: ((1ULL << 31) - (1 << 16))
    - item_type: preproc_def
      name: WEBP_ALIGN_CST
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libwebp/src/utils/utils.h
      type_or_value: '31'
    structs: []
    typedefs: []
    union: []
- function_names:
  - HToLE32
  - HToLE16
  - BSwap16
  - BSwap32
  - BSwap64
  source_file: /src/libwebp/src/utils/endian_inl_utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HToLE32
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/libwebp/src/utils/endian_inl_utils.h
      type_or_value: BSwap32
    - item_type: preproc_def
      name: HToLE16
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/libwebp/src/utils/endian_inl_utils.h
      type_or_value: BSwap16
    structs: []
    typedefs: []
    union: []
- function_names:
  - PaletteCompareColorsForQsort
  - PaletteComponentDistance
  - PaletteColorDistance
  - SwapColor
  - SearchColorNoIdx
  - PrepareMapToPalette
  - GetColorPalette
  - PaletteHasNonMonotonousDeltas
  - PaletteSortMinimizeDeltas
  - CoOccurrenceFindMax
  - CoOccurrenceBuild
  - PaletteSortModifiedZeng
  - PaletteSort
  source_file: /src/libwebp/src/utils/palette.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COLOR_HASH_SIZE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/libwebp/src/utils/palette.c
      type_or_value: (MAX_PALETTE_SIZE * 4)
    - item_type: preproc_def
      name: COLOR_HASH_RIGHT_SHIFT
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libwebp/src/utils/palette.c
      type_or_value: 22  // 32 - log2(COLOR_HASH_SIZE).
    structs:
    - fields:
      - name: index
        type: uint8_t
      - name: sum
        type: uint32_t
      item_type: struct
      name: Sum
      pos:
        line_end: 313
        line_start: 310
        source_file: /src/libwebp/src/utils/palette.c
    typedefs: []
    union: []
- function_names:
  - WEBP_RESCALER_FRAC
  - WebPRescalerInputDone
  - WebPRescalerOutputDone
  - WebPRescalerHasPendingOutput
  source_file: /src/libwebp/src/utils/rescaler_utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WEBP_RESCALER_RFIX
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/libwebp/src/utils/rescaler_utils.h
      type_or_value: 32  // fixed-point precision for multiplies
    - item_type: preproc_def
      name: WEBP_RESCALER_ONE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/libwebp/src/utils/rescaler_utils.h
      type_or_value: (1ull << WEBP_RESCALER_RFIX)
    structs:
    - fields:
      - name: x_expand
        type: int
      - name: y_expand
        type: int
      - name: num_channels
        type: int
      - name: fx_scale
        type: uint32_t
      - name: fy_scale
        type: uint32_t
      - name: fxy_scale
        type: uint32_t
      - name: y_accum
        type: int
      - name: y_add
        type: int
      - name: x_add
        type: int
      - name: src_width
        type: int
      - name: dst_width
        type: int
      - name: src_y
        type: int
      - name: '* dst'
        type: uint8_t
      - name: dst_stride
        type: int
      - name: '* WEBP_COUNTED_BY(dst_width* num_channels)'
        type: rescaler_t
      - name: '* WEBP_COUNTED_BY(dst_width* num_channels)'
        type: rescaler_t
      item_type: struct
      name: WebPRescaler
      pos:
        line_end: 51
        line_start: 33
        source_file: /src/libwebp/src/utils/rescaler_utils.h
    typedefs:
    - item_type: typedef
      name: rescaler_t
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/libwebp/src/utils/rescaler_utils.h
      type: uint32_t
    - item_type: typedef
      name: WebPRescaler
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/libwebp/src/utils/rescaler_utils.h
      type: WebPRescaler
    union: []
- function_names:
  - VP8RandomBits2
  - VP8RandomBits
  source_file: /src/libwebp/src/utils/random_utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VP8_RANDOM_DITHER_FIX
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libwebp/src/utils/random_utils.h
      type_or_value: 8  // fixed-point precision for dithering
    - item_type: preproc_def
      name: VP8_RANDOM_TABLE_SIZE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libwebp/src/utils/random_utils.h
      type_or_value: '55'
    structs:
    - fields:
      - name: index1
        type: int
      - name: tab[VP8_RANDOM_TABLE_SIZE]
        type: uint32_t
      - name: amp
        type: int
      item_type: struct
      name: VP8Random
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/libwebp/src/utils/random_utils.h
    typedefs: []
    union: []
- function_names:
  - PrintMemInfo
  - Increment
  - AddMem
  - SubMem
  - Increment
  - AddMem
  - SubMem
  - CheckSizeArgumentsOverflow
  - WebPSafeMalloc
  - WebPSafeCalloc
  - WebPSafeFree
  - WEBP_SINGLE::WebPMalloc
  - WebPFree
  - WebPCopyPlane
  - WebPCopyPixels
  - WebPGetColorPalette
  source_file: /src/libwebp/src/utils/utils.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* ptr'
        type: void
      - name: size
        type: size_t
      - name: '* next'
        type: MemBlock
      item_type: struct
      name: MemBlock
      pos:
        line_end: 70
        line_start: 66
        source_file: /src/libwebp/src/utils/utils.c
    typedefs:
    - item_type: typedef
      name: MemBlock
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/libwebp/src/utils/utils.c
      type: MemBlock
    union: []
- function_names:
  - clip_8b
  - VFilter
  - HFilter
  - ApplyFilter
  - InitCorrectionLUT
  - CountLevels
  - CleanupParams
  source_file: /src/libwebp/src/utils/quant_levels_dec_utils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FIX
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libwebp/src/utils/quant_levels_dec_utils.c
      type_or_value: 16                            // fix-point precision for averaging
    - item_type: preproc_def
      name: LFIX
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libwebp/src/utils/quant_levels_dec_utils.c
      type_or_value: 2                            // extra precision for look-up table
    - item_type: preproc_def
      name: LUT_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/libwebp/src/utils/quant_levels_dec_utils.c
      type_or_value: ((1 << (8 + LFIX)) - 1)  // look-up table size
    - item_type: preproc_def
      name: CORRECTION_LUT_SIZE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/libwebp/src/utils/quant_levels_dec_utils.c
      type_or_value: (1 + 2 * LUT_SIZE)
    - item_type: preproc_def
      name: DFIX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libwebp/src/utils/quant_levels_dec_utils.c
      type_or_value: 4   // extra precision for ordered dithering
    - item_type: preproc_def
      name: DSIZE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/libwebp/src/utils/quant_levels_dec_utils.c
      type_or_value: 4  // dithering size (must be a power of two)
    - item_type: preproc_def
      name: DFIX
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/libwebp/src/utils/quant_levels_dec_utils.c
      type_or_value: '0'
    - item_type: preproc_def
      name: CLIP_8b_MASK
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libwebp/src/utils/quant_levels_dec_utils.c
      type_or_value: (int)(~0U << (8 + DFIX))
    structs:
    - fields:
      - name: width
        type: int
      - name: stride
        type: int
      - name: row
        type: int
      - name: '* WEBP_INDEXABLE'
        type: uint8_t
      - name: '* WEBP_INDEXABLE'
        type: uint8_t
      - name: radius
        type: int
      - name: scale
        type: int
      - name: '* mem'
        type: void
      - name: '* WEBP_INDEXABLE'
        type: uint16_t
      - name: '* WEBP_INDEXABLE'
        type: uint16_t
      - name: '* WEBP_BIDI_INDEXABLE'
        type: uint16_t
      - name: '* WEBP_INDEXABLE'
        type: uint16_t
      - name: '* WEBP_COUNTED_BY(width)'
        type: uint16_t
      - name: num_levels
        type: int
      - name: min
        type: int
      - name: min_level_dist
        type: int
      - name: '* WEBP_COUNTED_BY_OR_NULL(CORRECTION_LUT_SIZE)'
        type: int16_t
      item_type: struct
      name: SmoothParams
      pos:
        line_end: 74
        line_start: 48
        source_file: /src/libwebp/src/utils/quant_levels_dec_utils.c
    typedefs: []
    union: []
- function_names:
  - VP8BitWriterPos
  - VP8BitWriterBuf
  - VP8BitWriterSize
  - VP8LBitWriterNumBytes
  - VP8LPutBits
  source_file: /src/libwebp/src/utils/bit_writer_utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WSWAP
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libwebp/src/utils/bit_writer_utils.h
      type_or_value: HToLE32
    - item_type: preproc_def
      name: VP8L_WRITER_BYTES
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libwebp/src/utils/bit_writer_utils.h
      type_or_value: 4      // sizeof(vp8l_wtype_t)
    - item_type: preproc_def
      name: VP8L_WRITER_BITS
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libwebp/src/utils/bit_writer_utils.h
      type_or_value: 32      // 8 * sizeof(vp8l_wtype_t)
    - item_type: preproc_def
      name: VP8L_WRITER_MAX_BITS
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libwebp/src/utils/bit_writer_utils.h
      type_or_value: 64  // 8 * sizeof(vp8l_atype_t)
    - item_type: preproc_def
      name: WSWAP
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libwebp/src/utils/bit_writer_utils.h
      type_or_value: HToLE16
    - item_type: preproc_def
      name: VP8L_WRITER_BYTES
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libwebp/src/utils/bit_writer_utils.h
      type_or_value: '2'
    - item_type: preproc_def
      name: VP8L_WRITER_BITS
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libwebp/src/utils/bit_writer_utils.h
      type_or_value: '16'
    - item_type: preproc_def
      name: VP8L_WRITER_MAX_BITS
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/libwebp/src/utils/bit_writer_utils.h
      type_or_value: '32'
    structs:
    - fields:
      - name: range
        type: int32_t
      - name: value
        type: int32_t
      - name: run
        type: int
      - name: nb_bits
        type: int
      - name: '* WEBP_SIZED_BY_OR_NULL(max_pos)'
        type: uint8_t
      - name: pos
        type: size_t
      - name: max_pos
        type: size_t
      - name: error
        type: int
      item_type: struct
      name: VP8BitWriter
      pos:
        line_end: 42
        line_start: 32
        source_file: /src/libwebp/src/utils/bit_writer_utils.h
    - fields:
      - name: bits
        type: vp8l_atype_t
      - name: used
        type: int
      - name: '* WEBP_ENDED_BY(end)'
        type: uint8_t
      - name: '* WEBP_UNSAFE_INDEXABLE'
        type: uint8_t
      - name: '* end'
        type: uint8_t
      - name: error
        type: int
      item_type: struct
      name: VP8LBitWriter
      pos:
        line_end: 108
        line_start: 96
        source_file: /src/libwebp/src/utils/bit_writer_utils.h
    typedefs:
    - item_type: typedef
      name: VP8BitWriter
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/libwebp/src/utils/bit_writer_utils.h
      type: VP8BitWriter
    - item_type: typedef
      name: vp8l_atype_t
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/libwebp/src/utils/bit_writer_utils.h
      type: uint64_t
    - item_type: typedef
      name: vp8l_wtype_t
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/libwebp/src/utils/bit_writer_utils.h
      type: uint32_t
    - item_type: typedef
      name: vp8l_atype_t
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/libwebp/src/utils/bit_writer_utils.h
      type: uint32_t
    - item_type: typedef
      name: vp8l_wtype_t
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/libwebp/src/utils/bit_writer_utils.h
      type: uint16_t
    union: []
- function_names: []
  source_file: /src/libwebp/src/utils/thread_utils.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* impl'
        type: void
      - name: status
        type: WebPWorkerStatus
      - name: hook
        type: WebPWorkerHook
      - name: '* data1'
        type: void
      - name: '* data2'
        type: void
      - name: had_error
        type: int
      item_type: struct
      name: WebPWorker
      pos:
        line_end: 48
        line_start: 41
        source_file: /src/libwebp/src/utils/thread_utils.h
    - fields:
      - name: (*Init)(WebPWorker* const worker)
        type: void
      - name: (*Reset)(WebPWorker* const worker)
        type: int
      - name: (*Sync)(WebPWorker* const worker)
        type: int
      - name: (*Launch)(WebPWorker* const worker)
        type: void
      - name: (*Execute)(WebPWorker* const worker)
        type: void
      - name: (*End)(WebPWorker* const worker)
        type: void
      item_type: struct
      name: WebPWorkerInterface
      pos:
        line_end: 73
        line_start: 52
        source_file: /src/libwebp/src/utils/thread_utils.h
    typedefs:
    - item_type: typedef
      name: (*WebPWorkerHook)(void*, void*)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/libwebp/src/utils/thread_utils.h
      type: int
    union: []
- function_names: []
  source_file: /src/libwebp/src/utils/bounds_safety.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WEBP_INDEXABLE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/libwebp/src/utils/bounds_safety.h
      type_or_value: __indexable
    - item_type: preproc_def
      name: WEBP_BIDI_INDEXABLE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/libwebp/src/utils/bounds_safety.h
      type_or_value: __bidi_indexable
    structs: []
    typedefs: []
    union: []
- function_names:
  - BT_TRACK
  - VP8Get
  - VP8GetValue
  - VP8Get
  - VP8GetSignedValue
  - VP8GetBit
  - VP8GetBitAlt
  - VP8GetSigned
  - VP8LPrefetchBits
  - VP8LIsEndOfStream
  - VP8LSetBitPos
  - VP8LFillBitWindow
  source_file: /src/libwebp/src/utils/bit_reader_utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BITTRACE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/libwebp/src/utils/bit_reader_utils.h
      type_or_value: 0  // 0 = off, 1 = print bits, 2 = print bytes
    - item_type: preproc_def
      name: BITS
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libwebp/src/utils/bit_reader_utils.h
      type_or_value: '24'
    - item_type: preproc_def
      name: BITS
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libwebp/src/utils/bit_reader_utils.h
      type_or_value: '56'
    - item_type: preproc_def
      name: BITS
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/libwebp/src/utils/bit_reader_utils.h
      type_or_value: '24'
    - item_type: preproc_def
      name: BITS
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libwebp/src/utils/bit_reader_utils.h
      type_or_value: '56'
    - item_type: preproc_def
      name: BITS
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libwebp/src/utils/bit_reader_utils.h
      type_or_value: '24'
    - item_type: preproc_def
      name: BITS
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libwebp/src/utils/bit_reader_utils.h
      type_or_value: '56'
    - item_type: preproc_def
      name: BITS
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libwebp/src/utils/bit_reader_utils.h
      type_or_value: '24'
    - item_type: preproc_def
      name: VP8L_MAX_NUM_BIT_READ
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/libwebp/src/utils/bit_reader_utils.h
      type_or_value: '24'
    - item_type: preproc_def
      name: VP8L_LBITS
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/libwebp/src/utils/bit_reader_utils.h
      type_or_value: 64  // Number of bits prefetched (= bit-size of vp8l_val_t).
    - item_type: preproc_def
      name: VP8L_WBITS
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/libwebp/src/utils/bit_reader_utils.h
      type_or_value: 32  // Minimum number of bytes ready after VP8LFillBitWindow.
    structs:
    - fields:
      - name: value
        type: bit_t
      - name: range
        type: range_t
      - name: bits
        type: int
      - name: '* WEBP_ENDED_BY(buf_end)'
        type: uint8_t
      - name: '* buf_end'
        type: uint8_t
      - name: '* WEBP_UNSAFE_INDEXABLE'
        type: uint8_t
      - name: eof
        type: int
      item_type: struct
      name: VP8BitReader
      pos:
        line_end: 110
        line_start: 99
        source_file: /src/libwebp/src/utils/bit_reader_utils.h
    - fields:
      - name: val
        type: vp8l_val_t
      - name: '* WEBP_COUNTED_BY(len)'
        type: uint8_t
      - name: len
        type: size_t
      - name: pos
        type: size_t
      - name: bit_pos
        type: int
      - name: eos
        type: int
      item_type: struct
      name: VP8LBitReader
      pos:
        line_end: 157
        line_start: 150
        source_file: /src/libwebp/src/utils/bit_reader_utils.h
    typedefs:
    - item_type: typedef
      name: bit_t
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/libwebp/src/utils/bit_reader_utils.h
      type: uint64_t
    - item_type: typedef
      name: bit_t
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/libwebp/src/utils/bit_reader_utils.h
      type: uint32_t
    - item_type: typedef
      name: range_t
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/libwebp/src/utils/bit_reader_utils.h
      type: uint32_t
    - item_type: typedef
      name: VP8BitReader
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/libwebp/src/utils/bit_reader_utils.h
      type: VP8BitReader
    - item_type: typedef
      name: vp8l_val_t
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/libwebp/src/utils/bit_reader_utils.h
      type: uint64_t
    union: []
- function_names:
  - BitWriterResize
  - Flush
  - VP8PutBit
  - VP8PutBitUniform
  - VP8PutBits
  - VP8PutSignedBits
  - VP8BitWriterInit
  - VP8BitWriterFinish
  - VP8BitWriterAppend
  - VP8BitWriterWipeOut
  - VP8LBitWriterResize
  - VP8LBitWriterInit
  - VP8LBitWriterClone
  - VP8LBitWriterWipeOut
  - VP8LBitWriterReset
  - VP8LBitWriterSwap
  - VP8LPutBitsFlushBits
  - VP8LPutBitsInternal
  - VP8LBitWriterFinish
  source_file: /src/libwebp/src/utils/bit_writer_utils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MIN_EXTRA_SIZE
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/libwebp/src/utils/bit_writer_utils.c
      type_or_value: (32768ULL)
    structs: []
    typedefs: []
    union: []
- function_names:
  - VP8InitRandom
  source_file: /src/libwebp/src/utils/random_utils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/src/utils/bit_reader_inl_utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: lbit_t
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/libwebp/src/utils/bit_reader_inl_utils.h
      type: uint64_t
    - item_type: typedef
      name: lbit_t
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/libwebp/src/utils/bit_reader_inl_utils.h
      type: uint32_t
    - item_type: typedef
      name: lbit_t
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/libwebp/src/utils/bit_reader_inl_utils.h
      type: uint16_t
    - item_type: typedef
      name: lbit_t
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/libwebp/src/utils/bit_reader_inl_utils.h
      type: uint8_t
    union: []
- function_names:
  - WINAPI_FAMILY_PARTITION
  - THREAD_RETURN
  - pthread_create
  - pthread_join
  - pthread_mutex_init
  - pthread_mutex_lock
  - pthread_mutex_unlock
  - pthread_mutex_destroy
  - pthread_cond_destroy
  - pthread_cond_init
  - pthread_cond_signal
  - pthread_cond_wait
  - THREAD_RETURN
  - ThreadLoop
  - ChangeState
  - Init
  - Sync
  - Reset
  - Execute
  - Launch
  - End
  - WebPSetWorkerInterface
  - WebPGetWorkerInterface
  source_file: /src/libwebp/src/utils/thread_utils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WINAPI_PARTITION_DESKTOP
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/libwebp/src/utils/thread_utils.c
      type_or_value: '1'
    - item_type: preproc_def
      name: THREADFN
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/libwebp/src/utils/thread_utils.c
      type_or_value: unsigned int __stdcall
    - item_type: preproc_def
      name: THREADFN
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/libwebp/src/utils/thread_utils.c
      type_or_value: void*
    structs:
    - fields:
      - name: mutex
        type: pthread_mutex_t
      - name: condition
        type: pthread_cond_t
      - name: thread
        type: pthread_t
      item_type: struct
      name: WebPWorkerImpl
      pos:
        line_end: 55
        line_start: 51
        source_file: /src/libwebp/src/utils/thread_utils.c
    typedefs:
    - item_type: typedef
      name: pthread_t
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/libwebp/src/utils/thread_utils.c
      type: HANDLE
    - item_type: typedef
      name: pthread_mutex_t
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/libwebp/src/utils/thread_utils.c
      type: SRWLOCK
    - item_type: typedef
      name: pthread_cond_t
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/libwebp/src/utils/thread_utils.c
      type: CONDITION_VARIABLE
    union: []
- function_names: []
  source_file: /src/libwebp/src/utils/palette.h
  types:
    enum:
    - enumerators:
      - name: kSortedDefault
        value: '0'
      - name: kUnusedPalette
        value: '3'
      - name: kPaletteSortingNum
        value: '4'
      - name: kModifiedZeng
        value: '2'
      - name: kMinimizeDelta
        value: '1'
      item_type: enum
      name: PaletteSorting
      pos:
        line_end: 36
        line_start: 25
        source_file: /src/libwebp/src/utils/palette.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/src/utils/quant_levels_utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SDIFF
  - GradientPredictor
  source_file: /src/libwebp/src/utils/filters_utils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SMAX
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/libwebp/src/utils/filters_utils.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ValuesShouldBeCollapsedToStrideAverage
  - OptimizeHuffmanForRle
  - CompareHuffmanTrees
  - SetBitDepths
  - GenerateOptimalTree
  - WEBP_INDEXABLE::CodeRepeatedValues
  - WEBP_INDEXABLE::CodeRepeatedZeros
  - VP8LCreateCompressedHuffmanTree
  - ReverseBits
  - ConvertBitDepthsToSymbols
  - VP8LCreateHuffmanTree
  source_file: /src/libwebp/src/utils/huffman_encode_utils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VP8LColorCacheInit
  - VP8LColorCacheClear
  - VP8LColorCacheCopy
  source_file: /src/libwebp/src/utils/color_cache_utils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/src/utils/huffman_encode_utils.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: code
        type: uint8_t
      - name: extra_bits
        type: uint8_t
      item_type: struct
      name: HuffmanTreeToken
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/libwebp/src/utils/huffman_encode_utils.h
    - fields:
      - name: num_symbols
        type: int
      - name: '* WEBP_COUNTED_BY(num_symbols)'
        type: uint8_t
      - name: '* WEBP_COUNTED_BY(num_symbols)'
        type: uint16_t
      item_type: struct
      name: HuffmanTreeCode
      pos:
        line_end: 38
        line_start: 32
        source_file: /src/libwebp/src/utils/huffman_encode_utils.h
    - fields:
      - name: total_count
        type: uint32_t
      - name: value
        type: int
      - name: pool_index_left
        type: int
      - name: pool_index_right
        type: int
      item_type: struct
      name: HuffmanTree
      pos:
        line_end: 46
        line_start: 41
        source_file: /src/libwebp/src/utils/huffman_encode_utils.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/sharpyuv/sharpyuv_dsp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SharpYuvInitGammaTables
  - Shift
  - FixedPointInterpolation
  - ToLinearSrgb
  - FromLinearSrgb
  - CLAMP
  - MIN
  - MAX
  - Roundf
  - Powf
  - Log10f
  - ToLinear709
  - FromLinear709
  - ToLinear470M
  - FromLinear470M
  - ToLinear470Bg
  - FromLinear470Bg
  - ToLinearSmpte240
  - FromLinearSmpte240
  - ToLinearLog100
  - FromLinearLog100
  - ToLinearLog100Sqrt10
  - FromLinearLog100Sqrt10
  - ToLinearIec61966
  - FromLinearIec61966
  - ToLinearBt1361
  - FromLinearBt1361
  - ToLinearPq
  - FromLinearPq
  - ToLinearSmpte428
  - FromLinearSmpte428
  - ToLinearHlg
  - FromLinearHlg
  - SharpYuvGammaToLinear
  - SharpYuvLinearToGamma
  source_file: /src/libwebp/sharpyuv/sharpyuv_gamma.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GAMMA_TO_LINEAR_TAB_BITS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/libwebp/sharpyuv/sharpyuv_gamma.c
      type_or_value: '10'
    - item_type: preproc_def
      name: GAMMA_TO_LINEAR_TAB_SIZE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/libwebp/sharpyuv/sharpyuv_gamma.c
      type_or_value: (1 << GAMMA_TO_LINEAR_TAB_BITS)
    - item_type: preproc_def
      name: LINEAR_TO_GAMMA_TAB_BITS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/libwebp/sharpyuv/sharpyuv_gamma.c
      type_or_value: '9'
    - item_type: preproc_def
      name: LINEAR_TO_GAMMA_TAB_SIZE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/libwebp/sharpyuv/sharpyuv_gamma.c
      type_or_value: (1 << LINEAR_TO_GAMMA_TAB_BITS)
    - item_type: preproc_def
      name: GAMMA_TO_LINEAR_BITS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/libwebp/sharpyuv/sharpyuv_gamma.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - clip
  - SharpYuvUpdateY_C
  - SharpYuvUpdateRGB_C
  - SharpYuvFilterRow_C
  - SharpYuvInitDsp
  source_file: /src/libwebp/sharpyuv/sharpyuv_dsp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/sharpyuv/sharpyuv_gamma.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/sharpyuv/sharpyuv_cpu.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SharpYuvGetVersion
  - GetPrecisionShift
  - clip_8b
  - clip
  - clip_bit_depth
  - RGBToGray
  - ScaleDown
  - UpdateW
  - UpdateChroma
  - StoreGray
  - Filter2
  - Shift
  - ImportOneRow
  - InterpolateTwoRows
  - RGBToYUVComponent
  - ConvertWRGBToYUV
  - SafeMalloc
  - DoSharpArgbToYuv
  - SharpYuvInit
  - SharpYuvConvert
  - SharpYuvOptionsInitInternal
  - SharpYuvConvertWithOptions
  source_file: /src/libwebp/sharpyuv/sharpyuv.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: YUV_FIX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libwebp/sharpyuv/sharpyuv.c
      type_or_value: 16  // fixed-point precision for RGB->YUV
    - item_type: preproc_def
      name: LOCK_ACCESS
      pos:
        line_end: 452
        line_start: 449
        source_file: /src/libwebp/sharpyuv/sharpyuv.c
      type_or_value: "static pthread_mutex_t sharpyuv_lock = PTHREAD_MUTEX_INITIALIZER;
        \\\n  if (pthread_mutex_lock(&sharpyuv_lock)) return"
    - item_type: preproc_def
      name: UNLOCK_ACCESS_AND_RETURN
      pos:
        line_end: 457
        line_start: 452
        source_file: /src/libwebp/sharpyuv/sharpyuv.c
      type_or_value: "do {                                          \\\n    (void)pthread_mutex_unlock(&sharpyuv_lock);
        \\\n    return;                                     \\\n  } while (0)"
    - item_type: preproc_def
      name: LOCK_ACCESS
      pos:
        line_end: 461
        line_start: 458
        source_file: /src/libwebp/sharpyuv/sharpyuv.c
      type_or_value: "do {              \\\n  } while (0)"
    - item_type: preproc_def
      name: UNLOCK_ACCESS_AND_RETURN
      pos:
        line_end: 462
        line_start: 461
        source_file: /src/libwebp/sharpyuv/sharpyuv.c
      type_or_value: return
    structs: []
    typedefs:
    - item_type: typedef
      name: fixed_t
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/libwebp/sharpyuv/sharpyuv.c
      type: int16_t
    - item_type: typedef
      name: fixed_y_t
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/libwebp/sharpyuv/sharpyuv.c
      type: uint16_t
    union: []
- function_names:
  - clip_SSE2
  - SharpYuvUpdateY_SSE2
  - SharpYuvUpdateRGB_SSE2
  - SharpYuvFilterRow16_SSE2
  - s16_to_s32
  - SharpYuvFilterRow32_SSE2
  - SharpYuvFilterRow_SSE2
  - InitSharpYuvSSE2
  - InitSharpYuvSSE2
  source_file: /src/libwebp/sharpyuv/sharpyuv_sse2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/sharpyuv/sharpyuv_cpu.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WEBP_EXTERN
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/libwebp/sharpyuv/sharpyuv_cpu.h
      type_or_value: extern
    - item_type: preproc_def
      name: VP8GetCPUInfo
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/libwebp/sharpyuv/sharpyuv_cpu.h
      type_or_value: SharpYuvGetCPUInfo
    structs: []
    typedefs: []
    union: []
- function_names:
  - ToFixed16
  - SharpYuvComputeConversionMatrix
  - SharpYuvGetConversionMatrix
  source_file: /src/libwebp/sharpyuv/sharpyuv_csp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - clip_NEON
  - SharpYuvUpdateY_NEON
  - SharpYuvUpdateRGB_NEON
  - SharpYuvFilterRow16_NEON
  - SharpYuvFilterRow32_NEON
  - SharpYuvFilterRow_NEON
  - InitSharpYuvNEON
  - InitSharpYuvNEON
  source_file: /src/libwebp/sharpyuv/sharpyuv_neon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/sharpyuv/sharpyuv_csp.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: kr
        type: float
      - name: kb
        type: float
      - name: bit_depth
        type: int
      - name: range
        type: SharpYuvRange
      item_type: struct
      name: SharpYuvColorSpace
      pos:
        line_end: 34
        line_start: 27
        source_file: /src/libwebp/sharpyuv/sharpyuv_csp.h
    typedefs: []
    union: []
- function_names:
  - SHARPYUV_MAKE_VERSION
  - SharpYuvOptionsInit
  source_file: /src/libwebp/sharpyuv/sharpyuv.h
  types:
    enum:
    - enumerators:
      - name: kSharpYuvTransferFunctionBt709
        value: '1'
      - name: kSharpYuvTransferFunctionBt470Bg
        value: '5'
      - name: kSharpYuvTransferFunctionSmpte240
        value: '7'
      - name: kSharpYuvTransferFunctionBt601
        value: '6'
      - name: kSharpYuvTransferFunctionBt470M
        value: '4'
      - name: kSharpYuvTransferFunctionLinear
        value: '8'
      - name: kSharpYuvTransferFunctionLog100
        value: '9'
      - name: kSharpYuvTransferFunctionLog100_Sqrt10
        value: '10'
      - name: kSharpYuvTransferFunctionIec61966
        value: '11'
      - name: kSharpYuvTransferFunctionBt1361
        value: '12'
      - name: kSharpYuvTransferFunctionSmpte2084
        value: '16'
      - name: kSharpYuvTransferFunctionBt2020_10Bit
        value: '14'
      - name: kSharpYuvTransferFunctionHlg
        value: '18'
      - name: kSharpYuvTransferFunctionSmpte428
        value: '17'
      - name: kSharpYuvTransferFunctionBt2020_12Bit
        value: '15'
      - name: kSharpYuvTransferFunctionNum
      - name: kSharpYuvTransferFunctionSrgb
        value: '13'
      item_type: enum
      name: SharpYuvTransferFunctionType
      pos:
        line_end: 110
        line_start: 89
        source_file: /src/libwebp/sharpyuv/sharpyuv.h
    preproc_defs:
    - item_type: preproc_def
      name: SHARPYUV_EXTERN
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/libwebp/sharpyuv/sharpyuv.h
      type_or_value: WEBP_EXTERN
    - item_type: preproc_def
      name: SHARPYUV_EXTERN
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/libwebp/sharpyuv/sharpyuv.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: SHARPYUV_EXTERN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/libwebp/sharpyuv/sharpyuv.h
      type_or_value: extern __attribute__((visibility("default")))
    - item_type: preproc_def
      name: SHARPYUV_EXTERN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libwebp/sharpyuv/sharpyuv.h
      type_or_value: extern
    - item_type: preproc_def
      name: SHARPYUV_INLINE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/libwebp/sharpyuv/sharpyuv.h
      type_or_value: WEBP_INLINE
    - item_type: preproc_def
      name: SHARPYUV_INLINE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/libwebp/sharpyuv/sharpyuv.h
      type_or_value: inline
    - item_type: preproc_def
      name: SHARPYUV_INLINE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/libwebp/sharpyuv/sharpyuv.h
      type_or_value: __forceinline
    - item_type: preproc_def
      name: SHARPYUV_VERSION_MAJOR
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/libwebp/sharpyuv/sharpyuv.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SHARPYUV_VERSION_MINOR
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/libwebp/sharpyuv/sharpyuv.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SHARPYUV_VERSION_PATCH
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libwebp/sharpyuv/sharpyuv.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SHARPYUV_VERSION
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/libwebp/sharpyuv/sharpyuv.h
      type_or_value: "SHARPYUV_MAKE_VERSION(SHARPYUV_VERSION_MAJOR, SHARPYUV_VERSION_MINOR,
        \\\n                        SHARPYUV_VERSION_PATCH)"
    structs:
    - fields:
      - name: rgb_to_y[4]
        type: int
      - name: rgb_to_u[4]
        type: int
      - name: rgb_to_v[4]
        type: int
      item_type: struct
      name: SharpYuvConversionMatrix
      pos:
        line_end: 83
        line_start: 79
        source_file: /src/libwebp/sharpyuv/sharpyuv.h
    - fields:
      - name: '* yuv_matrix'
        type: SharpYuvConversionMatrix
      - name: transfer_type
        type: SharpYuvTransferFunctionType
      item_type: struct
      name: SharpYuvOptions
      pos:
        line_end: 156
        line_start: 151
        source_file: /src/libwebp/sharpyuv/sharpyuv.h
    typedefs:
    - item_type: typedef
      name: SharpYuvOptions
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/libwebp/sharpyuv/sharpyuv.h
      type: SharpYuvOptions
    union: []
- function_names:
  - ReadPicture
  - RescalePlane
  - DiffScaleChannel
  - SSIMCalculation
  - SSIMGetClipped
  - SSIMScaleChannel
  - ConvertToGray
  - Help
  - main
  source_file: /src/libwebp/extras/get_disto.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SSIM_KERNEL
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/libwebp/extras/get_disto.c
      type_or_value: '3  // total size of the kernel: 2 * SSIM_KERNEL + 1'
    structs:
    - fields:
      - name: w
        type: uint32_t
      - name: xm
        type: uint32_t
      - name: xxm
        type: uint32_t
      item_type: struct
      name: DistoStats
      pos:
        line_end: 104
        line_start: 100
        source_file: /src/libwebp/extras/get_disto.c
    typedefs: []
    union: []
- function_names:
  - WebPGetExtrasVersion
  - WebPImportGray
  - WebPImportRGB565
  - WebPImportRGB4444
  - WebPImportColorMappedARGB
  - WebPUnmultiplyARGB
  - SharpYuvConvertValueToSampledIdx
  - SharpYuvConvertToYuvSharpnessIndex
  - SharpYuvRowToYuvSharpnessIndex
  - SAFE_ALLOC
  - DoEstimateRisk
  - SharpYuvEstimate420Risk
  source_file: /src/libwebp/extras/extras.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XTRA_MAJ_VERSION
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/libwebp/extras/extras.c
      type_or_value: '1'
    - item_type: preproc_def
      name: XTRA_MIN_VERSION
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/libwebp/extras/extras.c
      type_or_value: '6'
    - item_type: preproc_def
      name: XTRA_REV_VERSION
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libwebp/extras/extras.c
      type_or_value: '0'
    - item_type: preproc_def
      name: YUV_FIX
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/libwebp/extras/extras.c
      type_or_value: 16  // fixed-point precision for RGB->YUV
    structs: []
    typedefs: []
    union: []
- function_names:
  - WebPToSDL
  source_file: /src/libwebp/extras/webp_to_sdl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ProcessEvents
  - main
  - main
  source_file: /src/libwebp/extras/vwebp_sdl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/libwebp/extras/webp_quality.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/extras/sharpyuv_risk_table.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/extras/extras.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WEBP_EXTRAS_ABI_VERSION
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/libwebp/extras/extras.h
      type_or_value: 0x0003  // MAJOR(8b) + MINOR(8b)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/extras/sharpyuv_risk_table.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/extras/webp_to_sdl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetBit
  - GET_BIT
  - CONDITIONAL_SKIP
  - VP8EstimateQuality
  source_file: /src/libwebp/extras/quality_estimate.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INVALID_BIT_POS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/libwebp/extras/quality_estimate.c
      type_or_value: (1ull << 63)
    structs: []
    typedefs: []
    union: []
- function_names:
  - ExUtilGetUInt
  - ExUtilGetInt
  - ExUtilGetInts
  - ExUtilGetFloat
  - ResetCommandLineArguments
  - ExUtilDeleteCommandLineArguments
  - ExUtilInitCommandLineArguments
  - ExUtilReadFileToWebPData
  source_file: /src/libwebp/examples/example_util.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_ARGC
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libwebp/examples/example_util.c
      type_or_value: '16384'
    structs: []
    typedefs: []
    union: []
- function_names:
  - StopwatchReset
  - StopwatchReadAndReset
  - StopwatchReset
  - StopwatchReadAndReset
  source_file: /src/libwebp/examples/stopwatch.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Stopwatch
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/libwebp/examples/stopwatch.h
      type: LARGE_INTEGER
    - item_type: typedef
      name: Stopwatch
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/libwebp/examples/stopwatch.h
      type: timeval
    union: []
- function_names:
  - GIFGetBackgroundColor
  - GIFReadGraphicsExtension
  - Remap
  - GIFReadFrame
  - GIFReadLoopCount
  - GIFReadMetadata
  - ClearRectangle
  - GIFClearPic
  - GIFCopyPixels
  - GIFDisposeFrame
  - GIFBlendFrames
  - GIFDisplayError
  - ErrorGIFNotAvailable
  - GIFGetBackgroundColor
  - GIFReadGraphicsExtension
  - GIFReadFrame
  - GIFReadLoopCount
  - GIFReadMetadata
  - GIFDisposeFrame
  - GIFBlendFrames
  - GIFDisplayError
  - GIFClearPic
  - GIFCopyPixels
  source_file: /src/libwebp/examples/gifdec.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GIF_TRANSPARENT_COLOR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/libwebp/examples/gifdec.c
      type_or_value: 0x00000000u
    - item_type: preproc_def
      name: GIF_WHITE_COLOR
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/libwebp/examples/gifdec.c
      type_or_value: 0xffffffffu
    - item_type: preproc_def
      name: GIF_TRANSPARENT_MASK
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/libwebp/examples/gifdec.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: GIF_DISPOSE_MASK
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/libwebp/examples/gifdec.c
      type_or_value: '0x07'
    - item_type: preproc_def
      name: GIF_DISPOSE_SHIFT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libwebp/examples/gifdec.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - SaveOutput
  - Help
  - AllocateExternalBuffer
  - main
  source_file: /src/libwebp/examples/dwebp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/examples/example_util.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: argc
        type: int
      - name: '** argv'
        type: char
      - name: argv_data
        type: WebPData
      - name: own_argv
        type: int
      item_type: struct
      name: CommandLineArguments
      pos:
        line_end: 51
        line_start: 46
        source_file: /src/libwebp/examples/example_util.h
    typedefs: []
    union: []
- function_names:
  - LOG_ERROR
  - LOG_WARN
  - WebPInfoInit
  - GetLE16
  - GetLE24
  - GetLE32
  - ReadLE16
  - ReadLE24
  - ReadLE32
  - ReadFileToWebPData
  - InitMemBuffer
  - MemDataSize
  - GetBuffer
  - Skip
  - ReadMemBufLE32
  - GetBits
  - GetSignedBits
  - GET_BITS
  - GET_SIGNED_BITS
  - ParseLossySegmentHeader
  - ParseLossyFilterHeader
  - ParseLossyHeader
  - LLGetBits
  - LL_GET_BITS
  - ParseLosslessTransform
  - ParseLosslessHeader
  - ParseAlphaHeader
  - ParseRIFFHeader
  - ParseChunk
  - ProcessVP8XChunk
  - ProcessANIMChunk
  - ProcessANMFChunk
  - ProcessImageChunk
  - ProcessALPHChunk
  - ProcessICCPChunk
  - ProcessChunk
  - Validate
  - ShowSummary
  - AnalyzeWebP
  - Help
  - main
  source_file: /src/libwebp/examples/webpinfo.c
  types:
    enum:
    - enumerators:
      - name: CHUNK_VP8
      - name: CHUNK_ANIM
      - name: CHUNK_VP8L
      - name: CHUNK_ALPHA
      - name: CHUNK_VP8X
      - name: CHUNK_ANMF
      - name: CHUNK_ICCP
      - name: CHUNK_EXIF
      - name: CHUNK_XMP
      - name: CHUNK_UNKNOWN
      - name: CHUNK_TYPES
        value: CHUNK_UNKNOWN
      item_type: enum
      name: ChunkID
      pos:
        line_end: 79
        line_start: 67
        source_file: /src/libwebp/examples/webpinfo.c
    preproc_defs:
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/libwebp/examples/webpinfo.c
      type_or_value: _snprintf
    structs:
    - fields:
      - name: start
        type: size_t
      - name: end
        type: size_t
      - name: '* buf'
        type: uint8_t
      item_type: struct
      name: MemBuffer
      pos:
        line_end: 85
        line_start: 81
        source_file: /src/libwebp/examples/webpinfo.c
    - fields:
      - name: offset
        type: size_t
      - name: size
        type: size_t
      - name: '* payload'
        type: uint8_t
      - name: id
        type: ChunkID
      item_type: struct
      name: ChunkData
      pos:
        line_end: 92
        line_start: 87
        source_file: /src/libwebp/examples/webpinfo.c
    - fields:
      - name: canvas_width
        type: int
      - name: canvas_height
        type: int
      - name: loop_count
        type: int
      - name: num_frames
        type: int
      - name: chunk_counts[CHUNK_TYPES]
        type: int
      - name: anmf_subchunk_counts[3]
        type: int
      - name: bgcolor
        type: uint32_t
      - name: feature_flags
        type: int
      - name: has_alpha
        type: int
      - name: frame_width
        type: int
      - name: anim_frame_data_size
        type: size_t
      - name: is_processing_anim_frame
        type: int
      - name: quiet
        type: int
      - name: num_warnings
        type: int
      - name: parse_bitstream
        type: int
      item_type: struct
      name: WebPInfo
      pos:
        line_end: 112
        line_start: 94
        source_file: /src/libwebp/examples/webpinfo.c
    typedefs: []
    union: []
- function_names:
  - Help
  - main
  source_file: /src/libwebp/examples/anim_dump.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/libwebp/examples/anim_dump.c
      type_or_value: _snprintf
    structs: []
    typedefs: []
    union: []
- function_names:
  - DGifOpenFileUnicode
  source_file: /src/libwebp/examples/unicode_gif.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STDIN_FILENO
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/libwebp/examples/unicode_gif.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Help
  - ReadImage
  - SetLoopCount
  - main
  source_file: /src/libwebp/examples/img2webp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LOCAL_GIF_PREREQ
  - LOCAL_GIF_PREREQ
  source_file: /src/libwebp/examples/gifdec.h
  types:
    enum:
    - enumerators:
      - name: GIF_DISPOSE_NONE
      - name: GIF_DISPOSE_RESTORE_PREVIOUS
      - name: GIF_DISPOSE_BACKGROUND
      item_type: enum
      name: GIFDisposeMethod
      pos:
        line_end: 45
        line_start: 41
        source_file: /src/libwebp/examples/gifdec.h
    preproc_defs:
    - item_type: preproc_def
      name: LOCAL_GIF_VERSION
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/libwebp/examples/gifdec.h
      type_or_value: ((GIFLIB_MAJOR << 8) | GIFLIB_MINOR)
    - item_type: preproc_def
      name: LOCAL_GIF_VERSION
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libwebp/examples/gifdec.h
      type_or_value: '0'
    - item_type: preproc_def
      name: GIF_INDEX_INVALID
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/libwebp/examples/gifdec.h
      type_or_value: (-1)
    structs:
    - fields:
      - name: x_offset
        type: int
      item_type: struct
      name: GIFFrameRect
      pos:
        line_end: 49
        line_start: 47
        source_file: /src/libwebp/examples/gifdec.h
    typedefs:
    - item_type: typedef
      name: GifByteType
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/libwebp/examples/gifdec.h
      type: unsigned char
    union: []
- function_names:
  - ReadYUV
  - ReadPicture
  - ReadPicture
  - AllocExtraInfo
  - PrintByteCount
  - PrintPercents
  - PrintValues
  - PrintFullLosslessInfo
  - PrintExtraInfoLossless
  - PrintExtraInfoLossy
  - PrintMapInfo
  - MyWriter
  - DumpPicture
  - PrintMetadataInfo
  - WriteLE
  - WriteLE24
  - WriteLE32
  - WriteMetadataChunk
  - UpdateFlagsAndSize
  - WriteWebPWithMetadata
  - ApplyResizeMode
  - ProgressReport
  - HelpShort
  - HelpLong
  - main
  source_file: /src/libwebp/examples/cwebp.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* option'
        type: char
      - name: flag
        type: int
      item_type: struct
      name: "kTokens[] = {\n          {\"all\", METADATA_ALL},    //\n          {\"none\",
        0},              //\n          {\"exif\", METADATA_EXIF},  //\n          {\"icc\",
        METADATA_ICC},    //\n          {\"xmp\", METADATA_XMP},    //\n      }"
      pos:
        line_end: 945
        line_start: 942
        source_file: /src/libwebp/examples/cwebp.c
    - fields:
      - name: '* const payload'
        type: MetadataPayload
      - name: flag
        type: int
      item_type: struct
      name: '*iter'
      pos:
        line_end: 1261
        line_start: 1258
        source_file: /src/libwebp/examples/cwebp.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/examples/anim_util.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* rgba'
        type: uint8_t
      - name: duration
        type: int
      - name: is_key_frame
        type: int
      item_type: struct
      name: DecodedFrame
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/libwebp/examples/anim_util.h
    - fields:
      - name: format
        type: AnimatedFileFormat
      - name: canvas_width
        type: uint32_t
      - name: canvas_height
        type: uint32_t
      - name: bgcolor
        type: uint32_t
      - name: loop_count
        type: uint32_t
      - name: '* frames'
        type: DecodedFrame
      - name: num_frames
        type: uint32_t
      - name: '* raw_mem'
        type: void
      item_type: struct
      name: AnimatedImage
      pos:
        line_end: 41
        line_start: 32
        source_file: /src/libwebp/examples/anim_util.h
    typedefs: []
    union: []
- function_names:
  - ErrorString
  - Help
  - main
  - main
  source_file: /src/libwebp/examples/gif2webp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STDIN_FILENO
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/libwebp/examples/gif2webp.c
      type_or_value: '0'
    structs:
    - fields:
      - name: '* option'
        type: char
      - name: flag
        type: int
      item_type: struct
      name: "kTokens[] = {\n          {\"all\", METADATA_ALL},\n          {\"none\",
        0},\n          {\"icc\", METADATA_ICC},\n          {\"xmp\", METADATA_XMP},\n
        \     }"
      pos:
        line_end: 204
        line_start: 201
        source_file: /src/libwebp/examples/gif2webp.c
    typedefs: []
    union: []
- function_names:
  - ClearPreviousPic
  - ClearParams
  - ClearPreviousFrame
  - ApplyColorProfile
  - Decode
  - decode_callback
  - HandleKey
  - HandleReshape
  - PrintString
  - PrintStringW
  - GetColorf
  - DrawCheckerBoard
  - DrawBackground
  - DrawBackgroundScissored
  - HandleDisplay
  - StartDisplay
  - Help
  - main
  - main
  source_file: /src/libwebp/examples/vwebp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _POSIX_C_SOURCE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/libwebp/examples/vwebp.c
      type_or_value: 200112L  // for setenv
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/libwebp/examples/vwebp.c
      type_or_value: _snprintf
    structs:
    - fields:
      - name: has_animation
        type: int
      - name: has_color_profile
        type: int
      - name: done
        type: int
      - name: decoding_error
        type: int
      - name: print_info
        type: int
      - name: only_deltas
        type: int
      - name: use_color_profile
        type: int
      - name: draw_anim_background_color
        type: int
      - name: canvas_width
        type: int
      - name: loop_count
        type: int
      - name: bg_color
        type: uint32_t
      - name: '* file_name'
        type: char
      - name: data
        type: WebPData
      - name: config
        type: WebPDecoderConfig
      - name: '* pic'
        type: WebPDecBuffer
      - name: '* dmux'
        type: WebPDemuxer
      - name: curr_frame
        type: WebPIterator
      - name: prev_frame
        type: WebPIterator
      - name: iccp
        type: WebPChunkIterator
      - name: viewport_width
        type: int
      item_type: struct
      name: kParams
      pos:
        line_end: 74
        line_start: 51
        source_file: /src/libwebp/examples/vwebp.c
    typedefs: []
    union: []
- function_names:
  - INIT_WARGV
  - GET_WARGV
  - GET_WARGV_SHIFTED
  - GET_WARGV_OR_NULL
  - FREE_WARGV
  - LOCAL_FREE
  - TO_W_CHAR
  - WFOPEN
  - WFPRINTF
  - WPRINTF
  - WSTRLEN
  - WSTRCMP
  - WSTRRCHR
  - WSNPRINTF
  - GET_WARGV
  - GET_WARGV_SHIFTED
  - GET_WARGV_OR_NULL
  - TO_W_CHAR
  - WFOPEN
  - WPRINTF
  - WFPRINTF
  - WSTRLEN
  - WSTRCMP
  - WSTRRCHR
  - WSNPRINTF
  - FREE_WARGV_AND_RETURN
  source_file: /src/libwebp/examples/unicode.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: W_CHAR
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/libwebp/examples/unicode.h
      type_or_value: wchar_t  // WCHAR without underscore might already be defined.
    - item_type: preproc_def
      name: W_CHAR
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libwebp/examples/unicode.h
      type_or_value: char
    structs: []
    typedefs: []
    union: []
- function_names:
  - AdditionWillOverflow
  - FramesAreEqual
  - PixelsAreSimilar
  - FramesAreSimilar
  - MinimizeAnimationFrames
  - CompareValues
  - CompareBackgroundColor
  - CompareAnimatedImagePair
  - Help
  - main
  source_file: /src/libwebp/examples/anim_diff.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/libwebp/examples/anim_diff.c
      type_or_value: _snprintf
    structs: []
    typedefs: []
    union: []
- function_names:
  - IsFullFrame
  - CheckSizeForOverflow
  - AllocateFrames
  - ClearAnimatedImage
  - CheckMultiplicationOverflow
  - CheckAdditionOverflow
  - ZeroFillCanvas
  - ZeroFillFrameRect
  - CopyCanvas
  - CopyFrameRectangle
  - CleanupTransparentPixels
  - DumpFrame
  - IsWebP
  - ReadAnimatedWebP
  - MemoryReadGIF
  - IsGIF
  - LOCAL_GIF_PREREQ
  - LOCAL_GIF_PREREQ
  - DGifExtensionToGCB
  - DGifSavedExtensionToGCB
  - DGifOpenFileName
  - DGifCloseFile
  - IsKeyFrameGIF
  - GetTransparentIndexGIF
  - GetBackgroundColorGIF
  - GetLoopCountGIF
  - GetFrameDurationGIF
  - CoversFrameGIF
  - RemapPixelsGIF
  - ReadFrameGIF
  - ReadAnimatedGIF
  - IsGIF
  - ReadAnimatedGIF
  - ReadAnimatedImage
  - ReadAnimatedImageFromMemory
  - Accumulate
  - GetDiffAndPSNR
  - GetAnimatedImageVersions
  source_file: /src/libwebp/examples/anim_util.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/libwebp/examples/anim_util.c
      type_or_value: _snprintf
    - item_type: preproc_def
      name: LOCAL_GIF_VERSION
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/libwebp/examples/anim_util.c
      type_or_value: ((GIFLIB_MAJOR << 8) | GIFLIB_MINOR)
    - item_type: preproc_def
      name: LOCAL_GIF_VERSION
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/libwebp/examples/anim_util.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DISPOSAL_UNSPECIFIED
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/libwebp/examples/anim_util.c
      type_or_value: 0  // No disposal specified
    - item_type: preproc_def
      name: DISPOSE_DO_NOT
      pos:
        line_end: 398
        line_start: 397
        source_file: /src/libwebp/examples/anim_util.c
      type_or_value: 1        // Leave image in place
    - item_type: preproc_def
      name: DISPOSE_BACKGROUND
      pos:
        line_end: 399
        line_start: 398
        source_file: /src/libwebp/examples/anim_util.c
      type_or_value: 2    // Set area to background color
    - item_type: preproc_def
      name: DISPOSE_PREVIOUS
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/libwebp/examples/anim_util.c
      type_or_value: 3      // Restore to previous content
    - item_type: preproc_def
      name: NO_TRANSPARENT_COLOR
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/libwebp/examples/anim_util.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: CONTINUE_EXT_FUNC_CODE
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/libwebp/examples/anim_util.c
      type_or_value: '0x00'
    structs:
    - fields:
      - name: '* data'
        type: uint8_t
      - name: size
        type: size_t
      - name: offset
        type: size_t
      item_type: struct
      name: GifBufferContext
      pos:
        line_end: 360
        line_start: 356
        source_file: /src/libwebp/examples/anim_util.c
    - fields:
      - name: DisposalMode
        type: int
      - name: UserInputFlag
        type: int
      - name: DelayTime
        type: int
      - name: TransparentColor
        type: int
      item_type: struct
      name: GraphicsControlBlock
      pos:
        line_end: 404
        line_start: 394
        source_file: /src/libwebp/examples/anim_util.c
    typedefs: []
    union: []
- function_names:
  - CountOccurrences
  - ErrorString
  - RETURN_IF_ERROR
  - RETURN_IF_ERROR3
  - ERROR_GOTO1
  - ERROR_GOTO2
  - ERROR_GOTO3
  - DisplayInfo
  - PrintHelp
  - WarnAboutOddOffset
  - CreateMux
  - WriteData
  - WriteWebP
  - DuplicateMuxHeader
  - ParseFrameArgs
  - ParseBgcolorArgs
  - DeleteConfig
  - ValidateCommandLine
  - CHECK_NUM_ARGS_AT_LEAST
  - CHECK_NUM_ARGS_AT_MOST
  - CHECK_NUM_ARGS_EXACTLY
  - ParseCommandLine
  - ValidateConfig
  - InitializeConfig
  - GetFrame
  - Process
  - main
  source_file: /src/libwebp/examples/webpmux.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ACTION_IS_NIL
      pos:
        line_end: 621
        line_start: 620
        source_file: /src/libwebp/examples/webpmux.c
      type_or_value: (config->action_type == NIL_ACTION)
    - item_type: preproc_def
      name: FEATURETYPE_IS_NIL
      pos:
        line_end: 623
        line_start: 622
        source_file: /src/libwebp/examples/webpmux.c
      type_or_value: (config->type == NIL_FEATURE)
    structs:
    - fields:
      - name: subtype
        type: FeatureSubType
      - name: '* filename'
        type: char
      - name: '* params'
        type: char
      item_type: struct
      name: FeatureArg
      pos:
        line_end: 94
        line_start: 90
        source_file: /src/libwebp/examples/webpmux.c
    - fields:
      - name: cmd_args
        type: CommandLineArguments
      - name: action_type
        type: ActionType
      - name: '* input'
        type: char
      - name: '* output'
        type: char
      - name: type
        type: FeatureType
      - name: '* args'
        type: FeatureArg
      - name: arg_count
        type: int
      item_type: struct
      name: Config
      pos:
        line_end: 123
        line_start: 114
        source_file: /src/libwebp/examples/webpmux.c
    typedefs: []
    union: []
- function_names:
  - SWIGUNUSEDPARM
  - swiggo_size_assert_eq
  - swiggo_size_assert
  source_file: /src/libwebp/swig/libwebp_go_wrap.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SWIGMODULE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/libwebp/swig/libwebp_go_wrap.c
      type_or_value: libwebp
    - item_type: preproc_def
      name: SWIGTEMPLATEDISAMBIGUATOR
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/libwebp/swig/libwebp_go_wrap.c
      type_or_value: template
    - item_type: preproc_def
      name: SWIGTEMPLATEDISAMBIGUATOR
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/libwebp/swig/libwebp_go_wrap.c
      type_or_value: template
    - item_type: preproc_def
      name: SWIGINLINE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/libwebp/swig/libwebp_go_wrap.c
      type_or_value: inline
    - item_type: preproc_def
      name: SWIGUNUSED
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/libwebp/swig/libwebp_go_wrap.c
      type_or_value: __attribute__ ((__unused__))
    - item_type: preproc_def
      name: SWIGUNUSED
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/libwebp/swig/libwebp_go_wrap.c
      type_or_value: __attribute__ ((__unused__))
    - item_type: preproc_def
      name: SWIGINTERN
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libwebp/swig/libwebp_go_wrap.c
      type_or_value: static SWIGUNUSED
    - item_type: preproc_def
      name: SWIGINTERNINLINE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libwebp/swig/libwebp_go_wrap.c
      type_or_value: SWIGINTERN SWIGINLINE
    - item_type: preproc_def
      name: SWIGEXPORT
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libwebp/swig/libwebp_go_wrap.c
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: SWIGEXPORT
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libwebp/swig/libwebp_go_wrap.c
      type_or_value: __attribute__ ((visibility("default")))
    - item_type: preproc_def
      name: SWIGSTDCALL
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/libwebp/swig/libwebp_go_wrap.c
      type_or_value: __stdcall
    structs:
    - fields:
      - name: '*p'
        type: char
      - name: n
        type: intgo
      item_type: struct
      name: _gostring_
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/libwebp/swig/libwebp_go_wrap.c
    - fields:
      - name: '* array'
        type: void
      - name: len
        type: intgo
      - name: cap
        type: intgo
      item_type: struct
      name: _goslice_
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/libwebp/swig/libwebp_go_wrap.c
    typedefs:
    - item_type: typedef
      name: intgo
      pos:
        line_end: 128
        line_start: 128
        source_file: /src/libwebp/swig/libwebp_go_wrap.c
      type: long long
    - item_type: typedef
      name: uintgo
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/libwebp/swig/libwebp_go_wrap.c
      type: unsigned long long
    union: []
- function_names:
  - SWIGUNUSEDPARM
  - SWIG_JavaThrowException
  - SWIG_contract_assert
  - SWIG_JavaException
  - SWIG_JavaArrayInSchar
  - SWIG_JavaArrayArgoutSchar
  - SWIG_JavaArrayOutSchar
  - SWIG_JavaArrayInUchar
  - SWIG_JavaArrayArgoutUchar
  - SWIG_JavaArrayOutUchar
  - SWIG_JavaArrayInShort
  - SWIG_JavaArrayArgoutShort
  - SWIG_JavaArrayOutShort
  - SWIG_JavaArrayInUshort
  - SWIG_JavaArrayArgoutUshort
  - SWIG_JavaArrayOutUshort
  - SWIG_JavaArrayInInt
  - SWIG_JavaArrayArgoutInt
  - SWIG_JavaArrayOutInt
  - SWIG_JavaArrayInUint
  - SWIG_JavaArrayArgoutUint
  - SWIG_JavaArrayOutUint
  - SWIG_JavaArrayInLong
  - SWIG_JavaArrayArgoutLong
  - SWIG_JavaArrayOutLong
  - SWIG_JavaArrayInUlong
  - SWIG_JavaArrayArgoutUlong
  - SWIG_JavaArrayOutUlong
  - SWIG_JavaArrayInLonglong
  - SWIG_JavaArrayArgoutLonglong
  - SWIG_JavaArrayOutLonglong
  - SWIG_JavaArrayInFloat
  - SWIG_JavaArrayArgoutFloat
  - SWIG_JavaArrayOutFloat
  - SWIG_JavaArrayInDouble
  - SWIG_JavaArrayArgoutDouble
  - SWIG_JavaArrayOutDouble
  - SWIG_JavaArrayInUint8
  - SWIG_JavaArrayArgoutUint8
  - SWIG_JavaArrayOutUint8
  - ReturnedBufferSize
  - EncodeLossy
  - EncodeLossless
  - LOSSY_WRAPPER
  - LOSSLESS_WRAPPER
  - Java_com_google_webp_libwebpJNI_WebPGetDecoderVersion
  - Java_com_google_webp_libwebpJNI_WebPGetInfo
  - Java_com_google_webp_libwebpJNI_WebPDecodeRGB
  - Java_com_google_webp_libwebpJNI_WebPDecodeRGBA
  - Java_com_google_webp_libwebpJNI_WebPDecodeARGB
  - Java_com_google_webp_libwebpJNI_WebPDecodeBGR
  - Java_com_google_webp_libwebpJNI_WebPDecodeBGRA
  - Java_com_google_webp_libwebpJNI_WebPGetEncoderVersion
  - Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeRGB
  - Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeBGR
  - Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeRGBA
  - Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeBGRA
  - Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessRGB
  - Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessBGR
  - Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessRGBA
  - Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessBGRA
  source_file: /src/libwebp/swig/libwebp_java_wrap.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SWIGTEMPLATEDISAMBIGUATOR
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: template
    - item_type: preproc_def
      name: SWIGTEMPLATEDISAMBIGUATOR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: template
    - item_type: preproc_def
      name: SWIGINLINE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: inline
    - item_type: preproc_def
      name: SWIGUNUSED
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: __attribute__ ((__unused__))
    - item_type: preproc_def
      name: SWIGUNUSED
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: __attribute__ ((__unused__))
    - item_type: preproc_def
      name: SWIGINTERN
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: static SWIGUNUSED
    - item_type: preproc_def
      name: SWIGINTERNINLINE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: SWIGINTERN SWIGINLINE
    - item_type: preproc_def
      name: SWIGEXPORT
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: SWIGEXPORT
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: __attribute__ ((visibility("default")))
    - item_type: preproc_def
      name: SWIGSTDCALL
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: __stdcall
    - item_type: preproc_def
      name: SWIG_UnknownError
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: SWIG_IOError
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: '-2'
    - item_type: preproc_def
      name: SWIG_RuntimeError
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: '-3'
    - item_type: preproc_def
      name: SWIG_IndexError
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: '-4'
    - item_type: preproc_def
      name: SWIG_TypeError
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: '-5'
    - item_type: preproc_def
      name: SWIG_DivisionByZero
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: '-6'
    - item_type: preproc_def
      name: SWIG_OverflowError
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: '-7'
    - item_type: preproc_def
      name: SWIG_SyntaxError
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: '-8'
    - item_type: preproc_def
      name: SWIG_ValueError
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: '-9'
    - item_type: preproc_def
      name: SWIG_SystemError
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: '-10'
    - item_type: preproc_def
      name: SWIG_AttributeError
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: '-11'
    - item_type: preproc_def
      name: SWIG_MemoryError
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: '-12'
    - item_type: preproc_def
      name: SWIG_NullReferenceError
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: '-13'
    - item_type: preproc_def
      name: FillMeInAsSizeCannotBeDeterminedAutomatically
      pos:
        line_end: 870
        line_start: 868
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type_or_value: '(result ? (jint)ReturnedBufferSize(__FUNCTION__, arg3, arg4)
        : 0)'
    structs:
    - fields:
      - name: code
        type: SWIG_JavaExceptionCodes
      - name: '*java_exception'
        type: char
      item_type: struct
      name: SWIG_JavaExceptions_t
      pos:
        line_end: 155
        line_start: 152
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
    - fields:
      - name: '* function'
        type: char
      - name: size_multiplier
        type: int
      item_type: struct
      name: sizemap
      pos:
        line_end: 877
        line_start: 874
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
    typedefs:
    - item_type: typedef
      name: __int64
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type: long long
    - item_type: typedef
      name: "(*WebPEncodeFunction)(const uint8_t* rgb,\n                                     int
        width, int height, int stride,\n                                     float
        quality_factor, uint8_t** output)"
      pos:
        line_end: 926
        line_start: 924
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type: size_t
    - item_type: typedef
      name: "(*WebPEncodeLosslessFunction)(const uint8_t* rgb,\n                                             int
        width, int height, int stride,\n                                             uint8_t**
        output)"
      pos:
        line_end: 929
        line_start: 927
        source_file: /src/libwebp/swig/libwebp_java_wrap.c
      type: size_t
    union: []
- function_names:
  - SWIGUNUSEDPARM
  - SWIG_QUOTE_STRING
  - SWIG_EXPAND_AND_QUOTE_STRING
  - SWIG_IsOK
  - SWIG_ArgError
  - SWIG_AddNewMask
  - SWIG_DelNewMask
  - SWIG_IsNewObj
  - SWIG_AddTmpMask
  - SWIG_DelTmpMask
  - SWIG_IsTmpObj
  - SWIG_CastRank
  - SWIG_AddCast
  - SWIG_CheckState
  - SWIG_AddCast
  - SWIG_CheckState
  - SWIG_TypeNameComp
  - SWIG_TypeCmp
  - SWIG_TypeEquiv
  - 'swig_cast_info *

    SWIG_TypeCheck(const char *c, swig_type_info *ty)'
  - 'swig_cast_info *

    SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty)'
  - SWIG_TypeCast
  - 'swig_type_info *

    SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr)'
  - SWIG_TypeName
  - SWIG_TypePrettyName
  - SWIG_TypeClientData
  - SWIG_TypeNewClientData
  - "swig_type_info *\nSWIG_MangledTypeQueryModule(swig_module_info *start,\n                            swig_module_info
    *end,\n                            const char *name)"
  - "swig_type_info *\nSWIG_TypeQueryModule(swig_module_info *start,\n                     swig_module_info
    *end,\n                     const char *name)"
  - SWIG_PackData
  - SWIG_UnpackData
  - SWIG_PackVoidPtr
  - SWIG_UnpackVoidPtr
  - SWIG_PackDataName
  - SWIG_UnpackDataName
  - PyClass_Check
  - PyInt_Check
  - PyInt_AsLong
  - PyInt_FromLong
  - PyInt_FromSize_t
  - PyString_Check
  - PyString_FromString
  - PyString_FromStringAndSize
  - PyString_Format
  - PyString_AsString
  - PyString_Size
  - PyString_InternFromString
  - PyString_AS_STRING
  - _PyLong_FromSsize_t
  - Py_TYPE
  - SWIG_Python_str_AsChar
  - SWIG_Python_str_DelForPy3
  - SWIG_Python_str_FromChar
  - PyString_FromFormat
  - PyString_AsStringAndSize
  - PyBool_FromLong
  - PyNumber_AsSsize_t
  - PyInt_FromSize_t
  - Py_VISIT
  - PyDescr_TYPE
  - PyDescr_NAME
  - SWIG_Python_ErrorType
  - SWIG_Python_AddErrorMsg
  - SWIG_Python_Thread_Block::end
  - SWIG_Python_Thread_Block::SWIG_Python_Thread_Block
  - ~SWIG_Python_Thread_Block()
  - SWIG_Python_Thread_Allow::end
  - SWIG_Python_Thread_Allow::SWIG_Python_Thread_Allow
  - ~SWIG_Python_Thread_Allow()
  - SWIG_PyInstanceMethod_New
  - SWIG_PyInstanceMethod_New
  - SWIG_Python_ConvertPtr
  - SWIG_ConvertPtr
  - SWIG_ConvertPtrAndOwn
  - SWIG_NewPointerObj
  - SWIG_NewPointerObj
  - SWIG_InternalNewPointerObj
  - SWIG_CheckImplicit
  - SWIG_AcquirePtr
  - SWIG_ConvertPacked
  - SWIG_NewPackedObj
  - SWIG_ConvertInstance
  - SWIG_NewInstanceObj
  - SWIG_ConvertFunctionPtr
  - SWIG_NewFunctionPtrObj
  - SWIG_ConvertMember
  - SWIG_NewMemberObj
  - SWIG_GetModule
  - SWIG_SetModule
  - SWIG_NewClientData
  - SWIG_ErrorType
  - SWIG_Error
  - SWIG_Python_SetErrorObj
  - SWIG_Python_SetErrorMsg
  - SWIG_Python_Raise
  - SwigPyBuiltin_AddPublicSymbol
  - SWIG_Python_SetConstant
  - SWIG_Python_SetConstant
  - SWIG_Python_AppendOutput
  - SWIG_Python_UnpackTuple
  - SWIG_Python_CallFunctor
  - SWIG_Python_CallFunctor
  - SWIG_STATIC_POINTER
  - SWIG_STATIC_POINTER
  - _SWIG_Py_None
  - SWIG_Py_None
  - SWIG_Py_Void
  - SWIG_Python_CheckImplicit
  - SWIG_Python_ExceptionType
  - 'SwigPyClientData *

    SwigPyClientData_New(PyObject* obj)'
  - SwigPyClientData_Del
  - SwigPyObject_get___dict__
  - SwigPyObject_long
  - SwigPyObject_format
  - SwigPyObject_oct
  - SwigPyObject_hex
  - SwigPyObject_repr
  - SwigPyObject_repr2
  - SwigPyObject_compare
  - SwigPyObject_richcompare
  - 'PyTypeObject*

    SwigPyObject_type(void)'
  - 'PyTypeObject*

    SwigPyObject_type(void)'
  - SwigPyObject_Check
  - SwigPyObject_dealloc
  - SwigPyObject_append
  - SwigPyObject_next
  - SwigPyObject_disown
  - SwigPyObject_acquire
  - SwigPyObject_disown2
  - SwigPyObject_acquire2
  - SwigPyObject_getattr
  - 'PyTypeObject*

    SwigPyObject_TypeOnce(void)'
  - SwigPyObject_New
  - SwigPyPacked_print
  - SwigPyPacked_repr
  - SwigPyPacked_str
  - SwigPyPacked_compare
  - 'PyTypeObject*

    SwigPyPacked_type(void)'
  - SwigPyPacked_Check
  - SwigPyPacked_dealloc
  - 'PyTypeObject*

    SwigPyPacked_TypeOnce(void)'
  - SwigPyPacked_New
  - 'swig_type_info *

    SwigPyPacked_UnpackData(PyObject *obj, void *ptr, size_t size)'
  - _SWIG_This
  - SWIG_This
  - 'SwigPyObject *

    SWIG_Python_GetSwigThis(PyObject *pyobj)'
  - SWIG_Python_AcquirePtr
  - SWIG_Python_ConvertPtrAndOwn
  - SWIG_Python_ConvertFunctionPtr
  - SWIG_Python_ConvertPacked
  - SWIG_Python_NewShadowInstance
  - SWIG_Python_SetSwigThis
  - SWIG_Python_InitShadowInstance
  - SWIG_Python_NewPointerObj
  - SWIG_Python_NewPackedObj
  - 'swig_module_info *

    SWIG_Python_GetModule(void *SWIGUNUSEDPARM(clientdata))'
  - PyModule_AddObject
  - SWIG_Python_DestroyModule
  - SWIG_Python_SetModule
  - SWIG_Python_TypeCache
  - 'swig_type_info *

    SWIG_Python_TypeQuery(const char *type)'
  - SWIG_arg_fail
  - SWIG_MustGetPtr
  - SWIG_Python_AddErrMesg
  - SWIG_Python_ArgFail
  - SwigPyObject_GetDesc
  - SWIG_Python_TypeError
  - SWIG_Python_MustGetPtr
  - SWIG_exception_fail
  - SWIG_contract_assert
  - SWIG_exception
  - SWIG_TypeQuery
  - SWIG_MangledTypeQuery
  - SWIG_as_voidptr
  - SWIG_as_voidptrptr
  - SWIG_From_int
  - 'swig_type_info*

    SWIG_pchar_descriptor(void)'
  - SWIG_AsVal_double
  - SWIG_CanCastAsInteger
  - SWIG_AsVal_unsigned_SS_long
  - SWIG_AsVal_unsigned_SS_long_SS_long
  - SWIG_AsVal_size_t
  - ReturnedBufferSize
  - EncodeLossy
  - EncodeLossless
  - LOSSY_WRAPPER
  - LOSSLESS_WRAPPER
  - SWIG_AsVal_long
  - SWIG_AsVal_int
  - SWIG_isfinite
  - SWIG_isfinite_func
  - SWIG_isfinite
  - SWIG_isfinite
  - SWIG_isfinite
  - SWIG_Float_Overflow_Check
  - SWIG_Float_Overflow_Check
  - SWIG_AsVal_float
  - _wrap_WebPGetDecoderVersion
  - _wrap_WebPGetInfo
  - _wrap_WebPDecodeRGB
  - _wrap_WebPDecodeRGBA
  - _wrap_WebPDecodeARGB
  - _wrap_WebPDecodeBGR
  - _wrap_WebPDecodeBGRA
  - _wrap_WebPGetEncoderVersion
  - _wrap_wrap_WebPEncodeRGB
  - _wrap_wrap_WebPEncodeBGR
  - _wrap_wrap_WebPEncodeRGBA
  - _wrap_wrap_WebPEncodeBGRA
  - _wrap_wrap_WebPEncodeLosslessRGB
  - _wrap_wrap_WebPEncodeLosslessBGR
  - _wrap_wrap_WebPEncodeLosslessRGBA
  - _wrap_wrap_WebPEncodeLosslessBGRA
  - SWIG_InitializeModule
  - SWIG_PropagateClientData
  - SWIG_newvarlink
  - SWIG_addvarlink
  - SWIG_InstallConstants
  - swig_varlink_repr
  - swig_varlink_str
  - swig_varlink_print
  - swig_varlink_dealloc
  - swig_varlink_getattr
  - swig_varlink_setattr
  - "PyTypeObject*\n  swig_varlink_type(void)"
  - SWIG_Python_newvarlink
  - SWIG_Python_addvarlink
  - SWIG_globals
  - SWIG_Python_InstallConstants
  - SWIG_Python_FixMethods
  source_file: /src/libwebp/swig/libwebp_python_wrap.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SWIGTEMPLATEDISAMBIGUATOR
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: template
    - item_type: preproc_def
      name: SWIGTEMPLATEDISAMBIGUATOR
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: template
    - item_type: preproc_def
      name: SWIGINLINE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: inline
    - item_type: preproc_def
      name: SWIGUNUSED
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: __attribute__ ((__unused__))
    - item_type: preproc_def
      name: SWIGUNUSED
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: __attribute__ ((__unused__))
    - item_type: preproc_def
      name: SWIGINTERN
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: static SWIGUNUSED
    - item_type: preproc_def
      name: SWIGINTERNINLINE
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: SWIGINTERN SWIGINLINE
    - item_type: preproc_def
      name: SWIGEXPORT
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: SWIGEXPORT
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: __attribute__ ((visibility("default")))
    - item_type: preproc_def
      name: SWIGSTDCALL
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: __stdcall
    - item_type: preproc_def
      name: __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SWIG_RUNTIME_VERSION
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '"4"'
    - item_type: preproc_def
      name: SWIG_TYPE_TABLE_NAME
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
    - item_type: preproc_def
      name: SWIGRUNTIME
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: SWIGINTERN
    - item_type: preproc_def
      name: SWIGRUNTIMEINLINE
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: SWIGRUNTIME SWIGINLINE
    - item_type: preproc_def
      name: SWIG_BUFFER_SIZE
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: SWIG_POINTER_DISOWN
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: SWIG_CAST_NEW_MEMORY
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: SWIG_POINTER_OWN
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: SWIG_OK
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: (0)
    - item_type: preproc_def
      name: SWIG_ERROR
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: (-1)
    - item_type: preproc_def
      name: SWIG_CASTRANKLIMIT
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: (1 << 8)
    - item_type: preproc_def
      name: SWIG_NEWOBJMASK
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: (SWIG_CASTRANKLIMIT  << 1)
    - item_type: preproc_def
      name: SWIG_TMPOBJMASK
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: (SWIG_NEWOBJMASK << 1)
    - item_type: preproc_def
      name: SWIG_BADOBJ
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: (SWIG_ERROR)
    - item_type: preproc_def
      name: SWIG_OLDOBJ
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: (SWIG_OK)
    - item_type: preproc_def
      name: SWIG_NEWOBJ
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: (SWIG_OK | SWIG_NEWOBJMASK)
    - item_type: preproc_def
      name: SWIG_TMPOBJ
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: (SWIG_OK | SWIG_TMPOBJMASK)
    - item_type: preproc_def
      name: SWIG_TypeRank
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: unsigned long
    - item_type: preproc_def
      name: SWIG_MAXCASTRANK
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: (2)
    - item_type: preproc_def
      name: SWIG_CASTRANKMASK
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: ((SWIG_CASTRANKLIMIT) -1)
    - item_type: preproc_def
      name: SWIG_UnknownError
      pos:
        line_end: 732
        line_start: 731
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: SWIG_IOError
      pos:
        line_end: 733
        line_start: 732
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '-2'
    - item_type: preproc_def
      name: SWIG_RuntimeError
      pos:
        line_end: 734
        line_start: 733
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '-3'
    - item_type: preproc_def
      name: SWIG_IndexError
      pos:
        line_end: 735
        line_start: 734
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '-4'
    - item_type: preproc_def
      name: SWIG_TypeError
      pos:
        line_end: 736
        line_start: 735
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '-5'
    - item_type: preproc_def
      name: SWIG_DivisionByZero
      pos:
        line_end: 737
        line_start: 736
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '-6'
    - item_type: preproc_def
      name: SWIG_OverflowError
      pos:
        line_end: 738
        line_start: 737
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '-7'
    - item_type: preproc_def
      name: SWIG_SyntaxError
      pos:
        line_end: 739
        line_start: 738
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '-8'
    - item_type: preproc_def
      name: SWIG_ValueError
      pos:
        line_end: 740
        line_start: 739
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '-9'
    - item_type: preproc_def
      name: SWIG_SystemError
      pos:
        line_end: 741
        line_start: 740
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '-10'
    - item_type: preproc_def
      name: SWIG_AttributeError
      pos:
        line_end: 742
        line_start: 741
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '-11'
    - item_type: preproc_def
      name: SWIG_MemoryError
      pos:
        line_end: 743
        line_start: 742
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '-12'
    - item_type: preproc_def
      name: SWIG_NullReferenceError
      pos:
        line_end: 744
        line_start: 743
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '-13'
    - item_type: preproc_def
      name: Py_TPFLAGS_HAVE_CLASS
      pos:
        line_end: 763
        line_start: 762
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: Py_TPFLAGS_BASETYPE
    - item_type: preproc_def
      name: SWIG_Python_str_FromFormat
      pos:
        line_end: 776
        line_start: 775
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: PyUnicode_FromFormat
    - item_type: preproc_def
      name: SWIG_Python_str_FromFormat
      pos:
        line_end: 778
        line_start: 777
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: PyString_FromFormat
    - item_type: preproc_def
      name: PyOS_snprintf
      pos:
        line_end: 823
        line_start: 822
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: _snprintf
    - item_type: preproc_def
      name: PyOS_snprintf
      pos:
        line_end: 825
        line_start: 824
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: snprintf
    - item_type: preproc_def
      name: SWIG_PYBUFFER_SIZE
      pos:
        line_end: 833
        line_start: 832
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: PyObject_DEL
      pos:
        line_end: 849
        line_start: 848
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: PyObject_Del
    - item_type: preproc_def
      name: PyExc_StopIteration
      pos:
        line_end: 855
        line_start: 854
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: PyExc_RuntimeError
    - item_type: preproc_def
      name: PyObject_GenericGetAttr
      pos:
        line_end: 858
        line_start: 857
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '0'
    - item_type: preproc_def
      name: Py_NotImplemented
      pos:
        line_end: 865
        line_start: 864
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: PyExc_RuntimeError
    - item_type: preproc_def
      name: PySequence_Size
      pos:
        line_end: 879
        line_start: 878
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: PySequence_Length
    - item_type: preproc_def
      name: PY_SSIZE_T_MAX
      pos:
        line_end: 899
        line_start: 898
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: INT_MAX
    - item_type: preproc_def
      name: PY_SSIZE_T_MIN
      pos:
        line_end: 900
        line_start: 899
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: INT_MIN
    - item_type: preproc_def
      name: SWIGPY_CAPSULE_NAME
      pos:
        line_end: 956
        line_start: 955
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: ((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION ".type_pointer_capsule"
        SWIG_TYPE_TABLE_NAME)
    - item_type: preproc_def
      name: Py_hash_t
      pos:
        line_end: 962
        line_start: 961
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: long
    - item_type: preproc_def
      name: SWIG_PYTHON_INITIALIZE_THREADS
      pos:
        line_end: 1049
        line_start: 1048
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: PyEval_InitThreads()
    - item_type: preproc_def
      name: SWIG_PYTHON_THREAD_BEGIN_BLOCK
      pos:
        line_end: 1068
        line_start: 1067
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: SWIG_Python_Thread_Block _swig_thread_block
    - item_type: preproc_def
      name: SWIG_PYTHON_THREAD_END_BLOCK
      pos:
        line_end: 1069
        line_start: 1068
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: _swig_thread_block.end()
    - item_type: preproc_def
      name: SWIG_PYTHON_THREAD_BEGIN_ALLOW
      pos:
        line_end: 1070
        line_start: 1069
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: SWIG_Python_Thread_Allow _swig_thread_allow
    - item_type: preproc_def
      name: SWIG_PYTHON_THREAD_END_ALLOW
      pos:
        line_end: 1071
        line_start: 1070
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: _swig_thread_allow.end()
    - item_type: preproc_def
      name: SWIG_PYTHON_THREAD_BEGIN_BLOCK
      pos:
        line_end: 1073
        line_start: 1072
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: PyGILState_STATE _swig_thread_block = PyGILState_Ensure()
    - item_type: preproc_def
      name: SWIG_PYTHON_THREAD_END_BLOCK
      pos:
        line_end: 1074
        line_start: 1073
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: PyGILState_Release(_swig_thread_block)
    - item_type: preproc_def
      name: SWIG_PYTHON_THREAD_BEGIN_ALLOW
      pos:
        line_end: 1075
        line_start: 1074
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: PyThreadState *_swig_thread_allow = PyEval_SaveThread()
    - item_type: preproc_def
      name: SWIG_PYTHON_THREAD_END_ALLOW
      pos:
        line_end: 1076
        line_start: 1075
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: PyEval_RestoreThread(_swig_thread_allow)
    - item_type: preproc_def
      name: SWIG_PY_POINTER
      pos:
        line_end: 1116
        line_start: 1115
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SWIG_PY_BINARY
      pos:
        line_end: 1117
        line_start: 1116
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '5'
    - item_type: preproc_def
      name: swig_owntype
      pos:
        line_end: 1177
        line_start: 1176
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: int
    - item_type: preproc_def
      name: SWIG_SetErrorObj
      pos:
        line_end: 1202
        line_start: 1201
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: SWIG_Python_SetErrorObj
    - item_type: preproc_def
      name: SWIG_SetErrorMsg
      pos:
        line_end: 1203
        line_start: 1202
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: SWIG_Python_SetErrorMsg
    - item_type: preproc_def
      name: SWIG_fail
      pos:
        line_end: 1206
        line_start: 1205
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: goto fail
    - item_type: preproc_def
      name: SWIG_POINTER_NOSHADOW
      pos:
        line_end: 1382
        line_start: 1381
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: (SWIG_POINTER_OWN      << 1)
    - item_type: preproc_def
      name: SWIG_POINTER_NEW
      pos:
        line_end: 1383
        line_start: 1382
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: (SWIG_POINTER_NOSHADOW | SWIG_POINTER_OWN)
    - item_type: preproc_def
      name: SWIG_POINTER_IMPLICIT_CONV
      pos:
        line_end: 1385
        line_start: 1384
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: (SWIG_POINTER_DISOWN   << 1)
    - item_type: preproc_def
      name: SWIG_BUILTIN_TP_INIT
      pos:
        line_end: 1387
        line_start: 1386
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: (SWIG_POINTER_OWN << 2)
    - item_type: preproc_def
      name: SWIG_BUILTIN_INIT
      pos:
        line_end: 1388
        line_start: 1387
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: (SWIG_BUILTIN_TP_INIT | SWIG_POINTER_OWN)
    - item_type: preproc_def
      name: Py_None
      pos:
        line_end: 1406
        line_start: 1405
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: SWIG_Py_None()
    - item_type: preproc_def
      name: SWIG_POINTER_EXCEPTION
      pos:
        line_end: 2833
        line_start: 2832
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SWIGTYPE_p_char
      pos:
        line_end: 3010
        line_start: 3009
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: swig_types[0]
    - item_type: preproc_def
      name: SWIGTYPE_p_int
      pos:
        line_end: 3011
        line_start: 3010
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: swig_types[1]
    - item_type: preproc_def
      name: SWIGTYPE_p_uint8_t
      pos:
        line_end: 3012
        line_start: 3011
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: swig_types[2]
    - item_type: preproc_def
      name: SWIG_init
      pos:
        line_end: 3030
        line_start: 3029
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: PyInit__libwebp
    - item_type: preproc_def
      name: SWIG_init
      pos:
        line_end: 3033
        line_start: 3032
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: init_libwebp
    - item_type: preproc_def
      name: SWIG_name
      pos:
        line_end: 3036
        line_start: 3035
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '"_libwebp"'
    - item_type: preproc_def
      name: SWIGVERSION
      pos:
        line_end: 3038
        line_start: 3037
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: '0x030012'
    - item_type: preproc_def
      name: SWIG_VERSION
      pos:
        line_end: 3039
        line_start: 3038
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: SWIGVERSION
    - item_type: preproc_def
      name: LLONG_MAX
      pos:
        line_end: 3312
        line_start: 3311
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: __LONG_LONG_MAX__
    - item_type: preproc_def
      name: LLONG_MIN
      pos:
        line_end: 3313
        line_start: 3312
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: (-LLONG_MAX - 1LL)
    - item_type: preproc_def
      name: ULLONG_MAX
      pos:
        line_end: 3314
        line_start: 3313
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type_or_value: (LLONG_MAX * 2ULL + 1ULL)
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*str'
        type: char
      - name: dcast
        type: swig_dycast_func
      - name: '*cast'
        type: struct swig_cast_info
      - name: '*clientdata'
        type: void
      - name: owndata
        type: int
      item_type: struct
      name: swig_type_info
      pos:
        line_end: 349
        line_start: 342
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
    - fields:
      - name: '*type'
        type: swig_type_info
      - name: converter
        type: swig_converter_func
      - name: '*next'
        type: struct swig_cast_info
      - name: '*prev'
        type: struct swig_cast_info
      item_type: struct
      name: swig_cast_info
      pos:
        line_end: 357
        line_start: 352
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
    - fields:
      - name: '**types'
        type: swig_type_info
      - name: size
        type: size_t
      - name: '*next'
        type: struct swig_module_info
      - name: '**type_initial'
        type: swig_type_info
      - name: '**cast_initial'
        type: swig_cast_info
      - name: '*clientdata'
        type: void
      item_type: struct
      name: swig_module_info
      pos:
        line_end: 369
        line_start: 362
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
    - fields:
      - name: type
        type: PyTypeObject
      - name: as_number
        type: PyNumberMethods
      - name: as_mapping
        type: PyMappingMethods
      - name: as_sequence
        type: PySequenceMethods
      - name: as_buffer
        type: PyBufferProcs
      - name: '*name'
        type: PyObject
      item_type: struct
      name: PyHeapTypeObject
      pos:
        line_end: 944
        line_start: 937
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
    - fields:
      - name: type
        type: int
      - name: '*name'
        type: char
      - name: lvalue
        type: long
      - name: dvalue
        type: double
      - name: '*pvalue'
        type: void
      - name: '**ptype'
        type: swig_type_info
      item_type: struct
      name: swig_const_info
      pos:
        line_end: 1126
        line_start: 1119
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
    - fields:
      - name: '*klass'
        type: PyObject
      - name: '*newraw'
        type: PyObject
      - name: '*newargs'
        type: PyObject
      - name: '*destroy'
        type: PyObject
      - name: delargs
        type: int
      - name: implicitconv
        type: int
      - name: '*pytype'
        type: PyTypeObject
      item_type: struct
      name: SwigPyClientData
      pos:
        line_end: 1442
        line_start: 1434
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
    - fields:
      - name: '*ptr'
        type: PyObject_HEAD
      - name: '*ty'
        type: swig_type_info
      - name: own
        type: int
      - name: '*next'
        type: PyObject
      item_type: struct
      name: SwigPyObject
      pos:
        line_end: 1531
        line_start: 1522
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
    - fields:
      - name: '*pack'
        type: PyObject_HEAD
      - name: '*ty'
        type: swig_type_info
      - name: size
        type: size_t
      item_type: struct
      name: SwigPyPacked
      pos:
        line_end: 2041
        line_start: 2036
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
    - fields:
      - name: '* function'
        type: char
      - name: size_multiplier
        type: int
      item_type: struct
      name: sizemap
      pos:
        line_end: 3395
        line_start: 3392
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
    - fields:
      - name: '*name'
        type: char
      - name: '*(*get_attr)(void)'
        type: PyObject
      - name: (*set_attr)(PyObject *)
        type: int
      - name: '*next'
        type: struct swig_globalvar
      item_type: struct
      name: swig_globalvar
      pos:
        line_end: 5197
        line_start: 5192
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
    - fields:
      - name: '*vars'
        type: PyObject_HEAD
      item_type: struct
      name: swig_varlinkobject
      pos:
        line_end: 5202
        line_start: 5199
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
    typedefs:
    - item_type: typedef
      name: '*(*swig_converter_func)(void *, int *)'
      pos:
        line_end: 338
        line_start: 338
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type: void
    - item_type: typedef
      name: '*(*swig_dycast_func)(void **)'
      pos:
        line_end: 339
        line_start: 339
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type: swig_type_info
    - item_type: typedef
      name: Py_ssize_t
      pos:
        line_end: 897
        line_start: 897
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type: int
    - item_type: typedef
      name: lenfunc
      pos:
        line_end: 900
        line_start: 900
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type: inquiry
    - item_type: typedef
      name: ssizeargfunc
      pos:
        line_end: 901
        line_start: 901
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type: intargfunc
    - item_type: typedef
      name: ssizessizeargfunc
      pos:
        line_end: 902
        line_start: 902
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type: intintargfunc
    - item_type: typedef
      name: ssizeobjargproc
      pos:
        line_end: 903
        line_start: 903
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type: intobjargproc
    - item_type: typedef
      name: ssizessizeobjargproc
      pos:
        line_end: 904
        line_start: 904
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type: intintobjargproc
    - item_type: typedef
      name: readbufferproc
      pos:
        line_end: 905
        line_start: 905
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type: getreadbufferproc
    - item_type: typedef
      name: writebufferproc
      pos:
        line_end: 906
        line_start: 906
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type: getwritebufferproc
    - item_type: typedef
      name: segcountproc
      pos:
        line_end: 907
        line_start: 907
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type: getsegcountproc
    - item_type: typedef
      name: charbufferproc
      pos:
        line_end: 908
        line_start: 908
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type: getcharbufferproc
    - item_type: typedef
      name: freefunc
      pos:
        line_end: 948
        line_start: 948
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type: destructor
    - item_type: typedef
      name: "(*WebPEncodeFunction)(const uint8_t* rgb,\n                                     int
        width, int height, int stride,\n                                     float
        quality_factor, uint8_t** output)"
      pos:
        line_end: 3444
        line_start: 3442
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type: size_t
    - item_type: typedef
      name: "(*WebPEncodeLosslessFunction)(const uint8_t* rgb,\n                                             int
        width, int height, int stride,\n                                             uint8_t**
        output)"
      pos:
        line_end: 3447
        line_start: 3445
        source_file: /src/libwebp/swig/libwebp_python_wrap.c
      type: size_t
    union: []
- function_names:
  - WebPGetDecoderVersion
  - Wrapped_WebPGetInfo
  source_file: /src/libwebp/swig/libwebp_gc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SWIG_PARM_SIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/libwebp/swig/libwebp_gc.c
      type_or_value: '8'
    - item_type: preproc_def
      name: SWIG_PARM_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/libwebp/swig/libwebp_gc.c
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/imageio/wicdec.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/imageio/webpdec.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/imageio/jpegdec.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/imageio/pnmdec.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ImgIoUtilSetBinaryMode
  - ImgIoUtilReadFromStdin
  - ImgIoUtilReadFile
  - ImgIoUtilWriteFile
  - ImgIoUtilCopyPlane
  - ImgIoUtilCheckSizeArgumentsOverflow
  source_file: /src/libwebp/imageio/imageio_util.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/imageio/image_dec.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*WebPImageReader)(const uint8_t* const data, size_t data_size,\n                               struct
        WebPPicture* const pic, int keep_alpha,\n                               struct
        Metadata* const metadata)"
      pos:
        line_end: 56
        line_start: 54
        source_file: /src/libwebp/imageio/image_dec.h
      type: int
    union: []
- function_names:
  - IFS
  - MAKE_REFGUID
  - MAKE_REFGUID
  - CreateOutputStream
  - WriteUsingWIC
  - WebPWritePNG
  - PNGErrorFunction
  - WebPWritePNG
  - WebPWritePNG
  - WritePPMPAM
  - WebPWritePPM
  - WebPWritePAM
  - WebPWrite16bAsPGM
  - PutLE16
  - PutLE32
  - WebPWriteBMP
  - WebPWriteTIFF
  - WebPWriteAlphaPlane
  - WebPWritePGM
  - WebPWriteYUV
  - WebPSaveImage
  source_file: /src/libwebp/imageio/image_enc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_IE
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/libwebp/imageio/image_enc.c
      type_or_value: 0x500            // Workaround bug in shlwapi.h when compiling
        C++
    - item_type: preproc_def
      name: BMP_HEADER_SIZE
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/libwebp/imageio/image_enc.c
      type_or_value: '54'
    - item_type: preproc_def
      name: BMP_HEADER_ALPHA_EXTRA_SIZE
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/libwebp/imageio/image_enc.c
      type_or_value: 16  // for alpha info
    - item_type: preproc_def
      name: NUM_IFD_ENTRIES
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/libwebp/imageio/image_enc.c
      type_or_value: '15'
    - item_type: preproc_def
      name: EXTRA_DATA_SIZE
      pos:
        line_end: 386
        line_start: 385
        source_file: /src/libwebp/imageio/image_enc.c
      type_or_value: '16'
    - item_type: preproc_def
      name: EXTRA_DATA_OFFSET
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/libwebp/imageio/image_enc.c
      type_or_value: (10 + 12 * NUM_IFD_ENTRIES + 4)
    - item_type: preproc_def
      name: TIFF_HEADER_SIZE
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/libwebp/imageio/image_enc.c
      type_or_value: (EXTRA_DATA_OFFSET + EXTRA_DATA_SIZE)
    structs: []
    typedefs: []
    union: []
- function_names:
  - PrintAnimationWarning
  - PrintWebPError
  - LoadWebP
  - DecodeWebP
  - DecodeWebPIncremental
  - ExtractMetadata
  - ReadWebP
  source_file: /src/libwebp/imageio/webpdec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ExtractMetadataFromTIFF
  - MyClose
  - MySize
  - MySeek
  - MyMapFile
  - MyUnmapFile
  - MyRead
  - Unmult
  - GetScale
  - MultARGBRow
  - ReadTIFF
  - ReadTIFF
  source_file: /src/libwebp/imageio/tiffdec.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MFIX
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/libwebp/imageio/tiffdec.c
      type_or_value: 24  // 24bit fixed-point arithmetic
    - item_type: preproc_def
      name: HALF
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/libwebp/imageio/tiffdec.c
      type_or_value: ((1u << MFIX) >> 1)
    structs:
    - fields:
      - name: tag
        type: ttag_t
      - name: storage_offset
        type: size_t
      item_type: struct
      name: "kTIFFMetadataMap[] = {\n    {TIFFTAG_ICCPROFILE, METADATA_OFFSET(iccp)},\n
        \   {TIFFTAG_XMLPACKET, METADATA_OFFSET(xmp)},\n    {0, 0},\n}"
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/libwebp/imageio/tiffdec.c
    - fields:
      - name: '* data'
        type: uint8_t
      - name: size
        type: toff_t
      - name: pos
        type: toff_t
      item_type: struct
      name: MyData
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libwebp/imageio/tiffdec.c
    typedefs: []
    union: []
- function_names:
  - METADATA_OFFSET
  source_file: /src/libwebp/imageio/metadata.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* bytes'
        type: uint8_t
      - name: size
        type: size_t
      item_type: struct
      name: MetadataPayload
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/libwebp/imageio/metadata.h
    - fields:
      - name: exif
        type: MetadataPayload
      - name: iccp
        type: MetadataPayload
      - name: xmp
        type: MetadataPayload
      item_type: struct
      name: Metadata
      pos:
        line_end: 32
        line_start: 28
        source_file: /src/libwebp/imageio/metadata.h
    typedefs: []
    union: []
- function_names:
  - SaveMetadataMarkers
  - CompareICCPSegments
  - StoreICCP
  - ExtractMetadataFromJPEG
  - my_error_exit
  - ContextInit
  - ContextFill
  - ContextSkip
  - ContextTerm
  - ContextSetup
  - ReadJPEG
  - ReadJPEG
  source_file: /src/libwebp/imageio/jpegdec.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: JPEG_APP1
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libwebp/imageio/jpegdec.c
      type_or_value: (JPEG_APP0 + 1)
    - item_type: preproc_def
      name: JPEG_APP2
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/libwebp/imageio/jpegdec.c
      type_or_value: (JPEG_APP0 + 2)
    structs:
    - fields:
      - name: '* data'
        type: uint8_t
      - name: data_length
        type: size_t
      - name: seq
        type: int
      item_type: struct
      name: ICCPSegment
      pos:
        line_end: 45
        line_start: 41
        source_file: /src/libwebp/imageio/jpegdec.c
    - fields:
      - name: marker
        type: int
      - name: '* signature'
        type: char
      - name: signature_length
        type: size_t
      - name: storage_offset
        type: size_t
      item_type: struct
      name: "kJPEGMetadataMap[] = {\n      // Exif 2.2 Section 4.7.2 Interoperability
        Structure of APP1 ...\n      {JPEG_APP1, \"Exif\\0\", 6, METADATA_OFFSET(exif)},\n
        \     // XMP Specification Part 3 Section 3 Embedding XMP Metadata ... #JPEG\n
        \     // TODO(jzern) Add support for 'ExtendedXMP'\n      {JPEG_APP1, \"http://ns.adobe.com/xap/1.0/\",
        29, METADATA_OFFSET(xmp)},\n      {0, NULL, 0, 0},\n  }"
      pos:
        line_end: 157
        line_start: 152
        source_file: /src/libwebp/imageio/jpegdec.c
    - fields:
      - name: pub
        type: struct jpeg_error_mgr
      - name: setjmp_buffer
        type: jmp_buf
      item_type: struct
      name: my_error_mgr
      pos:
        line_end: 205
        line_start: 202
        source_file: /src/libwebp/imageio/jpegdec.c
    - fields:
      - name: pub
        type: struct jpeg_source_mgr
      - name: '* data'
        type: uint8_t
      - name: data_size
        type: size_t
      item_type: struct
      name: JPEGReadContext
      pos:
        line_end: 228
        line_start: 224
        source_file: /src/libwebp/imageio/jpegdec.c
    typedefs: []
    union: []
- function_names:
  - WebPGetEnabledInputFileFormats
  - GetBE32
  - WebPGuessImageType
  - FailReader
  - WebPGetImageReader
  - WebPGuessImageReader
  source_file: /src/libwebp/imageio/image_dec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MetadataInit
  - MetadataPayloadDelete
  - MetadataFree
  - MetadataCopy
  source_file: /src/libwebp/imageio/metadata.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ReadLine
  - FlagError
  - ReadPAMFields
  - ReadHeader
  - ReadPNM
  source_file: /src/libwebp/imageio/pnmdec.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/libwebp/imageio/pnmdec.c
      type_or_value: _snprintf
    - item_type: preproc_def
      name: MAX_LINE_SIZE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/libwebp/imageio/pnmdec.c
      type_or_value: '1024'
    structs:
    - fields:
      - name: '* data'
        type: uint8_t
      - name: data_size
        type: size_t
      - name: width
        type: int
      - name: bytes_per_px
        type: int
      - name: depth
        type: int
      - name: max_value
        type: int
      - name: type
        type: int
      - name: seen_flags
        type: int
      item_type: struct
      name: PNMInfo
      pos:
        line_end: 45
        line_start: 36
        source_file: /src/libwebp/imageio/pnmdec.c
    typedefs: []
    union: []
- function_names:
  - LOCAL_PNG_PREREQ
  - error_function
  - MallocFunc
  - FreeFunc
  - HexStringToBytes
  - ProcessRawProfile
  - ExtractMetadataFromPNG
  - ReadFunc
  - ReadPNG
  - ReadPNG
  source_file: /src/libwebp/imageio/pngdec.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LOCAL_PNG_VERSION
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/libwebp/imageio/pngdec.c
      type_or_value: ((PNG_LIBPNG_VER_MAJOR << 8) | PNG_LIBPNG_VER_MINOR)
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: "(*process)(const char* profile, size_t profile_len,\n                 MetadataPayload*
          const payload)"
        type: int
      - name: storage_offset
        type: size_t
      item_type: struct
      name: "kPNGMetadataMap[] = {\n    // https://exiftool.org/TagNames/PNG.html#TextualData\n
        \   // See also: ExifTool on CPAN.\n    {\"Raw profile type exif\", ProcessRawProfile,
        METADATA_OFFSET(exif)},\n    {\"Raw profile type xmp\", ProcessRawProfile,
        METADATA_OFFSET(xmp)},\n    // Exiftool puts exif data in APP1 chunk, too.\n
        \   {\"Raw profile type APP1\", ProcessRawProfile, METADATA_OFFSET(exif)},\n
        \   // ImageMagick uses lowercase app1.\n    {\"Raw profile type app1\", ProcessRawProfile,
        METADATA_OFFSET(exif)},\n    // XMP Specification Part 3, Section 3 #PNG\n
        \   {\"XML:com.adobe.xmp\", MetadataCopy, METADATA_OFFSET(xmp)},\n    {NULL,
        NULL, 0},\n}"
      pos:
        line_end: 135
        line_start: 130
        source_file: /src/libwebp/imageio/pngdec.c
    - fields:
      - name: '* data'
        type: uint8_t
      - name: data_size
        type: size_t
      - name: offset
        type: png_size_t
      item_type: struct
      name: PNGReadContext
      pos:
        line_end: 236
        line_start: 232
        source_file: /src/libwebp/imageio/pngdec.c
    typedefs:
    - item_type: typedef
      name: LocalPngAllocSize
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/libwebp/imageio/pngdec.c
      type: png_alloc_size_t
    - item_type: typedef
      name: LocalPngAllocSize
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/libwebp/imageio/pngdec.c
      type: png_size_t
    union: []
- function_names: []
  source_file: /src/libwebp/imageio/tiffdec.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/imageio/imageio_util.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/imageio/pngdec.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libwebp/imageio/image_enc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IFS
  - WEBP_DEFINE_GUID
  - MAKE_REFGUID
  - MAKE_REFGUID
  - OpenInputStream
  - ExtractICCP
  - ExtractMetadata
  - HasPalette
  - HasAlpha
  - ReadPictureWithWIC
  - ReadPictureWithWIC
  source_file: /src/libwebp/imageio/wicdec.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_IE
      pos:
        line_end: 29
        line_start: 27
        source_file: /src/libwebp/imageio/wicdec.c
      type_or_value: 0x500            // Workaround bug in shlwapi.h when compiling
        C++
    structs:
    - fields:
      - name: '* pixel_format'
        type: GUID
      - name: bytes_per_pixel
        type: int
      - name: (*import)(WebPPicture* const, const uint8_t* const, int)
        type: int
      item_type: struct
      name: WICFormatImporter
      pos:
        line_end: 63
        line_start: 59
        source_file: /src/libwebp/imageio/wicdec.c
    typedefs: []
    union: []
