Skip to content

Instantly share code, notes, and snippets.

@kos0ng
Created June 28, 2024 06:27
Show Gist options
  • Select an option

  • Save kos0ng/d41d032d416321703f5936f93da1a83c to your computer and use it in GitHub Desktop.

Select an option

Save kos0ng/d41d032d416321703f5936f93da1a83c to your computer and use it in GitHub Desktop.
bindiff LB3.exe - Brain Cipher.exe

LB3.exe-brain_cipher.exe Diff

TOC

Visual Chart Diff

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

Loading
pie showData
    title Function Matches - 97.2112%
"unmatched_funcs_len" : 21
"matched_funcs_len" : 732
Loading
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
Loading

Metadata

Ghidra Diff Engine

Command Line

Captured Command Line

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

Verbose Args

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

Binary Metadata Diff

--- 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

Program Options

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

Diff Stats

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
Loading
pie showData
    title First Matches
"SymbolsHash" : 16
"ExactBytesFunctionHasher" : 72
"ExactInstructionsFunctionHasher" : 184
"StructuralGraphExactHash" : 2
"BSIM" : 55
"StructuralGraphHash" : 8
Loading
pie showData
    title Diff Stats
"added_funcs_len" : 10
"deleted_funcs_len" : 11
"modified_funcs_len" : 13
Loading
pie showData
    title Symbols
"added_symbols_len" : 0
"deleted_symbols_len" : 0
Loading

Strings

No string differences found

Deleted

KERNEL32.DLL::GetProcAddress

Function Meta

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

USER32.DLL::CreateDialogParamW

Function Meta

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

GDI32.DLL::SelectObject

Function Meta

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

KERNEL32.DLL::GetLocaleInfoW

Function Meta

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

GDI32.DLL::GetPixel

Function Meta

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

USER32.DLL::CreateWindowExW

Function Meta

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

GDI32.DLL::BitBlt

Function Meta

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

GDI32.DLL::CreateDIBitmap

Function Meta

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

KERNEL32.DLL::GetFileAttributesW

Function Meta

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

GDI32.DLL::CreateFontW

Function Meta

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

KERNEL32.DLL::GetModuleHandleA

Function Meta

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

Added

USER32.DLL::GetMessageW

Function Meta

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

USER32.DLL::GetWindowTextW

Function Meta

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

KERNEL32.DLL::SetLastError

Function Meta

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

KERNEL32.DLL::LoadLibraryW

Function Meta

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

USER32.DLL::DialogBoxParamW

Function Meta

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

USER32.DLL::EndDialog

Function Meta

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

GDI32.DLL::SetDCBrushColor

Function Meta

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

USER32.DLL::GetKeyNameTextW

Function Meta

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

KERNEL32.DLL::GetTickCount

Function Meta

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

USER32.DLL::CreateMenu

Function Meta

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

Modified functions contain code changes

entry

Match Info

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

Function Meta Diff

