flowchart LR
color_correct40_set_bestshot-0-old<--Match 97%-->color_correct40_set_bestshot-0-new
subgraph libmmcamera_isp_color_correct40.so.hex
color_correct40_set_bestshot-0-new
end
subgraph libmmcamera_isp_color_correct40.so.stock
color_correct40_set_bestshot-0-old
end
pie showData
title Function Matches - 100.0000%
"unmatched_funcs_len" : 0
"matched_funcs_len" : 384
pie showData
title Matched Function Similarity - 99.7396%
"matched_funcs_with_code_changes_len" : 1
"matched_funcs_with_non_code_changes_len" : 0
"matched_funcs_no_changes_len" : 383
ghidriff --project-location ghidra_projects --project-name ghidriff --symbols-path symbols --gzfs-path gzfs --threaded --log-level INFO --file-log-level INFO --log-path ghidriff.log --min-func-len 10 --gdt [] --bsim --max-ram-percent 60.0 --max-section-funcs 200 libmmcamera_isp_color_correct40.so.stock libmmcamera_isp_color_correct40.so.hex
--old ['libmmcamera_isp_color_correct40.so.stock'] --new [['libmmcamera_isp_color_correct40.so.hex']] --engine VersionTrackingDiff --output-path /tmp/camera --summary False --project-location ghidra_projects --project-name ghidriff --symbols-path symbols --gzfs-path gzfs --base-address None --program-options None --threaded True --force-analysis False --force-diff False --no-symbols False --log-level INFO --file-log-level INFO --log-path ghidriff.log --va False --min-func-len 10 --use-calling-counts False --gdt [] --bsim True --bsim-full False --max-ram-percent 60.0 --print-flags False --jvm-args None --side-by-side False --max-section-funcs 200 --md-title None
--- libmmcamera_isp_color_correct40.so.stock Meta
+++ libmmcamera_isp_color_correct40.so.hex Meta
@@ -1,42 +1,42 @@
-Program Name: libmmcamera_isp_color_correct40.so.stock
+Program Name: libmmcamera_isp_color_correct40.so.hex
Language ID: ARM:LE:32:v8 (1.107)
Compiler ID: default
Processor: ARM
Endian: Little
Address Size: 32
Minimum Address: 00010000
Maximum Address: _elfSectionHeaders::00000437
# of Bytes: 31905
# of Memory Blocks: 29
-# of Instructions: 5978
+# of Instructions: 5972
# of Defined Data: 1109
# of Functions: 192
# of Symbols: 592
# of Data Types: 66
# of Data Type Categories: 7
Analyzed: true
Created With Ghidra Version: 11.3.2
-Date Created: Mon Jul 21 12:58:00 HKT 2025
+Date Created: Mon Jul 21 12:58:02 HKT 2025
ELF File Type: shared object
ELF Note[GNU BuildId]: 2d057c81048cb8b6063a198e90f57a7d
ELF Original Image Base: 0x0
ELF Prelinked: false
Elf Comment[0]:
Elf Comment[1]: GCC: (GNU) 4.9.x-google 20140827 (prerelease)
Elf Comment[2]: clang version 3.6
Executable Format: Executable and Linking Format (ELF)
-Executable Location: /tmp/libmmcamera_isp_color_correct40.so.stock
-Executable MD5: 4449c66b79f9ea28e38aaa365ba10970
-Executable SHA256: f087221966483be80469aa6bbc1385d78576cf8d74dbcaff63a0369cdf1715b9
-FSRL: file:///tmp/libmmcamera_isp_color_correct40.so.stock?MD5=4449c66b79f9ea28e38aaa365ba10970
+Executable Location: /tmp/libmmcamera_isp_color_correct40.so.hex
+Executable MD5: 0f193130c0eb172829263f5c918c15b5
+Executable SHA256: efadbf4aadc90c2aa96f2dbcc2cea0ed976a903dbce89a899b4d101771311fff
+FSRL: file:///tmp/libmmcamera_isp_color_correct40.so.hex?MD5=0f193130c0eb172829263f5c918c15b5
Preferred Root Namespace Category:
Relocatable: true
Required Library [ 0]: libcutils.so
Required Library [ 1]: libmmcamera2_mct.so
Required Library [ 2]: libmmcamera_isp_sub_module.so
Required Library [ 3]: libmmcamera_dbg.so
Required Library [ 4]: libc++.so
Required Library [ 5]: libdl.so
Required Library [ 6]: libc.so
Required Library [ 7]: libm.so
Should Ask To Analyze: false
Ghidra libmmcamera_isp_color_correct40.so.stock Decompiler Options
| Decompiler Option | Value |
|---|---|
| Prototype Evaluation | __stdcall |
Ghidra libmmcamera_isp_color_correct40.so.stock Specification extensions Options
| Specification extensions Option | Value |
|---|---|
| FormatVersion | 0 |
| VersionCounter | 0 |
Ghidra libmmcamera_isp_color_correct40.so.stock Analyzers Options
| Analyzers Option | Value |
|---|---|
| ARM Aggressive Instruction Finder | false |
| ARM Constant Reference Analyzer | true |
| ARM Constant Reference Analyzer.Create Data from pointer | false |
| ARM Constant Reference Analyzer.Function parameter/return Pointer analysis | true |
| ARM Constant Reference Analyzer.Max Threads | 2 |
| ARM Constant Reference Analyzer.Min absolute reference | 4 |
| ARM Constant Reference Analyzer.Require pointer param data type | false |
| ARM Constant Reference Analyzer.Speculative reference max | 256 |
| ARM Constant Reference Analyzer.Speculative reference min | 1024 |
| ARM Constant Reference Analyzer.Stored Value Pointer analysis | true |
| ARM Constant Reference Analyzer.Switch Table Recovery | false |
| ARM Constant Reference Analyzer.Trust values read from writable memory | true |
| ARM Symbol | true |
| ASCII Strings | true |
| ASCII Strings.Create Strings Containing Existing Strings | true |
| ASCII Strings.Create Strings Containing References | true |
| ASCII Strings.Force Model Reload | false |
| ASCII Strings.Minimum String Length | LEN_5 |
| ASCII Strings.Model File | StringModel.sng |
| ASCII Strings.Require Null Termination for String | true |
| ASCII Strings.Search Only in Accessible Memory Blocks | true |
| ASCII Strings.String Start Alignment | ALIGN_1 |
| ASCII Strings.String end alignment | 4 |
| Aggressive Instruction Finder | false |
| Aggressive Instruction Finder.Create Analysis Bookmarks | true |
| Apply Data Archives | true |
| Apply Data Archives.Archive Chooser | [Auto-Detect] |
| Apply Data Archives.Create Analysis Bookmarks | true |
| Apply Data Archives.GDT User File Archive Path | None |
| Apply Data Archives.User Project Archive Path | None |
| Call Convention ID | true |
| Call Convention ID.Analysis Decompiler Timeout (sec) | 60 |
| Call-Fixup Installer | true |
| Condense Filler Bytes | false |
| Condense Filler Bytes.Filler Value | Auto |
| Condense Filler Bytes.Minimum number of sequential bytes | 1 |
| Create Address Tables | true |
| Create Address Tables.Allow Offcut References | false |
| Create Address Tables.Auto Label Table | false |
| Create Address Tables.Create Analysis Bookmarks | true |
| Create Address Tables.Maxmimum Pointer Distance | 16777215 |
| Create Address Tables.Minimum Pointer Address | 4132 |
| Create Address Tables.Minimum Table Size | 2 |
| Create Address Tables.Pointer Alignment | 1 |
| Create Address Tables.Relocation Table Guide | true |
| Create Address Tables.Table Alignment | 4 |
| DWARF | true |
| DWARF.Add Inlined Functions Comments | false |
| DWARF.Add Lexical Block Comments | false |
| DWARF.Create Function Signatures | true |
| DWARF.Default Calling Convention | |
| DWARF.Ignore Parameter Storage Info | false |
| DWARF.Import Data Types | true |
| DWARF.Import Functions | true |
| DWARF.Import Local Variable Info | true |
| DWARF.Import Source Line Info | true |
| DWARF.Maximum Source Map Entry Length | 2000 |
| DWARF.Output DWARF DIE Info | false |
| DWARF.Output Source Info | false |
| DWARF.Try To Pack Structs | true |
| Data Reference | true |
| Data Reference.Address Table Alignment | 1 |
| Data Reference.Address Table Minimum Size | 2 |
| Data Reference.Align End of Strings | false |
| Data Reference.Ascii String References | true |
| Data Reference.Create Address Tables | false |
| Data Reference.Minimum String Length | 5 |
| Data Reference.References to Pointers | false |
| Data Reference.Relocation Table Guide | true |
| Data Reference.Respect Execute Flag | true |
| Data Reference.Subroutine References | true |
| Data Reference.Switch Table References | false |
| Data Reference.Unicode String References | true |
| Decompiler Parameter ID | false |
| Decompiler Parameter ID.Analysis Clear Level | ANALYSIS |
| Decompiler Parameter ID.Analysis Decompiler Timeout (sec) | 60 |
| Decompiler Parameter ID.Commit Data Types | true |
| Decompiler Parameter ID.Commit Void Return Values | false |
| Decompiler Parameter ID.Prototype Evaluation | __stdcall |
| Decompiler Switch Analysis | true |
| Decompiler Switch Analysis.Analysis Decompiler Timeout (sec) | 60 |
| Demangler GNU | true |
| Demangler GNU.Apply Function Calling Conventions | true |
| Demangler GNU.Apply Function Signatures | true |
| Demangler GNU.Demangle Only Known Mangled Symbols | false |
| Demangler GNU.Demangler Format | AUTO |
| Demangler GNU.Use Deprecated Demangler | false |
| Demangler GNU.Use Standard Text Replacements | true |
| Disassemble Entry Points | true |
| Disassemble Entry Points.Respect Execute Flag | true |
| ELF Scalar Operand References | false |
| ELF Scalar Operand References.Relocation Table Guide | true |
| Embedded Media | true |
| Embedded Media.Create Analysis Bookmarks | true |
| External Entry References | true |
| External Symbol Resolver | true |
| Function Start Pre Search | true |
| Function Start Pre Search.Bookmark Functions | false |
| Function Start Pre Search.Search Data Blocks | false |
| Function Start Search | true |
| Function Start Search After Code | true |
| Function Start Search After Code.Bookmark Functions | false |
| Function Start Search After Code.Search Data Blocks | false |
| Function Start Search After Data | true |
| Function Start Search After Data.Bookmark Functions | false |
| Function Start Search After Data.Search Data Blocks | false |
| Function Start Search.Bookmark Functions | false |
| Function Start Search.Search Data Blocks | false |
| Non-Returning Functions - Discovered | true |
| Non-Returning Functions - Discovered.Create Analysis Bookmarks | true |
| Non-Returning Functions - Discovered.Function Non-return Threshold | 3 |
| Non-Returning Functions - Discovered.Repair Flow Damage | true |
| Non-Returning Functions - Known | true |
| Non-Returning Functions - Known.Create Analysis Bookmarks | true |
| Reference | true |
| Reference.Address Table Alignment | 1 |
| Reference.Address Table Minimum Size | 2 |
| Reference.Align End of Strings | false |
| Reference.Ascii String References | true |
| Reference.Create Address Tables | false |
| Reference.Minimum String Length | 5 |
| Reference.References to Pointers | false |
| Reference.Relocation Table Guide | true |
| Reference.Respect Execute Flag | true |
| Reference.Subroutine References | true |
| Reference.Switch Table References | false |
| Reference.Unicode String References | true |
| Shared Return Calls | true |
| Shared Return Calls.Allow Conditional Jumps | false |
| Shared Return Calls.Assume Contiguous Functions Only | false |
| Stack | true |
| Stack.Create Local Variables | true |
| Stack.Create Param Variables | false |
| Stack.useNewFunctionStackAnalysis | true |
| Subroutine References | true |
| Subroutine References.Create Thunks Early | true |
| Variadic Function Signature Override | false |
| Variadic Function Signature Override.Create Analysis Bookmarks | false |
Ghidra libmmcamera_isp_color_correct40.so.hex Decompiler Options
| Decompiler Option | Value |
|---|---|
| Prototype Evaluation | __stdcall |
Ghidra libmmcamera_isp_color_correct40.so.hex Specification extensions Options
| Specification extensions Option | Value |
|---|---|
| FormatVersion | 0 |
| VersionCounter | 0 |
Ghidra libmmcamera_isp_color_correct40.so.hex Analyzers Options
| Analyzers Option | Value |
|---|---|
| ARM Aggressive Instruction Finder | false |
| ARM Constant Reference Analyzer | true |
| ARM Constant Reference Analyzer.Create Data from pointer | false |
| ARM Constant Reference Analyzer.Function parameter/return Pointer analysis | true |
| ARM Constant Reference Analyzer.Max Threads | 2 |
| ARM Constant Reference Analyzer.Min absolute reference | 4 |
| ARM Constant Reference Analyzer.Require pointer param data type | false |
| ARM Constant Reference Analyzer.Speculative reference max | 256 |
| ARM Constant Reference Analyzer.Speculative reference min | 1024 |
| ARM Constant Reference Analyzer.Stored Value Pointer analysis | true |
| ARM Constant Reference Analyzer.Switch Table Recovery | false |
| ARM Constant Reference Analyzer.Trust values read from writable memory | true |
| ARM Symbol | true |
| ASCII Strings | true |
| ASCII Strings.Create Strings Containing Existing Strings | true |
| ASCII Strings.Create Strings Containing References | true |
| ASCII Strings.Force Model Reload | false |
| ASCII Strings.Minimum String Length | LEN_5 |
| ASCII Strings.Model File | StringModel.sng |
| ASCII Strings.Require Null Termination for String | true |
| ASCII Strings.Search Only in Accessible Memory Blocks | true |
| ASCII Strings.String Start Alignment | ALIGN_1 |
| ASCII Strings.String end alignment | 4 |
| Aggressive Instruction Finder | false |
| Aggressive Instruction Finder.Create Analysis Bookmarks | true |
| Apply Data Archives | true |
| Apply Data Archives.Archive Chooser | [Auto-Detect] |
| Apply Data Archives.Create Analysis Bookmarks | true |
| Apply Data Archives.GDT User File Archive Path | None |
| Apply Data Archives.User Project Archive Path | None |
| Call Convention ID | true |
| Call Convention ID.Analysis Decompiler Timeout (sec) | 60 |
| Call-Fixup Installer | true |
| Condense Filler Bytes | false |
| Condense Filler Bytes.Filler Value | Auto |
| Condense Filler Bytes.Minimum number of sequential bytes | 1 |
| Create Address Tables | true |
| Create Address Tables.Allow Offcut References | false |
| Create Address Tables.Auto Label Table | false |
| Create Address Tables.Create Analysis Bookmarks | true |
| Create Address Tables.Maxmimum Pointer Distance | 16777215 |
| Create Address Tables.Minimum Pointer Address | 4132 |
| Create Address Tables.Minimum Table Size | 2 |
| Create Address Tables.Pointer Alignment | 1 |
| Create Address Tables.Relocation Table Guide | true |
| Create Address Tables.Table Alignment | 4 |
| DWARF | true |
| DWARF.Add Inlined Functions Comments | false |
| DWARF.Add Lexical Block Comments | false |
| DWARF.Create Function Signatures | true |
| DWARF.Default Calling Convention | |
| DWARF.Ignore Parameter Storage Info | false |
| DWARF.Import Data Types | true |
| DWARF.Import Functions | true |
| DWARF.Import Local Variable Info | true |
| DWARF.Import Source Line Info | true |
| DWARF.Maximum Source Map Entry Length | 2000 |
| DWARF.Output DWARF DIE Info | false |
| DWARF.Output Source Info | false |
| DWARF.Try To Pack Structs | true |
| Data Reference | true |
| Data Reference.Address Table Alignment | 1 |
| Data Reference.Address Table Minimum Size | 2 |
| Data Reference.Align End of Strings | false |
| Data Reference.Ascii String References | true |
| Data Reference.Create Address Tables | false |
| Data Reference.Minimum String Length | 5 |
| Data Reference.References to Pointers | false |
| Data Reference.Relocation Table Guide | true |
| Data Reference.Respect Execute Flag | true |
| Data Reference.Subroutine References | true |
| Data Reference.Switch Table References | false |
| Data Reference.Unicode String References | true |
| Decompiler Parameter ID | false |
| Decompiler Parameter ID.Analysis Clear Level | ANALYSIS |
| Decompiler Parameter ID.Analysis Decompiler Timeout (sec) | 60 |
| Decompiler Parameter ID.Commit Data Types | true |
| Decompiler Parameter ID.Commit Void Return Values | false |
| Decompiler Parameter ID.Prototype Evaluation | __stdcall |
| Decompiler Switch Analysis | true |
| Decompiler Switch Analysis.Analysis Decompiler Timeout (sec) | 60 |
| Demangler GNU | true |
| Demangler GNU.Apply Function Calling Conventions | true |
| Demangler GNU.Apply Function Signatures | true |
| Demangler GNU.Demangle Only Known Mangled Symbols | false |
| Demangler GNU.Demangler Format | AUTO |
| Demangler GNU.Use Deprecated Demangler | false |
| Demangler GNU.Use Standard Text Replacements | true |
| Disassemble Entry Points | true |
| Disassemble Entry Points.Respect Execute Flag | true |
| ELF Scalar Operand References | false |
| ELF Scalar Operand References.Relocation Table Guide | true |
| Embedded Media | true |
| Embedded Media.Create Analysis Bookmarks | true |
| External Entry References | true |
| External Symbol Resolver | true |
| Function Start Pre Search | true |
| Function Start Pre Search.Bookmark Functions | false |
| Function Start Pre Search.Search Data Blocks | false |
| Function Start Search | true |
| Function Start Search After Code | true |
| Function Start Search After Code.Bookmark Functions | false |
| Function Start Search After Code.Search Data Blocks | false |
| Function Start Search After Data | true |
| Function Start Search After Data.Bookmark Functions | false |
| Function Start Search After Data.Search Data Blocks | false |
| Function Start Search.Bookmark Functions | false |
| Function Start Search.Search Data Blocks | false |
| Non-Returning Functions - Discovered | true |
| Non-Returning Functions - Discovered.Create Analysis Bookmarks | true |
| Non-Returning Functions - Discovered.Function Non-return Threshold | 3 |
| Non-Returning Functions - Discovered.Repair Flow Damage | true |
| Non-Returning Functions - Known | true |
| Non-Returning Functions - Known.Create Analysis Bookmarks | true |
| Reference | true |
| Reference.Address Table Alignment | 1 |
| Reference.Address Table Minimum Size | 2 |
| Reference.Align End of Strings | false |
| Reference.Ascii String References | true |
| Reference.Create Address Tables | false |
| Reference.Minimum String Length | 5 |
| Reference.References to Pointers | false |
| Reference.Relocation Table Guide | true |
| Reference.Respect Execute Flag | true |
| Reference.Subroutine References | true |
| Reference.Switch Table References | false |
| Reference.Unicode String References | true |
| Shared Return Calls | true |
| Shared Return Calls.Allow Conditional Jumps | false |
| Shared Return Calls.Assume Contiguous Functions Only | false |
| Stack | true |
| Stack.Create Local Variables | true |
| Stack.Create Param Variables | false |
| Stack.useNewFunctionStackAnalysis | true |
| Subroutine References | true |
| Subroutine References.Create Thunks Early | true |
| Variadic Function Signature Override | false |
| Variadic Function Signature Override.Create Analysis Bookmarks | false |
| Stat | Value |
|---|---|
| added_funcs_len | 0 |
| deleted_funcs_len | 0 |
| modified_funcs_len | 1 |
| added_symbols_len | 0 |
| deleted_symbols_len | 0 |
| diff_time | 20.021426677703857 |
| deleted_strings_len | 0 |
| added_strings_len | 0 |
| match_types | Counter({'SymbolsHash': 56, 'ExactBytesFunctionHasher': 39, 'ExternalsName': 37, 'BSIM': 1}) |
| items_to_process | 1 |
| diff_types | Counter({'code': 1, 'length': 1}) |
| unmatched_funcs_len | 0 |
| total_funcs_len | 384 |
| matched_funcs_len | 384 |
| matched_funcs_with_code_changes_len | 1 |
| matched_funcs_with_non_code_changes_len | 0 |
| matched_funcs_no_changes_len | 383 |
| match_func_similarity_percent | 99.7396% |
| func_match_overall_percent | 100.0000% |
| first_matches | Counter({'SymbolsHash': 56, 'ExactBytesFunctionHasher': 39, 'BSIM': 1}) |
pie showData
title All Matches
"SymbolsHash" : 56
"ExternalsName" : 37
"ExactBytesFunctionHasher" : 39
"BSIM" : 1
pie showData
title First Matches
"SymbolsHash" : 56
"ExactBytesFunctionHasher" : 39
"BSIM" : 1
pie showData
title Diff Stats
"added_funcs_len" : 0
"deleted_funcs_len" : 0
"modified_funcs_len" : 1
pie showData
title Symbols
"added_symbols_len" : 0
"deleted_symbols_len" : 0
No string differences found
Modified functions contain code changes
| Key | libmmcamera_isp_color_correct40.so.stock - libmmcamera_isp_color_correct40.so.hex |
|---|---|
| diff_type | code,length |
| ratio | 0.8 |
| i_ratio | 0.97 |
| m_ratio | 0.98 |
| b_ratio | 0.97 |
| match_types | SymbolsHash |
| Key | libmmcamera_isp_color_correct40.so.stock | libmmcamera_isp_color_correct40.so.hex |
|---|---|---|
| name | color_correct40_set_bestshot | color_correct40_set_bestshot |
| fullname | color_correct40_set_bestshot | color_correct40_set_bestshot |
| refcount | 4 | 4 |
length |
368 | 352 |
| called | ::cam_debug_log ::pthread_mutex_lock ::pthread_mutex_unlock FUN_00011aa8 FUN_00011e28 |
::cam_debug_log ::pthread_mutex_lock ::pthread_mutex_unlock FUN_00011aa8 FUN_00011e28 |
| calling | ||
| paramcount | 0 | 0 |
| address | 000126b4 | 000126b4 |
| sig | undefined color_correct40_set_bestshot(void) | undefined color_correct40_set_bestshot(void) |
| sym_type | Function | Function |
| sym_source | IMPORTED | IMPORTED |
| external | False | False |
--- color_correct40_set_bestshot
+++ color_correct40_set_bestshot
@@ -1,110 +1,88 @@
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
-int color_correct40_set_bestshot(char *param_1,int param_2,int param_3,undefined4 param_4)
+int color_correct40_set_bestshot(int param_1,int param_2,int param_3,undefined4 param_4)
{
undefined4 uVar1;
undefined4 uVar2;
undefined4 uVar3;
int iVar4;
int iVar5;
int iVar6;
- undefined4 *puVar7;
- int iVar8;
+ int iVar7;
iVar5 = ___gnu_Unwind_Find_exidx;
- if ((param_1 == (char *)0x0) || (param_2 == 0)) {
+ if ((param_1 == 0) || (param_2 == 0)) {
if (___gnu_Unwind_Find_exidx != 0) {
cam_debug_log(4,1,"color_correct40_set_bestshot",0x24f,"failed: %p %p",param_1,param_2,param_4
);
iVar5 = 0;
}
}
else {
iVar6 = *(int *)(param_2 + 0x3158);
if (iVar6 == 0) {
if (___gnu_Unwind_Find_exidx != 0) {
cam_debug_log(4,1,"color_correct40_set_bestshot",0x255,"failed: mod %p",0,param_3,param_4);
iVar5 = 0;
}
}
else {
iVar4 = *(int *)(param_2 + 0x1c);
if (iVar4 == 0) {
if (___gnu_Unwind_Find_exidx != 0) {
cam_debug_log(4,1,"color_correct40_set_bestshot",0x25c,"failed: chromatix_ptr %p",0,
param_3,param_4);
iVar5 = 0;
}
}
else {
iVar5 = **(int **)(*(int *)(param_3 + 0x14) + 4);
*(int *)(iVar6 + 0xcfc) = iVar5;
*(undefined4 *)(param_2 + 0x80) = 0;
- iVar8 = param_2;
+ iVar7 = param_2;
if ((_memcpy != 0) && (_dladdr != 0)) {
- param_1 = "bestshot mode %d";
- iVar8 = iVar5;
+ iVar7 = iVar5;
cam_debug_log(4,3,"color_correct40_set_bestshot",0x26b,"bestshot mode %d",iVar5,param_3,
param_4);
}
- puVar7 = (undefined4 *)(iVar6 + 0xd30);
if (iVar5 == 6) {
uVar1 = *(undefined4 *)(iVar4 + 0x364c);
uVar2 = *(undefined4 *)(iVar4 + 0x3650);
uVar3 = *(undefined4 *)(iVar4 + 0x3654);
- *puVar7 = *(undefined4 *)(iVar4 + 0x3648);
+ *(undefined4 *)(iVar6 + 0xd30) = *(undefined4 *)(iVar4 + 0x3648);
*(undefined4 *)(iVar6 + 0xd34) = uVar1;
*(undefined4 *)(iVar6 + 0xd38) = uVar2;
*(undefined4 *)(iVar6 + 0xd3c) = uVar3;
uVar1 = *(undefined4 *)(iVar4 + 0x365c);
uVar2 = *(undefined4 *)(iVar4 + 0x3660);
uVar3 = *(undefined4 *)(iVar4 + 0x3664);
*(undefined4 *)(iVar6 + 0xd40) = *(undefined4 *)(iVar4 + 0x3658);
*(undefined4 *)(iVar6 + 0xd44) = uVar1;
*(undefined4 *)(iVar6 + 0xd48) = uVar2;
*(undefined4 *)(iVar6 + 0xd4c) = uVar3;
uVar1 = *(undefined4 *)(iVar4 + 0x366c);
uVar2 = *(undefined4 *)(iVar4 + 0x3670);
*(undefined4 *)(iVar6 + 0xd50) = *(undefined4 *)(iVar4 + 0x3668);
*(undefined4 *)(iVar6 + 0xd54) = uVar1;
*(undefined4 *)(iVar6 + 0xd58) = uVar2;
}
else {
- uVar1 = *(undefined4 *)(iVar4 + 0x3620);
- uVar2 = *(undefined4 *)(iVar4 + 0x3624);
- uVar3 = *(undefined4 *)(iVar4 + 0x3628);
- *puVar7 = *(undefined4 *)(iVar4 + 0x361c);
- *(undefined4 *)(iVar6 + 0xd34) = uVar1;
- *(undefined4 *)(iVar6 + 0xd38) = uVar2;
- *(undefined4 *)(iVar6 + 0xd3c) = uVar3;
- uVar1 = *(undefined4 *)(iVar4 + 0x3630);
- uVar2 = *(undefined4 *)(iVar4 + 0x3634);
- uVar3 = *(undefined4 *)(iVar4 + 0x3638);
- *(undefined4 *)(iVar6 + 0xd40) = *(undefined4 *)(iVar4 + 0x362c);
- *(undefined4 *)(iVar6 + 0xd44) = uVar1;
- *(undefined4 *)(iVar6 + 0xd48) = uVar2;
- *(undefined4 *)(iVar6 + 0xd4c) = uVar3;
- uVar1 = *(undefined4 *)(iVar4 + 0x3640);
- uVar2 = *(undefined4 *)(iVar4 + 0x3644);
- *(undefined4 *)(iVar6 + 0xd50) = *(undefined4 *)(iVar4 + 0x363c);
- *(undefined4 *)(iVar6 + 0xd54) = uVar1;
- *(undefined4 *)(iVar6 + 0xd58) = uVar2;
*(undefined4 *)(param_2 + 0x80) = 1;
}
- FUN_00011aa8(*(undefined4 *)(iVar6 + 0xd2c),iVar6 + 0xd5c,iVar6 + 0xd08,puVar7,uVar3,param_1
- ,iVar8);
+ FUN_00011aa8(*(undefined4 *)(iVar6 + 0xd2c),iVar6 + 0xd5c,iVar6 + 0xd08,
+ (undefined4 *)(iVar6 + 0xd30));
pthread_mutex_lock((pthread_mutex_t *)(param_2 + 0x10));
iVar5 = FUN_00011e28(param_2,iVar6);
if ((iVar5 == 0) && (___gnu_Unwind_Find_exidx != 0)) {
cam_debug_log(4,1,"color_correct40_set_bestshot",0x27d,
- "failed: color_correct40_do_hw_update",iVar8,param_3,param_4);
+ "failed: color_correct40_do_hw_update",iVar7,param_3,param_4);
}
pthread_mutex_unlock((pthread_mutex_t *)(param_2 + 0x10));
}
}
}
return iVar5;
}
Slightly modified functions have no code changes, rather differnces in:
- refcount
- length
- called
- calling
- name
- fullname
Generated with ghidriff version: 0.9.0 on 2025-07-21T12:58:44