flowchart LR
entry-117-old<--Match 97%-->entry-117-new
FUN_00405db0-4-old<--Match 93%-->FUN_00405da0-4-new
FUN_0040684c-1-old<--Match 70%-->FUN_0040686c-1-new
FUN_00417694-2-old<--Match 94%-->FUN_00417738-2-new
FUN_00406868-2-old<--Match 72%-->FUN_00406894-2-new
FUN_00406830-1-old<--Match 70%-->FUN_00406844-1-new
FUN_0040639c-0-old<--Match 98%-->FUN_0040639c-0-new
FUN_0040b41c-0-old<--Match 46%-->FUN_0040b444-0-new
FUN_0040b414-0-old<--Match 16%-->FUN_0040b470-0-new
subgraph brain_cipher.exe
entry-117-new
FUN_00405da0-4-new
FUN_0040686c-1-new
FUN_00417738-2-new
FUN_00406894-2-new
FUN_00406844-1-new
FUN_0040639c-0-new
FUN_0040b444-0-new
FUN_0040b470-0-new
subgraph Added
direction LR
USER32DLL-GetMessageW
USER32DLL-GetWindowTextW
KERNEL32DLL-SetLastError
KERNEL32DLL-LoadLibraryW
USER32DLL-DialogBoxParamW
USER32DLL-EndDialog
GDI32DLL-SetDCBrushColor
USER32DLL-GetKeyNameTextW
KERNEL32DLL-GetTickCount
USER32DLL-CreateMenu
end
end
subgraph LB3.exe
entry-117-old
FUN_00405db0-4-old
FUN_0040684c-1-old
FUN_00417694-2-old
FUN_00406868-2-old
FUN_00406830-1-old
FUN_0040639c-0-old
FUN_0040b41c-0-old
FUN_0040b414-0-old
subgraph Deleted
direction LR
KERNEL32DLL-GetProcAddress
USER32DLL-CreateDialogParamW
GDI32DLL-SelectObject
KERNEL32DLL-GetLocaleInfoW
GDI32DLL-GetPixel
USER32DLL-CreateWindowExW
GDI32DLL-BitBlt
GDI32DLL-CreateDIBitmap
KERNEL32DLL-GetFileAttributesW
GDI32DLL-CreateFontW
KERNEL32DLL-GetModuleHandleA
end
end
pie showData
title Function Matches - 97.2112%
"unmatched_funcs_len" : 21
"matched_funcs_len" : 732
pie showData
title Matched Function Similarity - 98.2240%
"matched_funcs_with_code_changes_len" : 9
"matched_funcs_with_non_code_changes_len" : 4
"matched_funcs_no_changes_len" : 719
ghidriff --project-location ghidra_projects --project-name ghidriff --symbols-path symbols --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 LB3.exe brain_cipher.exe
Details
--old ['LB3.exe'] --new [['brain_cipher.exe']] --engine VersionTrackingDiff --output-path ghidriffs --summary False --project-location ghidra_projects --project-name ghidriff --symbols-path symbols --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
--- LB3.exe Meta
+++ brain_cipher.exe Meta
@@ -1,30 +1,30 @@
-Program Name: LB3.exe
+Program Name: brain_cipher.exe
Language ID: x86:LE:32:default (3.0)
Compiler ID: windows
Processor: x86
Endian: Little
Address Size: 32
Minimum Address: 00400000
Maximum Address: ffdfffff
-# of Bytes: 164808
+# of Bytes: 158152
# of Memory Blocks: 9
-# of Instructions: 25118
-# of Defined Data: 2566
-# of Functions: 377
-# of Symbols: 3342
-# of Data Types: 135
-# of Data Type Categories: 11
+# of Instructions: 25200
+# of Defined Data: 2564
+# of Functions: 376
+# of Symbols: 3254
+# of Data Types: 115
+# of Data Type Categories: 8
Analyzed: true
Compiler: visualstudio:unknown
Created With Ghidra Version: 11.0.1
-Date Created: Fri Jun 28 13:21:02 WIB 2024
+Date Created: Fri Jun 28 13:21:15 WIB 2024
Executable Format: Portable Executable (PE)
-Executable Location: /Users/kosong/CTF/malware/braincipher/LB3.exe
-Executable MD5: c73eac0c837c3c5caca3a885f46c17d9
-Executable SHA256: e609bf8406b61613f3e605d277cf445059974a4c71c3edd09fffae86a3c5dbfe
-FSRL: file:///Users/kosong/CTF/malware/braincipher/LB3.exe?MD5=c73eac0c837c3c5caca3a885f46c17d9
+Executable Location: /Users/kosong/CTF/malware/braincipher/brain_cipher.exe
+Executable MD5: 448f1796fe8de02194b21c0715e0a5f6
+Executable SHA256: eb82946fa0de261e92f8f60aa878c9fef9ebb34fdababa66995403b110118b12
+FSRL: file:///Users/kosong/CTF/malware/braincipher/brain_cipher.exe?MD5=448f1796fe8de02194b21c0715e0a5f6
Preferred Root Namespace Category:
RTTI Found: false
Relocatable: true
SectionAlignment: 4096
Should Ask To Analyze: false
Ghidra LB3.exe Decompiler Options
| Decompiler Option | Value |
|---|---|
| Prototype Evaluation | __fastcall/__thiscall/__stdcall |
Ghidra LB3.exe Specification extensions Options
| Specification extensions Option | Value |
|---|---|
| FormatVersion | 0 |
| VersionCounter | 0 |
Ghidra LB3.exe Analyzers Options
| Analyzers Option | Value |
|---|---|
| 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 | 3 |
| Create Address Tables.Pointer Alignment | 1 |
| Create Address Tables.Relocation Table Guide | true |
| Create Address Tables.Table Alignment | 4 |
| Data Reference | true |
| Data Reference.Address Table Alignment | 1 |
| Data Reference.Address Table Minimum Size | 3 |
| Data Reference.Align End of Strings | false |
| Data Reference.Ascii String References | true |
| Data Reference.Create Address Tables | true |
| Data Reference.Minimum String Length | 5 |
| Data Reference.References to Pointers | true |
| 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 | true |
| 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 | __fastcall/__thiscall/__stdcall |
| Decompiler Switch Analysis | true |
| Decompiler Switch Analysis.Analysis Decompiler Timeout (sec) | 60 |
| Demangler Microsoft | true |
| Demangler Microsoft.Apply Function Calling Conventions | true |
| Demangler Microsoft.Apply Function Signatures | true |
| Disassemble Entry Points | true |
| Disassemble Entry Points.Respect Execute Flag | true |
| Embedded Media | true |
| Embedded Media.Create Analysis Bookmarks | true |
| External Entry References | true |
| Function ID | true |
| Function ID.Always Apply FID Labels | false |
| Function ID.Create Analysis Bookmarks | true |
| Function ID.Instruction Count Threshold | 14.6 |
| Function ID.Multiple Match Threshold | 30.0 |
| 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 |
| PDB MSDIA | false |
| PDB MSDIA.Search remote symbol servers | false |
| PDB Universal | true |
| PDB Universal.Search remote symbol servers | false |
| Reference | true |
| Reference.Address Table Alignment | 1 |
| Reference.Address Table Minimum Size | 3 |
| Reference.Align End of Strings | false |
| Reference.Ascii String References | true |
| Reference.Create Address Tables | true |
| Reference.Minimum String Length | 5 |
| Reference.References to Pointers | true |
| Reference.Relocation Table Guide | true |
| Reference.Respect Execute Flag | true |
| Reference.Subroutine References | true |
| Reference.Switch Table References | false |
| Reference.Unicode String References | true |
| Scalar Operand References | true |
| Scalar Operand References.Relocation Table Guide | true |
| Shared Return Calls | true |
| Shared Return Calls.Allow Conditional Jumps | false |
| Shared Return Calls.Assume Contiguous Functions Only | true |
| Stack | true |
| Stack.Create Local Variables | true |
| Stack.Create Param Variables | true |
| 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 |
| Windows x86 PE Exception Handling | true |
| Windows x86 PE RTTI Analyzer | true |
| Windows x86 Thread Environment Block (TEB) Analyzer | true |
| Windows x86 Thread Environment Block (TEB) Analyzer.Starting Address of the TEB | |
| Windows x86 Thread Environment Block (TEB) Analyzer.Windows OS Version | Windows 7 |
| WindowsPE x86 Propagate External Parameters | false |
| WindowsResourceReference | true |
| WindowsResourceReference.Create Analysis Bookmarks | true |
| X86 Function Callee Purge | true |
| x86 Constant Reference Analyzer | true |
| x86 Constant Reference Analyzer.Create Data from pointer | false |
| x86 Constant Reference Analyzer.Function parameter/return Pointer analysis | true |
| x86 Constant Reference Analyzer.Max Threads | 2 |
| x86 Constant Reference Analyzer.Min absolute reference | 4 |
| x86 Constant Reference Analyzer.Require pointer param data type | false |
| x86 Constant Reference Analyzer.Speculative reference max | 256 |
| x86 Constant Reference Analyzer.Speculative reference min | 512 |
| x86 Constant Reference Analyzer.Stored Value Pointer analysis | true |
| x86 Constant Reference Analyzer.Trust values read from writable memory | true |
Ghidra brain_cipher.exe Decompiler Options
| Decompiler Option | Value |
|---|---|
| Prototype Evaluation | __fastcall/__thiscall/__stdcall |
Ghidra brain_cipher.exe Specification extensions Options
| Specification extensions Option | Value |
|---|---|
| FormatVersion | 0 |
| VersionCounter | 0 |
Ghidra brain_cipher.exe Analyzers Options
| Analyzers Option | Value |
|---|---|
| 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 | 3 |
| Create Address Tables.Pointer Alignment | 1 |
| Create Address Tables.Relocation Table Guide | true |
| Create Address Tables.Table Alignment | 4 |
| Data Reference | true |
| Data Reference.Address Table Alignment | 1 |
| Data Reference.Address Table Minimum Size | 3 |
| Data Reference.Align End of Strings | false |
| Data Reference.Ascii String References | true |
| Data Reference.Create Address Tables | true |
| Data Reference.Minimum String Length | 5 |
| Data Reference.References to Pointers | true |
| 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 | true |
| 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 | __fastcall/__thiscall/__stdcall |
| Decompiler Switch Analysis | true |
| Decompiler Switch Analysis.Analysis Decompiler Timeout (sec) | 60 |
| Demangler Microsoft | true |
| Demangler Microsoft.Apply Function Calling Conventions | true |
| Demangler Microsoft.Apply Function Signatures | true |
| Disassemble Entry Points | true |
| Disassemble Entry Points.Respect Execute Flag | true |
| Embedded Media | true |
| Embedded Media.Create Analysis Bookmarks | true |
| External Entry References | true |
| Function ID | true |
| Function ID.Always Apply FID Labels | false |
| Function ID.Create Analysis Bookmarks | true |
| Function ID.Instruction Count Threshold | 14.6 |
| Function ID.Multiple Match Threshold | 30.0 |
| 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 |
| PDB MSDIA | false |
| PDB MSDIA.Search remote symbol servers | false |
| PDB Universal | true |
| PDB Universal.Search remote symbol servers | false |
| Reference | true |
| Reference.Address Table Alignment | 1 |
| Reference.Address Table Minimum Size | 3 |
| Reference.Align End of Strings | false |
| Reference.Ascii String References | true |
| Reference.Create Address Tables | true |
| Reference.Minimum String Length | 5 |
| Reference.References to Pointers | true |
| Reference.Relocation Table Guide | true |
| Reference.Respect Execute Flag | true |
| Reference.Subroutine References | true |
| Reference.Switch Table References | false |
| Reference.Unicode String References | true |
| Scalar Operand References | true |
| Scalar Operand References.Relocation Table Guide | true |
| Shared Return Calls | true |
| Shared Return Calls.Allow Conditional Jumps | false |
| Shared Return Calls.Assume Contiguous Functions Only | true |
| Stack | true |
| Stack.Create Local Variables | true |
| Stack.Create Param Variables | true |
| 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 |
| Windows x86 PE Exception Handling | true |
| Windows x86 PE RTTI Analyzer | true |
| Windows x86 Thread Environment Block (TEB) Analyzer | true |
| Windows x86 Thread Environment Block (TEB) Analyzer.Starting Address of the TEB | |
| Windows x86 Thread Environment Block (TEB) Analyzer.Windows OS Version | Windows 7 |
| WindowsPE x86 Propagate External Parameters | false |
| WindowsResourceReference | true |
| WindowsResourceReference.Create Analysis Bookmarks | true |
| X86 Function Callee Purge | true |
| x86 Constant Reference Analyzer | true |
| x86 Constant Reference Analyzer.Create Data from pointer | false |
| x86 Constant Reference Analyzer.Function parameter/return Pointer analysis | true |
| x86 Constant Reference Analyzer.Max Threads | 2 |
| x86 Constant Reference Analyzer.Min absolute reference | 4 |
| x86 Constant Reference Analyzer.Require pointer param data type | false |
| x86 Constant Reference Analyzer.Speculative reference max | 256 |
| x86 Constant Reference Analyzer.Speculative reference min | 512 |
| x86 Constant Reference Analyzer.Stored Value Pointer analysis | true |
| x86 Constant Reference Analyzer.Trust values read from writable memory | true |
| Stat | Value |
|---|---|
| added_funcs_len | 10 |
| deleted_funcs_len | 11 |
| modified_funcs_len | 13 |
| added_symbols_len | 0 |
| deleted_symbols_len | 0 |
| diff_time | 2.3808491230010986 |
| deleted_strings_len | 0 |
| added_strings_len | 0 |
| match_types | Counter({'ExactInstructionsFunctionHasher': 184, 'ExactBytesFunctionHasher': 72, 'BSIM': 55, 'SymbolsHash': 16, 'ExternalsName': 14, 'StructuralGraphHash': 8, 'StructuralGraphExactHash': 2}) |
| items_to_process | 34 |
| diff_types | Counter({'length': 12, 'sig': 12, 'called': 11, 'name': 11, 'fullname': 11, 'address': 11, 'code': 9, 'calling': 9, 'refcount': 3}) |
| unmatched_funcs_len | 21 |
| total_funcs_len | 753 |
| matched_funcs_len | 732 |
| matched_funcs_with_code_changes_len | 9 |
| matched_funcs_with_non_code_changes_len | 4 |
| matched_funcs_no_changes_len | 719 |
| match_func_similarity_percent | 98.2240% |
| func_match_overall_percent | 97.2112% |
| first_matches | Counter({'ExactInstructionsFunctionHasher': 184, 'ExactBytesFunctionHasher': 72, 'BSIM': 55, 'SymbolsHash': 16, 'StructuralGraphHash': 8, 'StructuralGraphExactHash': 2}) |
pie showData
title All Matches
"SymbolsHash" : 16
"ExternalsName" : 14
"ExactBytesFunctionHasher" : 72
"ExactInstructionsFunctionHasher" : 184
"StructuralGraphExactHash" : 2
"BSIM" : 55
"StructuralGraphHash" : 8
pie showData
title First Matches
"SymbolsHash" : 16
"ExactBytesFunctionHasher" : 72
"ExactInstructionsFunctionHasher" : 184
"StructuralGraphExactHash" : 2
"BSIM" : 55
"StructuralGraphHash" : 8
pie showData
title Diff Stats
"added_funcs_len" : 10
"deleted_funcs_len" : 11
"modified_funcs_len" : 13
pie showData
title Symbols
"added_symbols_len" : 0
"deleted_symbols_len" : 0
No string differences found
| Key | LB3.exe |
|---|---|
| name | GetProcAddress |
| fullname | KERNEL32.DLL::GetProcAddress |
| refcount | 3 |
| length | 0 |
| called | |
| calling | KERNEL32.DLL::GetProcAddress |
| paramcount | 2 |
| address | EXTERNAL:00000013 |
| sig | FARPROC __stdcall GetProcAddress(HMODULE hModule, LPCSTR lpProcName) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for KERNEL32.DLL::GetProcAddress
| Key | LB3.exe |
|---|---|
| name | CreateDialogParamW |
| fullname | USER32.DLL::CreateDialogParamW |
| refcount | 3 |
| length | 0 |
| called | |
| calling | USER32.DLL::CreateDialogParamW |
| paramcount | 5 |
| address | EXTERNAL:0000000d |
| sig | HWND __stdcall CreateDialogParamW(HINSTANCE hInstance, LPCWSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for USER32.DLL::CreateDialogParamW
| Key | LB3.exe |
|---|---|
| name | SelectObject |
| fullname | GDI32.DLL::SelectObject |
| refcount | 3 |
| length | 0 |
| called | |
| calling | GDI32.DLL::SelectObject |
| paramcount | 2 |
| address | EXTERNAL:00000004 |
| sig | HGDIOBJ __stdcall SelectObject(HDC hdc, HGDIOBJ h) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for GDI32.DLL::SelectObject
| Key | LB3.exe |
|---|---|
| name | GetLocaleInfoW |
| fullname | KERNEL32.DLL::GetLocaleInfoW |
| refcount | 3 |
| length | 0 |
| called | |
| calling | KERNEL32.DLL::GetLocaleInfoW |
| paramcount | 4 |
| address | EXTERNAL:00000015 |
| sig | int __stdcall GetLocaleInfoW(LCID Locale, LCTYPE LCType, LPWSTR lpLCData, int cchData) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for KERNEL32.DLL::GetLocaleInfoW
| Key | LB3.exe |
|---|---|
| name | GetPixel |
| fullname | GDI32.DLL::GetPixel |
| refcount | 3 |
| length | 0 |
| called | |
| calling | GDI32.DLL::GetPixel |
| paramcount | 3 |
| address | EXTERNAL:00000002 |
| sig | COLORREF __stdcall GetPixel(HDC hdc, int x, int y) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for GDI32.DLL::GetPixel
| Key | LB3.exe |
|---|---|
| name | CreateWindowExW |
| fullname | USER32.DLL::CreateWindowExW |
| refcount | 3 |
| length | 0 |
| called | |
| calling | USER32.DLL::CreateWindowExW |
| paramcount | 12 |
| address | EXTERNAL:0000000e |
| sig | HWND __stdcall CreateWindowExW(DWORD dwExStyle, LPCWSTR lpClassName, LPCWSTR lpWindowName, DWORD dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for USER32.DLL::CreateWindowExW
| Key | LB3.exe |
|---|---|
| name | BitBlt |
| fullname | GDI32.DLL::BitBlt |
| refcount | 3 |
| length | 0 |
| called | |
| calling | GDI32.DLL::BitBlt |
| paramcount | 9 |
| address | EXTERNAL:00000006 |
| sig | BOOL __stdcall BitBlt(HDC hdc, int x, int y, int cx, int cy, HDC hdcSrc, int x1, int y1, DWORD rop) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for GDI32.DLL::BitBlt
| Key | LB3.exe |
|---|---|
| name | CreateDIBitmap |
| fullname | GDI32.DLL::CreateDIBitmap |
| refcount | 3 |
| length | 0 |
| called | |
| calling | GDI32.DLL::CreateDIBitmap |
| paramcount | 6 |
| address | EXTERNAL:0000000a |
| sig | HBITMAP __stdcall CreateDIBitmap(HDC hdc, BITMAPINFOHEADER * pbmih, DWORD flInit, void * pjBits, BITMAPINFO * pbmi, UINT iUsage) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for GDI32.DLL::CreateDIBitmap
| Key | LB3.exe |
|---|---|
| name | GetFileAttributesW |
| fullname | KERNEL32.DLL::GetFileAttributesW |
| refcount | 3 |
| length | 0 |
| called | |
| calling | KERNEL32.DLL::GetFileAttributesW |
| paramcount | 1 |
| address | EXTERNAL:00000017 |
| sig | DWORD __stdcall GetFileAttributesW(LPCWSTR lpFileName) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for KERNEL32.DLL::GetFileAttributesW
| Key | LB3.exe |
|---|---|
| name | CreateFontW |
| fullname | GDI32.DLL::CreateFontW |
| refcount | 3 |
| length | 0 |
| called | |
| calling | GDI32.DLL::CreateFontW |
| paramcount | 14 |
| address | EXTERNAL:00000009 |
| sig | HFONT __stdcall CreateFontW(int cHeight, int cWidth, int cEscapement, int cOrientation, int cWeight, DWORD bItalic, DWORD bUnderline, DWORD bStrikeOut, DWORD iCharSet, DWORD iOutPrecision, DWORD iClipPrecision, DWORD iQuality, DWORD iPitchAndFamily, LPCWSTR pszFaceName) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for GDI32.DLL::CreateFontW
| Key | LB3.exe |
|---|---|
| name | GetModuleHandleA |
| fullname | KERNEL32.DLL::GetModuleHandleA |
| refcount | 3 |
| length | 0 |
| called | |
| calling | KERNEL32.DLL::GetModuleHandleA |
| paramcount | 1 |
| address | EXTERNAL:00000014 |
| sig | HMODULE __stdcall GetModuleHandleA(LPCSTR lpModuleName) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for KERNEL32.DLL::GetModuleHandleA
| Key | brain_cipher.exe |
|---|---|
| name | GetMessageW |
| fullname | USER32.DLL::GetMessageW |
| refcount | 3 |
| length | 0 |
| called | |
| calling | USER32.DLL::GetMessageW |
| paramcount | 4 |
| address | EXTERNAL:0000000c |
| sig | BOOL __stdcall GetMessageW(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for USER32.DLL::GetMessageW
| Key | brain_cipher.exe |
|---|---|
| name | GetWindowTextW |
| fullname | USER32.DLL::GetWindowTextW |
| refcount | 3 |
| length | 0 |
| called | |
| calling | USER32.DLL::GetWindowTextW |
| paramcount | 3 |
| address | EXTERNAL:0000000d |
| sig | int __stdcall GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for USER32.DLL::GetWindowTextW
| Key | brain_cipher.exe |
|---|---|
| name | SetLastError |
| fullname | KERNEL32.DLL::SetLastError |
| refcount | 3 |
| length | 0 |
| called | |
| calling | KERNEL32.DLL::SetLastError |
| paramcount | 1 |
| address | EXTERNAL:00000012 |
| sig | void __stdcall SetLastError(DWORD dwErrCode) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for KERNEL32.DLL::SetLastError
| Key | brain_cipher.exe |
|---|---|
| name | LoadLibraryW |
| fullname | KERNEL32.DLL::LoadLibraryW |
| refcount | 3 |
| length | 0 |
| called | |
| calling | KERNEL32.DLL::LoadLibraryW |
| paramcount | 1 |
| address | EXTERNAL:00000013 |
| sig | HMODULE __stdcall LoadLibraryW(LPCWSTR lpLibFileName) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for KERNEL32.DLL::LoadLibraryW
| Key | brain_cipher.exe |
|---|---|
| name | DialogBoxParamW |
| fullname | USER32.DLL::DialogBoxParamW |
| refcount | 3 |
| length | 0 |
| called | |
| calling | USER32.DLL::DialogBoxParamW |
| paramcount | 5 |
| address | EXTERNAL:00000011 |
| sig | INT_PTR __stdcall DialogBoxParamW(HINSTANCE hInstance, LPCWSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for USER32.DLL::DialogBoxParamW
| Key | brain_cipher.exe |
|---|---|
| name | EndDialog |
| fullname | USER32.DLL::EndDialog |
| refcount | 3 |
| length | 0 |
| called | |
| calling | USER32.DLL::EndDialog |
| paramcount | 2 |
| address | EXTERNAL:00000009 |
| sig | BOOL __stdcall EndDialog(HWND hDlg, INT_PTR nResult) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for USER32.DLL::EndDialog
| Key | brain_cipher.exe |
|---|---|
| name | SetDCBrushColor |
| fullname | GDI32.DLL::SetDCBrushColor |
| refcount | 3 |
| length | 0 |
| called | |
| calling | GDI32.DLL::SetDCBrushColor |
| paramcount | 2 |
| address | EXTERNAL:00000002 |
| sig | COLORREF __stdcall SetDCBrushColor(HDC hdc, COLORREF color) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for GDI32.DLL::SetDCBrushColor
| Key | brain_cipher.exe |
|---|---|
| name | GetKeyNameTextW |
| fullname | USER32.DLL::GetKeyNameTextW |
| refcount | 3 |
| length | 0 |
| called | |
| calling | USER32.DLL::GetKeyNameTextW |
| paramcount | 3 |
| address | EXTERNAL:0000000b |
| sig | int __stdcall GetKeyNameTextW(LONG lParam, LPWSTR lpString, int cchSize) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for USER32.DLL::GetKeyNameTextW
| Key | brain_cipher.exe |
|---|---|
| name | GetTickCount |
| fullname | KERNEL32.DLL::GetTickCount |
| refcount | 3 |
| length | 0 |
| called | |
| calling | KERNEL32.DLL::GetTickCount |
| paramcount | 0 |
| address | EXTERNAL:00000014 |
| sig | DWORD __stdcall GetTickCount(void) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for KERNEL32.DLL::GetTickCount
| Key | brain_cipher.exe |
|---|---|
| name | CreateMenu |
| fullname | USER32.DLL::CreateMenu |
| refcount | 3 |
| length | 0 |
| called | |
| calling | USER32.DLL::CreateMenu |
| paramcount | 0 |
| address | EXTERNAL:00000008 |
| sig | HMENU __stdcall CreateMenu(void) |
| sym_type | Function |
| sym_source | IMPORTED |
| external | True |
No code available for USER32.DLL::CreateMenu
Modified functions contain code changes
| Key | LB3.exe - brain_cipher.exe |
|---|---|
| diff_type | code,length,sig,called |
| ratio | 0.11 |
| i_ratio | 0.39 |
| m_ratio | 0.97 |
| b_ratio | 0.97 |
| match_types | SymbolsHash |
| Key | LB3.exe | brain_cipher.exe |
|---|---|---|
| name | entry | entry |
| fullname | entry | entry |
| refcount | 2 | 2 |
length |
284 | 249 |
called |
Expand for full list:GDI32.DLL::SelectObject |
Expand for full list:KERNEL32.DLL::GetCommandLineA |
| calling | ||
| paramcount | 117 | 62 |
| address | 0041946f | 0041946f |
sig |
undefined __stdcall entry(LPCSTR param_1, LCID param_2, LCTYPE param_3, LPWSTR param_4, int param_5, HMODULE param_6, LPCSTR param_7, HMODULE param_8, HINSTANCE param_9, LPCWSTR param_10, HWND param_11, DLGPROC param_12, LPARAM param_13, HINSTANCE param_14, LPCWSTR param_15, UINT param_16, int param_17, int param_18, UINT param_19, DWORD param_20, LPCWSTR param_21, LPCWSTR param_22, DWORD param_23, int param_24, int param_25, int param_26, int param_27, HWND param_28, HMENU param_29, HINSTANCE param_30, LPVOID param_31, HINSTANCE param_32, LPCWSTR param_33, UINT param_34, int param_35, int param_36, UINT param_37, HINSTANCE param_38, LPCWSTR param_39, HWND param_40, UINT param_41, WPARAM param_42, LPARAM param_43, HINSTANCE param_44, LPCWSTR param_45, HWND param_46, int param_47, HWND param_48, int param_49, HINSTANCE param_50, LPCWSTR param_51, UINT param_52, int param_53, int param_54, UINT param_55, HDC param_56, BITMAPINFOHEADER * param_57, DWORD param_58, void * param_59, BITMAPINFO * param_60, UINT param_61, HDC param_62, int param_63, HDC param_64, HGDIOBJ param_65, int param_66, int param_67, int param_68, int param_69, int param_70, DWORD param_71, DWORD param_72, DWORD param_73, DWORD param_74, DWORD param_75, DWORD param_76, DWORD param_77, DWORD param_78, LPCWSTR param_79, HDC param_80, int param_81, int param_82, HDC param_83, int param_84, HDC param_85, int param_86, int param_87, COLORREF param_88, HDC param_89, int param_90, int param_91, int param_92, int param_93, HDC param_94, int param_95, int param_96, DWORD param_97, HDC param_98, HPALETTE param_99, BOOL param_100, HDC param_101, HDC param_102, int param_103, int param_104, int param_105, int param_106, int param_107, DWORD param_108, DWORD param_109, DWORD param_110, DWORD param_111, DWORD param_112, DWORD param_113, DWORD param_114, DWORD param_115, LPCWSTR param_116, COLORREF param_117) | undefined __stdcall entry(HMODULE param_1, DWORD param_2, LPCWSTR param_3, HWND param_4, int param_5, HWND param_6, INT_PTR param_7, LPMSG param_8, HWND param_9, UINT param_10, UINT param_11, HWND param_12, int param_13, HINSTANCE param_14, LPCWSTR param_15, UINT param_16, int param_17, int param_18, UINT param_19, HINSTANCE param_20, LPCWSTR param_21, HWND param_22, LPWSTR param_23, int param_24, LONG param_25, LPWSTR param_26, int param_27, HWND param_28, UINT param_29, WPARAM param_30, LPARAM param_31, HWND param_32, UINT param_33, WPARAM param_34, LPARAM param_35, HWND param_36, LPWSTR param_37, int param_38, HWND param_39, INT_PTR param_40, HINSTANCE param_41, LPCWSTR param_42, HWND param_43, DLGPROC param_44, LPARAM param_45, HDC param_46, HPALETTE param_47, BOOL param_48, HDC param_49, int param_50, int param_51, COLORREF param_52, COLORREF param_53, HDC param_54, HDC param_55, int param_56, int param_57, COLORREF param_58, HDC param_59, int param_60, HDC param_61, COLORREF param_62) |
| sym_type | Function | Function |
| sym_source | IMPORTED | IMPORTED |
| external | False | False |
--- entry called
+++ entry called
@@ -2,2 +2,2 @@
-FUN_00409960
-FUN_004173b4
+FUN_00409990
+FUN_00417458
@@ -5,3 +4,0 @@
-GDI32.DLL::BitBlt
-GDI32.DLL::CreateDIBitmap
-GDI32.DLL::CreateFontW
@@ -10 +6,0 @@
-GDI32.DLL::GetPixel
@@ -12 +7,0 @@
-GDI32.DLL::SelectObject
@@ -13,0 +9 @@
+GDI32.DLL::SetDCBrushColor
@@ -18 +13,0 @@
-KERNEL32.DLL::GetFileAttributesW
@@ -20,5 +15,4 @@
-KERNEL32.DLL::GetLocaleInfoW
-KERNEL32.DLL::GetModuleHandleA
-KERNEL32.DLL::GetProcAddress
-USER32.DLL::CreateDialogParamW
-USER32.DLL::CreateWindowExW
+KERNEL32.DLL::GetTickCount
+KERNEL32.DLL::LoadLibraryW
+KERNEL32.DLL::SetLastError
+USER32.DLL::CreateMenu
@@ -25,0 +20,2 @@
+USER32.DLL::DialogBoxParamW
+USER32.DLL::EndDialog
@@ -26,0 +23,3 @@
+USER32.DLL::GetKeyNameTextW
+USER32.DLL::GetMessageW
+USER32.DLL::GetWindowTextW--- entry
+++ entry
@@ -1,155 +1,155 @@
/* WARNING: Control flow encountered bad instruction data */
-void entry(LPCSTR param_1,LCID param_2,LCTYPE param_3,LPWSTR param_4,int param_5,HMODULE param_6,
- LPCSTR param_7,HMODULE param_8,HINSTANCE param_9,LPCWSTR param_10,HWND param_11,
- DLGPROC param_12,LPARAM param_13,HINSTANCE param_14,LPCWSTR param_15,UINT param_16,
- int param_17,int param_18,UINT param_19,DWORD param_20,LPCWSTR param_21,LPCWSTR param_22,
- DWORD param_23,int param_24,int param_25,int param_26,int param_27,HWND param_28,
- HMENU param_29,HINSTANCE param_30,LPVOID param_31,HINSTANCE param_32,LPCWSTR param_33,
- UINT param_34,int param_35,int param_36,UINT param_37,HINSTANCE param_38,LPCWSTR param_39,
- HWND param_40,UINT param_41,WPARAM param_42,LPARAM param_43,HINSTANCE param_44,
- LPCWSTR param_45,HWND param_46,int param_47,HWND param_48,int param_49,HINSTANCE param_50,
- LPCWSTR param_51,UINT param_52,int param_53,int param_54,UINT param_55,HDC param_56,
- BITMAPINFOHEADER *param_57,DWORD param_58,void *param_59,BITMAPINFO *param_60,
- UINT param_61,HDC param_62,int param_63,HDC param_64,HGDIOBJ param_65,int param_66,
- int param_67,int param_68,int param_69,int param_70,DWORD param_71,DWORD param_72,
- DWORD param_73,DWORD param_74,DWORD param_75,DWORD param_76,DWORD param_77,DWORD param_78,
- LPCWSTR param_79,HDC param_80,int param_81,int param_82,HDC param_83,int param_84,
- HDC param_85,int param_86,int param_87,COLORREF param_88,HDC param_89,int param_90,
- int param_91,int param_92,int param_93,HDC param_94,int param_95,int param_96,
- DWORD param_97,HDC param_98,HPALETTE param_99,BOOL param_100,HDC param_101,HDC param_102,
- int param_103,int param_104,int param_105,int param_106,int param_107,DWORD param_108,
- DWORD param_109,DWORD param_110,DWORD param_111,DWORD param_112,DWORD param_113,
- DWORD param_114,DWORD param_115,LPCWSTR param_116,COLORREF param_117)
+void entry(HMODULE param_1,DWORD param_2,LPCWSTR param_3,HWND param_4,int param_5,HWND param_6,
+ INT_PTR param_7,LPMSG param_8,HWND param_9,UINT param_10,UINT param_11,HWND param_12,
+ int param_13,HINSTANCE param_14,LPCWSTR param_15,UINT param_16,int param_17,int param_18,
+ UINT param_19,HINSTANCE param_20,LPCWSTR param_21,HWND param_22,LPWSTR param_23,
+ int param_24,LONG param_25,LPWSTR param_26,int param_27,HWND param_28,UINT param_29,
+ WPARAM param_30,LPARAM param_31,HWND param_32,UINT param_33,WPARAM param_34,
+ LPARAM param_35,HWND param_36,LPWSTR param_37,int param_38,HWND param_39,INT_PTR param_40,
+ HINSTANCE param_41,LPCWSTR param_42,HWND param_43,DLGPROC param_44,LPARAM param_45,
+ HDC param_46,HPALETTE param_47,BOOL param_48,HDC param_49,int param_50,int param_51,
+ COLORREF param_52,COLORREF param_53,HDC param_54,HDC param_55,int param_56,int param_57,
+ COLORREF param_58,HDC param_59,int param_60,HDC param_61,COLORREF param_62)
{
char cVar1;
- HBRUSH pHVar2;
+ char *pcVar2;
HMODULE unaff_retaddr;
- LPCWSTR lpFileName;
+ HMODULE hLibModule;
FUN_00419000();
FUN_0040639c();
- FUN_00409960();
- FUN_004173b4();
- lpFileName = (LPCWSTR)0x0;
+ FUN_00409990();
+ FUN_00417458();
+ hLibModule = (HMODULE)0x0;
(*DAT_0)();
- GetFileAttributesW(lpFileName);
+ GetTickCount();
+ GetCommandLineW();
+ FreeLibrary(hLibModule);
GetLastError();
FreeLibrary(unaff_retaddr);
+ FreeLibrary(param_1);
GetCommandLineA();
- GetModuleHandleA(param_1);
- GetLocaleInfoW(param_2,param_3,param_4,param_5);
- GetCommandLineW();
- GetProcAddress(param_6,param_7);
- GetLastError();
- GetLastError();
- FreeLibrary(param_8);
- CreateDialogParamW(param_9,param_10,param_11,param_12,param_13);
+ SetLastError(param_2);
+ LoadLibraryW(param_3);
+ IsDlgButtonChecked(param_4,param_5);
+ EndDialog(param_6,param_7);
+ GetMessageW(param_8,param_9,param_10,param_11);
+ GetDlgItem(param_12,param_13);
LoadImageW(param_14,param_15,param_16,param_17,param_18,param_19);
- CreateWindowExW(param_20,param_21,param_22,param_23,param_24,param_25,param_26,param_27,param_28,
- param_29,param_30,param_31);
- LoadImageW(param_32,param_33,param_34,param_35,param_36,param_37);
- LoadMenuW(param_38,param_39);
- DefWindowProcW(param_40,param_41,param_42,param_43);
- LoadMenuW(param_44,param_45);
- IsDlgButtonChecked(param_46,param_47);
- GetDlgItem(param_48,param_49);
- LoadImageW(param_50,param_51,param_52,param_53,param_54,param_55);
- CreateDIBitmap(param_56,param_57,param_58,param_59,param_60,param_61);
- GetDeviceCaps(param_62,param_63);
- SelectObject(param_64,param_65);
- CreateFontW(param_66,param_67,param_68,param_69,param_70,param_71,param_72,param_73,param_74,
- param_75,param_76,param_77,param_78,param_79);
- GetPixel(param_80,param_81,param_82);
- GetDeviceCaps(param_83,param_84);
- SetPixel(param_85,param_86,param_87,param_88);
- BitBlt(param_89,param_90,param_91,param_92,param_93,param_94,param_95,param_96,param_97);
- SelectPalette(param_98,param_99,param_100);
- GetTextColor(param_101);
- GetTextColor(param_102);
- CreateFontW(param_103,param_104,param_105,param_106,param_107,param_108,param_109,param_110,
- param_111,param_112,param_113,param_114,param_115,param_116);
- pHVar2 = CreateSolidBrush(param_117);
- cVar1 = (char)pHVar2;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
- *(char *)&pHVar2->unused = *(char *)&pHVar2->unused + cVar1;
+ LoadMenuW(param_20,param_21);
+ GetWindowTextW(param_22,param_23,param_24);
+ GetKeyNameTextW(param_25,param_26,param_27);
+ DefWindowProcW(param_28,param_29,param_30,param_31);
+ DefWindowProcW(param_32,param_33,param_34,param_35);
+ GetWindowTextW(param_36,param_37,param_38);
+ EndDialog(param_39,param_40);
+ CreateMenu();
+ DialogBoxParamW(param_41,param_42,param_43,param_44,param_45);
+ SelectPalette(param_46,param_47,param_48);
+ SetPixel(param_49,param_50,param_51,param_52);
+ CreateSolidBrush(param_53);
+ GetTextColor(param_54);
+ SetPixel(param_55,param_56,param_57,param_58);
+ GetDeviceCaps(param_59,param_60);
+ pcVar2 = (char *)SetDCBrushColor(param_61,param_62);
+ cVar1 = (char)pcVar2;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
+ *pcVar2 = *pcVar2 + cVar1;
/* WARNING: Bad instruction - Truncating control flow here */
halt_baddata();
}
| Key | LB3.exe - brain_cipher.exe |
|---|---|
| diff_type | code,name,fullname,length,sig,address,called |
| ratio | 0.71 |
| i_ratio | 0.85 |
| m_ratio | 0.98 |
| b_ratio | 0.93 |
| match_types | BSIM |
| Key | LB3.exe | brain_cipher.exe |
|---|---|---|
name |
FUN_00405db0 | FUN_00405da0 |
fullname |
FUN_00405db0 | FUN_00405da0 |
| refcount | 19 | 19 |
length |
311 | 327 |
called |
FUN_00401124 FUN_00405afc FUN_00405c34 |
FUN_0040110c FUN_00405aec FUN_00405c24 |
| calling | FUN_0040639c | FUN_0040639c |
| paramcount | 4 | 4 |
address |
00405db0 | 00405da0 |
sig |
undefined __stdcall FUN_00405db0(undefined4 * param_1, uint * param_2, undefined4 param_3, undefined * param_4) | undefined __stdcall FUN_00405da0(int param_1, uint * param_2, undefined4 param_3, undefined * param_4) |
| sym_type | Function | Function |
| sym_source | DEFAULT | DEFAULT |
| external | False | False |
--- FUN_00405db0 called
+++ FUN_00405da0 called
@@ -1,3 +1,3 @@
-FUN_00401124
-FUN_00405afc
-FUN_00405c34
+FUN_0040110c
+FUN_00405aec
+FUN_00405c24--- FUN_00405db0
+++ FUN_00405da0
@@ -1,73 +1,80 @@
-void FUN_00405db0(undefined4 *param_1,uint *param_2,undefined4 param_3,undefined *param_4)
+void FUN_00405da0(int param_1,uint *param_2,undefined4 param_3,undefined *param_4)
{
byte bVar1;
int iVar2;
uint uVar3;
undefined *puVar4;
int iVar5;
int extraout_EDX;
int extraout_EDX_00;
int extraout_EDX_01;
int extraout_EDX_02;
- undefined8 uVar6;
+ undefined4 *puVar6;
+ undefined4 *puVar7;
+ undefined8 uVar8;
- iVar2 = FUN_00405c34(*param_2 ^ 0x4803bfc7);
+ iVar2 = FUN_00405c24(*param_2 ^ 0x10035fff);
if (iVar2 != 0) {
+ puVar6 = (undefined4 *)(param_1 + 4);
while( true ) {
- param_1 = param_1 + 1;
param_2 = param_2 + 1;
if (*param_2 == 0xcccccccc) break;
- uVar3 = FUN_00405afc(*param_2 ^ 0x4803bfc7);
+ uVar3 = FUN_00405aec(*param_2 ^ 0x10035fff);
puVar4 = (undefined *)(*(code *)param_4)(param_3,0,0x10);
- *param_1 = puVar4;
+ puVar7 = puVar6;
+ if (*(int *)(puVar4 + 0x10) != -0x54545455) {
+ puVar7 = puVar6 + 1;
+ *puVar6 = puVar4;
+ }
*puVar4 = 0xb8;
- uVar6 = FUN_00401124(0,4);
- iVar5 = (int)((ulonglong)uVar6 >> 0x20);
- iVar2 = (int)uVar6;
+ uVar8 = FUN_0040110c(0,4);
+ iVar5 = (int)((ulonglong)uVar8 >> 0x20);
+ iVar2 = (int)uVar8;
+ puVar6 = puVar7;
if (iVar2 == 0) {
- bVar1 = FUN_00401124(1,9);
+ bVar1 = FUN_0040110c(1,9);
*(uint *)(extraout_EDX + 1) = uVar3 << (bVar1 & 0x1f) | uVar3 >> 0x20 - (bVar1 & 0x1f);
*(undefined2 *)(extraout_EDX + 5) = 0xc8c1;
*(byte *)(extraout_EDX + 7) = bVar1;
*(undefined2 *)(extraout_EDX + 8) = 0xe0ff;
}
else if (iVar2 == 1) {
- bVar1 = FUN_00401124(1,9);
+ bVar1 = FUN_0040110c(1,9);
*(uint *)(extraout_EDX_00 + 1) = uVar3 >> (bVar1 & 0x1f) | uVar3 << 0x20 - (bVar1 & 0x1f);
*(undefined2 *)(extraout_EDX_00 + 5) = 0xc0c1;
*(byte *)(extraout_EDX_00 + 7) = bVar1;
*(undefined2 *)(extraout_EDX_00 + 8) = 0xe0ff;
}
else if (iVar2 == 2) {
- *(uint *)(iVar5 + 1) = uVar3 ^ 0x4803bfc7;
+ *(uint *)(iVar5 + 1) = uVar3 ^ 0x10035fff;
*(undefined *)(iVar5 + 5) = 0x35;
- *(undefined4 *)(iVar5 + 6) = 0x4803bfc7;
+ *(undefined4 *)(iVar5 + 6) = 0x10035fff;
*(undefined2 *)(iVar5 + 10) = 0xe0ff;
}
else if (iVar2 == 3) {
- bVar1 = FUN_00401124(1,9);
+ bVar1 = FUN_0040110c(1,9);
*(uint *)(extraout_EDX_01 + 1) =
- (uVar3 ^ 0x4803bfc7) << (bVar1 & 0x1f) | (uVar3 ^ 0x4803bfc7) >> 0x20 - (bVar1 & 0x1f);
+ (uVar3 ^ 0x10035fff) << (bVar1 & 0x1f) | (uVar3 ^ 0x10035fff) >> 0x20 - (bVar1 & 0x1f);
*(undefined2 *)(extraout_EDX_01 + 5) = 0xc8c1;
*(byte *)(extraout_EDX_01 + 7) = bVar1;
*(undefined *)(extraout_EDX_01 + 8) = 0x35;
- *(undefined4 *)(extraout_EDX_01 + 9) = 0x4803bfc7;
+ *(undefined4 *)(extraout_EDX_01 + 9) = 0x10035fff;
*(undefined2 *)(extraout_EDX_01 + 0xd) = 0xe0ff;
}
else if (iVar2 == 4) {
- bVar1 = FUN_00401124(1,9);
+ bVar1 = FUN_0040110c(1,9);
*(uint *)(extraout_EDX_02 + 1) =
- (uVar3 ^ 0x4803bfc7) >> (bVar1 & 0x1f) | (uVar3 ^ 0x4803bfc7) << 0x20 - (bVar1 & 0x1f);
+ (uVar3 ^ 0x10035fff) >> (bVar1 & 0x1f) | (uVar3 ^ 0x10035fff) << 0x20 - (bVar1 & 0x1f);
*(undefined2 *)(extraout_EDX_02 + 5) = 0xc0c1;
*(byte *)(extraout_EDX_02 + 7) = bVar1;
*(undefined *)(extraout_EDX_02 + 8) = 0x35;
- *(undefined4 *)(extraout_EDX_02 + 9) = 0x4803bfc7;
+ *(undefined4 *)(extraout_EDX_02 + 9) = 0x10035fff;
*(undefined2 *)(extraout_EDX_02 + 0xd) = 0xe0ff;
}
}
}
return;
}
| Key | LB3.exe - brain_cipher.exe |
|---|---|
| diff_type | code,name,fullname,length,sig,address,calling,called |
| ratio | 0.57 |
| i_ratio | 0.78 |
| m_ratio | 0.87 |
| b_ratio | 0.7 |
| match_types | BSIM |
| Key | LB3.exe | brain_cipher.exe |
|---|---|---|
name |
FUN_0040684c | FUN_0040686c |
fullname |
FUN_0040684c | FUN_0040686c |
| refcount | 250 | 250 |
length |
27 | 38 |
called |
FUN_004010ac | FUN_0040108c |
calling |
Expand for full list:FUN_00408bb0 |
Expand for full list:FUN_00408be0 |
| paramcount | 1 | 1 |
address |
0040684c | 0040686c |
sig |
undefined __stdcall FUN_0040684c(undefined4 param_1) | undefined __stdcall FUN_0040686c(undefined4 param_1) |
| sym_type | Function | Function |
| sym_source | DEFAULT | DEFAULT |
| external | False | False |
--- FUN_0040684c called
+++ FUN_0040686c called
@@ -1 +1 @@
-FUN_004010ac
+FUN_0040108c--- FUN_0040684c calling
+++ FUN_0040686c calling
@@ -1,77 +1,77 @@
-FUN_00406544
-FUN_0040665a
-FUN_004068b4
-FUN_00406c60
-FUN_00406eac
-FUN_00406f10
-FUN_004073f8
-FUN_0040763c
-FUN_00407c74
-FUN_00407e28
-FUN_00408200
-FUN_00408bb0
-FUN_00409610
-FUN_004097a8
-FUN_00409960
-FUN_00409c34
-FUN_0040abf8
-FUN_0040ae44
-FUN_0040b17c
-FUN_0040b458
-FUN_0040b514
-FUN_0040ba18
-FUN_0040bb94
-FUN_0040be2c
-FUN_0040bef0
-FUN_0040bfc0
-FUN_0040c0f8
-FUN_0040c354
-FUN_0040c5b4
-FUN_0040c7b4
-FUN_0040c820
-FUN_0040cc60
-FUN_0040cf28
-FUN_0040d7e6
-FUN_0040d95c
-FUN_0040dc40
-FUN_0040ddd4
-FUN_0040e214
-FUN_0040e3b8
-FUN_0040ec8c
-FUN_0040eec8
-FUN_0040f264
-FUN_0040fbe4
-FUN_0040ff5c
-FUN_00410410
-FUN_00410b40
-FUN_00410d8c
-FUN_004110cc
-FUN_0041119c
-FUN_0041135c
-FUN_0041156d
-FUN_00411608
-FUN_004116bc
-FUN_00411890
-FUN_00411aac
-FUN_00411c84
-FUN_00411fb8
-FUN_00412384
-FUN_004136e0
-FUN_00413868
-FUN_00413dfc
-FUN_00413fcc
-FUN_00414464
-FUN_00414604
-FUN_00414bbc
-FUN_00414dac
-FUN_0041503c
-FUN_00415710
-FUN_004159e0
-FUN_00415c84
-FUN_00416080
-FUN_004163ec
-FUN_004165e4
-FUN_00416b18
-FUN_00416d04
-FUN_00416efc
-FUN_00417694
+FUN_00406550
+FUN_0040666e
+FUN_004068ec
+FUN_00406c98
+FUN_00406ee4
+FUN_00406f48
+FUN_00407428
+FUN_0040766c
+FUN_00407ca4
+FUN_00407e58
+FUN_00408230
+FUN_00408be0
+FUN_00409640
+FUN_004097d8
+FUN_00409990
+FUN_00409c64
+FUN_0040ac28
+FUN_0040ae74
+FUN_0040b1ac
+FUN_0040b4fc
+FUN_0040b5b8
+FUN_0040babc
+FUN_0040bc38
+FUN_0040bed0
+FUN_0040bf94
+FUN_0040c064
+FUN_0040c19c
+FUN_0040c3f8
+FUN_0040c658
+FUN_0040c858
+FUN_0040c8c4
+FUN_0040cd04
+FUN_0040cfcc
+FUN_0040d88a
+FUN_0040da00
+FUN_0040dce4
+FUN_0040de78
+FUN_0040e2b8
+FUN_0040e45c
+FUN_0040ed30
+FUN_0040ef6c
+FUN_0040f308
+FUN_0040fc88
+FUN_00410000
+FUN_004104b4
+FUN_00410be4
+FUN_00410e30
+FUN_00411170
+FUN_00411240
+FUN_00411400
+FUN_00411611
+FUN_004116ac
+FUN_00411760
+FUN_00411934
+FUN_00411b50
+FUN_00411d28
+FUN_0041205c
+FUN_00412428
+FUN_00413784
+FUN_0041390c
+FUN_00413ea0
+FUN_00414070
+FUN_00414508
+FUN_004146a8
+FUN_00414c60
+FUN_00414e50
+FUN_004150e0
+FUN_004157b4
+FUN_00415a84
+FUN_00415d28
+FUN_00416124
+FUN_00416490
+FUN_00416688
+FUN_00416bbc
+FUN_00416da8
+FUN_00416fa0
+FUN_00417738--- FUN_0040684c
+++ FUN_0040686c
@@ -1,11 +1,16 @@
-void FUN_0040684c(undefined4 param_1)
+void FUN_0040686c(undefined4 param_1)
{
void *pvVar1;
+ uint uVar2;
- pvVar1 = FUN_004010ac();
- (*DAT_0)(*(undefined4 *)((int)pvVar1 + 0x18),0,param_1);
+ pvVar1 = FUN_0040108c();
+ uVar2 = *(uint *)((int)pvVar1 + 0x18);
+ if ((*(uint *)(uVar2 + 0x44) & 0x40000000) != 0) {
+ uVar2 = uVar2 >> 1 | (uint)((uVar2 & 1) != 0) << 0x1f;
+ }
+ (*DAT_0)(uVar2,0,param_1);
return;
}
| Key | LB3.exe - brain_cipher.exe |
|---|---|
| diff_type | code,name,fullname,length,sig,address,called |
| ratio | 0.43 |
| i_ratio | 0.85 |
| m_ratio | 0.98 |
| b_ratio | 0.94 |
| match_types | BSIM |
| Key | LB3.exe | brain_cipher.exe |
|---|---|---|
name |
FUN_00417694 | FUN_00417738 |
fullname |
FUN_00417694 | FUN_00417738 |
| refcount | 1 | 1 |
length |
189 | 200 |
called |
FUN_00406830 FUN_0040684c FUN_00417754 FUN_00418ba4 |
FUN_00406844 FUN_0040686c FUN_00417800 FUN_00418c34 |
| calling | FUN_0040639c | FUN_0040639c |
| paramcount | 2 | 2 |
address |
00417694 | 00417738 |
sig |
bool __stdcall FUN_00417694(undefined4 param_1, undefined * param_2) | bool __stdcall FUN_00417738(uint param_1, undefined * param_2) |
| sym_type | Function | Function |
| sym_source | DEFAULT | DEFAULT |
| external | False | False |
--- FUN_00417694 called
+++ FUN_00417738 called
@@ -1,4 +1,4 @@
-FUN_00406830
-FUN_0040684c
-FUN_00417754
-FUN_00418ba4
+FUN_00406844
+FUN_0040686c
+FUN_00417800
+FUN_00418c34--- FUN_00417694
+++ FUN_00417738
@@ -1,41 +1,46 @@
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Restarted to delay deadcode elimination for space: ram */
-bool FUN_00417694(undefined4 param_1,undefined *param_2)
+bool FUN_00417738(uint param_1,undefined *param_2)
{
byte *pbVar1;
int iVar2;
undefined4 extraout_ECX;
- byte *pbVar3;
+ uint uVar3;
byte *pbVar4;
- bool bVar5;
- undefined8 uVar6;
+ byte *pbVar5;
+ bool bVar6;
+ undefined8 uVar7;
- bVar5 = false;
- pbVar3 = &DAT_0;
- pbVar1 = (byte *)FUN_00406830(DAT_1);
+ bVar6 = false;
+ uVar3 = param_1;
+ if ((*(uint *)(param_1 + 0x44) & 0x40000000) != 0) {
+ uVar3 = param_1 >> 1 | (uint)((param_1 & 1) != 0) << 0x1f;
+ }
+ pbVar4 = &DAT_0;
+ pbVar1 = (byte *)FUN_00406844(DAT_1);
iVar2 = DAT_1;
- pbVar4 = pbVar1;
+ pbVar5 = pbVar1;
if (pbVar1 != (byte *)0x0) {
do {
- *pbVar4 = *pbVar3 ^ 0x30;
+ *pbVar5 = *pbVar4 ^ 0x30;
iVar2 = iVar2 + -1;
- pbVar3 = pbVar3 + 1;
pbVar4 = pbVar4 + 1;
+ pbVar5 = pbVar5 + 1;
} while (iVar2 != 0);
- uVar6 = (*(code *)param_2)(param_1,8,DAT_1 * 2);
- pbVar3 = (byte *)uVar6;
- bVar5 = pbVar3 != (byte *)0x0;
- if (bVar5) {
- FUN_00418ba4(extraout_ECX,(int)((ulonglong)uVar6 >> 0x20),pbVar1,pbVar3);
- _DAT_2 = FUN_00417754((uint)(pbVar3 + 0x83),param_1,param_2);
- _DAT_3 = FUN_00417754((uint)(pbVar3 + 0xc4),param_1,param_2);
- _DAT_4 = FUN_00417754((uint)(pbVar3 + 0x19b),param_1,param_2);
+ uVar7 = (*(code *)param_2)(uVar3,8,DAT_1 * 2);
+ pbVar4 = (byte *)uVar7;
+ bVar6 = pbVar4 != (byte *)0x0;
+ if (bVar6) {
+ FUN_00418c34(extraout_ECX,(int)((ulonglong)uVar7 >> 0x20),pbVar1,pbVar4);
+ _DAT_2 = FUN_00417800((uint)(pbVar4 + 0x83),param_1,param_2);
+ _DAT_3 = FUN_00417800((uint)(pbVar4 + 0xc4),param_1,param_2);
+ _DAT_4 = FUN_00417800((uint)(pbVar4 + 0x19b),param_1,param_2);
}
- FUN_0040684c(pbVar1);
+ FUN_0040686c(pbVar1);
}
- return bVar5;
+ return bVar6;
}
| Key | LB3.exe - brain_cipher.exe |
|---|---|
| diff_type | code,name,fullname,length,sig,address,calling,called |
| ratio | 0.57 |
| i_ratio | 0.8 |
| m_ratio | 0.88 |
| b_ratio | 0.72 |
| match_types | BSIM |
| Key | LB3.exe | brain_cipher.exe |
|---|---|---|
name |
FUN_00406868 | FUN_00406894 |
fullname |
FUN_00406868 | FUN_00406894 |
| refcount | 7 | 7 |
length |
30 | 41 |
called |
FUN_004010ac | FUN_0040108c |
calling |
FUN_00407e28 FUN_004097a8 FUN_0040abf8 FUN_0040c5b4 FUN_0040cc60 FUN_0040dc40 FUN_00411aac |
FUN_00407e58 FUN_004097d8 FUN_0040ac28 FUN_0040c658 FUN_0040cd04 FUN_0040dce4 FUN_00411b50 |
| paramcount | 2 | 2 |
address |
00406868 | 00406894 |
sig |
undefined __stdcall FUN_00406868(undefined4 param_1, undefined4 param_2) | undefined __stdcall FUN_00406894(undefined4 param_1, undefined4 param_2) |
| sym_type | Function | Function |
| sym_source | DEFAULT | DEFAULT |
| external | False | False |
--- FUN_00406868 called
+++ FUN_00406894 called
@@ -1 +1 @@
-FUN_004010ac
+FUN_0040108c--- FUN_00406868 calling
+++ FUN_00406894 calling
@@ -1,7 +1,7 @@
-FUN_00407e28
-FUN_004097a8
-FUN_0040abf8
-FUN_0040c5b4
-FUN_0040cc60
-FUN_0040dc40
-FUN_00411aac
+FUN_00407e58
+FUN_004097d8
+FUN_0040ac28
+FUN_0040c658
+FUN_0040cd04
+FUN_0040dce4
+FUN_00411b50--- FUN_00406868
+++ FUN_00406894
@@ -1,11 +1,16 @@
-void FUN_00406868(undefined4 param_1,undefined4 param_2)
+void FUN_00406894(undefined4 param_1,undefined4 param_2)
{
void *pvVar1;
+ uint uVar2;
- pvVar1 = FUN_004010ac();
- (*DAT_0)(*(undefined4 *)((int)pvVar1 + 0x18),8,param_1,param_2);
+ pvVar1 = FUN_0040108c();
+ uVar2 = *(uint *)((int)pvVar1 + 0x18);
+ if ((*(uint *)(uVar2 + 0x40) & 0x40000000) != 0) {
+ uVar2 = uVar2 << 1 | (uint)((int)uVar2 < 0);
+ }
+ (*DAT_0)(uVar2,8,param_1,param_2);
return;
}
| Key | LB3.exe - brain_cipher.exe |
|---|---|
| diff_type | code,name,fullname,length,sig,address,calling,called |
| ratio | 0.57 |
| i_ratio | 0.78 |
| m_ratio | 0.87 |
| b_ratio | 0.7 |
| match_types | BSIM |
| Key | LB3.exe | brain_cipher.exe |
|---|---|---|
name |
FUN_00406830 | FUN_00406844 |
fullname |
FUN_00406830 | FUN_00406844 |
| refcount | 127 | 127 |
length |
27 | 38 |
called |
FUN_004010ac | FUN_0040108c |
calling |
Expand for full list:FUN_00407c74 |
Expand for full list:FUN_00407ca4 |
| paramcount | 1 | 1 |
address |
00406830 | 00406844 |
sig |
undefined __stdcall FUN_00406830(undefined4 param_1) | undefined __stdcall FUN_00406844(undefined4 param_1) |
| sym_type | Function | Function |
| sym_source | DEFAULT | DEFAULT |
| external | False | False |
--- FUN_00406830 called
+++ FUN_00406844 called
@@ -1 +1 @@
-FUN_004010ac
+FUN_0040108c--- FUN_00406830 calling
+++ FUN_00406844 calling
@@ -1,78 +1,78 @@
-FUN_00406888
-FUN_004068fc
-FUN_0040694c
-FUN_004069a8
-FUN_00406a3c
-FUN_00406d08
-FUN_00406db0
-FUN_00406de0
-FUN_00406e54
-FUN_00406f10
-FUN_0040763c
-FUN_00407c74
-FUN_00407e28
-FUN_00408200
-FUN_00408bb0
-FUN_00409710
-FUN_004097a8
-FUN_0040a928
-FUN_0040abf8
-FUN_0040b17c
-FUN_0040b458
-FUN_0040b514
-FUN_0040bacc
-FUN_0040bb94
-FUN_0040bef0
-FUN_0040bfc0
-FUN_0040c354
-FUN_0040c5b4
-FUN_0040c7b4
-FUN_0040c820
-FUN_0040c884
-FUN_0040ca7c
-FUN_0040cc10
-FUN_0040cc60
-FUN_0040ce38
-FUN_0040cf28
-FUN_0040d40c
-FUN_0040d5d8
-FUN_0040d7e6
-FUN_0040d95c
-FUN_0040dc40
-FUN_0040e2ac
-FUN_0040ec8c
-FUN_0040f0c0
-FUN_0040f124
-FUN_0040f264
-FUN_0040f788
-FUN_0040fbe4
-FUN_0040ff5c
-FUN_00410294
-FUN_00410410
-FUN_00410b40
-FUN_00411028
-FUN_00411814
-FUN_00411aac
-FUN_00411b90
-FUN_00411fb8
-FUN_004136e0
-FUN_004138b0
-FUN_00413cf4
-FUN_00413fcc
-FUN_00414464
-FUN_00414820
-FUN_0041487c
-FUN_004148d8
-FUN_0041491c
-FUN_0041498c
-FUN_00414a04
-FUN_00414b64
-FUN_00414bbc
-FUN_00414dac
-FUN_0041503c
-FUN_00415710
-FUN_004159e0
-FUN_00416080
-FUN_004165e4
-FUN_00416b18
-FUN_00417694
+FUN_004068c0
+FUN_00406934
+FUN_00406984
+FUN_004069e0
+FUN_00406a74
+FUN_00406d40
+FUN_00406de8
+FUN_00406e18
+FUN_00406e8c
+FUN_00406f48
+FUN_0040766c
+FUN_00407ca4
+FUN_00407e58
+FUN_00408230
+FUN_00408be0
+FUN_00409740
+FUN_004097d8
+FUN_0040a958
+FUN_0040ac28
+FUN_0040b1ac
+FUN_0040b4fc
+FUN_0040b5b8
+FUN_0040bb70
+FUN_0040bc38
+FUN_0040bf94
+FUN_0040c064
+FUN_0040c3f8
+FUN_0040c658
+FUN_0040c858
+FUN_0040c8c4
+FUN_0040c928
+FUN_0040cb20
+FUN_0040ccb4
+FUN_0040cd04
+FUN_0040cedc
+FUN_0040cfcc
+FUN_0040d4b0
+FUN_0040d67c
+FUN_0040d88a
+FUN_0040da00
+FUN_0040dce4
+FUN_0040e350
+FUN_0040ed30
+FUN_0040f164
+FUN_0040f1c8
+FUN_0040f308
+FUN_0040f82c
+FUN_0040fc88
+FUN_00410000
+FUN_00410338
+FUN_004104b4
+FUN_00410be4
+FUN_004110cc
+FUN_004118b8
+FUN_00411b50
+FUN_00411c34
+FUN_0041205c
+FUN_00413784
+FUN_00413954
+FUN_00413d98
+FUN_00414070
+FUN_00414508
+FUN_004148c4
+FUN_00414920
+FUN_0041497c
+FUN_004149c0
+FUN_00414a30
+FUN_00414aa8
+FUN_00414c08
+FUN_00414c60
+FUN_00414e50
+FUN_004150e0
+FUN_004157b4
+FUN_00415a84
+FUN_00416124
+FUN_00416688
+FUN_00416bbc
+FUN_00417738--- FUN_00406830
+++ FUN_00406844
@@ -1,11 +1,16 @@
-void FUN_00406830(undefined4 param_1)
+void FUN_00406844(undefined4 param_1)
{
void *pvVar1;
+ uint uVar2;
- pvVar1 = FUN_004010ac();
- (*DAT_0)(*(undefined4 *)((int)pvVar1 + 0x18),8,param_1);
+ pvVar1 = FUN_0040108c();
+ uVar2 = *(uint *)((int)pvVar1 + 0x18);
+ if ((*(uint *)(uVar2 + 0x44) & 0x40000000) != 0) {
+ uVar2 = uVar2 >> 1 | (uint)((uVar2 & 1) != 0) << 0x1f;
+ }
+ (*DAT_0)(uVar2,8,param_1);
return;
}
| Key | LB3.exe - brain_cipher.exe |
|---|---|
| diff_type | code,length,called |
| ratio | 0.3 |
| i_ratio | 0.75 |
| m_ratio | 0.98 |
| b_ratio | 0.98 |
| match_types | BSIM |
| Key | LB3.exe | brain_cipher.exe |
|---|---|---|
| name | FUN_0040639c | FUN_0040639c |
| fullname | FUN_0040639c | FUN_0040639c |
| refcount | 1 | 1 |
length |
424 | 436 |
called |
FUN_00405afc FUN_00405db0 FUN_0040b414 FUN_0040b41c FUN_00417694 |
FUN_00405aec FUN_00405da0 FUN_0040b444 FUN_0040b470 FUN_00417738 |
| calling | entry | entry |
| paramcount | 0 | 0 |
| address | 0040639c | 0040639c |
| sig | undefined __stdcall FUN_0040639c(void) | undefined __stdcall FUN_0040639c(void) |
| sym_type | Function | Function |
| sym_source | DEFAULT | DEFAULT |
| external | False | False |
--- FUN_0040639c called
+++ FUN_0040639c called
@@ -1,5 +1,5 @@
-FUN_00405afc
-FUN_00405db0
-FUN_0040b414
-FUN_0040b41c
-FUN_00417694
+FUN_00405aec
+FUN_00405da0
+FUN_0040b444
+FUN_0040b470
+FUN_00417738--- FUN_0040639c
+++ FUN_0040639c
@@ -1,42 +1,45 @@
void FUN_0040639c(void)
{
code *pcVar1;
- int iVar2;
+ uint uVar2;
undefined *puVar3;
- pcVar1 = (code *)FUN_00405afc(-0x7f0e718);
+ pcVar1 = (code *)FUN_00405aec(-0x7f0e718);
if (pcVar1 != (code *)0x0) {
- iVar2 = (*pcVar1)(0x41002,0,0,0,0,0);
- if (iVar2 != 0) {
- puVar3 = (undefined *)FUN_00405afc(0x6e6047db);
+ uVar2 = (*pcVar1)(0x41002,0,0,0,0,0);
+ if (uVar2 != 0) {
+ if ((*(uint *)(uVar2 + 0x40) >> 0x1c & 4) != 0) {
+ uVar2 = uVar2 << 1 | (uint)((int)uVar2 < 0);
+ }
+ puVar3 = (undefined *)FUN_00405aec(0x6e6047db);
if (puVar3 != (undefined *)0x0) {
- FUN_00405db0((undefined4 *)&DAT_0,(uint *)&DAT_00405ee8,iVar2,puVar3);
- FUN_00405db0((undefined4 *)&DAT_1,(uint *)&DAT_00405fdc,iVar2,puVar3);
- FUN_00405db0((undefined4 *)&DAT_2,(uint *)&DAT_004060d0,iVar2,puVar3);
- FUN_00405db0((undefined4 *)&DAT_4,(uint *)&LAB_00406174,iVar2,puVar3);
- FUN_00405db0((undefined4 *)&DAT_5,(uint *)&DAT_00406188,iVar2,puVar3);
- FUN_00405db0((undefined4 *)&DAT_6,(uint *)&DAT_004061c4,iVar2,puVar3);
- FUN_00405db0((undefined4 *)&DAT_8,(uint *)&LAB_0040621c,iVar2,puVar3);
- FUN_00405db0((undefined4 *)&DAT_10,(uint *)&LAB_00406234,iVar2,puVar3);
- FUN_00405db0((undefined4 *)&DAT_11,(uint *)&DAT_00406260,iVar2,puVar3);
- FUN_00405db0((undefined4 *)&DAT_12,(uint *)&DAT_0040629c,iVar2,puVar3);
- FUN_00405db0((undefined4 *)&DAT_14,(uint *)&LAB_004062b4,iVar2,puVar3);
- FUN_00405db0((undefined4 *)&DAT_16,(uint *)&LAB_004062c0,iVar2,puVar3);
- FUN_00405db0((undefined4 *)&DAT_17,(uint *)&DAT_004062d8,iVar2,puVar3);
- FUN_00405db0((undefined4 *)&DAT_18,(uint *)&DAT_00406308,iVar2,puVar3);
- FUN_00405db0((undefined4 *)&DAT_20,(uint *)&LAB_00406324,iVar2,puVar3);
- FUN_00405db0((undefined4 *)&DAT_22,(uint *)&LAB_00406354,iVar2,puVar3);
- FUN_00405db0((undefined4 *)&DAT_24,(uint *)&LAB_00406368,iVar2,puVar3);
- FUN_00405db0((undefined4 *)&DAT_25,(uint *)&DAT_00406378,iVar2,puVar3);
- FUN_00405db0((undefined4 *)&DAT_27,(uint *)&LAB_00406390,iVar2,puVar3);
- FUN_0040b414();
- FUN_00417694(iVar2,puVar3);
- FUN_0040b41c();
+ FUN_00405da0(0x42540c,(uint *)&DAT_0,uVar2,puVar3);
+ FUN_00405da0(0x4254fc,(uint *)&DAT_1,uVar2,puVar3);
+ FUN_00405da0(0x4255ec,(uint *)&LAB_2,uVar2,puVar3);
+ FUN_00405da0(0x42568c,(uint *)&DAT_3,uVar2,puVar3);
+ FUN_00405da0(0x42569c,(uint *)&DAT_4,uVar2,puVar3);
+ FUN_00405da0(0x4256d4,(uint *)&LAB_5,uVar2,puVar3);
+ FUN_00405da0(0x425728,(uint *)&DAT_6,uVar2,puVar3);
+ FUN_00405da0(0x42573c,(uint *)&LAB_7,uVar2,puVar3);
+ FUN_00405da0(0x425764,(uint *)&DAT_8,uVar2,puVar3);
+ FUN_00405da0(0x42579c,(uint *)&LAB_9,uVar2,puVar3);
+ FUN_00405da0(0x4257b0,(uint *)&LAB_10,uVar2,puVar3);
+ FUN_00405da0(0x4257b8,(uint *)&LAB_11,uVar2,puVar3);
+ FUN_00405da0(0x4257cc,(uint *)&LAB_12,uVar2,puVar3);
+ FUN_00405da0(0x4257f8,(uint *)&LAB_13,uVar2,puVar3);
+ FUN_00405da0(0x425810,(uint *)&DAT_14,uVar2,puVar3);
+ FUN_00405da0(0x42583c,(uint *)&LAB_15,uVar2,puVar3);
+ FUN_00405da0(0x42584c,(uint *)&LAB_16,uVar2,puVar3);
+ FUN_00405da0(0x425858,(uint *)&DAT_17,uVar2,puVar3);
+ FUN_00405da0(0x42586c,(uint *)&LAB_18,uVar2,puVar3);
+ FUN_0040b444(0);
+ FUN_00417738(uVar2,puVar3);
+ FUN_0040b470();
}
}
}
return;
}
| Key | LB3.exe - brain_cipher.exe |
|---|---|
| diff_type | code,name,fullname,refcount,length,sig,address,calling |
| ratio | 0.67 |
| i_ratio | 0.23 |
| m_ratio | 0.38 |
| b_ratio | 0.46 |
| match_types | BSIM |
| Key | LB3.exe | brain_cipher.exe |
|---|---|---|
name |
FUN_0040b41c | FUN_0040b444 |
fullname |
FUN_0040b41c | FUN_0040b444 |
refcount |
1 | 2 |
length |
12 | 43 |
| called | ||
calling |
FUN_0040639c | FUN_0040639c FUN_0040e1e8 |
| paramcount | 0 | 1 |
address |
0040b41c | 0040b444 |
sig |
undefined __stdcall FUN_0040b41c(void) | undefined __stdcall FUN_0040b444(int param_1) |
| sym_type | Function | Function |
| sym_source | DEFAULT | DEFAULT |
| external | False | False |
--- FUN_0040b41c calling
+++ FUN_0040b444 calling
@@ -1,0 +2 @@
+FUN_0040e1e8--- FUN_0040b41c
+++ FUN_0040b444
@@ -1,7 +1,11 @@
-void FUN_0040b41c(void)
+void FUN_0040b444(int param_1)
{
+ if (param_1 == 0) {
+ param_1 = -2;
+ }
+ (*DAT_0)(param_1,0x11,0,0);
return;
}
| Key | LB3.exe - brain_cipher.exe |
|---|---|
| diff_type | code,name,fullname,refcount,length,sig,address,calling,called |
| ratio | 0.33 |
| i_ratio | 0.16 |
| m_ratio | 0.22 |
| b_ratio | 0.16 |
| match_types | BSIM |
| Key | LB3.exe | brain_cipher.exe |
|---|---|---|
name |
FUN_0040b414 | FUN_0040b470 |
fullname |
FUN_0040b414 | FUN_0040b470 |
refcount |
2 | 1 |
length |
7 | 91 |
called |
FUN_00405aec | |
calling |
FUN_0040639c FUN_0040e144 |
FUN_0040639c |
| paramcount | 0 | 0 |
address |
0040b414 | 0040b470 |
sig |
undefined __stdcall FUN_0040b414(void) | undefined __stdcall FUN_0040b470(void) |
| sym_type | Function | Function |
| sym_source | DEFAULT | DEFAULT |
| external | False | False |
--- FUN_0040b414 called
+++ FUN_0040b470 called
@@ -0,0 +1 @@
+FUN_00405aec--- FUN_0040b414 calling
+++ FUN_0040b470 calling
@@ -2 +1,0 @@
-FUN_0040e144--- FUN_0040b414
+++ FUN_0040b470
@@ -1,7 +1,23 @@
-void FUN_0040b414(void)
+void FUN_0040b470(void)
{
+ int iVar1;
+ int iVar2;
+ undefined local_10 [4];
+ undefined4 local_c;
+ int local_8;
+
+ local_8 = 0;
+ local_c = 0x20;
+ iVar1 = FUN_00405aec(-0x778c1144);
+ if (iVar1 != 0) {
+ local_8 = iVar1;
+ iVar2 = (*DAT_0)(0xffffffff,&local_8,&local_c,0x40,local_10);
+ if (iVar2 == 0) {
+ (*DAT_1)(iVar1,0x20,0);
+ }
+ }
return;
}
Slightly modified functions have no code changes, rather differnces in:
- refcount
- length
- called
- calling
- name
- fullname
Generated with ghidriff version: 0.7.2 on 2024-06-28T13:21:26