Key LB3.exe brain_cipher.exe
name entry entry
fullname entry entry
refcount 2 2
length 284 249
called
Expand for full list:
FUN_0040639c
FUN_00409960
FUN_004173b4
FUN_00419000
GDI32.DLL::BitBlt
GDI32.DLL::CreateDIBitmap
GDI32.DLL::CreateFontW
GDI32.DLL::CreateSolidBrush
GDI32.DLL::GetDeviceCaps
GDI32.DLL::GetPixel
GDI32.DLL::GetTextColor
GDI32.DLL::SelectObject
GDI32.DLL::SelectPalette
GDI32.DLL::SetPixel
KERNEL32.DLL::FreeLibrary
KERNEL32.DLL::GetCommandLineA
KERNEL32.DLL::GetCommandLineW
KERNEL32.DLL::GetFileAttributesW
KERNEL32.DLL::GetLastError
KERNEL32.DLL::GetLocaleInfoW
KERNEL32.DLL::GetModuleHandleA
KERNEL32.DLL::GetProcAddress
USER32.DLL::CreateDialogParamW
USER32.DLL::CreateWindowExW
USER32.DLL::DefWindowProcW
USER32.DLL::GetDlgItem
USER32.DLL::IsDlgButtonChecked
USER32.DLL::LoadImageW
USER32.DLL::LoadMenuW
Expand for full list:
FUN_0040639c
FUN_00409990
FUN_00417458
FUN_00419000
GDI32.DLL::CreateSolidBrush
GDI32.DLL::GetDeviceCaps
GDI32.DLL::GetTextColor
GDI32.DLL::SelectPalette
GDI32.DLL::SetDCBrushColor
GDI32.DLL::SetPixel
KERNEL32.DLL::FreeLibrary
KERNEL32.DLL::GetCommandLineA
KERNEL32.DLL::GetCommandLineW
KERNEL32.DLL::GetLastError
KERNEL32.DLL::GetTickCount
KERNEL32.DLL::LoadLibraryW
KERNEL32.DLL::SetLastError
USER32.DLL::CreateMenu
USER32.DLL::DefWindowProcW
USER32.DLL::DialogBoxParamW
USER32.DLL::EndDialog
USER32.DLL::GetDlgItem
USER32.DLL::GetKeyNameTextW
USER32.DLL::GetMessageW
USER32.DLL::GetWindowTextW
USER32.DLL::IsDlgButtonChecked
USER32.DLL::LoadImageW
USER32.DLL::LoadMenuW
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 Diff

--- 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 Diff

--- 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();
 }
 

FUN_00405db0

Match Info

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

Function Meta Diff

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 Diff

--- FUN_00405db0 called
+++ FUN_00405da0 called
@@ -1,3 +1,3 @@
-FUN_00401124
-FUN_00405afc
-FUN_00405c34
+FUN_0040110c
+FUN_00405aec
+FUN_00405c24

FUN_00405db0 Diff

--- 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;
 }
 

FUN_0040684c

Match Info

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

Function Meta Diff

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_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
Expand for full list:
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
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 Diff

--- FUN_0040684c called
+++ FUN_0040686c called
@@ -1 +1 @@
-FUN_004010ac
+FUN_0040108c

FUN_0040684c Calling Diff

--- 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 Diff

--- 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;
 }
 

FUN_00417694

Match Info

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

Function Meta Diff

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 Diff

--- 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 Diff

--- 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;
 }
 

FUN_00406868

Match Info

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

Function Meta Diff

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 Diff

--- FUN_00406868 called
+++ FUN_00406894 called
@@ -1 +1 @@
-FUN_004010ac
+FUN_0040108c

FUN_00406868 Calling Diff

--- 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 Diff

--- 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;
 }
 

FUN_00406830

Match Info

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

Function Meta Diff

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_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
Expand for full list:
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
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 Diff

--- FUN_00406830 called
+++ FUN_00406844 called
@@ -1 +1 @@
-FUN_004010ac
+FUN_0040108c

FUN_00406830 Calling Diff

--- 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 Diff

--- 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;
 }
 

FUN_0040639c

Match Info

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

Function Meta Diff

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 Diff

--- 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 Diff

--- 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;
 }
 

FUN_0040b41c

Match Info

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

Function Meta Diff

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 Diff

--- FUN_0040b41c calling
+++ FUN_0040b444 calling
@@ -1,0 +2 @@
+FUN_0040e1e8

FUN_0040b41c Diff

--- 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;
 }
 

FUN_0040b414

Match Info

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

Function Meta Diff

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 Diff

--- FUN_0040b414 called
+++ FUN_0040b470 called
@@ -0,0 +1 @@
+FUN_00405aec

FUN_0040b414 Calling Diff

--- FUN_0040b414 calling
+++ FUN_0040b470 calling
@@ -2 +1,0 @@
-FUN_0040e144

FUN_0040b414 Diff

--- 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;
 }
 

Modified (No Code Changes)

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment