Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save xen0bit/e5a3c369833fcf96af3d4829a0c9a1a5 to your computer and use it in GitHub Desktop.
Save xen0bit/e5a3c369833fcf96af3d4829a0c9a1a5 to your computer and use it in GitHub Desktop.

old_FW_RT_AX55_300438651598_sbin_rc-new_FW_RT_AX55_300438652332_sbin_rc Diff

TOC

Visual Chart Diff

flowchart LR

FUN_00128ecc-0-old<--Match 97%-->FUN_00130548-0-new
FUN_001164c0-0-old<--Match 83%-->FUN_0011cefc-0-new
FUN_00141fac-2-old<--Match 99%-->FUN_00149b54-2-new
FUN_0011af60-1-old<--Match 96%-->FUN_00121ae0-1-new
FUN_00116e20-0-old<--Match 65%-->FUN_0011d838-0-new
FUN_000361c4-1-old<--Match 21%-->FUN_0004b0fc-1-new
FUN_00075564-0-old<--Match 99%-->FUN_00078d18-0-new
FUN_00112ad4-1-old<--Match 98%-->FUN_00119530-1-new
FUN_000d0d1c-3-old<--Match 57%-->FUN_000d6d2c-3-new
FUN_000d23d4-1-old<--Match 95%-->FUN_000d8438-1-new
FUN_0003643c-0-old<--Match 66%-->FUN_00037f70-0-new
FUN_0011cf48-3-old<--Match 94%-->FUN_00123be4-3-new
FUN_00111a5c-0-old<--Match 91%-->FUN_001184bc-0-new
FUN_00048260-0-old<--Match 28%-->FUN_0004a4b8-0-new
FUN_0011e608-1-old<--Match 89%-->FUN_001252f8-1-new
FUN_001281b8-0-old<--Match 83%-->FUN_0012f810-0-new
FUN_001049c8-1-old<--Match 98%-->FUN_0010af14-1-new
FUN_000f9fac-2-old<--Match 99%-->FUN_001043b4-2-new
FUN_00110a30-0-old<--Match 64%-->FUN_001173b8-0-new
FUN_001016f4-1-old<--Match 84%-->FUN_00107cac-1-new
FUN_00113500-2-old<--Match 100%-->FUN_00119f4c-2-new
FUN_000f1c20-1-old<--Match 78%-->FUN_000f9610-1-new
FUN_0009871c-1-old<--Match 68%-->FUN_0009e184-1-new
FUN_0004d76c-0-old<--Match 81%-->FUN_0005096c-0-new
FUN_00076120-3-old<--Match 68%-->FUN_000798d0-3-new
FUN_00021ea0-0-old<--Match 98%-->FUN_00022bc0-0-new
old_FW_RT_AX55_300438651598_sbin_rc<--151ommited-->new_FW_RT_AX55_300438652332_sbin_rc

subgraph new_FW_RT_AX55_300438652332_sbin_rc
    FUN_00130548-0-new
FUN_0011cefc-0-new
FUN_00149b54-2-new
FUN_00121ae0-1-new
FUN_0011d838-0-new
FUN_0004b0fc-1-new
FUN_00078d18-0-new
FUN_00119530-1-new
FUN_000d6d2c-3-new
FUN_000d8438-1-new
FUN_00037f70-0-new
FUN_00123be4-3-new
FUN_001184bc-0-new
FUN_0004a4b8-0-new
FUN_001252f8-1-new
FUN_0012f810-0-new
FUN_0010af14-1-new
FUN_001043b4-2-new
FUN_001173b8-0-new
FUN_00107cac-1-new
FUN_00119f4c-2-new
FUN_000f9610-1-new
FUN_0009e184-1-new
FUN_0005096c-0-new
FUN_000798d0-3-new
FUN_00022bc0-0-new
    subgraph Added
direction LR
FUN_00034afc
    FUN_00034b34
    FUN_00035130
    FUN_0003f88c
    FUN_0004c3b8
    FUN_0007e128
    FUN_000bb9e8
    FUN_000bc844
    FUN_000bcb5c
    FUN_000bd670
    FUN_000e7664
    FUN_000e7698
    FUN_000e98c4
    FUN_00100fb0
    FUN_00101acc
    FUN_00152ce0
    EXTERNAL-BIO_new
    EXTERNAL-get_first_connected_dual_wan_unit
    EXTERNAL-pw_enc
    EXTERNAL-d2i_X509_fp
    EXTERNAL-notify_rc_and_wait_2min
    EXTERNAL-notify_rc_and_wait_1min
    EXTERNAL-X509_free
    EXTERNAL-save_cert
    EXTERNAL-BIO_free
    EXTERNAL-BIO_ctrl
    EXTERNAL-illegal_cert_and_key
    24_more_added_funcs_omitted
end
end

subgraph old_FW_RT_AX55_300438651598_sbin_rc
    FUN_00128ecc-0-old
FUN_001164c0-0-old
FUN_00141fac-2-old
FUN_0011af60-1-old
FUN_00116e20-0-old
FUN_000361c4-1-old
FUN_00075564-0-old
FUN_00112ad4-1-old
FUN_000d0d1c-3-old
FUN_000d23d4-1-old
FUN_0003643c-0-old
FUN_0011cf48-3-old
FUN_00111a5c-0-old
FUN_00048260-0-old
FUN_0011e608-1-old
FUN_001281b8-0-old
FUN_001049c8-1-old
FUN_000f9fac-2-old
FUN_00110a30-0-old
FUN_001016f4-1-old
FUN_00113500-2-old
FUN_000f1c20-1-old
FUN_0009871c-1-old
FUN_0004d76c-0-old
FUN_00076120-3-old
FUN_00021ea0-0-old
    subgraph Deleted
direction LR
FUN_00070720
    FUN_000b5c5c
    FUN_000b68ec
    FUN_000fa8a8
    FUN_000fab08
    FUN_000fac14
    FUN_000fb0e8
    FUN_000fb6b4
    FUN_000fb8c4
    FUN_000fb98c
    FUN_000fd7d8
    FUN_00146b04
    FUN_0014ab98
    EXTERNAL-shmctl
end
end

Loading
pie showData
    title Function Matches - 99.2004%
"unmatched_funcs_len" : 63
"matched_funcs_len" : 7816
Loading
pie showData
    title Matched Function Similarity - 96.7886%
"matched_funcs_with_code_changes_len" : 176
"matched_funcs_with_non_code_changes_len" : 75
"matched_funcs_no_changes_len" : 7565
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 old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc

Verbose Args

--old ['old_FW_RT_AX55_300438651598_sbin_rc'] --new [['new_FW_RT_AX55_300438652332_sbin_rc']] --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

--- old_FW_RT_AX55_300438651598_sbin_rc Meta
+++ new_FW_RT_AX55_300438652332_sbin_rc Meta
@@ -1,62 +1,62 @@
-Program Name: old_FW_RT_AX55_300438651598_sbin_rc
+Program Name: new_FW_RT_AX55_300438652332_sbin_rc
 Language ID: ARM:LE:32:v8 (1.107)
 Compiler ID: default
 Processor: ARM
 Endian: Little
 Address Size: 32
 Minimum Address: 00010000
 Maximum Address: _elfSectionHeaders::0000045f
-# of Bytes: 1844431
+# of Bytes: 1887607
 # of Memory Blocks: 30
-# of Instructions: 273223
-# of Defined Data: 47073
-# of Functions: 3877
-# of Symbols: 18889
-# of Data Types: 460
-# of Data Type Categories: 56
+# of Instructions: 274008
+# of Defined Data: 47561
+# of Functions: 4002
+# of Symbols: 19124
+# of Data Types: 556
+# of Data Type Categories: 57
 Analyzed: true
 Created With Ghidra Version: 11.2
-Date Created: Wed Mar 19 11:22:16 EDT 2025
+Date Created: Wed Mar 19 11:22:21 EDT 2025
 ELF File Type: executable
 ELF Note[required kernel ABI]: Linux 4.19.0
 ELF Original Image Base: 0x10000
 ELF Prelinked: false
 Elf Comment[0]: GCC: (Buildroot 2019.11.1) 9.2.0
 Executable Format: Executable and Linking Format (ELF)
-Executable Location: /home/remy/Documents/diff/old_FW_RT_AX55_300438651598_sbin_rc
-Executable MD5: 0ea1634ab198baf0ea527ef90f6e10f4
-Executable SHA256: 3877d4834fee7d19bb8ec0fa7afa8172011ff46f414086375126ba3df39d8f3b
-FSRL: file:///home/remy/Documents/diff/old_FW_RT_AX55_300438651598_sbin_rc?MD5=0ea1634ab198baf0ea527ef90f6e10f4
+Executable Location: /home/remy/Documents/diff/new_FW_RT_AX55_300438652332_sbin_rc
+Executable MD5: 75bc25cf0c496ab774b33eab4634a40e
+Executable SHA256: 9e1a6b4f7d440bdf470462c22220ec3f71a8fae0cee7670cb520016fa08555cc
+FSRL: file:///home/remy/Documents/diff/new_FW_RT_AX55_300438652332_sbin_rc?MD5=75bc25cf0c496ab774b33eab4634a40e
 Preferred Root Namespace Category: 
 Relocatable: false
 Required Library [    0]: libconn_diag.so
 Required Library [    1]: libnvram.so
 Required Library [    2]: libshared.so
 Required Library [    3]: libcrypt.so.1
 Required Library [    4]: libdl.so.2
 Required Library [    5]: libgen_util.so
 Required Library [    6]: libsys_util.so
 Required Library [    7]: libwlcsm.so
 Required Library [    8]: libbcm_flashutil.so
 Required Library [    9]: libbcm_util.so
 Required Library [   10]: libbcm_boardctl.so
 Required Library [   11]: libwpa_client.so
 Required Library [   12]: libbcm.so
 Required Library [   13]: libgcc_s.so.1
 Required Library [   14]: libcrypto.so.1.1
 Required Library [   15]: libssl.so.1.1
 Required Library [   16]: libpthread.so.0
 Required Library [   17]: libbwdpi.so
 Required Library [   18]: libcfgmnt.so
 Required Library [   19]: libvpn.so
 Required Library [   20]: libletsencrypt.so
 Required Library [   21]: libcurl.so.4
 Required Library [   22]: libjson-c.so.2
 Required Library [   23]: libm.so.6
 Required Library [   24]: libamas-utils.so
 Required Library [   25]: liblldpctl.so.4
 Required Library [   26]: libjansson.so.4
 Required Library [   27]: libasuslog.so
 Required Library [   28]: libsqlite3.so.0
 Required Library [   29]: libc.so.6
 Should Ask To Analyze: false

Program Options

Ghidra old_FW_RT_AX55_300438651598_sbin_rc Decompiler Options
Decompiler Option Value
Prototype Evaluation __stdcall
Ghidra old_FW_RT_AX55_300438651598_sbin_rc Specification extensions Options
Specification extensions Option Value
FormatVersion 0
VersionCounter 0
Ghidra old_FW_RT_AX55_300438651598_sbin_rc Analyzers Options
Analyzers Option Value
ARM Aggressive Instruction Finder false
ARM Constant Reference Analyzer true
ARM Constant Reference Analyzer.Create Data from pointer false
ARM Constant Reference Analyzer.Function parameter/return Pointer analysis true
ARM Constant Reference Analyzer.Max Threads 2
ARM Constant Reference Analyzer.Min absolute reference 4
ARM Constant Reference Analyzer.Require pointer param data type false
ARM Constant Reference Analyzer.Speculative reference max 256
ARM Constant Reference Analyzer.Speculative reference min 1024
ARM Constant Reference Analyzer.Stored Value Pointer analysis true
ARM Constant Reference Analyzer.Switch Table Recovery false
ARM Constant Reference Analyzer.Trust values read from writable memory true
ARM Symbol true
ASCII Strings true
ASCII Strings.Create Strings Containing Existing Strings true
ASCII Strings.Create Strings Containing References true
ASCII Strings.Force Model Reload false
ASCII Strings.Minimum String Length LEN_5
ASCII Strings.Model File StringModel.sng
ASCII Strings.Require Null Termination for String true
ASCII Strings.Search Only in Accessible Memory Blocks true
ASCII Strings.String Start Alignment ALIGN_1
ASCII Strings.String end alignment 4
Aggressive Instruction Finder false
Aggressive Instruction Finder.Create Analysis Bookmarks true
Apply Data Archives true
Apply Data Archives.Archive Chooser [Auto-Detect]
Apply Data Archives.Create Analysis Bookmarks true
Apply Data Archives.GDT User File Archive Path None
Apply Data Archives.User Project Archive Path None
Call Convention ID true
Call Convention ID.Analysis Decompiler Timeout (sec) 60
Call-Fixup Installer true
Condense Filler Bytes false
Condense Filler Bytes.Filler Value Auto
Condense Filler Bytes.Minimum number of sequential bytes 1
Create Address Tables true
Create Address Tables.Allow Offcut References false
Create Address Tables.Auto Label Table false
Create Address Tables.Create Analysis Bookmarks true
Create Address Tables.Maxmimum Pointer Distance 16777215
Create Address Tables.Minimum Pointer Address 4132
Create Address Tables.Minimum Table Size 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 false
Data Reference.Minimum String Length 5
Data Reference.References to Pointers false
Data Reference.Relocation Table Guide true
Data Reference.Respect Execute Flag true
Data Reference.Subroutine References true
Data Reference.Switch Table References false
Data Reference.Unicode String References true
Decompiler Parameter ID 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 __stdcall
Decompiler Switch Analysis true
Decompiler Switch Analysis.Analysis Decompiler Timeout (sec) 60
Demangler GNU true
Demangler GNU.Apply Function Calling Conventions true
Demangler GNU.Apply Function Signatures true
Demangler GNU.Demangle Only Known Mangled Symbols false
Demangler GNU.Demangler Format AUTO
Demangler GNU.Use Deprecated Demangler false
Demangler GNU.Use Standard Text Replacements true
Disassemble Entry Points true
Disassemble Entry Points.Respect Execute Flag true
ELF Scalar Operand References false
ELF Scalar Operand References.Relocation Table Guide true
Embedded Media true
Embedded Media.Create Analysis Bookmarks true
External Entry References true
External Symbol Resolver true
Function Start Pre Search true
Function Start Pre Search.Bookmark Functions false
Function Start Pre Search.Search Data Blocks false
Function Start Search true
Function Start Search After Code true
Function Start Search After Code.Bookmark Functions false
Function Start Search After Code.Search Data Blocks false
Function Start Search After Data true
Function Start Search After Data.Bookmark Functions false
Function Start Search After Data.Search Data Blocks false
Function Start Search.Bookmark Functions false
Function Start Search.Search Data Blocks false
GCC Exception Handlers true
GCC Exception Handlers.Create Try Catch Comments true
Non-Returning Functions - Discovered true
Non-Returning Functions - Discovered.Create Analysis Bookmarks true
Non-Returning Functions - Discovered.Function Non-return Threshold 3
Non-Returning Functions - Discovered.Repair Flow Damage true
Non-Returning Functions - Known true
Non-Returning Functions - Known.Create Analysis Bookmarks true
Reference true
Reference.Address Table Alignment 1
Reference.Address Table Minimum Size 3
Reference.Align End of Strings false
Reference.Ascii String References true
Reference.Create Address Tables false
Reference.Minimum String Length 5
Reference.References to Pointers false
Reference.Relocation Table Guide true
Reference.Respect Execute Flag true
Reference.Subroutine References true
Reference.Switch Table References false
Reference.Unicode String References true
Shared Return Calls true
Shared Return Calls.Allow Conditional Jumps false
Shared Return Calls.Assume Contiguous Functions Only false
Stack true
Stack.Create Local Variables true
Stack.Create Param Variables 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
Ghidra new_FW_RT_AX55_300438652332_sbin_rc Decompiler Options
Decompiler Option Value
Prototype Evaluation __stdcall
Ghidra new_FW_RT_AX55_300438652332_sbin_rc Specification extensions Options
Specification extensions Option Value
FormatVersion 0
VersionCounter 0
Ghidra new_FW_RT_AX55_300438652332_sbin_rc Analyzers Options
Analyzers Option Value
ARM Aggressive Instruction Finder false
ARM Constant Reference Analyzer true
ARM Constant Reference Analyzer.Create Data from pointer false
ARM Constant Reference Analyzer.Function parameter/return Pointer analysis true
ARM Constant Reference Analyzer.Max Threads 2
ARM Constant Reference Analyzer.Min absolute reference 4
ARM Constant Reference Analyzer.Require pointer param data type false
ARM Constant Reference Analyzer.Speculative reference max 256
ARM Constant Reference Analyzer.Speculative reference min 1024
ARM Constant Reference Analyzer.Stored Value Pointer analysis true
ARM Constant Reference Analyzer.Switch Table Recovery false
ARM Constant Reference Analyzer.Trust values read from writable memory true
ARM Symbol true
ASCII Strings true
ASCII Strings.Create Strings Containing Existing Strings true
ASCII Strings.Create Strings Containing References true
ASCII Strings.Force Model Reload false
ASCII Strings.Minimum String Length LEN_5
ASCII Strings.Model File StringModel.sng
ASCII Strings.Require Null Termination for String true
ASCII Strings.Search Only in Accessible Memory Blocks true
ASCII Strings.String Start Alignment ALIGN_1
ASCII Strings.String end alignment 4
Aggressive Instruction Finder false
Aggressive Instruction Finder.Create Analysis Bookmarks true
Apply Data Archives true
Apply Data Archives.Archive Chooser [Auto-Detect]
Apply Data Archives.Create Analysis Bookmarks true
Apply Data Archives.GDT User File Archive Path None
Apply Data Archives.User Project Archive Path None
Call Convention ID true
Call Convention ID.Analysis Decompiler Timeout (sec) 60
Call-Fixup Installer true
Condense Filler Bytes false
Condense Filler Bytes.Filler Value Auto
Condense Filler Bytes.Minimum number of sequential bytes 1
Create Address Tables true
Create Address Tables.Allow Offcut References false
Create Address Tables.Auto Label Table false
Create Address Tables.Create Analysis Bookmarks true
Create Address Tables.Maxmimum Pointer Distance 16777215
Create Address Tables.Minimum Pointer Address 4132
Create Address Tables.Minimum Table Size 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 false
Data Reference.Minimum String Length 5
Data Reference.References to Pointers false
Data Reference.Relocation Table Guide true
Data Reference.Respect Execute Flag true
Data Reference.Subroutine References true
Data Reference.Switch Table References false
Data Reference.Unicode String References true
Decompiler Parameter ID 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 __stdcall
Decompiler Switch Analysis true
Decompiler Switch Analysis.Analysis Decompiler Timeout (sec) 60
Demangler GNU true
Demangler GNU.Apply Function Calling Conventions true
Demangler GNU.Apply Function Signatures true
Demangler GNU.Demangle Only Known Mangled Symbols false
Demangler GNU.Demangler Format AUTO
Demangler GNU.Use Deprecated Demangler false
Demangler GNU.Use Standard Text Replacements true
Disassemble Entry Points true
Disassemble Entry Points.Respect Execute Flag true
ELF Scalar Operand References false
ELF Scalar Operand References.Relocation Table Guide true
Embedded Media true
Embedded Media.Create Analysis Bookmarks true
External Entry References true
External Symbol Resolver true
Function Start Pre Search true
Function Start Pre Search.Bookmark Functions false
Function Start Pre Search.Search Data Blocks false
Function Start Search true
Function Start Search After Code true
Function Start Search After Code.Bookmark Functions false
Function Start Search After Code.Search Data Blocks false
Function Start Search After Data true
Function Start Search After Data.Bookmark Functions false
Function Start Search After Data.Search Data Blocks false
Function Start Search.Bookmark Functions false
Function Start Search.Search Data Blocks false
GCC Exception Handlers true
GCC Exception Handlers.Create Try Catch Comments true
Non-Returning Functions - Discovered true
Non-Returning Functions - Discovered.Create Analysis Bookmarks true
Non-Returning Functions - Discovered.Function Non-return Threshold 3
Non-Returning Functions - Discovered.Repair Flow Damage true
Non-Returning Functions - Known true
Non-Returning Functions - Known.Create Analysis Bookmarks true
Reference true
Reference.Address Table Alignment 1
Reference.Address Table Minimum Size 3
Reference.Align End of Strings false
Reference.Ascii String References true
Reference.Create Address Tables false
Reference.Minimum String Length 5
Reference.References to Pointers false
Reference.Relocation Table Guide true
Reference.Respect Execute Flag true
Reference.Subroutine References true
Reference.Switch Table References false
Reference.Unicode String References true
Shared Return Calls true
Shared Return Calls.Allow Conditional Jumps false
Shared Return Calls.Assume Contiguous Functions Only false
Stack true
Stack.Create Local Variables true
Stack.Create Param Variables 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

Diff Stats

Stat Value
added_funcs_len 49
deleted_funcs_len 14
modified_funcs_len 251
added_symbols_len 7
deleted_symbols_len 0
diff_time 1535.6742584705353
deleted_strings_len 106
added_strings_len 279
match_types Counter({'ExactInstructionsFunctionHasher': 1018, 'SymbolsHash': 745, 'ExternalsName': 731, 'BSIM': 574, 'StructuralGraphHash': 165, 'StructuralGraphExactHash': 64, 'ExactBytesFunctionHasher': 60, 'StringsRefsHasher': 44, 'Implied Match': 21, 'StrUniqueFuncRefsHasher': 20, 'SigCallingCalledHasher': 9, 'BulkBasicBlockMnemonicHash': 3})
items_to_process 321
diff_types Counter({'name': 251, 'fullname': 251, 'sig': 251, 'address': 251, 'calling': 239, 'called': 204, 'length': 186, 'code': 176, 'refcount': 93})
unmatched_funcs_len 63
total_funcs_len 7879
matched_funcs_len 7816
matched_funcs_with_code_changes_len 176
matched_funcs_with_non_code_changes_len 75
matched_funcs_no_changes_len 7565
match_func_similarity_percent 96.7886%
func_match_overall_percent 99.2004%
first_matches Counter({'ExactInstructionsFunctionHasher': 1018, 'SymbolsHash': 745, 'BSIM': 478, 'StructuralGraphHash': 165, 'StructuralGraphExactHash': 64, 'ExactBytesFunctionHasher': 60, 'StringsRefsHasher': 44, 'Implied Match': 21, 'StrUniqueFuncRefsHasher': 20, 'SigCallingCalledHasher': 9, 'BulkBasicBlockMnemonicHash': 3})
pie showData
    title All Matches
"SymbolsHash" : 745
"BSIM" : 574
"ExternalsName" : 731
"ExactBytesFunctionHasher" : 60
"ExactInstructionsFunctionHasher" : 1018
"StructuralGraphExactHash" : 64
"SigCallingCalledHasher" : 9
"StringsRefsHasher" : 44
"StrUniqueFuncRefsHasher" : 20
"StructuralGraphHash" : 165
"BulkBasicBlockMnemonicHash" : 3
"Implied-Match" : 21
Loading
pie showData
    title First Matches
"SymbolsHash" : 745
"ExactBytesFunctionHasher" : 60
"ExactInstructionsFunctionHasher" : 1018
"StructuralGraphExactHash" : 64
"BSIM" : 478
"SigCallingCalledHasher" : 9
"StringsRefsHasher" : 44
"StrUniqueFuncRefsHasher" : 20
"StructuralGraphHash" : 165
"BulkBasicBlockMnemonicHash" : 3
"Implied-Match" : 21
Loading
pie showData
    title Diff Stats
"added_funcs_len" : 49
"deleted_funcs_len" : 14
"modified_funcs_len" : 251
Loading
pie showData
    title Symbols
"added_symbols_len" : 7
"deleted_symbols_len" : 0
Loading

Strings

pie showData
    title Strings
"deleted_strings_len" : 106
"added_strings_len" : 279
Loading

Strings Diff

--- deleted strings
+++ added strings
@@ -1,106 +1,279 @@
-s_%s(0x%04x):_[obd_msg_exchange]
-s_%s(0x%04x):_[obd_msg_exchange]_s
-s_%s(0x%04x):_[obd_msg_exchange]_t
-s_%s(0x%04x):_model=%s,_reboot_tim
-s_%s(0x%04x):_obd_eth_%lu:_Exit_du
-s_%s.v1
-s_%s/%s.sh
-s_%s:_IFUP.
-s_%s:_shell:_%s
-s_***_Multicast_IPTV:_config_IPTV_o
-s_***_Multicast_IPTV:_config_Singt
-s_***_Multicast_IPTV:_config_VOIP_o
-s_*filter_:INPUT_DROP_[0:0]_:FORWA
-s_--filter-txif
-s_--filter-vid
-s_--filter-vlan-dev-mac-addr
-s_--if-create
-s_--if-create-name
-s_--mcast
-s_--set-if-mode-rg
-s_--set-rxif
-s_--tags
-s_/proc/meminfo
-s_/var/run/obd_eth.pid
-s_/var/run/rast_internal_ipc_socke
-s_ATE_OK
-s_PRESENT_AP
-s_RAST_%lu:_%s_reflashing
-s_RAST_%lu:_%s_set_to_conndiag_tab
-s_RAST_%lu:_%s_timeout_and_does_no
-s_RAST_%lu:_Error:_exap_info_do_no
-s_RAST_%lu:_destroy_shared_memory
-s_RAST_%lu:_detach_shared_memory
-s_RAST_%lu:_eidObj_NULL
-s_RAST_%lu:_event_table_shmget_fai
-s_RAST_%lu:_internal_IPC_Receive:_%
-s_RAST_%lu:_internal_ipc_accept_so
-s_RAST_%lu:_internal_ipc_bind_sock
-s_RAST_%lu:_internal_ipc_create_so
-s_RAST_%lu:_internal_ipc_listen_so
-s_RAST_%lu:_internal_ipc_read_sock
-s_RAST_%lu:_roaming_pre_table_full
-s_RAST_%lu:_sta_%s,_band_unit_%d,_s
-s_RAST_%lu:_sta_%s,_sta_rssi_%d,
-s_RET_11V
-s_ROAMING:_%s,_%d,_%lu,_%d,_%s,_%d
-s_ROAMING:_roaming_count_%d.
-s_ROAMING:_tg_roaming_%s,_%d,_%d,_%
-s_ROAMING:_tg_roaming_count_%d.
-s_WAN_IP_is_empty.
-s_WAN_IP_is_empty.(%d)
-s_[%s(%d)]:[%s]_wl%d_acs_excl_chan
-s_abl_eid
-s_amas_bhctrl.log
-s_arp.txt
-s_bound_lan
-s_deconfig_lan
-s_dhcp-option=lan,6,%s,%s
-s_dump_acs_excl_chans
-s_eth0.%d
-s_eth0.103
-s_eth0.500
-s_eth0.600
-s_eth0.821
-s_eth0.822
-s_eth1.%d
-s_eth1.600
-s_eth1.821
-s_eth1.822
-s_hinet
-s_httpd_dir
-s_lan_3_tag_register:_%s
-s_lan_4_tag_register:_%s
-s_lan_lease
-s_m1_fiber
-s_maxis_cts
-s_maxis_fiber
-s_maxis_fiber_sp
-s_maxis_sacofa
-s_maxis_tnb
-s_obdeth_main
-s_obdeth_msglevel
-s_pptpd_ipdown_script
-s_pptpd_ipup_script
-s_prefx:[%s/%d]
-s_rc-aft-cfg
-s_rc-bef-cfg
-s_restart_ddns
-s_restart_ddns_watchdog
-s_restart_httpd
-s_rm_/tmp/dm/%s
-s_robocfg_vlan_100_ports_"3t_4t_5t
-s_robocfg_vlan_101_ports_"3t_4t"
-s_robocfg_vlan_105_ports_"2_3t_4t"
-s_robocfg_vlan_1_ports_"0_1_2_5t"
-s_robocfg_vlan_2_ports_"4_5"
-s_set_egress_map
-s_singtel_mio
-s_superonline
-s_switch_wan0prio
-s_ubimkvol_/dev/ubi0_-s_15MiB_-n
-s_udhcpc_lan
-s_vlanctl
-s_wan11_ifname
-s_wan12_ifname
-s_webscript_dir
+s
+s_%[^>]>%d>%d>%d
+s_%s(%d)_-_Action_mode:_AMAS_WLCCO
+s_%s(%d)_-_BandIndex(%d)_Action_mo
+s_%s(%d)_-_BandIndex(%d)_Connectin
+s_%s(%d)_-_BandIndex(%d)_Connectio
+s_%s(%d)_-_BandIndex(%d)_Don't_Hav
+s_%s(%d)_-_BandIndex(%d)_Restart
+s_%s(%d)_-_BandIndex(%d)_Scanning_A
+s_%s(%d)_-_BandIndex(%d)_Unit(%d)_C
+s_%s(%d)_-_BandIndex(%d)_Unit(%d)_I
+s_%s(%d)_-_BandIndex(%d)_Unit(%d)_N
+s_%s(%d)_-_BandIndex(%d)_Unit(%d)_S
+s_%s(%d)_-_BandIndex(%d)_amas_ssd
+s_%s(%d)_-_BandIndex(%d)_amas_ssd_h
+s_%s(%d)_-_BandIndex(%d)_wait_amas
+s_%s(%d)_-_Check_BandIndex(%d)_sta
+s_%s(%d)_-_Connection_Timeout_valu
+s_%s(%d)_-_Current_AP_is_better_th
+s_%s(%d)_-_Get_site_survey_result
+s_%s(%d)_-_Get_site_survey_result_t
+s_%s(%d)_-_Getting_BandIndex(%d)_U
+s_%s(%d)_-_New_AP_is_better_than_C
+s_%s(%d)_-_PID(%d)_Band(%s)_SSID[%
+s_%s(%d)_-_PID(%d)_Triggering_band
+s_%s(%d)_-_PID(%d)_band(%d)_Checki
+s_%s(%d)_-_PID(%d)_band(%d)_Waitti
+s_%s(%d)_-_PID(%d)_bandindex(%d)_u
+s_%s(%d)_-_PID(%d)_cancel_sitesurv
+s_%s(%d)_-_PID(%d)_rssi(%d)_antenn
+s_%s(%d)_-_PID(%d)_set_flag_for_SI
+s_%s(%d)_-_PID(%d)_signal_handler_r
+s_%s(%d)_-_PID(%d)_type(%d)_proces
+s_%s(%d)_-_PID(%d)_unset_flag_for_S
+s_%s(%d)_-_Parsing_MAC:_%s
+s_%s(%d)_-_Profile_switch_Timeout_v
+s_%s(%d)_-_Ready_to_connect_to_AP(
+s_%s(%d)_-_Receive_event:_%s
+s_%s(%d)_-_Reset_amas_wlcX_dfs_sta
+s_%s(%d)_-_SiteSurvey_timeout:_%d
+s_%s(%d)_-_SiteSurvey_timeout:_%d.
+s_%s(%d)_-_SiteSurveying_counts[%d
+s_%s(%d)_-_Sorted:
+s_%s(%d)_-_Start_processing_BandIn
+s_%s(%d)_-_The_Connection_process_i
+s_%s(%d)_-_The_Request_Done.
+s_%s(%d)_-_The_Request_is_be_termi
+s_%s(%d)_-_The_amas_wlcconnect_mai
+s_%s(%d)_-_Timeout_and_doesn't_sca
+s_%s(%d)_-_Trigger_band(%d)_site_s
+s_%s(%d)_-_Update_cfg_cost(%d)_->_(
+s_%s(%d)_-_[%d]_UUID[%d]_Band[%s]_S
+s_%s(%d)_-_amas_set_cost
+s_%s(%d)_-_amas_set_cost_ret_%d
+s_%s(%d)_-_exit...
+s_%s(%d)_-_update_beacon,_send_eve
+s_%s(0x%04x):_BHC_%lu:_amas_set_co
+s_%s(0x%04x):_BHC_%lu:_exit...
+s_%s(0x%04x):_BHC_%lu:_update
+s_%s:_%s_changed,_MD5_[%s]_->_[%s]
+s_%s:_No_workable_uploaded_certifi
+s_%s:_Still_no_workable_certificat
+s_%s:_nid_%d_X509V3_EXT_print()
+s_%s:_wan_dns:_%d.
+s_%s_not_find_External_WAN_IP,_go_r
+s_*filter_:INPUT_%s_[0:0]_:FORWARD
+s_,0.0.0.0
+s_--ip6-icmp-type
+s_--ip6-proto
+s_/ddnsv2/acquireToken.php
+s_/etc/cacert.pem
+s_/etc/cacert_gen.pem
+s_/etc/cakey.pem
+s_/etc/cakey_gen.pem
+s_/etc/cert_gen.pem
+s_/etc/key_gen.pem
+s_/jffs/.cert/cacert.pem
+s_/jffs/.cert/cakey.pem
+s_/jffs/.cert/cert_gen.pem
+s_/jffs/.cert/key_gen.pem
+s_/jffs/.sys/amas/amas_bhctrl.log
+s_/jffs/.sys/amas/amas_bhctrl.log-
+s_/proc/XXXXXXXX/exe
+s_/tmp/asusddns_res
+s_/tmp/ipkg_control.tgz
+s_/tmp/ipkgapp.txt
+s_/usr/sbin/awsiot
+s_/var/run/bwdpi_wred_alive.pid
+s_/var/run/bwdpi_wred_check.pid
+s_/var/run/dslited.%d.pid
+s_/var/run/mastiff_ipc_socket
+s_/var/run/obd.pid
+s_192.0.0.1
+s_192.0.0.2
+s_2001:0F70::
+s_2001:0F74::
+s_2001:f60:0:200::1:1
+s_2404:1a8:7f01:b::3_2404:1a8:7f01
+s_2409:0250::
+s_America/Saint-Pierre-et-Miquelon
+s_DS-Lite_is_active_on_HGW
+s_DS-Lite_start.
+s_DS-Lite_start.(DS-Lite_is_not
+s_Failed_to_aae_refresh_devicetick
+s_Failed_to_aae_refresh_userticket
+s_OBD(%d)_%lu:_%-4s%-18s
+s_OBD(%d)_%lu:_BSSID=%s,_RSSI=%d,_V
+s_OBD(%d)_%lu:_Cost:_%x
+s_OBD(%d)_%lu:_Exit_due_to_WPS_fai
+s_OBD(%d)_%lu:_Exit_due_to_WPS_pro
+s_OBD(%d)_%lu:_ID:
+s_OBD(%d)_%lu:_MAC_address:_%s
+s_OBD(%d)_%lu:_Reset_due_to_mismat
+s_OBD(%d)_%lu:_Reset_due_to_timeou
+s_OBD(%d)_%lu:_Send_probe-req
+s_OBD(%d)_%lu:_Start_WPS_Enroll
+s_OBD(%d)_%lu:_Status:_%x
+s_OBD(%d)_%lu:_Unknown_TLV:
+s_RAST_%lu:_Reset_[%02x:%02x:%02x:
+s_RAST_%lu:_rast_add_to_maclist_,_i
+s_SSD_%s(%d):_unit(%d)_-_the_pid(%
+s_Success_to_aae_refresh_devicetic
+s_Success_to_aae_refresh_userticke
+s_TRANSIX(DS-Lite)
+s_USER=%s
+s_UTC2DST
+s_UTC3DST
+s_WAN(%d)_IP_is_empty.
+s_WAN(%d)_IP_is_empty.(%d)
+s_XPASS(DS-Lite)
+s_[%s(%d)]_vid=%d,_prio=%d,_mask=0
+s_[%s:(%d)]###_HGW_OFF_###_(DS-Lit
+s_[%s:(%d)]###_HGW_ON_###_(DS-Lite
+s_[%s:(%d)]###_[WAN_DET]_TRANSIX(D
+s_[%s:(%d)]###_[WAN_DET]_XPASS(DS-
+s_[%s:(%d)]AFTR:[%s]
+s_[%s:(%d)][AFTR=%s]
+s_[%s:(%d)][CMD]:[ethtool_-K_%s_sg
+s_[%s:(%d)][CMD]:[ifconfig_%s_%s_p
+s_[%s:(%d)][CMD]:[ip_link_set_dev_%
+s_[%s:(%d)][DS-Lite]Invalid_RA_[%s
+s_[%s:(%d)][DS-Lite]_Auto_Mode.
+s_[%s:(%d)][DS-Lite]_Configure_err
+s_[%s:(%d)][DS-Lite]_Line_is_trans
+s_[%s:(%d)][DS-Lite]_Line_is_xpass
+s_[%s:(%d)][DS-Lite]_Manual_Mode.
+s_[%s:(%d)][Err][DS-Lite]_Cannot_g
+s_[%s:(%d)][START]_dslited
+s_[%s:(%d)][Warning]_Unable_to_obt
+s_[%s:(%d)]prefx:[%s/%d]
+s_[%s]_None_of_wan_can_connect_to_i
+s_[BWDPI][%s:(%d)]start_wrs_and_st
+s_[BWDPI][%s:(%d)]tstamp=%s,_SIGAL
+s_[BWDPI][%s:(%d)]tstamp=%s,_alarm
+s_[BWDPI][%s:(%d)]tstamp=%s,_enabl
+s_[DS-Lite]
+s_[OAUTH][%s:(%d)]OAUTH_GOOGLE_ACC
+s_[OAUTH][%s:(%d)]OAUTH_GOOGLE_AUT
+s_[OAUTH][%s:(%d)]OAUTH_GOOGLE_DRI
+s_[OAUTH][%s:(%d)]OAUTH_GOOGLE_REF
+s_[OAUTH][%s:(%d)]token_is_invalid
+s__acquire_token
+s__check_response
+s__update_userticket
+s_aae_ddnsinfo
+s_address=/use-application-dns.net
+s_allwclientlist.json
+s_amas_portstatus
+s_asusddns_reg_domain
+s_asusddns_token
+s_asusddns_token_state
+s_bogus-priv_domain-needed
+s_bpm_status
+s_bwdpi_game_list
+s_bwdpi_stream_list
+s_bwdpi_wfh_list
+s_bwdpi_wred_alive_main
+s_bwdpi_wred_alive_tasks
+s_cat_/proc/meminfo
+s_cat_/proc/net/arp_>_/tmp/%s
+s_cat_/proc/slabinfo
+s_check_wred_alive
+s_command:_%s
+s_ddns_check
+s_ddns_ipv6_updated
+s_ddnstoken
+s_devicemac
+s_devicemd5mac
+s_dgw.xpass.jp
+s_dhcp-name-match=set:wpad-ignore,
+s_dhcp-option=lan,6%s%s%s%s%s
+s_dhcpd_dns_router
+s_dhcpfilter_enable
+s_dns_fwd_local
+s_dns_norebind
+s_dns_priv_override
+s_dns_r
+s_do_dslite_check
+s_dslite
+s_dslited
+s_echo_"[ASUSDDNS][%s:(%d)]CURL_pe
+s_echo_"[ASUSDDNS][%s:(%d)]Cannot
+s_echo_"[ASUSDDNS][%s:(%d)]Cannot
+s_echo_"[ASUSDDNS][%s:(%d)]Cannot_i
+s_echo_"[ASUSDDNS][%s:(%d)]Cannot_o
+s_echo_"[ASUSDDNS][%s:(%d)]Done._r
+s_echo_"[ASUSDDNS][%s:(%d)]Failed_t
+s_echo_"[ASUSDDNS][%s:(%d)]No_sid_(
+s_echo_"[ASUSDDNS][%s:(%d)]No_stat
+s_echo_"[ASUSDDNS][%s:(%d)]No_user
+s_echo_"[ASUSDDNS][%s:(%d)]Success
+s_echo_"[ASUSDDNS][%s:(%d)]Update_u
+s_echo_"[ASUSDDNS][%s:(%d)]User_do
+s_echo_"[ASUSDDNS][%s:(%d)]auth_st
+s_eth1.100
+s_ethtool
+s_fh_cap_mssid_subunit
+s_fh_re_mssid_subunit
+s_flets-east.jp_iptvf.jp
+s_gencert.sh
+s_get_AFTR_addr
+s_get_s46_ra_prefix
+s_gw.transix.jp
+s_hostapd_cli_-i_%s_disable
+s_httpds6_reload_cert
+s_httpds_reload_cert
+s_https://%s%s
+s_https://ns1.asuscomm.com
+s_ip4ip6
+s_ipkg_control.tgz
+s_ipkgapp.txt
+s_ipv6-icmp
+s_ipv6_s46_aftr
+s_ipv6_s46_aftr_addr
+s_ipv6_s46_b4addr
+s_ipv6_s46_env_aftr
+s_keyid:
+s_local=/%s/
+s_md5sum_%s
+s_nmp_cache.js
+s_nmp_cl_json.js
+s_nslookup_"%s"_|_grep_"Address_1:
+s_oauth_auth_status
+s_oauth_dm_cusid
+s_oauth_dm_refresh_ticket
+s_oauth_dm_user_ticket
+s_obd_interval
+s_obd_msglevel
+s_pointopoint
+s_prepare_cert
+s_prepare_cert_in_etc
+s_proc_net_arp.txt
+s_regular_ddns_check
+s_router-advertisement
+s_router-solicitation
+s_s46_dslite_mode
+s_set_exclchans_valid[%d]:[%s]=[%s
+s_setup_dslite
+s_slabdbg
+s_start_ddns
+s_start_dslited_%d
+s_stop-dns-rebind
+s_stop_dslited_%d
+s_success=on
+s_transix
+s_ubimkvol_/dev/ubi0_-s_%dMiB_-n
+s_unregister,390
+[email protected]
+s_update_asus_ddns_token
+s_vlan12
+s_vlan_forwarding
+s_wan0_s46_dslite_svc
+s_wan_dns
+s_wiredclientlist.json
+s_wl%d_acs_excl_chans_valid
+s_x509v3ext2str_by_nid
+s_xpass
+s_{"ddns":{"eid":%d}}
+s_{"nt_center":{"eid":%d}}

String References

Old

String Ref Count Ref Func
s_webscript_dir_00165b44 1 FUN_0004d76c
s_--set-rxif_00171ae9 4
s_***_Multicast_IPTV:_config_VOIP_o_00171964 3
s_bound_lan_0016f2b3 1 FUN_00070720
s_RAST_%lu:sta%s,band_unit%d,_s_001866bd 1 FUN_000fb6b4
s_eth1.%d_00171bc7 1
s_eth0.500_00171bfc 1
s_lan_4_tag_register:_%s_0017184b 3
s_restart_ddns_watchdog_0016b323 1 FUN_0006598c
s_RAST_%lu:_internal_ipc_create_so_001867e5 1
s_*filter_:INPUT_DROP_[0:0]_:FORWA_00167df4 1 FUN_00058ff4
s_RAST_%lu:_roaming_pre_table_full_0018669b 1 FUN_000fb0e8
s_RAST_%lu:_internal_ipc_listen_so_0018685f 1
s_rm_/tmp/dm/%s_00194707 1 FUN_0014df80
s_%s(0x%04x):_[obd_msg_exchange]_t_0018140f 1 FUN_000e5264
s_--filter-vid_00171b07 1
s_robocfg_vlan_2_ports_"4_5"_00171ceb 1
s_%s:_IFUP._0016ece3 2 FUN_00070720
s_eth1.600_00171c05 1
s_%s/%s.sh_00165b52 1 FUN_0004d76c
s_wan11_ifname_00171995 3
s_maxis_sacofa_0017190a 2
s_/var/run/obd_eth.pid_0018128b 2 FUN_000e5264,FUN_000e4fa8
s_maxis_cts_00171900 2
s_RAST_%lu:_%s_set_to_conndiag_tab_001865b0 1 FUN_000fac14
s_--if-create-name_00171b61 3
s_robocfg_vlan_1_ports_"0_1_2_5t"_00171ccb 1
s_WAN_IP_is_empty.(%d)_001636b4 1 FUN_000441f0
s_hinet_00170e24 1
s_RAST_%lu:_internal_ipc_accept_so_001868b5 1
s_singtel_mio_001717eb 2
s_maxis_tnb_00171917 2
s_amas_bhctrl.log_0018d231 110 FUN_0012cb98,FUN_0012ca18,FUN_0012c204,FUN_0012bb54,FUN_0012ad3c,FUN_0012c584,FUN_0012a734,FUN_00129dbc,FUN_0012f5d0,FUN_00129abc,FUN_00130e20,FUN_0012d3f0,FUN_0012e660,FUN_001311f8,FUN_0013531c,FUN_00129f3c,FUN_00133b90,FUN_0012dfac,FUN_0013590c,FUN_0012b4b4,FUN_0012b5e4
s_--tags_00171ae2 6
s_--filter-txif_00171af9 4
s_set_egress_map_001717d2 27
s_vlanctl_00171abc 8
s_restart_ddns_0016b235 3 FUN_000739ec,FUN_00070e04,FUN_000657ac
s_PRESENT_AP_001865a5 2 FUN_000ff220,FUN_000fac14
s_restart_httpd_0016b339 1 FUN_00065e20
s_robocfg_vlan_101_ports_"3t_4t"_00171d28 1
s_RAST_%lu:internal_IPC_Receive:%_00186721 1 FUN_000fb98c
s_eth0.821_00171bcf 1
s_RET_11V_0018667a 2 FUN_001003cc,FUN_000fb0e8
s_ATE_OK_00174c06 2 FUN_000b6700,FUN_000b5c5c
s_abl_eid_00171f4b 1 FUN_00098754
s_m1_fiber_00171806 2
s_udhcpc_lan_0016f2bd 1
s_RAST_%lu:_internal_ipc_read_sock_001866f6 1 FUN_000fb98c
s_eth0.103_00171bf3 1
s_lan_3_tag_register:_%s_00171833 3
s_ROAMING:roaming_count%d._00186c5b 1 FUN_000fd908
s_--set-if-mode-rg_00171b72 3
s_robocfg_vlan_105_ports_"2_3t_4t"_00171d47 1
s_%s(0x%04x):obd_eth%lu:_Exit_du_001812f6 1 FUN_000e5008
s_eth0.822_00171be1 1
s_[%s(%d)]:[%s]_wl%d_acs_excl_chan_00170dd0 1 FUN_0009871c
s_***_Multicast_IPTV:_config_IPTV_o_00171933 3
s_eth1.821_00171bd8 1
s_***_Multicast_IPTV:_config_Singt_001719a2 3
s_obdeth_main_0018149f 2 FUN_000e5264
s_eth1.822_00171bea 1
s_ROAMING:%s,%d,%lu,%d,%s,%d_00186c77 1 FUN_000fd908
s_RAST_%lu:_%s_timeout_and_does_no_001865de 2 FUN_000fac14,FUN_000fb0e8
s_maxis_fiber_0017180f 2
s_lan_lease_0016ecd9 4 FUN_00070720
s_RAST_%lu:_%s_reflashing_00186682 1 FUN_000fb0e8
s_eth0.600_00163c30 1
s_RAST_%lu:_eidObj_NULL_001867ce 1 FUN_000fb98c
s_ubimkvol_/dev/ubi0_-s_15MiB_-n_1_00174cc7 1 FUN_000b629c
s_deconfig_lan_0016f2a6 1
s_arp.txt_0017d897 5 FUN_000d3f9c
s_%s(0x%04x):_[obd_msg_exchange]_s_0018138a 1 FUN_000e5264
s_pptpd_ipup_script_00179b7b 2 FUN_000c6d34
s_%s:shell:%s_001660c4 1 FUN_0004d76c
s_superonline_00171ba4 1
s_RAST_%lu:sta%s,sta_rssi%d,_c_00186543 1 FUN_000fa8a8
s_RAST_%lu:_detach_shared_memory_f_00186c9a 2 FUN_000fdc44
s_dhcp-option=lan,6,%s,%s_001631a8 1 FUN_00042c98
s_--filter-vlan-dev-mac-addr_00171b83 1
s_--mcast_00171ac4 4
s_%s(0x%04x):_[obd_msg_exchange]_d_001813ca 1 FUN_000e5264
s_%s(0x%04x):_model=%s,_reboot_tim_00181339 1 FUN_000e5264
s_dump_acs_excl_chans_0017271f 2 FUN_0009871c
s_ROAMING:tg_roaming%s,%d,%d,_%_00186c24 1 FUN_000fd908
s_rc-aft-cfg_00172036 1 FUN_00098754
s_eth0.%d_00171bbf 3
s_RAST_%lu:_Error:_exap_info_do_no_0018661d 1 FUN_000fac14
s_rc-bef-cfg_0017202b 1 FUN_00098754
s_/proc/meminfo_0015e924 2 FUN_000626a0,FUN_00025d04
s_WAN_IP_is_empty._00163ae5 1 FUN_00045254
s_obdeth_msglevel_00181445 1 FUN_000e5264
s_%s.v1_00171b9e 1
s_prefx:[%s/%d]_0016f161 1 FUN_000739ec
s_maxis_fiber_sp_0017181b 2
s_RAST_%lu:_internal_ipc_bind_sock_00186834 1
s_switch_wan0prio_001717c2 10
s_RAST_%lu:_event_table_shmget_fai_0018750c 2 FUN_0010207c
s_robocfg_vlan_100_ports_"3t_4t_5t_00171d06 1
s_httpd_dir_0016418f 1 FUN_00047808
s_wan12_ifname_001719dc 3
s_/var/run/rast_internal_ipc_socke_00186812 4 FUN_000ff220,FUN_001003cc
s_RAST_%lu:_destroy_shared_memory_f_00186cc0 2 FUN_000fdc44
s_ROAMING:tg_roaming_count%d._00186c05 1 FUN_000fd908
s_pptpd_ipdown_script_00179c24 2 FUN_000c6d34
s_--if-create_00171acc 1

New

String Ref Count Ref Func
s_America/Saint-Pierre-et-Miquelon_001725c6 1
s_%s(%d)_-_exit..._001978b7 1 FUN_00131470
s_[%s:(%d)][DS-Lite]_Auto_Mode._0018f951 1 FUN_00100fb0
s_2001:f60:0:200::1:1_0018f9af 1 FUN_00100fb0
s_get_s46_ra_prefix_00177d96 1 FUN_00076fc4
s_[%s:(%d)]###_[WAN_DET]_TRANSIX(D_001681a8 1 FUN_000352d4
s_%s(%d)_-_update_beacon,_send_eve_001977cc 1 FUN_00131470
s_fh_re_mssid_subunit_001910b8 2 FUN_0010b47c
s_--ip6-icmp-type_0016875c 6 FUN_00037b60,FUN_00037788
s_OBD(%d)%lu:%-4s%-18s_00189913 1 FUN_000e98c4
s_%s(0x%04x):BHC%lu:_update_beac_00197779 1 FUN_00131470
s_%s(%d)_-_Connection_Timeout_valu_0019716b 1 FUN_00130548
s_fh_cap_mssid_subunit_001910cc 4 FUN_0010b47c
s_ddnstoken_00189553 1 FUN_000e7f38
s_do_dslite_check_0018fad3 4 FUN_00100fb0
s_stop_dslited_%d_0016b2e5 1 FUN_00042860
s_%s(%d)_-_BandIndex(%d)_Connectio_001968b5 2 FUN_0012c180
s_%s(%d)_-_Sorted:_00195658 1 FUN_00128074
s_echo_"[ASUSDDNS][%s:(%d)]Update_u_0018942a 1 FUN_000e7f38
s_%s(%d)_-_BandIndex(%d)_Connectin_00196849 2 FUN_0012c180
s_XPASS(DS-Lite)_001681d5 1 FUN_000352d4
s_%s(%d)_-_Timeout_and_doesn't_sca_00195ae2 1 FUN_00129508
s_[%s:(%d)][DS-Lite]_Manual_Mode._0018f930 1 FUN_00100fb0
s_dhcp-option=lan,6%s%s%s%s%s_0016b911 1 FUN_00044a20
s_[BWDPI][%s:(%d)]tstamp=%s,_enabl_0018c4dd 1 FUN_000f2a14
s_%s(%d)_-_BandIndex(%d)_Unit(%d)_S_00195dd3 3 FUN_0012c180,FUN_00129508
s_wl%d_acs_excl_chans_valid_0017a9c2 1 FUN_0009e184
s_1234567890_0019d551 10
s_/usr/sbin/awsiot_0016b440 2 FUN_000443a0
s_DS-Lite_start._0018f845 1 FUN_00100fb0
s_/var/run/bwdpi_wred_alive.pid_0018c495 1 FUN_000f2a14
s_/tmp/ipkgapp.txt_00186b38 4 FUN_000da008
s_%s(%d)_-_PID(%d)_type(%d)_proces_00194940 1
s_OBD(%d)_%lu:_Exit_due_to_WPS_fai_00189a93 1 FUN_000ea624
s_Failed_to_aae_refresh_userticket_0016482a 1 FUN_0001eb88
s_%s(%d)_-_The_Connection_process_i_0019446d 1 FUN_00123be4
s_%s(0x%04x):BHC%lu:_amas_set_co_0019784f 1 FUN_00131470
s_RAST_%lu:rast_add_to_maclist,_i_001910e1 2 FUN_0010b47c
s_hostapd_cli_-i_%s_disable_0019ed5a 1 FUN_00156000
s__check_response_00189605 2 FUN_000e7f38
s_[%s:(%d)][DS-Lite]_Line_is_xpass_0018f97a 1 FUN_00100fb0
s_x509v3ext2str_by_nid_0016f252 1 FUN_0003f88c
s_echo_"[ASUSDDNS][%s:(%d)]No_stat_0018956c 1 FUN_000e7f38
s_dns_priv_override_0016bbd4 1 FUN_00044a20
s_echo_"[ASUSDDNS][%s:(%d)]Success_001894ba 1 FUN_000e7f38
s_prepare_cert_0016e541 1 FUN_0005096c
s_%s(%d)_-_Start_processing_BandIn_00196a35 1 FUN_0012c180
s_[%s:(%d)][Err][DS-Lite]_Cannot_g_0018fa55 1 FUN_00100fb0
s_[%s:(%d)][Warning]_Unable_to_obt_00177be8 1 FUN_00076fc4
s_oauth_dm_cusid_00188f49 1 FUN_000e7698
s_%s(%d)_-_BandIndex(%d)_Unit(%d)_N_0019662c 1 FUN_0012c180
s_%s(%d)_-SiteSurvey_timeout:%d._00195d0f 1 FUN_00129508
s_echo_"[ASUSDDNS][%s:(%d)]Done._r_001895a6 1 FUN_000e7f38
s_[%s:(%d)][DS-Lite]_Configure_err_0018fa83 1 FUN_00100fb0
s_pointopoint_0016b0e2 1 FUN_00041880
s_{"nt_center":{"eid":%d}}_0016486d 1 FUN_0001eb88
s_[BWDPI][%s:(%d)]tstamp=%s,_SIGAL_0018c53f 1 FUN_000f2a14
s_cat_/proc/slabinfo_0017b9db 2 FUN_000b7e74
s_[OAUTH][%s:(%d)]OAUTH_GOOGLE_REF_0017f18d 1 FUN_000c2638
s_OBD(%d)_%lu:_Send_probe-req_0017db6c 1 FUN_000bc844
[email protected]_0016c4b4 1 FUN_00048190
s_[DS-Lite]_0018f7f2 4 FUN_00100fb0
s_%s(%d)_-_SiteSurveying_counts[%d_00193abc 1 FUN_001214fc
s_allwclientlist.json_00186676 4 FUN_000da008
s_%s(%d)_-_The_Request_is_be_termi_0019440a 1 FUN_00123be4
s_%s(%d)_-_PID(%d)_band(%d)_Waitti_001958a3 1 FUN_00129508
s_%s:%s_changed,MD5[%s]->_[%s]_0016d36d 1 FUN_0004c3b8
s_OBD(%d)_%lu:_Reset_due_to_mismat_001899d3 1 FUN_000e98c4
s_/jffs/.cert/cakey.pem_00169cb8 6 FUN_0004c3b8
s_%s(%d)_-_New_AP_is_better_than_C_001967dd 2 FUN_0012c180
s_/var/run/mastiff_ipc_socket_0016480e 3 FUN_000e7f38,FUN_0001eb88
s_2404:1a8:7f01:b::3_2404:1a8:7f01_0018f724 1 FUN_001001d4
s_/jffs/.sys/amas/amas_bhctrl.log-_00186926 2 FUN_000da008
s_setup_dslite_0018fac6 7 FUN_00100fb0
s_--ip6-proto_00168746 6 FUN_00037b60,FUN_00037788
s_SSD_%s(%d):unit(%d)-_the_pid(%_0019c6f0 1 FUN_0014a120
s_dgw.xpass.jp_0018f9a2 3 FUN_00100fb0
s_%s(%d)_-_PID(%d)_Band(%s)_SSID[%_00195215 1 FUN_00127544
s_/etc/cacert.pem_00169ca8 3 FUN_0004c3b8
s_/jffs/.cert/cert_gen.pem_00169cdd 3 FUN_0004c3b8
s_nmp_cl_json.js_00186697 4 FUN_000da008
s_%s(%d)-[%d]_UUID[%d]_Band[%s]_S_001946e8 1 FUN_001252f8
s_cat_/proc/meminfo_0017b9c9 2 FUN_000b7e74
s_bpm_status_0017b9ee 1 FUN_000b7e74
s_%s(%d)_-_Ready_to_connect_to_AP(_00194d0d 2 FUN_00129508,FUN_00126270
s_proc_net_arp.txt_00186634 4 FUN_000da008
s_[%s:(%d)]###_[WAN_DET]_XPASS(DS-_001681e4 1 FUN_000352d4
s_%s(%d)_-_PID(%d)_rssi(%d)_antenn_00195155 1 FUN_00127544
s_Success_to_aae_refresh_userticke_0016484b 1 FUN_0001eb88
s_ipv6_s46_b4addr_0016afbc 2 FUN_00100fb0,FUN_00041880
s_start_dslited_%d_0016b2bc 2 FUN_00101a3c,FUN_000428d0
s_OBD(%d)_%lu:_Exit_due_to_WPS_pro_00189a5b 1 FUN_000ea624
s_local=/%s/_0016b857 1 FUN_00044a20
s_Success_to_aae_refresh_devicetic_001648b3 1 FUN_0001eb88
s_/proc/XXXXXXXX/exe_0019cc0d 1 FUN_0014a120
s_echo_"[ASUSDDNS][%s:(%d)]Cannot_a_001891e3 1 FUN_000e7698
s_%s(%d)_-amas_set_cost_ret%d_0019787a 1 FUN_00131470
s_[OAUTH][%s:(%d)]OAUTH_GOOGLE_ACC_0017e2e0 1 FUN_000bebc8
s_UTC3DST_001732a3 1
s_md5sum_%s_0016d2d1 1 FUN_0004c3b8
s_[%s:(%d)][DS-Lite]Invalid_RA_[%s_0018f90d 1 FUN_00100fb0
s_%s_not_find_External_WAN_IP,_go_r_0016c407 1 FUN_00047554
s_echo_"[ASUSDDNS][%s:(%d)]auth_st_001891a4 1 FUN_000e7698
s_echo_"[ASUSDDNS][%s:(%d)]Cannot_o_00189508 1 FUN_000e7f38
s_%s:nid%d_X509V3_EXT_print()_fa_0016a82e 1 FUN_0003f88c
s_%s(%d)-Update_cfg_cost(%d)->(_001976e6 1 FUN_00131470
s_%s(%d)_-_BandIndex(%d)_Scanning_A_00196a8e 1 FUN_0012c180
s_%s:wan_dns:%d._0016e4d9 1 FUN_0005096c
s_/etc/cacert_gen.pem_00169d52 3 FUN_0004c3b8
s_echo_"[ASUSDDNS][%s:(%d)]No_sid_(_00188fac 1 FUN_000e7698
s_%s(%d)_-_Getting_BandIndex(%d)_U_001952dc 1 FUN_00128074
s_[BWDPI][%s:(%d)]tstamp=%s,_alarm_0018c4b3 1 FUN_000f2a14
s_ipv6_s46_env_aftr_00177789 4 FUN_00076fc4,FUN_00100fb0,FUN_0007430c
s_/etc/cert_gen.pem_00169d79 2 FUN_0004c3b8
s_ipv6_s46_aftr_addr_0016afcc 6 FUN_00100fb0,FUN_00041880
s_address=/use-application-dns.net_0016bbe6 1 FUN_00044a20
s_dhcpd_dns_router_0016b900 1 FUN_00044a20
s_echo_"[ASUSDDNS][%s:(%d)]CURL_pe_00189332 1 FUN_000e7698
s_%s(%d)_-Receive_event:%s_00196d50 1 FUN_0012f810
s_OBD(%d)_%lu:_BSSID=%s,_RSSI=%d,_V_0018992b 1 FUN_000e98c4
s_router-solicitation_0016876c 2 FUN_00037b60,FUN_00037788
s_/var/run/dslited.%d.pid_0016b2cd 6 FUN_00101a3c,FUN_00042860,FUN_00076fc4,FUN_00101acc,FUN_000428d0
s_%s(%d)_-_PID(%d)_unset_flag_for_S_00194a67 1
s_unregister,390_0016c4de 1 FUN_00048190
s_ip4ip6_0016b039 1 FUN_00041880
s_[BWDPI][%s:(%d)]start_wrs_and_st_0018c50f 1 FUN_000f2a14
s_%s(%d)_-Parsing_MAC:%s_00195348 1 FUN_00128074
s_dns_norebind_0016bbb6 1 FUN_00044a20
s_wiredclientlist.json_00186661 4 FUN_000da008
s_keyid:_0016d35b 2 FUN_0004c3b8
s_oauth_dm_refresh_ticket_001893bd 1 FUN_000e7f38
s_vlan12_001796af 1
s_UTC2DST_0017329b 1 FUN_00065350
s_[%s:(%d)][CMD]:[ip_link_set_dev_%_0016b12f 1 FUN_00041880
s_echo_"[ASUSDDNS][%s:(%d)]Failed_t_0018946d 1 FUN_000e7f38
s_obd_msglevel_00189ae7 2 FUN_000ea844
s_[OAUTH][%s:(%d)]OAUTH_GOOGLE_AUT_0017e5f2 2 FUN_000bf098,FUN_000bf514
s_httpds6_reload_cert_00166c41 4 FUN_00026a44,FUN_0005096c,FUN_0004cc68
s_wan0_s46_dslite_svc_00187008 7 FUN_000da008,FUN_000e3214
s_https://ns1.asuscomm.com_001892bc 1 FUN_000e7698
s_[%s:(%d)]###HGW_ON###_(DS-Lite_0018f8c0 1 FUN_00100fb0
s_%s(%d)_-SiteSurvey_timeout:%d_001939b1 1 FUN_001214fc
s_%s(%d)_-_The_Request_Done._00196f86 1 FUN_0012f810
s_nslookup_"%s"_|grep"Address_1:_00167efd 1 FUN_00034b34
s_USER=%s_00165128 1 FUN_00020d3c
s_echo_"[ASUSDDNS][%s:(%d)]Cannot_i_0018937c 1 FUN_000e7698
s_/tmp/ipkg_control.tgz_00186b49 4 FUN_000da008
s_%s(%d)_-_BandIndex(%d)_Don't_Hav_00196b37 1 FUN_0012c180
s_[%s:(%d)]prefx:[%s/%d]_00177b47 1 FUN_00076fc4
s_%s(%d)_-_BandIndex(%d)_Action_mo_00195849 1 FUN_00129508
s_wan_dns_0016e4d1 1 FUN_0005096c
s_s46_dslite_mode_0018f7fc 2 FUN_00100fb0
s_[%s:(%d)][START]_dslited_00177c6f 1 FUN_00076fc4
s_%s(%d)_-_Check_BandIndex(%d)_sta_00196b74 2 FUN_0012c180
s_%s(%d)_-_BandIndex(%d)_wait_amas_00193b4c 1 FUN_00121ae0
s_%s(%d)_-_BandIndex(%d)_Restart_c_00195f47 1 FUN_0012ba48
s_{"ddns":{"eid":%d}}_001647fa 2 FUN_000e7f38,FUN_0001eb88
s_echo_"[ASUSDDNS][%s:(%d)]No_user_00188f6d 1 FUN_000e7698
s_bwdpi_wred_alive_main_0018c58c 1 FUN_000f2a14
s_dslite_00165d27 5 FUN_000da008,FUN_00022bc0,FUN_000e3214,FUN_000c10f8
s_vlan_forwarding_0017b302 1 FUN_0007ee4c
s_dhcp-name-match=set:wpad-ignore,_0016bc18 1 FUN_00044a20
s_%s(%d)_-_Get_site_survey_result_t_00195a03 1 FUN_00129508
s_https://%s%s_00189296 1 FUN_000e7698
s_OBD(%d)_%lu:MAC_address:%s_0018999a 1 FUN_000e98c4
s_/etc/key_gen.pem_00169d8b 2 FUN_0004c3b8
s_2001:0F74::_001680d3 1 FUN_0003523c
s_/jffs/.sys/amas/amas_bhctrl.log_00186948 8 FUN_000da008,FUN_00131470
s_/jffs/.cert/key_gen.pem_00169d04 3 FUN_0004c3b8
s_/var/run/bwdpi_wred_check.pid_0018c477 1 FUN_000f2994
s_%s(%d)_-_amas_set_cost_00197837 1 FUN_00131470
s_RAST_%lu:Reset[%02x:%02x:%02x:_00190b60 1 FUN_00108cb0
s_192.0.0.1_0016b0ee 1 FUN_00041880
s_[OAUTH][%s:(%d)]OAUTH_GOOGLE_DRI_0017f597 1 FUN_000c28ac
s_ipkg_control.tgz_001872b8 1 FUN_000da008
s_%s(%d)_-_Profile_switch_Timeout_v_0019570a 3 FUN_00130548,FUN_00129508
s_stop-dns-rebind_0016bbc3 1 FUN_00044a20
s_%s(0x%04x):BHC%lu:_exit..._00197899 1 FUN_00131470
s_2409:0250::_001680f7 1 FUN_0003523c
s_transix_0018f9ed 3 FUN_00100fb0
s_[OAUTH][%s:(%d)]token_is_invalid_0017e4cd 1 FUN_000bef00
s_gw.transix.jp_0018f9f5 5 FUN_00100fb0
s_%[^>]>%d>%d>%d_00187acc 1 FUN_000e1c5c
s_prepare_cert_in_etc_0016f267 3 FUN_0004c3b8
s_[%s:(%d)]AFTR:[%s]_00167e7f 3 FUN_00034b34
s_regular_ddns_check_00174870 1 FUN_00068bb0
s_bwdpi_game_list_00166012 1 FUN_000246b0
s_OBD(%d)_%lu:_Reset_due_to_timeou_00189a0a 1 FUN_000e98c4
s_/jffs/.cert/cacert.pem_00169c91 6 FUN_0004c3b8
s_devicemac_001890df 1 FUN_000e7698
s_[%s(%d)]_vid=%d,_prio=%d,_mask=0_00179cbd 1 FUN_0007ee4c
s_asusddns_reg_domain_0016f181 1 FUN_00047554
s_%s(%d)_-_Current_AP_is_better_th_0019692c 2 FUN_0012c180
s_bwdpi_stream_list_00166022 1 FUN_000246b0
s_dns_r_0016e4eb 3 FUN_00074eac,FUN_0005096c
s_%s:_Still_no_workable_certificat_0016d327 1 FUN_0004c3b8
s_bwdpi_wred_alive_tasks_0018c575 1 FUN_000f2a14
s_OBD(%d)_%lu:Status:%x_00189958 1 FUN_000e98c4
s_devicemd5mac_0018913c 1 FUN_000e7698
s_/etc/cakey.pem_00169cce 2 FUN_0004c3b8
s_update_asus_ddns_token_00189615 2 FUN_000e7f38
s_%s(%d)_-_PID(%d)_set_flag_for_SI_001949a1 1
s_OBD(%d)_%lu:_Unknown_TLV:_001899b8 1 FUN_000e98c4
s_%s(%d)_-_Get_site_survey_result_f_00195a60 1 FUN_00129508
s_command:_%s_0017d3ba 1 FUN_000b7e74
s_dns_fwd_local_0016b82f 1 FUN_00044a20
s_%s:_No_workable_uploaded_certifi_0016d2db 1 FUN_0004c3b8
s_obd_interval_00189a4e 2 FUN_000ea624,FUN_000ea844
s_nmp_cache.js_0018668a 4 FUN_000da008
s_/tmp/asusddns_res_00189230 5 FUN_000e7f38,FUN_000e7698
s_echo_"[ASUSDDNS][%s:(%d)]User_do_001893d5 1 FUN_000e7f38
s_oauth_dm_user_ticket_00188f58 1 FUN_000e7698
s_WAN(%d)_IP_is_empty._0016c42e 1 FUN_00047554
s_OBD(%d)_%lu:_ID:_00189988 1 FUN_000e98c4
s_WAN(%d)_IP_is_empty.(%d)_0016bf9f 1 FUN_00046194
s_%s(%d)_-_BandIndex(%d)_amas_ssd_d_00195b8b 3 FUN_0012c180,FUN_00129508
s_[%s:(%d)][CMD]:[ethtool_-K_%s_sg_0016b0b2 2 FUN_00041880
s_ipv6_s46_aftr_0018f80c 10 FUN_00100fb0
s_httpds_reload_cert_00166c2e 4 FUN_00026a44,FUN_0005096c,FUN_0004cc68
s_%s(%d)_-_PID(%d)_signal_handler_r_0019482d 1
s__acquire_token_001895f6 11 FUN_000e7698
s_192.0.0.2_0018f970 1 FUN_00100fb0
s_ubimkvol_/dev/ubi0_-s_%dMiB_-n_1_0017d8fc 1 FUN_000bc018
s_2001:0F70::_001680df 1 FUN_0003523c
s_ddns_ipv6_updated_0016bcd0 5 FUN_00047554,FUN_00046194,FUN_00068d98
s_start_ddns_0016f176 1 FUN_00046194
s_ipkgapp.txt_001872ab 1 FUN_000da008
s_/ddnsv2/acquireToken.php_001892a3 3 FUN_000e7698
s_slabdbg_0017d3b2 1 FUN_000b7e74
s_%s(%d)_-_BandIndex(%d)_amas_ssd_h_00193bbd 1 FUN_00121ae0
s_ethtool_0016b0a4 2 FUN_00041880
s_router-advertisement_00168780 4 FUN_00037b60,FUN_00037788
s_ddns_check_00174883 1 FUN_00068d98
s_[%s:(%d)][CMD]:[ifconfig_%s_%s_p_0016b0f8 1 FUN_00041880
s_[%s:(%d)]###HGW_OFF###_(DS-Lit_0018f854 1 FUN_00100fb0
s_/var/run/obd.pid_00189902 2 FUN_000e9874,FUN_000ea844
s_%s(%d)_-_BandIndex(%d)_Unit(%d)_I_0019623f 1 FUN_0012c180
s_oauth_auth_status_0016c115 7 FUN_00047554,FUN_00046194,FUN_00048190,FUN_000e7698
s_[%s]_None_of_wan_can_connect_to_i_0016bea8 5 FUN_00068bb0,FUN_00048190,FUN_00047554,FUN_00046194,FUN_00068d98
s_echo_"[ASUSDDNS][%s:(%d)]Cannot_c_00188ff1 1 FUN_000e7698
s_asusddns_token_0018955d 1 FUN_000e7f38
s_bogus-priv_domain-needed_0016b83d 1 FUN_00044a20
s_%s(%d)_-_PID(%d)_cancel_sitesurv_00194a03 1
s_dhcpfilter_enable_001690a8 1 FUN_0003c2cc
s_%s(%d)_-_Reset_amas_wlcX_dfs_sta_001948c6 1
s_success=on_00178428 1 FUN_000798d0
s_OBD(%d)_%lu:Cost:%x_00189971 1 FUN_000e98c4
s_asusddns_token_state_0016c38d 9 FUN_00047554,FUN_000e7f38,FUN_00048190,FUN_00046194
s_get_AFTR_addr_001684f1 5 FUN_00034b34
s_%s(%d)_-_PID(%d)_band(%d)_Checki_00195c1e 1 FUN_00129508
s_Failed_to_aae_refresh_devicetick_00164890 1 FUN_0001eb88
s__update_userticket_001895e3 2 FUN_000e7f38
s_/etc/cakey_gen.pem_00169d66 3 FUN_0004c3b8
s_check_wred_alive_0018c564 2 FUN_000f2a14
s_xpass_0018f99c 2 FUN_00100fb0
s_%s(%d)_-_PID(%d)_bandindex(%d)_u_00194ed9 2 FUN_00129508,FUN_00126270
s_bwdpi_wfh_list_00166034 1 FUN_000246b0
s_,0.0.0.0_0016b58b 1 FUN_00044a20
s_OBD(%d)_%lu:_Start_WPS_Enroll_00189a2e 1 FUN_000e98c4
s_%s(%d)_-_BandIndex(%d)_Unit(%d)_C_0019416c 1 FUN_00122864
s_DS-Lite_start.(DS-Lite_is_not_ac_0018f890 1 FUN_00100fb0
s_*filter_:INPUT_%s_[0:0]_:FORWARD_00170826 1 FUN_0005c394
s_gencert.sh_0016d362 1 FUN_0004c3b8
s_[%s:(%d)][DS-Lite]_Line_is_trans_0018fa17 1 FUN_00100fb0
s_aae_ddnsinfo_0016c13b 15 FUN_00047554,FUN_00046194,FUN_00048190,FUN_000e7698
s_cat_/proc/net/arp_>_/tmp/%s_00186645 1 FUN_000da008
s_%s(%d)_-_Action_mode:_AMAS_WLCCO_001964dc 1 FUN_0012c180
s_TRANSIX(DS-Lite)_00168197 1 FUN_000352d4
s_%s(%d)_-_The_amas_wlcconnect_mai_001943a5 1 FUN_00123be4
s_dslited_00164c12 2 FUN_000428d0
s_%s(%d)_-_Trigger_band(%d)_site_s_00195989 1 FUN_00129508
s_eth1.100_001796a6 1
s_set_exclchans_valid[%d]:[%s]=[%s_0017a9dc 1 FUN_0009e184
s_amas_portstatus_0016df30 2 FUN_0004feb0
s_ipv6-icmp_00168752 6 FUN_00037b60,FUN_00037788
s_DS-Lite_is_active_on_HGW_0018f8f4 1 FUN_00100fb0
s_%s(%d)_-_PID(%d)_Triggering_band_0019591b 1 FUN_00129508
s_flets-east.jp_iptvf.jp_0018f74a 1 FUN_001001d4
s_[%s:(%d)][AFTR=%s]_00177b7a 1 FUN_00076fc4

Deleted

FUN_00070720

Function Meta

Key old_FW_RT_AX55_300438651598_sbin_rc
name FUN_00070720
fullname FUN_00070720
refcount 2
length 1116
called
Expand for full list:
::atoi
::cprintf
::getenv
::getifaddr
::nvram_default_get
::nvram_get
::nvram_get_int
::nvram_set
FUN_0002a4dc
FUN_0002d648
FUN_0004641c
FUN_00046498
FUN_00047808
FUN_00047d68
FUN_00060a6c
FUN_00070278
FUN_00070298
FUN_00070318
FUN_0007061c
calling
paramcount 0
address 00070720
sig undefined4 __stdcall FUN_00070720(void)
sym_type Function
sym_source DEFAULT
external False
--- FUN_00070720
+++ FUN_00070720
@@ -1,156 +0,0 @@
-
-undefined4 FUN_00070720(void)
-
-{
-  bool bVar1;
-  bool bVar2;
-  char *pcVar3;
-  byte *pbVar4;
-  byte *pbVar5;
-  int iVar6;
-  char *pcVar7;
-  char *pcVar8;
-  
-  pcVar3 = getenv("interface");
-  if (pcVar3 == (char *)0x0) {
-    pcVar3 = "";
-  }
-  pbVar4 = (byte *)getenv("ip");
-  if (pbVar4 == (byte *)0x0) {
-    bVar1 = false;
-  }
-  else {
-    pbVar5 = FUN_00060a6c(pbVar4);
-    bVar1 = FUN_00070298("lan_ipaddr",(char *)pbVar5);
-    if (!bVar1) {
-      FUN_0004641c();
-      FUN_00046498();
-      FUN_00047d68();
-      FUN_00047808();
-    }
-    bVar1 = !bVar1;
-    pbVar4 = FUN_00060a6c(pbVar4);
-    nvram_set("lan_ipaddr",pbVar4);
-  }
-  pbVar4 = (byte *)getenv("subnet");
-  if (pbVar4 != (byte *)0x0) {
-    pbVar5 = FUN_00060a6c(pbVar4);
-    bVar2 = FUN_00070298("lan_netmask",(char *)pbVar5);
-    if (!bVar2) {
-      bVar1 = true;
-    }
-    pbVar4 = FUN_00060a6c(pbVar4);
-    nvram_set("lan_netmask",pbVar4);
-  }
-  pbVar4 = (byte *)getenv("router");
-  if (pbVar4 != (byte *)0x0) {
-    pbVar5 = FUN_00060a6c(pbVar4);
-    bVar2 = FUN_00070298("lan_gateway",(char *)pbVar5);
-    if (!bVar2) {
-      bVar1 = true;
-    }
-    pbVar4 = FUN_00060a6c(pbVar4);
-    nvram_set("lan_gateway",pbVar4);
-  }
-  pbVar4 = (byte *)getenv("lease");
-  if (pbVar4 != (byte *)0x0) {
-    pbVar5 = FUN_00060a6c(pbVar4);
-    bVar2 = FUN_00070298("lan_lease",(char *)pbVar5);
-    if (!bVar2) {
-      bVar1 = true;
-    }
-    pbVar5 = FUN_00060a6c(pbVar4);
-    nvram_set("lan_lease",pbVar5);
-    iVar6 = atoi((char *)pbVar4);
-    FUN_0007061c(pcVar3,iVar6);
-  }
-  iVar6 = nvram_get_int("lan_dnsenable_x");
-  if ((iVar6 != 0) && (pbVar4 = (byte *)getenv("dns"), pbVar4 != (byte *)0x0)) {
-    pbVar5 = FUN_00060a6c(pbVar4);
-    bVar2 = FUN_00070298("lan_dns",(char *)pbVar5);
-    if (!bVar2) {
-      bVar1 = true;
-    }
-    pbVar4 = FUN_00060a6c(pbVar4);
-    nvram_set("lan_dns",pbVar4);
-  }
-  cprintf("%s: IFUP.\n","bound_lan");
-  pcVar7 = (char *)getifaddr(pcVar3,2,0);
-  if (pcVar7 != (char *)0x0) {
-    iVar6 = nvram_get("sw_mode");
-    if (iVar6 == 0) {
-      pcVar8 = (char *)nvram_default_get("sw_mode");
-      iVar6 = atoi(pcVar8);
-    }
-    else {
-      iVar6 = nvram_get_int();
-    }
-    if (iVar6 == 3) {
-      bVar1 = (bool)(bVar1 ^ 1);
-      bVar2 = FUN_00070298("lan_ipaddr",pcVar7);
-      if (!bVar2) {
-        bVar1 = false;
-      }
-      if ((bVar1) && (iVar6 = nvram_get_int("lan_state_t"), iVar6 == 2)) {
-        return 0;
-      }
-    }
-  }
-  iVar6 = nvram_get("sw_mode");
-  if (iVar6 == 0) {
-    pcVar7 = (char *)nvram_default_get("sw_mode");
-    iVar6 = atoi(pcVar7);
-  }
-  else {
-    iVar6 = nvram_get_int("sw_mode");
-  }
-  if (iVar6 == 2) {
-LAB_000709d0:
-    iVar6 = nvram_get_int("wlc_mode");
-    if (iVar6 == 0) {
-      FUN_0002a4dc(2,0);
-      goto LAB_000709f4;
-    }
-  }
-  else {
-    iVar6 = nvram_get("sw_mode");
-    if (iVar6 == 0) {
-      pcVar7 = (char *)nvram_default_get("sw_mode");
-      iVar6 = atoi(pcVar7);
-    }
-    else {
-      iVar6 = nvram_get_int();
-    }
-    if ((((iVar6 == 3) && (iVar6 = nvram_get_int("wlc_psta"), iVar6 == 2)) &&
-        ((iVar6 = nvram_get_int("wlc_dpsta"), iVar6 == 1 ||
-         (iVar6 = nvram_get("wlc_dpsta"), iVar6 == 0)))) &&
-       (iVar6 = nvram_get_int("re_mode"), iVar6 == 0)) goto LAB_000709d0;
-    iVar6 = nvram_get("sw_mode");
-    if (iVar6 == 0) {
-      pcVar7 = (char *)nvram_default_get("sw_mode");
-      iVar6 = atoi(pcVar7);
-    }
-    else {
-      iVar6 = nvram_get_int("sw_mode");
-    }
-    if (((iVar6 == 3) && (iVar6 = nvram_get_int("wlc_psta"), iVar6 == 2)) &&
-       (iVar6 = nvram_get_int("wlc_dpsta"), iVar6 == 0)) goto LAB_000709d0;
-    iVar6 = nvram_get("sw_mode");
-    if (iVar6 == 0) {
-      pcVar7 = (char *)nvram_default_get("sw_mode");
-      iVar6 = atoi(pcVar7);
-    }
-    else {
-      iVar6 = nvram_get_int("sw_mode");
-    }
-    if ((iVar6 == 3) && (iVar6 = nvram_get_int("wlc_psta"), iVar6 == 1)) goto LAB_000709d0;
-  }
-  pcVar7 = FUN_00070278();
-  pcVar8 = FUN_00070278();
-  FUN_00070318(pcVar3,0x1243,pcVar7,pcVar8);
-  FUN_0002d648(pcVar3);
-LAB_000709f4:
-  cprintf("done\n");
-  return 0;
-}
-

FUN_000b5c5c

Function Meta

Key old_FW_RT_AX55_300438651598_sbin_rc
name FUN_000b5c5c
fullname FUN_000b5c5c
refcount 1
length 112
called ::puts
::strcmp
FUN_000b2da0
calling FUN_00076120
paramcount 1
address 000b5c5c
sig undefined4 __stdcall FUN_000b5c5c(char * param_1)
sym_type Function
sym_source DEFAULT
external False
--- FUN_000b5c5c
+++ FUN_000b5c5c
@@ -1,17 +0,0 @@
-
-undefined4 FUN_000b5c5c(char *param_1)
-
-{
-  char *__s1;
-  int iVar1;
-  
-  __s1 = FUN_000b2da0("wifi_psk");
-  if ((param_1 != (char *)0x0) &&
-     ((iVar1 = strcmp(__s1,param_1), iVar1 == 0 ||
-      ((iVar1 = strcmp(param_1,"NONE"), iVar1 == 0 && (*__s1 == '\0')))))) {
-    puts("ATE_OK");
-    return 0;
-  }
-  return 0xffffffff;
-}
-

FUN_000b68ec

Function Meta

Key old_FW_RT_AX55_300438651598_sbin_rc
name FUN_000b68ec
fullname FUN_000b68ec
refcount 5
length 28
called ::nvram_get
calling
paramcount 0
address 000b68ec
sig undefined * __stdcall FUN_000b68ec(void)
sym_type Function
sym_source DEFAULT
external False
--- FUN_000b68ec
+++ FUN_000b68ec
@@ -1,13 +0,0 @@
-
-undefined * FUN_000b68ec(void)
-
-{
-  undefined *puVar1;
-  
-  puVar1 = (undefined *)nvram_get();
-  if (puVar1 != (undefined *)0x0) {
-    return puVar1;
-  }
-  return "";
-}
-

FUN_000fa8a8

Function Meta

Key old_FW_RT_AX55_300438651598_sbin_rc
name FUN_000fa8a8
fullname FUN_000fa8a8
refcount 3
length 564
called ::asusdebuglog
::cprintf
::f_exists
::file_lock
::file_unlock
::logmessage_normal
::time
::uptime
FUN_000fab08
calling FUN_000fac14
FUN_000fb0e8
paramcount 7
address 000fa8a8
sig undefined __stdcall FUN_000fa8a8(undefined4 * param_1, undefined4 param_2, undefined4 param_3, undefined4 * param_4, undefined4 param_5, undefined4 param_6, undefined4 * param_7)
sym_type Function
sym_source DEFAULT
external False
--- FUN_000fa8a8
+++ FUN_000fa8a8
@@ -1,80 +0,0 @@
-
-void FUN_000fa8a8(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4,
-                 undefined4 param_5,undefined4 param_6,undefined4 *param_7)
-
-{
-  undefined4 uVar1;
-  int iVar2;
-  time_t tVar3;
-  undefined4 *puVar4;
-  int iVar5;
-  undefined4 *puVar6;
-  undefined4 *puVar7;
-  undefined4 *puVar8;
-  int iVar9;
-  
-  uVar1 = uptime();
-  cprintf("RAST %lu: sta %s, sta_rssi %d, candidate_rssi_criteria %d, candidate %s, candidate_rssi %d.\n"
-          ,uVar1,param_1,param_2,param_3,param_4,param_5);
-  if ((DAT_001ddd34 != 0) || (iVar2 = f_exists("/tmp/RAST_DEBUG"), iVar2 != 0)) {
-    asusdebuglog(6,"roamast.log",0,1,0,
-                 "sta %s, sta_rssi %d, candidate_rssi_criteria %d, candidate %s, candidate_rssi %d.\n"
-                 ,param_1,param_2,param_3,param_4,param_5);
-  }
-  if (DAT_001e090c != 0) {
-    logmessage_normal("roamast",
-                      "sta %s, sta_rssi %d, candidate_rssi_criteria %d, candidate %s, candidate_rssi %d.\n"
-                      ,param_1,param_2,param_3,param_4,param_5);
-  }
-  if ((int)*(uint *)(DAT_001d45fc + 0x1a00) < 0x80) {
-    uVar1 = file_lock("roaming");
-    iVar2 = DAT_001d45fc;
-    puVar6 = (undefined4 *)(*(int *)(DAT_001d45fc + 0x1a00) * 0x12 + DAT_001d45fc);
-    puVar7 = param_1;
-    do {
-      puVar8 = puVar7 + 1;
-      puVar4 = puVar6 + 1;
-      *puVar6 = *puVar7;
-      puVar6 = puVar4;
-      puVar7 = puVar8;
-    } while (puVar8 != param_1 + 4);
-    *(undefined2 *)puVar4 = *(undefined2 *)puVar8;
-    iVar9 = iVar2 + *(int *)(iVar2 + 0x1a00) * 4;
-    *(undefined4 *)(iVar9 + 0x900) = param_2;
-    tVar3 = time((time_t *)0x0);
-    *(time_t *)(iVar9 + 0xb00) = tVar3;
-    iVar9 = *(int *)(iVar2 + 0x1a00);
-    *(undefined4 *)(iVar2 + (iVar9 + 0x340) * 4) = param_3;
-    puVar6 = (undefined4 *)(iVar9 * 0x12 + iVar2 + 0xf00);
-    puVar7 = param_4;
-    do {
-      puVar8 = puVar7 + 1;
-      puVar4 = puVar6 + 1;
-      *puVar6 = *puVar7;
-      puVar6 = puVar4;
-      puVar7 = puVar8;
-    } while (puVar8 != param_4 + 4);
-    *(undefined2 *)puVar4 = *(undefined2 *)puVar8;
-    iVar5 = *(int *)(iVar2 + 0x1a00);
-    iVar9 = iVar2 + iVar5 * 4;
-    *(undefined4 *)(iVar9 + 0x1800) = param_5;
-    *(undefined4 *)(iVar9 + 0x1a04) = param_6;
-    puVar6 = param_7;
-    puVar7 = (undefined4 *)(iVar5 * 0x12 + iVar2 + 0x1c04);
-    do {
-      puVar4 = puVar6 + 1;
-      puVar8 = puVar7 + 1;
-      *puVar7 = *puVar6;
-      puVar6 = puVar4;
-      puVar7 = puVar8;
-    } while (puVar4 != param_7 + 4);
-    *(undefined2 *)puVar8 = *(undefined2 *)puVar4;
-    *(int *)(iVar2 + 0x1a00) = *(int *)(iVar2 + 0x1a00) + 1;
-    file_unlock(uVar1);
-    return;
-  }
-  FUN_000fab08(*(uint *)(DAT_001d45fc + 0x1a00) & 0x7f,param_1,param_2,param_3,param_4,param_5,
-               param_6,param_7);
-  return;
-}
-

FUN_000fab08

Function Meta

Key old_FW_RT_AX55_300438651598_sbin_rc
name FUN_000fab08
fullname FUN_000fab08
refcount 1
length 260
called ::file_lock
::file_unlock
::time
calling FUN_000fa8a8
paramcount 8
address 000fab08
sig undefined __stdcall FUN_000fab08(int param_1, undefined4 * param_2, undefined4 param_3, undefined4 param_4, undefined4 * param_5, undefined4 param_6, undefined4 param_7, undefined4 * param_8)
sym_type Function
sym_source DEFAULT
external False
--- FUN_000fab08
+++ FUN_000fab08
@@ -1,59 +0,0 @@
-
-void FUN_000fab08(int param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
-                 undefined4 *param_5,undefined4 param_6,undefined4 param_7,undefined4 *param_8)
-
-{
-  int iVar1;
-  undefined4 uVar2;
-  undefined4 *puVar3;
-  undefined4 *puVar4;
-  time_t tVar5;
-  undefined4 *puVar6;
-  int iVar7;
-  int iVar8;
-  undefined4 *puVar9;
-  
-  uVar2 = file_lock("roaming");
-  iVar1 = DAT_001d45fc;
-  iVar8 = param_1 * 0x12;
-  puVar3 = (undefined4 *)(DAT_001d45fc + iVar8);
-  puVar6 = param_2;
-  do {
-    puVar9 = puVar6 + 1;
-    puVar4 = puVar3 + 1;
-    *puVar3 = *puVar6;
-    puVar3 = puVar4;
-    puVar6 = puVar9;
-  } while (puVar9 != param_2 + 4);
-  iVar7 = iVar1 + param_1 * 4;
-  *(undefined2 *)puVar4 = *(undefined2 *)puVar9;
-  *(undefined4 *)(iVar7 + 0x900) = param_3;
-  tVar5 = time((time_t *)0x0);
-  *(undefined4 *)(iVar7 + 0xd00) = param_4;
-  *(time_t *)(iVar7 + 0xb00) = tVar5;
-  puVar3 = (undefined4 *)(iVar1 + iVar8 + 0xf00);
-  puVar6 = param_5;
-  do {
-    puVar9 = puVar6 + 1;
-    puVar4 = puVar3 + 1;
-    *puVar3 = *puVar6;
-    puVar3 = puVar4;
-    puVar6 = puVar9;
-  } while (puVar9 != param_5 + 4);
-  *(undefined2 *)puVar4 = *(undefined2 *)puVar9;
-  *(undefined4 *)(iVar7 + 0x1800) = param_6;
-  *(undefined4 *)(iVar7 + 0x1a04) = param_7;
-  puVar3 = param_8;
-  puVar6 = (undefined4 *)(iVar1 + iVar8 + 0x1c04);
-  do {
-    puVar4 = puVar3 + 1;
-    puVar9 = puVar6 + 1;
-    *puVar6 = *puVar3;
-    puVar3 = puVar4;
-    puVar6 = puVar9;
-  } while (puVar4 != param_8 + 4);
-  *(undefined2 *)puVar9 = *(undefined2 *)puVar4;
-  file_unlock(uVar2);
-  return;
-}
-

FUN_000fac14

Function Meta

Key old_FW_RT_AX55_300438651598_sbin_rc
name FUN_000fac14
fullname FUN_000fac14
refcount 0
length 1108
called
Expand for full list:
::asusdebuglog
::cprintf
::f_exists
::json_object_get_string
::json_object_object_get_ex
::json_object_put
::json_tokener_parse
::logmessage_normal
::strcmp
::uptime
FUN_000fa8a8
calling
paramcount 1
address 000fac14
sig undefined4 __stdcall FUN_000fac14(undefined4 param_1)
sym_type Function
sym_source DEFAULT
external False
--- FUN_000fac14
+++ FUN_000fac14
@@ -1,116 +0,0 @@
-
-undefined4 FUN_000fac14(undefined4 param_1)
-
-{
-  bool bVar1;
-  int iVar2;
-  char *__s2;
-  int iVar3;
-  undefined4 *puVar4;
-  undefined4 uVar5;
-  undefined4 uVar6;
-  undefined4 uVar7;
-  undefined4 uVar8;
-  char *pcVar9;
-  char *pcVar10;
-  int iVar11;
-  int *piVar12;
-  undefined4 uVar13;
-  undefined4 local_40;
-  undefined4 local_3c;
-  undefined4 local_38;
-  undefined4 local_34 [2];
-  undefined2 local_2c [6];
-  
-  local_40 = 0;
-  puVar4 = local_34;
-  local_3c = 0;
-  local_38 = 0;
-  pcVar10 = "00:00:00:00:00:00";
-  do {
-    pcVar9 = pcVar10 + 8;
-    uVar5 = *(undefined4 *)(pcVar10 + 4);
-    *puVar4 = *(undefined4 *)pcVar10;
-    puVar4[1] = uVar5;
-    puVar4 = puVar4 + 2;
-    pcVar10 = pcVar9;
-  } while (pcVar9 != "0");
-  bVar1 = false;
-  iVar11 = 0;
-  *(undefined2 *)puVar4 = 0x30;
-  iVar2 = uptime();
-  uVar5 = json_tokener_parse(param_1);
-  json_object_object_get_ex(uVar5,&DAT_001865a0,&local_40);
-  json_object_object_get_ex(local_40,"STA",&local_3c);
-  json_object_object_get_ex(local_40,"PRESENT_AP",&local_38);
-  pcVar9 = (char *)&DAT_001de408;
-  pcVar10 = pcVar9;
-  piVar12 = &DAT_001ddf50;
-  do {
-    if (*piVar12 != 0) {
-      __s2 = (char *)json_object_get_string(local_3c);
-      iVar3 = strcmp(pcVar9,__s2);
-      if (iVar3 == 0) {
-        uVar7 = *(undefined4 *)(pcVar10 + 0xd00);
-        uVar8 = *(undefined4 *)(pcVar10 + 0x1800);
-        uVar6 = *(undefined4 *)(pcVar10 + 0x1a04);
-        uVar13 = *(undefined4 *)(pcVar10 + 0x900);
-        puVar4 = (undefined4 *)json_object_get_string(local_38);
-        FUN_000fa8a8((undefined4 *)pcVar9,uVar13,uVar7,(undefined4 *)(pcVar9 + 0xf00),uVar8,uVar6,
-                     puVar4);
-        if ((DAT_001e0918 != 0) || (iVar3 = f_exists("/tmp/RAST_DEBUG"), iVar3 != 0)) {
-          uVar6 = uptime();
-          cprintf("RAST %lu: %s set to conndiag table ,clean it\n",uVar6,pcVar9);
-        }
-        if ((DAT_001ddd34 != 0) || (iVar3 = f_exists("/tmp/RAST_DEBUG"), iVar3 != 0)) {
-          asusdebuglog(6,"roamast.log",0,1,0,"%s set to conndiag table ,clean it\n",pcVar9);
-        }
-        if (DAT_001e090c != 0) {
-          logmessage_normal("roamast","%s set to conndiag table ,clean it\n",pcVar9);
-        }
-        bVar1 = true;
-        *piVar12 = 0;
-      }
-      else if (3 < iVar2 - (&DAT_001ddd38)[iVar11]) {
-        if ((DAT_001e0918 != 0) || (iVar3 = f_exists("/tmp/RAST_DEBUG"), iVar3 != 0)) {
-          uVar6 = uptime();
-          cprintf("RAST %lu: %s timeout and does not receive exap info ,clean it\n",uVar6,pcVar9);
-        }
-        if ((DAT_001ddd34 != 0) || (iVar3 = f_exists("/tmp/RAST_DEBUG"), iVar3 != 0)) {
-          asusdebuglog(6,"roamast.log",0,1,0,"%s timeout and does not receive exap info ,clean it\n"
-                       ,pcVar9);
-        }
-        if (DAT_001e090c != 0) {
-          logmessage_normal("roamast","%s timeout and does not receive exap info ,clean it\n",pcVar9
-                           );
-        }
-        FUN_000fa8a8((undefined4 *)pcVar9,*(undefined4 *)(pcVar10 + 0x900),
-                     *(undefined4 *)(pcVar10 + 0xd00),(undefined4 *)(pcVar9 + 0xf00),
-                     *(undefined4 *)(pcVar10 + 0x1800),*(undefined4 *)(pcVar10 + 0x1a04),local_34);
-        *piVar12 = 0;
-      }
-    }
-    iVar11 = iVar11 + 1;
-    pcVar10 = pcVar10 + 4;
-    pcVar9 = pcVar9 + 0x12;
-    piVar12 = piVar12 + 1;
-  } while (iVar11 != 0x80);
-  if (!bVar1) {
-    if ((DAT_001e0918 != 0) || (iVar2 = f_exists("/tmp/RAST_DEBUG"), iVar2 != 0)) {
-      uVar6 = uptime();
-      uVar7 = json_object_get_string(local_3c);
-      cprintf("RAST %lu: Error: exap info do not match related table %s\n",uVar6,uVar7);
-    }
-    if ((DAT_001ddd34 != 0) || (iVar2 = f_exists("/tmp/RAST_DEBUG"), iVar2 != 0)) {
-      uVar6 = json_object_get_string(local_3c);
-      asusdebuglog(6,"roamast.log",0,1,0,"Error: exap info do not match related table %s\n",uVar6);
-    }
-    if (DAT_001e090c != 0) {
-      uVar6 = json_object_get_string(local_3c);
-      logmessage_normal("roamast","Error: exap info do not match related table %s\n",uVar6);
-    }
-  }
-  json_object_put(uVar5);
-  return 0;
-}
-

FUN_000fb0e8

Function Meta

Key old_FW_RT_AX55_300438651598_sbin_rc
name FUN_000fb0e8
fullname FUN_000fb0e8
refcount 2
length 1340
called
Expand for full list:
::asusdebuglog
::cprintf
::f_exists
::json_object_get_int
::json_object_get_string
::json_object_object_get_ex
::json_object_put
::json_tokener_parse
::logmessage_normal
::strcmp
::uptime
FUN_000fa8a8
calling FUN_000fb98c
paramcount 1
address 000fb0e8
sig undefined4 __stdcall FUN_000fb0e8(undefined4 param_1)
sym_type Function
sym_source DEFAULT
external False
--- FUN_000fb0e8
+++ FUN_000fb0e8
@@ -1,170 +0,0 @@
-
-undefined4 FUN_000fb0e8(undefined4 param_1)
-
-{
-  bool bVar1;
-  int iVar2;
-  undefined4 uVar3;
-  int iVar4;
-  char *pcVar5;
-  undefined4 *puVar6;
-  undefined4 *puVar7;
-  undefined4 uVar8;
-  undefined4 *puVar9;
-  undefined4 *puVar10;
-  int iVar11;
-  char *pcVar12;
-  undefined4 *puVar13;
-  int *piVar14;
-  int iVar15;
-  int *local_78;
-  undefined4 local_54;
-  undefined4 local_50;
-  undefined4 local_4c;
-  undefined4 local_48;
-  undefined4 local_44;
-  undefined4 local_40;
-  undefined4 local_3c;
-  undefined4 local_38;
-  undefined4 local_34 [2];
-  undefined2 local_2c [6];
-  
-  local_54 = 0;
-  puVar13 = local_34;
-  local_50 = 0;
-  local_4c = 0;
-  local_48 = 0;
-  local_44 = 0;
-  local_40 = 0;
-  local_3c = 0;
-  local_38 = 0;
-  pcVar12 = "00:00:00:00:00:00";
-  do {
-    pcVar5 = pcVar12 + 8;
-    uVar8 = *(undefined4 *)(pcVar12 + 4);
-    *puVar13 = *(undefined4 *)pcVar12;
-    puVar13[1] = uVar8;
-    puVar13 = puVar13 + 2;
-    pcVar12 = pcVar5;
-  } while (pcVar5 != "0");
-  *(undefined2 *)puVar13 = 0x30;
-  iVar2 = uptime();
-  uVar8 = json_tokener_parse(param_1);
-  iVar11 = -1;
-  json_object_object_get_ex(uVar8,&DAT_001865a0,&local_54);
-  json_object_object_get_ex(local_54,"STA",&local_50);
-  json_object_object_get_ex(local_54,"RSSI",&local_4c);
-  json_object_object_get_ex(local_54,"AP_RSSI",&local_48);
-  json_object_object_get_ex(local_54,"CANDIDATE",&local_44);
-  json_object_object_get_ex(local_54,"AP_RSSI_CRITERIA",&local_40);
-  json_object_object_get_ex(local_54,"AP_TARGET_MAC",&local_3c);
-  json_object_object_get_ex(local_54,"RET_11V",&local_38);
-  pcVar12 = (char *)&DAT_001de408;
-  puVar13 = &DAT_001ded08;
-  piVar14 = &DAT_001ddd38;
-  iVar15 = 0;
-  bVar1 = false;
-  local_78 = &DAT_001ddf50;
-  do {
-    if (*local_78 == 0) {
-      if (iVar11 == -1) {
-        iVar11 = iVar15;
-      }
-    }
-    else if (iVar2 - *piVar14 < 4) {
-      pcVar5 = (char *)json_object_get_string(local_50);
-      iVar4 = strcmp(pcVar12,pcVar5);
-      if (iVar4 == 0) {
-        if ((DAT_001e0918 != 0) || (iVar4 = f_exists("/tmp/RAST_DEBUG"), iVar4 != 0)) {
-          uVar3 = uptime();
-          cprintf("RAST %lu: %s reflashing\n",uVar3,pcVar12);
-        }
-        if ((DAT_001ddd34 != 0) || (iVar4 = f_exists("/tmp/RAST_DEBUG"), iVar4 != 0)) {
-          asusdebuglog(6,"roamast.log",0,1,0,"%s reflashing\n",pcVar12);
-        }
-        if (DAT_001e090c != 0) {
-          logmessage_normal("roamast","%s reflashing\n",pcVar12);
-        }
-        iVar4 = uptime();
-        bVar1 = true;
-        *piVar14 = iVar4;
-      }
-    }
-    else {
-      *local_78 = 0;
-      if ((DAT_001e0918 != 0) || (iVar4 = f_exists("/tmp/RAST_DEBUG"), iVar4 != 0)) {
-        uVar3 = uptime();
-        cprintf("RAST %lu: %s timeout and does not receive exap info ,clean it\n",uVar3,pcVar12);
-      }
-      if ((DAT_001ddd34 != 0) || (iVar4 = f_exists("/tmp/RAST_DEBUG"), iVar4 != 0)) {
-        asusdebuglog(6,"roamast.log",0,1,0,"%s timeout and does not receive exap info ,clean it\n",
-                     pcVar12);
-      }
-      if (DAT_001e090c != 0) {
-        logmessage_normal("roamast","%s timeout and does not receive exap info ,clean it\n",pcVar12)
-        ;
-      }
-      FUN_000fa8a8((undefined4 *)pcVar12,*puVar13,puVar13[0x100],(undefined4 *)(pcVar12 + 0xf00),
-                   puVar13[0x3c0],puVar13[0x441],local_34);
-    }
-    iVar15 = iVar15 + 1;
-    puVar13 = puVar13 + 1;
-    pcVar12 = pcVar12 + 0x12;
-    piVar14 = piVar14 + 1;
-    local_78 = local_78 + 1;
-  } while (iVar15 != 0x80);
-  if (!bVar1) {
-    if (iVar11 == -1) {
-      uVar3 = uptime();
-      cprintf("RAST %lu: roaming pre table full\n",uVar3);
-      if ((DAT_001ddd34 != 0) || (iVar11 = f_exists("/tmp/RAST_DEBUG"), iVar11 != 0)) {
-        asusdebuglog(6,"roamast.log",0,1,0,"roaming pre table full\n");
-      }
-      uVar3 = 0xffffffff;
-      if (DAT_001e090c != 0) {
-        logmessage_normal("roamast","roaming pre table full\n");
-      }
-      goto LAB_000fb320;
-    }
-    puVar6 = (undefined4 *)json_object_get_string(local_50);
-    puVar13 = puVar6;
-    puVar10 = (undefined4 *)((int)&DAT_001de408 + iVar11 * 0x12);
-    do {
-      puVar7 = puVar13 + 1;
-      puVar9 = puVar10 + 1;
-      *puVar10 = *puVar13;
-      puVar13 = puVar7;
-      puVar10 = puVar9;
-    } while (puVar7 != puVar6 + 4);
-    *(undefined2 *)puVar9 = *(undefined2 *)puVar7;
-    uVar3 = json_object_get_int(local_4c);
-    (&DAT_001de408)[iVar11 + 0x240] = uVar3;
-    uVar3 = json_object_get_int(local_40);
-    (&DAT_001de408)[iVar11 + 0x340] = uVar3;
-    puVar6 = (undefined4 *)json_object_get_string(local_44);
-    puVar13 = puVar6;
-    puVar10 = (undefined4 *)((int)&DAT_001df308 + iVar11 * 0x12);
-    do {
-      puVar7 = puVar13 + 1;
-      puVar9 = puVar10 + 1;
-      *puVar10 = *puVar13;
-      puVar13 = puVar7;
-      puVar10 = puVar9;
-    } while (puVar7 != puVar6 + 4);
-    *(undefined2 *)puVar9 = *(undefined2 *)puVar7;
-    uVar3 = json_object_get_int(local_48);
-    (&DAT_001de408)[iVar11 + 0x600] = uVar3;
-    uVar3 = json_object_get_int(local_38);
-    (&DAT_001de40c)[iVar11 + 0x680] = uVar3;
-    uVar3 = uptime();
-    (&DAT_001de408)[iVar11 + 0x2c0] = uVar3;
-    uVar3 = uptime();
-    (&DAT_001ddd38)[iVar11] = uVar3;
-    (&DAT_001ddf50)[iVar11] = 1;
-  }
-  uVar3 = 0;
-LAB_000fb320:
-  json_object_put(uVar8);
-  return uVar3;
-}
-

FUN_000fb6b4

Function Meta

Key old_FW_RT_AX55_300438651598_sbin_rc
name FUN_000fb6b4
fullname FUN_000fb6b4
refcount 1
length 484
called ::asusdebuglog
::cprintf
::f_exists
::file_lock
::file_unlock
::logmessage_normal
::time
::uptime
FUN_000fb8c4
calling FUN_001028ac
paramcount 7
address 000fb6b4
sig undefined __stdcall FUN_000fb6b4(undefined4 * param_1, undefined4 param_2, undefined4 param_3, undefined4 param_4, undefined4 param_5, undefined4 param_6, undefined4 param_7)
sym_type Function
sym_source DEFAULT
external False
--- FUN_000fb6b4
+++ FUN_000fb6b4
@@ -1,60 +0,0 @@
-
-void FUN_000fb6b4(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
-                 undefined4 param_5,undefined4 param_6,undefined4 param_7)
-
-{
-  undefined4 uVar1;
-  int iVar2;
-  undefined4 uVar3;
-  time_t tVar4;
-  undefined4 uVar5;
-  undefined4 *puVar6;
-  undefined4 *puVar7;
-  int iVar8;
-  int iVar9;
-  undefined4 *puVar10;
-  
-  uVar1 = uptime();
-  cprintf("RAST %lu: sta %s, band_unit %d, sta_rssi %d.\n",uVar1,param_1,param_2,param_3);
-  if ((DAT_001ddd34 != 0) || (iVar2 = f_exists("/tmp/RAST_DEBUG"), iVar2 != 0)) {
-    asusdebuglog(6,"roamast.log",0,1,0,"sta %s, band_unit %d, sta_rssi %d.\n",param_1,param_2,
-                 param_3);
-  }
-  if (DAT_001e090c != 0) {
-    logmessage_normal("roamast","sta %s, band_unit %d, sta_rssi %d.\n",param_1,param_2,param_3);
-  }
-  if ((int)*(uint *)(DAT_001d4600 + 0x1700) < 0x80) {
-    uVar1 = file_lock("tg_roaming");
-    iVar2 = DAT_001d4600;
-    puVar10 = param_1 + 4;
-    puVar6 = (undefined4 *)(*(int *)(DAT_001d4600 + 0x1700) * 0x12 + DAT_001d4600);
-    do {
-      puVar7 = puVar6 + 2;
-      uVar3 = *param_1;
-      uVar5 = param_1[1];
-      param_1 = param_1 + 2;
-      *puVar6 = uVar3;
-      puVar6[1] = uVar5;
-      puVar6 = puVar7;
-    } while (param_1 != puVar10);
-    *(undefined2 *)puVar7 = *(undefined2 *)param_1;
-    iVar8 = iVar2 + *(int *)(iVar2 + 0x1700) * 4;
-    *(undefined4 *)(iVar8 + 0x900) = param_2;
-    *(undefined4 *)(iVar8 + 0xb00) = param_3;
-    tVar4 = time((time_t *)0x0);
-    *(time_t *)(iVar8 + 0xd00) = tVar4;
-    iVar8 = *(int *)(iVar2 + 0x1700);
-    iVar9 = iVar2 + iVar8 * 4;
-    *(undefined4 *)(iVar9 + 0xf00) = param_4;
-    *(undefined4 *)(iVar9 + 0x1300) = param_6;
-    *(undefined4 *)(iVar9 + 0x1100) = param_5;
-    *(undefined4 *)(iVar9 + 0x1500) = param_7;
-    *(int *)(iVar2 + 0x1700) = iVar8 + 1;
-    file_unlock(uVar1);
-    return;
-  }
-  FUN_000fb8c4(*(uint *)(DAT_001d4600 + 0x1700) & 0x7f,param_1,param_2,param_3,param_4,param_5,
-               param_6,param_7);
-  return;
-}
-

FUN_000fb8c4

Function Meta

Key old_FW_RT_AX55_300438651598_sbin_rc
name FUN_000fb8c4
fullname FUN_000fb8c4
refcount 1
length 192
called ::file_lock
::file_unlock
::time
calling FUN_000fb6b4
paramcount 8
address 000fb8c4
sig undefined __stdcall FUN_000fb8c4(int param_1, undefined4 * param_2, undefined4 param_3, undefined4 param_4, undefined4 param_5, undefined4 param_6, undefined4 param_7, undefined4 param_8)
sym_type Function
sym_source DEFAULT
external False
--- FUN_000fb8c4
+++ FUN_000fb8c4
@@ -1,41 +0,0 @@
-
-void FUN_000fb8c4(int param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
-                 undefined4 param_5,undefined4 param_6,undefined4 param_7,undefined4 param_8)
-
-{
-  undefined4 uVar1;
-  undefined4 uVar2;
-  time_t tVar3;
-  undefined4 uVar4;
-  undefined4 *puVar5;
-  undefined4 *puVar6;
-  undefined4 *puVar7;
-  int iVar8;
-  
-  uVar1 = file_lock("tg_roaming");
-  iVar8 = DAT_001d4600;
-  puVar5 = param_2 + 4;
-  puVar6 = (undefined4 *)(param_1 * 0x12 + DAT_001d4600);
-  do {
-    puVar7 = puVar6 + 2;
-    uVar2 = *param_2;
-    uVar4 = param_2[1];
-    param_2 = param_2 + 2;
-    *puVar6 = uVar2;
-    puVar6[1] = uVar4;
-    puVar6 = puVar7;
-  } while (param_2 != puVar5);
-  iVar8 = iVar8 + param_1 * 4;
-  *(undefined2 *)puVar7 = *(undefined2 *)param_2;
-  *(undefined4 *)(iVar8 + 0x900) = param_3;
-  *(undefined4 *)(iVar8 + 0xb00) = param_4;
-  tVar3 = time((time_t *)0x0);
-  *(undefined4 *)(iVar8 + 0xf00) = param_5;
-  *(time_t *)(iVar8 + 0xd00) = tVar3;
-  *(undefined4 *)(iVar8 + 0x1300) = param_7;
-  *(undefined4 *)(iVar8 + 0x1100) = param_6;
-  *(undefined4 *)(iVar8 + 0x1500) = param_8;
-  file_unlock(uVar1);
-  return;
-}
-

FUN_000fb98c

Function Meta

Key old_FW_RT_AX55_300438651598_sbin_rc
name FUN_000fb98c
fullname FUN_000fb98c
refcount 1
length 1288
called
Expand for full list:
::asusdebuglog
::cprintf
::f_exists
::json_object_get_int
::json_object_object_get_ex
::json_object_put
::json_tokener_parse
::logmessage_normal
::memset
::read
::uptime
FUN_000fb0e8
calling
paramcount 1
address 000fb98c
sig undefined __stdcall FUN_000fb98c(int param_1)
sym_type Function
sym_source DEFAULT
external False
--- FUN_000fb98c
+++ FUN_000fb98c
@@ -1,108 +0,0 @@
-
-void FUN_000fb98c(int param_1)
-
-{
-  ssize_t sVar1;
-  undefined4 uVar2;
-  int iVar3;
-  undefined4 uVar4;
-  char *pcVar5;
-  int iVar6;
-  int *piVar7;
-  undefined4 local_828;
-  int local_824;
-  undefined auStack_820 [2048];
-  
-  memset(auStack_820,0,0x800);
-  sVar1 = read(param_1,auStack_820,0x800);
-  if (sVar1 < 1) {
-    if ((DAT_001e0918 != 0) || (iVar3 = f_exists("/tmp/RAST_DEBUG"), iVar3 != 0)) {
-      uVar2 = uptime();
-      cprintf("RAST %lu: internal ipc read socket error!\n",uVar2);
-    }
-    if ((DAT_001ddd34 != 0) || (iVar3 = f_exists("/tmp/RAST_DEBUG"), iVar3 != 0)) {
-      asusdebuglog(6,"roamast.log",0,1,0,"internal ipc read socket error!\n");
-    }
-    if (DAT_001e090c == 0) {
-      return;
-    }
-    logmessage_normal("roamast","internal ipc read socket error!\n");
-    return;
-  }
-  if ((DAT_001e0918 != 0) || (iVar3 = f_exists("/tmp/RAST_DEBUG"), iVar3 != 0)) {
-    uVar2 = uptime();
-    cprintf("RAST %lu: internal IPC Receive: %s <<< RCV EVENT >>>\n",uVar2,auStack_820);
-  }
-  if ((DAT_001ddd34 != 0) || (iVar3 = f_exists("/tmp/RAST_DEBUG"), iVar3 != 0)) {
-    asusdebuglog(6,"roamast.log",0,1,0,"internal IPC Receive: %s <<< RCV EVENT >>>\n",auStack_820);
-  }
-  if (DAT_001e090c != 0) {
-    logmessage_normal("roamast","internal IPC Receive: %s <<< RCV EVENT >>>\n",auStack_820);
-  }
-  uVar2 = json_tokener_parse(auStack_820);
-  local_828 = 0;
-  local_824 = 0;
-  json_object_object_get_ex(uVar2,&DAT_001865a0,&local_828);
-  json_object_object_get_ex(local_828,&DAT_00186757,&local_824);
-  if (local_824 == 0) {
-    if ((DAT_001e0918 != 0) || (iVar3 = f_exists("/tmp/RAST_DEBUG"), iVar3 != 0)) {
-      uVar4 = uptime();
-      cprintf("RAST %lu: eidObj NULL\n",uVar4);
-    }
-    if ((DAT_001ddd34 != 0) || (iVar3 = f_exists("/tmp/RAST_DEBUG"), iVar3 != 0)) {
-      asusdebuglog(6,"roamast.log",0,1,0,"eidObj NULL\n");
-    }
-    if (DAT_001e090c != 0) {
-      logmessage_normal("roamast","eidObj NULL\n");
-    }
-    goto LAB_000fbbfc;
-  }
-  iVar3 = json_object_get_int();
-  piVar7 = &DAT_001ad5f0;
-  while( true ) {
-    iVar6 = *piVar7;
-    if (iVar6 < 1) break;
-    if (iVar6 == iVar3) goto LAB_000fbc78;
-    piVar7 = piVar7 + 2;
-  }
-  if (iVar6 == 0) {
-LAB_000fbc78:
-    if ((DAT_001e0918 != 0) || (iVar6 = f_exists("/tmp/RAST_DEBUG"), iVar6 != 0)) {
-      uVar4 = uptime();
-      cprintf("RAST %lu: process event (%d)\n",uVar4,iVar3);
-    }
-    if ((DAT_001ddd34 != 0) || (iVar6 = f_exists("/tmp/RAST_DEBUG"), iVar6 != 0)) {
-      asusdebuglog(6,"roamast.log",0,1,0,"process event (%d)\n",iVar3);
-    }
-    if (DAT_001e090c != 0) {
-      logmessage_normal("roamast","process event (%d)\n",iVar3);
-    }
-    iVar6 = (*(code *)piVar7[1])(auStack_820);
-    if (iVar6 != 0) goto LAB_000fbbfc;
-    if ((DAT_001e0918 != 0) || (iVar6 = f_exists("/tmp/RAST_DEBUG"), iVar6 != 0)) {
-      uVar4 = uptime();
-      cprintf("RAST %lu: fail to process event(%d)\n",uVar4,iVar3);
-    }
-    if ((DAT_001ddd34 != 0) || (iVar6 = f_exists("/tmp/RAST_DEBUG"), iVar6 != 0)) {
-      asusdebuglog(6,"roamast.log",0,1,0,"fail to process event(%d)\n",iVar3);
-    }
-    if (DAT_001e090c == 0) goto LAB_000fbbfc;
-    pcVar5 = "fail to process event(%d)\n";
-  }
-  else {
-    if ((DAT_001e0918 != 0) || (iVar6 = f_exists("/tmp/RAST_DEBUG"), iVar6 != 0)) {
-      uVar4 = uptime();
-      cprintf("RAST %lu: no corresponding function pointer(%d)",uVar4,iVar3);
-    }
-    if ((DAT_001ddd34 != 0) || (iVar6 = f_exists("/tmp/RAST_DEBUG"), iVar6 != 0)) {
-      asusdebuglog(6,"roamast.log",0,1,0,"no corresponding function pointer(%d)",iVar3);
-    }
-    if (DAT_001e090c == 0) goto LAB_000fbbfc;
-    pcVar5 = "no corresponding function pointer(%d)";
-  }
-  logmessage_normal("roamast",pcVar5,iVar3);
-LAB_000fbbfc:
-  json_object_put(uVar2);
-  return;
-}
-

FUN_000fd7d8

Function Meta

Key old_FW_RT_AX55_300438651598_sbin_rc
name FUN_000fd7d8
fullname FUN_000fd7d8
refcount 2
length 52
called ::file_lock
::file_unlock
::memset
calling FUN_000fd850
FUN_0010207c
paramcount 0
address 000fd7d8
sig undefined __stdcall FUN_000fd7d8(void)
sym_type Function
sym_source DEFAULT
external False
--- FUN_000fd7d8
+++ FUN_000fd7d8
@@ -1,12 +0,0 @@
-
-void FUN_000fd7d8(void)
-
-{
-  undefined4 uVar1;
-  
-  uVar1 = file_lock("tg_roaming");
-  memset(DAT_001d4600,0,0x1704);
-  file_unlock(uVar1);
-  return;
-}
-

FUN_00146b04

Function Meta

Key old_FW_RT_AX55_300438651598_sbin_rc
name FUN_00146b04
fullname FUN_00146b04
refcount 1
length 48
called ::snprintf
FUN_00146ae4
calling
paramcount 5
address 00146b04
sig undefined4 __stdcall FUN_00146b04(undefined param_1, undefined param_2, undefined param_3, undefined param_4, undefined4 param_5)
sym_type Function
sym_source DEFAULT
external False
--- FUN_00146b04
+++ FUN_00146b04
@@ -1,12 +0,0 @@
-
-undefined4
-FUN_00146b04(undefined param_1,undefined param_2,undefined param_3,byte param_4,size_t param_5)
-
-{
-  undefined *puVar1;
-  
-  puVar1 = FUN_00146ae4();
-  snprintf((char *)(uint)param_4,param_5,"%s",puVar1);
-  return 0;
-}
-

FUN_0014ab98

Function Meta

Key old_FW_RT_AX55_300438651598_sbin_rc
name FUN_0014ab98
fullname FUN_0014ab98
refcount 1
length 180
called ::cprintf
::memset
::snprintf
FUN_0014a9a4
calling
paramcount 5
address 0014ab98
sig undefined4 __stdcall FUN_0014ab98(int param_1, undefined4 param_2, undefined4 param_3, char * param_4, size_t param_5)
sym_type Function
sym_source DEFAULT
external False
--- FUN_0014ab98
+++ FUN_0014ab98
@@ -1,43 +0,0 @@
-
-undefined4
-FUN_0014ab98(int param_1,undefined4 param_2,undefined4 param_3,char *param_4,size_t param_5)
-
-{
-  int iVar1;
-  undefined4 uVar2;
-  char local_228 [528];
-  
-  uVar2 = 0;
-  local_228[0x10] = '\0';
-  local_228[0x11] = '\0';
-  local_228[0x12] = '\0';
-  local_228[0x13] = '\0';
-  memset(local_228 + 0x14,0,0x1fc);
-  local_228[0] = '\0';
-  local_228[1] = '\0';
-  local_228[2] = '\0';
-  local_228[3] = '\0';
-  local_228[4] = '\0';
-  local_228[5] = '\0';
-  local_228[6] = '\0';
-  local_228[7] = '\0';
-  local_228[8] = '\0';
-  local_228[9] = '\0';
-  local_228[10] = '\0';
-  local_228[0xb] = '\0';
-  local_228[0xc] = '\0';
-  local_228[0xd] = '\0';
-  local_228[0xe] = '\0';
-  local_228[0xf] = '\0';
-  iVar1 = FUN_0014a9a4(param_1,local_228);
-  if (iVar1 < 0) {
-    cprintf("Err: rc: %d: fetching primary iface name for %s\n",0xd9c,param_1);
-    uVar2 = 0xffffffff;
-  }
-  else {
-    snprintf(local_228 + 0x10,0x200,"%s_%s",local_228,param_2);
-    snprintf(param_4,param_5,"%s","1");
-  }
-  return uVar2;
-}
-

::shmctl

Function Meta

Key old_FW_RT_AX55_300438651598_sbin_rc
name shmctl
fullname ::shmctl
refcount 1
length 0
called
calling
paramcount 3
address EXTERNAL:0000004f
sig int shmctl(int __shmid, int __cmd, shmid_ds * __buf)
sym_type Function
sym_source IMPORTED
external True

No code available for ::shmctl

Added

FUN_00034afc

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name FUN_00034afc
fullname FUN_00034afc
refcount 4
length 56
called ::inet_pton
calling FUN_00034b34
FUN_00100fb0
paramcount 1
address 00034afc
sig bool __stdcall FUN_00034afc(char * param_1)
sym_type Function
sym_source DEFAULT
external False
--- FUN_00034afc
+++ FUN_00034afc
@@ -0,0 +1,14 @@
+
+bool FUN_00034afc(char *param_1)
+
+{
+  int iVar1;
+  undefined auStack_1c [28];
+  
+  if (param_1 != (char *)0x0) {
+    iVar1 = inet_pton(10,param_1,auStack_1c);
+    return iVar1 == 1;
+  }
+  return false;
+}
+

FUN_00034b34

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name FUN_00034b34
fullname FUN_00034b34
refcount 4
length 564
called ::f_exists
::fgets
::pclose
::popen
::resolv_addr6
::snprintf
::strncpy
FUN_00034638
FUN_00034afc
calling FUN_00100fb0
paramcount 3
address 00034b34
sig char * __stdcall FUN_00034b34(char * param_1, char * param_2, size_t param_3)
sym_type Function
sym_source DEFAULT
external False
--- FUN_00034b34
+++ FUN_00034b34
@@ -0,0 +1,66 @@
+
+char * FUN_00034b34(char *param_1,char *param_2,size_t param_3)
+
+{
+  bool bVar1;
+  int iVar2;
+  FILE *__stream;
+  char *pcVar3;
+  char *pcVar4;
+  char local_250 [48];
+  char acStack_220 [516];
+  
+  iVar2 = resolv_addr6();
+  if (iVar2 < 0) {
+    pcVar3 = param_1;
+    snprintf(acStack_220,0x200,
+             "nslookup \"%s\" | grep \"Address 1:\" | grep \"%s\" | awk -F \" \" \'{printf $3}\' 2>/dev/null"
+             ,param_1,param_1);
+    iVar2 = f_exists("/tmp/S46_DEBUG");
+    if (iVar2 != 0) {
+      pcVar3 = acStack_220;
+      FUN_00034638("/jffs/s46.log","[%s:(%d)][CMD]:[%s]\n","get_AFTR_addr",0xd6);
+    }
+    __stream = popen(acStack_220,"r");
+    if (__stream == (FILE *)0x0) {
+LAB_00034bf8:
+      snprintf(acStack_220,0x200,
+               "nslookup \"%s\" | grep \"Address 1:\" | awk -F \" \" \'{printf $3}\' 2>/dev/null",
+               param_1,pcVar3);
+      iVar2 = f_exists("/tmp/S46_DEBUG");
+      if (iVar2 != 0) {
+        FUN_00034638("/jffs/s46.log","[%s:(%d)][CMD]:[%s]\n","get_AFTR_addr",0xe6);
+      }
+      __stream = popen(acStack_220,"r");
+      if (__stream == (FILE *)0x0) {
+        return (char *)0x0;
+      }
+      do {
+        pcVar3 = fgets(local_250,0x2e,__stream);
+        if (pcVar3 == (char *)0x0) {
+          pclose(__stream);
+          return (char *)0x0;
+        }
+      } while ((local_250[0] == '\0') || (bVar1 = FUN_00034afc(local_250), !bVar1));
+      FUN_00034638("/jffs/s46.log","[%s:(%d)]AFTR:[%s]\n","get_AFTR_addr",0xea);
+      strncpy(param_2,local_250,param_3);
+    }
+    else {
+      do {
+        pcVar4 = fgets(local_250,0x2e,__stream);
+        if (pcVar4 == (char *)0x0) {
+          pclose(__stream);
+          goto LAB_00034bf8;
+        }
+      } while ((local_250[0] == '\0') || (bVar1 = FUN_00034afc(local_250), !bVar1));
+      FUN_00034638("/jffs/s46.log","[%s:(%d)]AFTR:[%s]\n","get_AFTR_addr",0xda);
+      strncpy(param_2,local_250,param_3);
+    }
+    pclose(__stream);
+  }
+  else {
+    FUN_00034638("/jffs/s46.log","[%s:(%d)]AFTR:[%s]\n","get_AFTR_addr",0xd0);
+  }
+  return param_2;
+}
+

FUN_00035130

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name FUN_00035130
fullname FUN_00035130
refcount 4
length 268
called ::inet_pton
::memset
calling FUN_0003523c
paramcount 3
address 00035130
sig undefined4 __stdcall FUN_00035130(char * param_1, char * param_2, uint param_3)
sym_type Function
sym_source DEFAULT
external False
--- FUN_00035130
+++ FUN_00035130
@@ -0,0 +1,58 @@
+
+undefined4 FUN_00035130(char *param_1,char *param_2,uint param_3)
+
+{
+  size_t __n;
+  byte bVar1;
+  byte bVar2;
+  int iVar3;
+  byte *pbVar4;
+  size_t sVar5;
+  uint uVar6;
+  uint uVar7;
+  byte *pbVar8;
+  byte *pbVar9;
+  byte abStack_58 [16];
+  byte local_48 [16];
+  byte abStack_38 [16];
+  undefined auStack_28 [20];
+  
+  iVar3 = inet_pton(10,param_1,abStack_58);
+  if (0 < iVar3) {
+    iVar3 = inet_pton(10,param_2,local_48);
+    if (0 < iVar3) {
+      uVar7 = param_3 + 7;
+      if (-1 < (int)param_3) {
+        uVar7 = param_3;
+      }
+      uVar6 = param_3 & 7;
+      __n = (int)uVar7 >> 3;
+      if ((int)param_3 < 1) {
+        uVar6 = -(-param_3 & 7);
+      }
+      pbVar4 = (byte *)memset(auStack_28,0xff,__n);
+      if (0 < (int)uVar6) {
+        auStack_28[__n] = (char)(0xff << (8 - uVar6 & 0xff));
+      }
+      sVar5 = 0;
+      pbVar8 = abStack_58;
+      pbVar9 = abStack_38;
+      while( true ) {
+        bVar1 = *pbVar8;
+        bVar2 = *pbVar4;
+        *pbVar9 = bVar1 & bVar2;
+        if ((((int)sVar5 < (int)__n) || (0 < (int)uVar6 && __n == sVar5)) &&
+           (local_48[sVar5] != (bVar1 & bVar2))) break;
+        sVar5 = sVar5 + 1;
+        pbVar4 = pbVar4 + 1;
+        pbVar8 = pbVar8 + 1;
+        pbVar9 = pbVar9 + 1;
+        if (sVar5 == 0x10) {
+          return 1;
+        }
+      }
+    }
+  }
+  return 0;
+}
+

FUN_0003f88c

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name FUN_0003f88c
fullname FUN_0003f88c
refcount 2
length 256
called
Expand for full list:
::BIO_ctrl
::BIO_free
::BIO_new
::BIO_s_mem
::X509V3_EXT_print
::X509_get_ext
::X509_get_ext_by_NID
::dbg
::malloc
::memcpy
::strtok_r
calling FUN_0004c3b8
paramcount 2
address 0003f88c
sig char * __stdcall FUN_0003f88c(X509 * param_1, char * param_2)
sym_type Function
sym_source DEFAULT
external False
--- FUN_0003f88c
+++ FUN_0003f88c
@@ -0,0 +1,49 @@
+
+char * FUN_0003f88c(X509 *param_1,char *param_2)
+
+{
+  size_t *psVar1;
+  int iVar2;
+  X509_EXTENSION *ext;
+  BIO_METHOD *type;
+  BIO *out;
+  char *__s;
+  size_t __n;
+  size_t *local_20;
+  char *pcStack_1c;
+  
+  local_20 = (size_t *)0x0;
+  if (param_1 != (X509 *)0x0) {
+    pcStack_1c = param_2;
+    iVar2 = X509_get_ext_by_NID(param_1,(int)param_2,-1);
+    ext = X509_get_ext(param_1,iVar2);
+    if (ext != (X509_EXTENSION *)0x0) {
+      type = BIO_s_mem();
+      out = BIO_new(type);
+      iVar2 = X509V3_EXT_print(out,ext,0,0);
+      if (iVar2 == 0) {
+        dbg("%s: nid %d X509V3_EXT_print() fail!\n","x509v3ext2str_by_nid",param_2);
+        __s = (char *)0x0;
+      }
+      else {
+        BIO_ctrl(out,0xb,0,(void *)0x0);
+        BIO_ctrl(out,0x73,0,&local_20);
+        psVar1 = local_20;
+        __n = *local_20;
+        __s = (char *)malloc(__n + 1);
+        if (__s != (char *)0x0) {
+          memcpy(__s,(void *)psVar1[1],__n);
+          __s[*psVar1] = '\0';
+          strtok_r(__s,"\r\n",&pcStack_1c);
+        }
+      }
+      if (out == (BIO *)0x0) {
+        return __s;
+      }
+      BIO_free(out);
+      return __s;
+    }
+  }
+  return (char *)0x0;
+}
+

FUN_0004c3b8

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name FUN_0004c3b8
fullname FUN_0004c3b8
refcount 2
length 2028
called
Expand for full list:
::PEM_read_X509
::X509_free
::_eval
::atoi
::cert_key_match
::cp_le_cert
::d2i_X509_fp
::dbg
::exec_and_return_string
::f_exists
::fclose
::fopen
::free
::fseek
::illegal_cert_and_key
::is_le_cert
::memset
::nvram_default_get
::nvram_get
::nvram_get_int
::nvram_set
::remove_all_uploaded_cert_from_jffs
::save_cert
::snprintf
::strcmp
::strlen
::strncmp
::unlink
FUN_0003f6e8
FUN_0003f88c
calling FUN_0004cc68
FUN_0005096c
paramcount 0
address 0004c3b8
sig undefined4 __stdcall FUN_0004c3b8(void)
sym_type Function
sym_source DEFAULT
external False
--- FUN_0004c3b8
+++ FUN_0004c3b8
@@ -0,0 +1,279 @@
+
+undefined4 FUN_0004c3b8(void)
+
+{
+  bool bVar1;
+  int iVar2;
+  int iVar3;
+  FILE *pFVar4;
+  X509 *pXVar5;
+  size_t __n;
+  int iVar6;
+  char *__s1;
+  char *pcVar7;
+  char *__s;
+  char *__s2;
+  X509 *local_98;
+  X509 *local_94;
+  char *local_90;
+  undefined4 local_8c;
+  undefined4 uStack_88;
+  undefined4 uStack_84;
+  char acStack_80 [24];
+  char local_68 [36];
+  char local_44 [36];
+  
+  local_68[0] = '\0';
+  local_68[1] = '\0';
+  local_68[2] = '\0';
+  local_68[3] = '\0';
+  memset(local_68 + 4,0,0x1d);
+  local_44[0] = '\0';
+  local_44[1] = '\0';
+  local_44[2] = '\0';
+  local_44[3] = '\0';
+  memset(local_44 + 4,0,0x1d);
+  local_98 = (X509 *)0x0;
+  local_94 = (X509 *)0x0;
+  iVar2 = nvram_get("sw_mode");
+  if (iVar2 == 0) {
+    pcVar7 = (char *)nvram_default_get("sw_mode");
+    iVar2 = atoi(pcVar7);
+  }
+  else {
+    iVar2 = nvram_get_int();
+  }
+  iVar2 = iVar2 + -1;
+  if (iVar2 != 0) {
+    iVar2 = 1;
+  }
+  if (iVar2 != 0) {
+    return 0;
+  }
+  snprintf(acStack_80,0x18,"md5sum %s","/etc/cert.pem");
+  iVar2 = f_exists("/etc/cert.pem");
+  if (iVar2 != 0) {
+    exec_and_return_string(acStack_80,0,local_68,0x21);
+  }
+  iVar2 = 2;
+  while (iVar3 = nvram_get_int("le_enable"), iVar3 != 1) {
+    if (iVar3 == 2) {
+      iVar6 = f_exists("/jffs/.cert/cacert.pem");
+      if ((iVar6 == 0) || (iVar6 = f_exists("/jffs/.cert/cakey.pem"), iVar6 == 0)) {
+        iVar6 = f_exists("/jffs/.cert/cert.pem");
+        if ((iVar6 != 0) &&
+           ((iVar6 = f_exists("/jffs/.cert/key.pem"), iVar6 != 0 &&
+            (iVar6 = illegal_cert_and_key("/jffs/.cert/cert.pem","/jffs/.cert/key.pem"), iVar6 == 0)
+            ))) {
+          local_90 = DAT_001b3620;
+          local_8c = DAT_001b3624;
+          uStack_88 = DAT_001b3628;
+          uStack_84 = DAT_001b362c;
+          _eval(&local_90,0,0,0);
+          local_90 = DAT_001b3630;
+          local_8c = DAT_001b3634;
+          uStack_88 = DAT_001b3638;
+          uStack_84 = DAT_001b363c;
+          _eval(&local_90,0,0,0);
+          iVar2 = f_exists("/jffs/.cert/cacert.pem");
+          if (iVar2 != 0) {
+            unlink("/jffs/.cert/cacert.pem");
+          }
+          iVar2 = f_exists("/jffs/.cert/cakey.pem");
+          if (iVar2 != 0) {
+            unlink("/jffs/.cert/cakey.pem");
+          }
+          goto LAB_0004c4e4;
+        }
+      }
+      else {
+        iVar6 = illegal_cert_and_key("/jffs/.cert/cacert.pem","/jffs/.cert/cakey.pem");
+        if (iVar6 == 0) {
+          local_90 = DAT_001b35e0;
+          local_8c = DAT_001b35e4;
+          uStack_88 = DAT_001b35e8;
+          uStack_84 = DAT_001b35ec;
+          _eval(&local_90,0,0,0);
+          local_90 = DAT_001b35f0;
+          local_8c = DAT_001b35f4;
+          uStack_88 = DAT_001b35f8;
+          uStack_84 = DAT_001b35fc;
+          _eval(&local_90,0,0,0);
+          iVar2 = f_exists("/jffs/.cert/cert_gen.pem");
+          if (iVar2 != 0) {
+            local_90 = DAT_001b3600;
+            local_8c = DAT_001b3604;
+            uStack_88 = DAT_001b3608;
+            uStack_84 = DAT_001b360c;
+            _eval(&local_90,0,0,0);
+          }
+          iVar2 = f_exists("/jffs/.cert/key_gen.pem");
+          if (iVar2 != 0) {
+            local_90 = DAT_001b3610;
+            local_8c = DAT_001b3614;
+            uStack_88 = DAT_001b3618;
+            uStack_84 = DAT_001b361c;
+            _eval(&local_90,0,0);
+          }
+          iVar2 = f_exists("/jffs/.cert/cert.pem");
+          if (iVar2 != 0) {
+            unlink("/jffs/.cert/cert.pem");
+          }
+          iVar2 = f_exists("/jffs/.cert/key.pem");
+          if (iVar2 != 0) {
+            unlink("/jffs/.cert/key.pem");
+          }
+          goto LAB_0004c588;
+        }
+      }
+    }
+    else {
+      iVar6 = f_exists("/etc/cacert_gen.pem");
+      if (((iVar6 != 0) && (iVar6 = f_exists("/etc/cakey_gen.pem"), iVar6 != 0)) &&
+         (iVar6 = illegal_cert_and_key("/etc/cacert_gen.pem","/etc/cakey_gen.pem"), iVar6 == 0)) {
+        local_90 = DAT_001b3640;
+        local_8c = DAT_001b3644;
+        uStack_88 = DAT_001b3648;
+        uStack_84 = DAT_001b364c;
+        _eval(&local_90,0,0,0);
+        local_90 = DAT_001b3650;
+        local_8c = DAT_001b3654;
+        uStack_88 = DAT_001b3658;
+        uStack_84 = DAT_001b365c;
+        _eval(&local_90,0,0,0);
+        iVar2 = f_exists("/etc/cert_gen.pem");
+        if (iVar2 != 0) {
+          local_90 = DAT_001b3660;
+          local_8c = DAT_001b3664;
+          uStack_88 = DAT_001b3668;
+          uStack_84 = DAT_001b366c;
+          _eval(&local_90,0,0,0);
+        }
+        iVar2 = f_exists("/etc/key_gen.pem");
+        if (iVar2 != 0) {
+          local_90 = DAT_001b3670;
+          local_8c = DAT_001b3674;
+          uStack_88 = DAT_001b3678;
+          uStack_84 = DAT_001b367c;
+          _eval(&local_90,0,0);
+        }
+        goto LAB_0004c588;
+      }
+    }
+    if ((iVar2 == 1) || (bVar1 = FUN_0003f6e8("le_enable","0"), bVar1)) {
+      dbg("%s: Still no workable certificate, generate again.\n","prepare_cert_in_etc");
+      goto LAB_0004ca48;
+    }
+    dbg("%s: No workable uploaded certificate, fallback to self-signed certificate.\n",
+        "prepare_cert_in_etc");
+    remove_all_uploaded_cert_from_jffs();
+    iVar2 = 1;
+    nvram_set("le_enable","0");
+  }
+  iVar2 = is_le_cert("/etc/cert.pem");
+  if ((iVar2 == 0) || (iVar2 = cert_key_match("/etc/cert.pem","/etc/key.pem"), iVar2 == 0)) {
+    cp_le_cert(2,"/etc/cert.pem");
+    cp_le_cert(0,"/etc/key.pem");
+    goto LAB_0004c4e4;
+  }
+LAB_0004c588:
+  iVar2 = f_exists("/etc/cert.pem");
+  if ((iVar2 != 0) && (iVar2 = f_exists("/etc/key.pem"), iVar2 != 0)) {
+    pFVar4 = fopen("/etc/cacert.pem","r");
+    if (pFVar4 == (FILE *)0x0) {
+LAB_0004c614:
+      pcVar7 = (char *)0x0;
+      __s = (char *)0x0;
+    }
+    else {
+      pXVar5 = PEM_read_X509(pFVar4,&local_98,(undefined1 *)0x0,(void *)0x0);
+      if (pXVar5 == (X509 *)0x0) {
+        fseek(pFVar4,0,0);
+        d2i_X509_fp(pFVar4,&local_98);
+      }
+      fclose(pFVar4);
+      if ((local_98 == (X509 *)0x0) ||
+         (pcVar7 = FUN_0003f88c(local_98,(char *)0x52), pcVar7 == (char *)0x0)) goto LAB_0004c614;
+      iVar2 = strncmp(pcVar7,"keyid:",6);
+      __s = pcVar7;
+      if (iVar2 == 0) {
+        __s = pcVar7 + 6;
+      }
+    }
+    pFVar4 = fopen("/etc/cert.pem","r");
+    if (pFVar4 == (FILE *)0x0) {
+LAB_0004c638:
+      __s1 = (char *)0x0;
+      __s2 = (char *)0x0;
+    }
+    else {
+      pXVar5 = PEM_read_X509(pFVar4,&local_94,(undefined1 *)0x0,(void *)0x0);
+      if (pXVar5 == (X509 *)0x0) {
+        fseek(pFVar4,0,0);
+        d2i_X509_fp(pFVar4,&local_94);
+      }
+      fclose(pFVar4);
+      if ((local_94 == (X509 *)0x0) ||
+         (__s1 = FUN_0003f88c(local_94,(char *)0x5a), __s1 == (char *)0x0)) goto LAB_0004c638;
+      iVar2 = strncmp(__s1,"keyid:",6);
+      __s2 = __s1;
+      if (iVar2 == 0) {
+        __s2 = __s1 + 6;
+      }
+    }
+    if (__s2 == (char *)0x0 || __s == (char *)0x0) {
+      iVar2 = 1;
+    }
+    else {
+      __n = strlen(__s);
+      iVar2 = strncmp(__s,__s2,__n);
+      if (iVar2 != 0) {
+        iVar2 = 1;
+      }
+    }
+    if (pcVar7 != (char *)0x0) {
+      free(pcVar7);
+    }
+    if (__s1 != (char *)0x0) {
+      free(__s1);
+    }
+    if (local_98 != (X509 *)0x0) {
+      X509_free(local_98);
+    }
+    if (local_94 != (X509 *)0x0) {
+      X509_free(local_94);
+    }
+    if (iVar2 == 0) goto LAB_0004c4e4;
+  }
+LAB_0004ca48:
+  local_8c = 0;
+  local_90 = "gencert.sh";
+  _eval(&local_90,0,0,0);
+  iVar2 = f_exists("/jffs/.cert/cacert.pem");
+  if ((iVar2 != 0) && (iVar2 = f_exists("/jffs/.cert/cakey.pem"), iVar2 != 0 && iVar3 == 2)) {
+    local_90 = DAT_001b3680;
+    local_8c = DAT_001b3684;
+    uStack_88 = DAT_001b3688;
+    uStack_84 = DAT_001b368c;
+    _eval(&local_90,0,0,0);
+    local_90 = DAT_001b3690;
+    local_8c = DAT_001b3694;
+    uStack_88 = DAT_001b3698;
+    uStack_84 = DAT_001b369c;
+    _eval(&local_90,0,0,0);
+  }
+LAB_0004c4e4:
+  save_cert();
+  iVar2 = f_exists("/etc/cert.pem");
+  if (iVar2 != 0) {
+    exec_and_return_string(acStack_80,0,local_44,0x21);
+  }
+  if (((local_68[0] != '\0') && (local_44[0] != '\0')) &&
+     (iVar2 = strcmp(local_68,local_44), iVar2 == 0)) {
+    return 0;
+  }
+  dbg("%s: %s changed, MD5 [%s] -> [%s].\n","prepare_cert_in_etc","/etc/cert.pem",local_68,local_44)
+  ;
+  return 1;
+}
+

FUN_0007e128

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name FUN_0007e128
fullname FUN_0007e128
refcount 0
length 40
called FUN_00029cf8
calling
paramcount 1
address 0007e128
sig undefined __stdcall FUN_0007e128(char * param_1)
sym_type Function
sym_source DEFAULT
external False
--- FUN_0007e128
+++ FUN_0007e128
@@ -0,0 +1,8 @@
+
+void FUN_0007e128(char *param_1)
+
+{
+  FUN_00029cf8(param_1,0x1043,"0.0.0.0",(char *)0x0,(char *)0x0,0);
+  return;
+}
+

FUN_000bb9e8

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name FUN_000bb9e8
fullname FUN_000bb9e8
refcount 1
length 100
called ::strcmp
FUN_000b8c70
calling FUN_000798d0
paramcount 0
address 000bb9e8
sig undefined FUN_000bb9e8(void)
sym_type Function
sym_source DEFAULT
external False
--- FUN_000bb9e8
+++ FUN_000bb9e8
@@ -0,0 +1,26 @@
+
+int FUN_000bb9e8(char *param_1)
+
+{
+  byte *__s1;
+  int iVar1;
+  uint uVar2;
+  
+  __s1 = FUN_000b8c70("wifi_psk");
+  if (param_1 != (char *)0x0) {
+    iVar1 = strcmp((char *)__s1,param_1);
+    if (iVar1 == 0) {
+      return 0;
+    }
+    iVar1 = strcmp(param_1,"NONE");
+    if (iVar1 == 0) {
+      uVar2 = (uint)*__s1;
+      if (uVar2 != 0) {
+        uVar2 = 1;
+      }
+      return -uVar2;
+    }
+  }
+  return -1;
+}
+

FUN_000bc844

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name FUN_000bc844
fullname FUN_000bc844
refcount 1
length 724
called
Expand for full list:
::_eval
::dbg
::f_exists
::getpid
::nvram_get
::nvram_get_int
::snprintf
::strcat
::strchr
::strcmp
::strcpy
::strcspn
::strlcpy
::strncpy
::strspn
::uptime
::wl_ioctl
FUN_000bc6fc
calling FUN_000e98c4
paramcount 0
address 000bc844
sig undefined __stdcall FUN_000bc844(void)
sym_type Function
sym_source DEFAULT
external False
--- FUN_000bc844
+++ FUN_000bc844
@@ -0,0 +1,107 @@
+
+void FUN_000bc844(void)
+
+{
+  undefined2 uVar1;
+  undefined4 *puVar2;
+  undefined *puVar3;
+  size_t sVar4;
+  size_t sVar5;
+  int iVar6;
+  __pid_t _Var7;
+  undefined4 uVar8;
+  undefined4 *puVar9;
+  char *pcVar10;
+  char *pcVar11;
+  int local_13c;
+  char local_138 [4];
+  undefined4 auStack_134 [2];
+  undefined2 local_12c [2];
+  undefined4 local_128;
+  undefined4 local_124;
+  undefined4 local_120;
+  undefined4 local_11c;
+  char *local_118;
+  undefined *local_114;
+  undefined4 *local_110;
+  char *local_10c;
+  undefined4 local_108;
+  char acStack_104 [100];
+  char local_a0 [127];
+  undefined local_21;
+  
+  local_13c = 0;
+  pcVar11 = local_138;
+  puVar2 = &DAT_00167b71;
+  do {
+    puVar9 = puVar2;
+    pcVar10 = pcVar11;
+    uVar8 = puVar9[1];
+    *(undefined4 *)pcVar10 = *puVar9;
+    *(undefined4 *)(pcVar10 + 4) = uVar8;
+    pcVar11 = pcVar10 + 8;
+    puVar2 = puVar9 + 2;
+  } while (puVar9 + 2 != &DAT_00167b79);
+  uVar1 = *(undefined2 *)(puVar9 + 3);
+  pcVar11[0] = 'X';
+  pcVar11[1] = 'X';
+  pcVar11[2] = 'X';
+  pcVar11[3] = 'X';
+  *(undefined2 *)(pcVar10 + 0xc) = uVar1;
+  local_128 = 0;
+  local_124 = 0;
+  local_120 = 0;
+  local_11c = 0;
+  puVar3 = FUN_000bc6fc();
+  pcVar11 = FUN_000bc6fc();
+  sVar4 = strspn(pcVar11," ");
+  strncpy(local_a0,puVar3 + sVar4,0x80);
+  local_21 = 0;
+  sVar5 = strcspn(local_a0," ");
+  local_a0[sVar5] = '\0';
+  pcVar11 = strchr(puVar3 + sVar4,0x20);
+  while (local_a0[0] != '\0') {
+    local_13c = -1;
+    wl_ioctl(local_a0,0xe,&local_13c);
+    snprintf(acStack_104,100,"wl%d_nband",local_13c);
+    iVar6 = nvram_get_int(acStack_104);
+    if (iVar6 == 2) break;
+    pcVar10 = "";
+    if (pcVar11 != (char *)0x0) {
+      sVar4 = strspn(pcVar11," ");
+      pcVar10 = pcVar11 + sVar4;
+    }
+    strncpy(local_a0,pcVar10,0x80);
+    local_21 = 0;
+    sVar4 = strcspn(local_a0," ");
+    local_a0[sVar4] = '\0';
+    pcVar11 = strchr(pcVar10,0x20);
+  }
+  if (local_13c != -1) {
+    snprintf(local_138,0xe,"wl%d_");
+    strcpy(acStack_104,local_138);
+    strcat(acStack_104,"mode");
+    pcVar11 = (char *)nvram_get(acStack_104);
+    if ((pcVar11 == (char *)0x0) || (iVar6 = strcmp(pcVar11,"ap"), iVar6 != 0)) {
+      snprintf(local_138,0xe,"wl%d.1_",local_13c);
+    }
+    strcpy(acStack_104,local_138);
+    strcat(acStack_104,"ifname");
+    puVar3 = FUN_000bc6fc();
+    strlcpy(&local_128,puVar3,0x10);
+    iVar6 = f_exists("/tmp/OBD_DEBUG");
+    if (0 < iVar6) {
+      _Var7 = getpid();
+      uVar8 = uptime();
+      dbg("OBD(%d) %lu: Send probe-req\n\n",_Var7,uVar8);
+    }
+    local_118 = "wl";
+    local_114 = &DAT_00167399;
+    local_10c = "scan";
+    local_108 = 0;
+    local_110 = &local_128;
+    _eval(&local_118,0,0);
+  }
+  return;
+}
+

FUN_000bcb5c

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name FUN_000bcb5c
fullname FUN_000bcb5c
refcount 1
length 2584
called
Expand for full list:
::atoi
::dbg
::ether_etoa
::f_exists
::free
::getpid
::hex2str
::malloc
::memcmp
::memcpy
::memset
::nvram_default_get
::nvram_get
::nvram_get_int
::nvram_set_int
::sleep
::snprintf
::strcat
::strchr
::strcmp
::strcpy
::strcspn
::strlcpy
::strncpy
::strspn
::uptime
::wl_ioctl
FUN_000ad4c4
FUN_000bc6fc
calling FUN_000e98c4
paramcount 0
address 000bcb5c
sig void * __stdcall FUN_000bcb5c(void)
sym_type Function
sym_source DEFAULT
external False
--- FUN_000bcb5c
+++ FUN_000bcb5c
@@ -0,0 +1,359 @@
+
+void * FUN_000bcb5c(void)
+
+{
+  byte *pbVar1;
+  char cVar2;
+  undefined2 uVar3;
+  ushort uVar4;
+  undefined *puVar5;
+  char *pcVar6;
+  size_t sVar7;
+  size_t sVar8;
+  int iVar9;
+  __pid_t _Var10;
+  void *__s;
+  int iVar11;
+  int iVar12;
+  undefined4 *puVar13;
+  undefined4 uVar14;
+  undefined4 *puVar15;
+  char *pcVar16;
+  int *piVar17;
+  undefined uVar18;
+  bool bVar19;
+  uint uStack_105bc;
+  undefined4 *puStack_105b8;
+  int iStack_105a8;
+  int iStack_105a4;
+  int iStack_105a0;
+  int iStack_1059c;
+  char acStack_10598 [4];
+  undefined4 auStack_10594 [2];
+  undefined2 auStack_1058c [2];
+  char acStack_10588 [4];
+  undefined4 auStack_10584 [2];
+  undefined2 auStack_1057c [2];
+  undefined4 uStack_10578;
+  undefined4 uStack_10574;
+  undefined4 uStack_10570;
+  undefined4 uStack_1056c;
+  char acStack_10568 [100];
+  char acStack_10504 [100];
+  char acStack_104a0 [127];
+  undefined uStack_10421;
+  char acStack_10420 [127];
+  undefined uStack_103a1;
+  undefined4 uStack_10020;
+  int iStack_1001c;
+  uint uStack_10018;
+  int aiStack_10014 [16381];
+  
+  iStack_105a8 = 0;
+  pcVar6 = acStack_10598;
+  puVar15 = &DAT_00167b71;
+  do {
+    puVar13 = puVar15;
+    pcVar16 = pcVar6;
+    uVar14 = puVar13[1];
+    *(undefined4 *)pcVar16 = *puVar13;
+    *(undefined4 *)(pcVar16 + 4) = uVar14;
+    pcVar6 = pcVar16 + 8;
+    puVar15 = puVar13 + 2;
+  } while (puVar13 + 2 != &DAT_00167b79);
+  uVar3 = *(undefined2 *)(puVar13 + 3);
+  pcVar6[0] = 'X';
+  pcVar6[1] = 'X';
+  pcVar6[2] = 'X';
+  pcVar6[3] = 'X';
+  *(undefined2 *)(pcVar16 + 0xc) = uVar3;
+  puVar5 = FUN_000bc6fc();
+  pcVar6 = FUN_000bc6fc();
+  sVar7 = strspn(pcVar6," ");
+  strncpy(acStack_104a0,puVar5 + sVar7,0x80);
+  uStack_10421 = 0;
+  sVar8 = strcspn(acStack_104a0," ");
+  acStack_104a0[sVar8] = '\0';
+  pcVar6 = strchr(puVar5 + sVar7,0x20);
+  while (acStack_104a0[0] != '\0') {
+    iStack_105a8 = -1;
+    wl_ioctl(acStack_104a0,0xe,&iStack_105a8,4);
+    snprintf(acStack_10568,100,"wl%d_nband",iStack_105a8);
+    iVar9 = nvram_get_int(acStack_10568);
+    if (iVar9 == 2) break;
+    pcVar16 = "";
+    if (pcVar6 != (char *)0x0) {
+      sVar7 = strspn(pcVar6," ");
+      pcVar16 = pcVar6 + sVar7;
+    }
+    strncpy(acStack_104a0,pcVar16,0x80);
+    uStack_10421 = 0;
+    sVar7 = strcspn(acStack_104a0," ");
+    acStack_104a0[sVar7] = '\0';
+    pcVar6 = strchr(pcVar16,0x20);
+  }
+  if (iStack_105a8 != -1) {
+    uVar4 = FUN_000ad4c4(iStack_105a8);
+    pcVar6 = strcpy(acStack_10568,acStack_10598);
+    strcat(pcVar6,"reg_mode");
+    pcVar6 = (char *)nvram_get();
+    if (((pcVar6 == (char *)0x0) || (iVar9 = strcmp(pcVar6,"h"), iVar9 != 0)) || (99 < uVar4 - 0x31)
+       ) {
+      iVar9 = nvram_get("sw_mode");
+      if (iVar9 == 0) {
+        pcVar6 = (char *)nvram_default_get("sw_mode");
+        iVar9 = atoi(pcVar6);
+      }
+      else {
+        iVar9 = nvram_get_int();
+      }
+      if ((iVar9 == 1) && (iVar9 = nvram_get_int("obd_allow_scan"), iVar9 == 0)) {
+        sleep(1);
+        return (void *)0x0;
+      }
+      iVar9 = nvram_get_int("wlc_scan_state");
+      if (3 < iVar9 - 1U) {
+        nvram_set_int("obd_scan_state",1);
+        iStack_105a0 = 0x14;
+        iStack_1059c = 0x28;
+        pcVar6 = acStack_10588;
+        puVar15 = &DAT_00167b71;
+        do {
+          puVar13 = puVar15;
+          pcVar16 = pcVar6;
+          uVar14 = puVar13[1];
+          *(undefined4 *)pcVar16 = *puVar13;
+          *(undefined4 *)(pcVar16 + 4) = uVar14;
+          pcVar6 = pcVar16 + 8;
+          puVar15 = puVar13 + 2;
+        } while (puVar13 + 2 != &DAT_00167b79);
+        uVar3 = *(undefined2 *)(puVar13 + 3);
+        pcVar6[0] = 'X';
+        pcVar6[1] = 'X';
+        pcVar6[2] = 'X';
+        pcVar6[3] = 'X';
+        *(undefined2 *)(pcVar16 + 0xc) = uVar3;
+        uStack_10578 = 0;
+        uStack_10574 = 0;
+        uStack_10570 = 0;
+        uStack_1056c = 0;
+        puVar5 = FUN_000bc6fc();
+        pcVar6 = FUN_000bc6fc();
+        sVar7 = strspn(pcVar6," ");
+        strncpy(acStack_10420,puVar5 + sVar7,0x80);
+        uStack_103a1 = 0;
+        sVar8 = strcspn(acStack_10420," ");
+        acStack_10420[sVar8] = '\0';
+        pcVar6 = strchr(puVar5 + sVar7,0x20);
+        while (acStack_10420[0] != '\0') {
+          iStack_105a4 = -1;
+          wl_ioctl(acStack_10420,0xe,&iStack_105a4,4);
+          snprintf(acStack_10504,100,"wl%d_nband",iStack_105a4);
+          iVar9 = nvram_get_int(acStack_10504);
+          if (iVar9 == 2) break;
+          pcVar16 = "";
+          if (pcVar6 != (char *)0x0) {
+            sVar7 = strspn(pcVar6," ");
+            pcVar16 = pcVar6 + sVar7;
+          }
+          strncpy(acStack_10420,pcVar16,0x80);
+          uStack_103a1 = 0;
+          sVar7 = strcspn(acStack_10420," ");
+          acStack_10420[sVar7] = '\0';
+          pcVar6 = strchr(pcVar16,0x20);
+        }
+        if (iStack_105a4 != -1) {
+          snprintf(acStack_10588,0xe,"wl%d_");
+          strcpy(acStack_10504,acStack_10588);
+          strcat(acStack_10504,"ifname");
+          puVar5 = FUN_000bc6fc();
+          strlcpy(&uStack_10578,puVar5,0x10);
+          nvram_set_int("obd_scan_state",2);
+          __s = malloc(0xd0);
+          if (__s != (void *)0x0) {
+            memset(__s,0,0xd0);
+            *(undefined4 *)((int)__s + 0x24) = 0xffffffff;
+            *(undefined2 *)((int)__s + 0x28) = 0xffff;
+            *(undefined2 *)((int)__s + 0x2a) = 0x102;
+            *(undefined4 *)((int)__s + 0x2c) = 0xffffffff;
+            *(undefined4 *)((int)__s + 0x30) = 0xffffffff;
+            *(undefined4 *)((int)__s + 0x34) = 0xffffffff;
+            *(undefined4 *)((int)__s + 0x38) = 0xffffffff;
+            wl_ioctl(&uStack_10578,0xb8,&iStack_105a0,4);
+            if (iStack_105a0 < iStack_1059c) {
+              wl_ioctl(&uStack_10578,0xb9,&iStack_1059c,4);
+            }
+            iVar9 = 0;
+            while (iVar11 = wl_ioctl(&uStack_10578,0x32,__s,0xd0), iVar11 < 0) {
+              if (iVar9 == 3) {
+                iVar9 = 4;
+                break;
+              }
+              iVar9 = iVar9 + 1;
+              iVar11 = f_exists("/tmp/OBD_DEBUG");
+              if (0 < iVar11) {
+                _Var10 = getpid();
+                uVar14 = uptime();
+                dbg("OBD(%d) %lu: set scan command failed, retry %d\n",_Var10,uVar14,iVar9);
+              }
+              sleep(1);
+            }
+            free(__s);
+            wl_ioctl(&uStack_10578,0xb9,&iStack_105a0,4);
+            iVar12 = f_exists("/tmp/OBD_DEBUG");
+            if (0 < iVar12) {
+              _Var10 = getpid();
+              uVar14 = uptime();
+              dbg("OBD(%d) %lu: [obd] Please wait %d seconds ",_Var10,uVar14,3);
+            }
+            uStack_105bc = 3;
+            do {
+              sleep(1);
+              iVar12 = f_exists("/tmp/OBD_DEBUG");
+              if (0 < iVar12) {
+                _Var10 = getpid();
+                uVar14 = uptime();
+                dbg("OBD(%d) %lu: .",_Var10,uVar14);
+              }
+              uStack_105bc = uStack_105bc + -1;
+            } while (uStack_105bc != 0);
+            iVar12 = f_exists("/tmp/OBD_DEBUG");
+            if (0 < iVar12) {
+              _Var10 = getpid();
+              uVar14 = uptime();
+              dbg("OBD(%d) %lu: \n\n",_Var10,uVar14);
+            }
+            if (iVar11 == 0) {
+              uStack_10020 = 0x10000;
+              iVar11 = wl_ioctl(&uStack_10578,0x33,&uStack_10020);
+              if (iVar11 < 0) {
+                iVar11 = f_exists("/tmp/OBD_DEBUG");
+                if (iVar11 < 1) {
+                  return (void *)0x0;
+                }
+                _Var10 = getpid();
+                uVar14 = uptime();
+                dbg("OBD(%d) %lu: get scan result failed, retry %d\n",_Var10,uVar14,iVar9);
+                return (void *)0x0;
+              }
+            }
+            else if (iVar11 < 0) {
+              return (void *)0x0;
+            }
+            nvram_set_int("obd_scan_state",5);
+            if (uStack_10018 != 0) {
+              if (iStack_1001c - 0x6bU < 3) {
+                puVar15 = (undefined4 *)0x0;
+                puStack_105b8 = (undefined4 *)0x0;
+                piVar17 = aiStack_10014;
+                uStack_105bc = 0;
+                do {
+                  if (uStack_10018 <= uStack_105bc) {
+                    nvram_set_int("obd_scan_state",0);
+                    return puVar15;
+                  }
+                  iVar9 = *piVar17;
+                  if (g_swap == '\0') {
+                    bVar19 = iVar9 == 0x6b;
+                  }
+                  else {
+                    bVar19 = iVar9 == 0x6b000000;
+                  }
+                  if (bVar19) {
+                    if (*(byte *)(piVar17 + 0x12) < 0xf) {
+                      uVar4 = 0;
+                    }
+                    else {
+                      uVar4 = 0xc000;
+                    }
+                    *(ushort *)(piVar17 + 0x12) = *(byte *)(piVar17 + 0x12) | uVar4 | 0x1000;
+                    piVar17[0x1e] = piVar17[0x15];
+                    *(undefined2 *)(piVar17 + 0x1d) = 0x58;
+                  }
+                  iVar11 = piVar17[0x1e];
+                  if (iVar11 != 0) {
+                    if (g_swap == '\0') {
+                      bVar19 = iVar9 == 0x6b;
+                    }
+                    else {
+                      bVar19 = iVar9 == 0x6b000000;
+                    }
+                    if ((bVar19) || (*(char *)((int)piVar17 + 0x51) == '\0')) {
+                      uVar18 = *(undefined *)(piVar17 + 0x12);
+                    }
+                    else {
+                      uVar18 = *(undefined *)(piVar17 + 0x16);
+                    }
+                    pcVar6 = (char *)((int)piVar17 + (uint)*(ushort *)(piVar17 + 0x1d));
+                    for (; 0 < iVar11; iVar11 = iVar11 - (*pbVar1 + 2)) {
+                      if ((*pcVar6 == -0x23) &&
+                         (iVar9 = memcmp(pcVar6 + 2,&DAT_0017c45c,3), iVar9 == 0)) {
+                        puVar13 = (undefined4 *)malloc(0x414);
+                        memset(puVar13,0,0x414);
+                        cVar2 = pcVar6[1];
+                        *(undefined *)(puVar13 + 2) = uVar18;
+                        *(byte *)((int)puVar13 + 0xf) = cVar2 - 3U;
+                        memcpy(puVar13 + 4,pcVar6 + 5,(uint)(byte)(cVar2 - 3U));
+                        iVar9 = f_exists("/tmp/OBD_DEBUG");
+                        if (0 < iVar9) {
+                          _Var10 = getpid();
+                          uVar14 = uptime();
+                          dbg("OBD(%d) %lu: %s vsie_len=%d\n",_Var10,uVar14,acStack_10420,
+                              *(undefined *)((int)puVar13 + 0xf));
+                        }
+                        uVar3 = *(undefined2 *)(piVar17 + 3);
+                        *(int *)((int)puVar13 + 9) = piVar17[2];
+                        *(undefined2 *)((int)puVar13 + 0xd) = uVar3;
+                        ether_etoa((int)puVar13 + 9,acStack_10504);
+                        iVar9 = f_exists("/tmp/OBD_DEBUG");
+                        if (0 < iVar9) {
+                          _Var10 = getpid();
+                          uVar14 = uptime();
+                          dbg("OBD(%d) %lu: BSSID=%s\n",_Var10,uVar14,acStack_10504);
+                        }
+                        *(char *)(puVar13 + 0x104) = (char)*(undefined2 *)((int)piVar17 + 0x4e);
+                        memset(acStack_10420,0,0x400);
+                        hex2str(pcVar6 + 5,acStack_10420,*(undefined *)((int)puVar13 + 0xf));
+                        if (puStack_105b8 != (undefined4 *)0x0) {
+                          *puStack_105b8 = puVar13;
+                        }
+                        puStack_105b8 = puVar13;
+                        if (puVar15 == (undefined4 *)0x0) {
+                          puVar15 = puVar13;
+                        }
+                        break;
+                      }
+                      pbVar1 = (byte *)(pcVar6 + 1);
+                      pcVar6 = pcVar6 + *pbVar1 + 2;
+                    }
+                    piVar17 = (int *)((int)piVar17 + piVar17[1]);
+                  }
+                  uStack_105bc = uStack_105bc + 1;
+                } while( true );
+              }
+              iVar9 = f_exists("/tmp/OBD_DEBUG");
+              if (0 < iVar9) {
+                _Var10 = getpid();
+                uVar14 = uptime();
+                dbg("OBD(%d) %lu: Sorry, your driver has bss_info_version %d but this program supports only version %d.\n"
+                    ,_Var10,uVar14,iStack_1001c,0x6d);
+              }
+            }
+            nvram_set_int("obd_scan_state",0);
+          }
+        }
+      }
+    }
+    else {
+      iVar9 = f_exists("/tmp/OBD_DEBUG");
+      if (0 < iVar9) {
+        _Var10 = getpid();
+        uVar14 = uptime();
+        dbg("OBD(%d) %lu: scan rejected under DFS mode\n",_Var10,uVar14);
+        return (void *)0x0;
+      }
+    }
+  }
+  return (void *)0x0;
+}
+

FUN_000bd670

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name FUN_000bd670
fullname FUN_000bd670
refcount 1
length 44
called ::wl_add_ie
calling FUN_000e98c4
paramcount 3
address 000bd670
sig undefined __stdcall FUN_000bd670(undefined4 param_1, undefined4 param_2, undefined4 param_3)
sym_type Function
sym_source DEFAULT
external False
--- FUN_000bd670
+++ FUN_000bd670
@@ -0,0 +1,8 @@
+
+void FUN_000bd670(undefined4 param_1,undefined4 param_2,undefined4 param_3)
+
+{
+  wl_add_ie(param_1,0,0x10,param_2,&DAT_0017c45c,param_3,param_3);
+  return;
+}
+

FUN_000e7664

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name FUN_000e7664
fullname FUN_000e7664
refcount 1
length 52
called
calling FUN_000e7698
paramcount 2
address 000e7664
sig undefined __stdcall FUN_000e7664(int param_1, uint param_2)
sym_type Function
sym_source DEFAULT
external False
--- FUN_000e7664
+++ FUN_000e7664
@@ -0,0 +1,23 @@
+
+void FUN_000e7664(int param_1,uint param_2)
+
+{
+  byte bVar1;
+  int iVar2;
+  byte *pbVar3;
+  
+  pbVar3 = (byte *)(param_1 + -1);
+  iVar2 = 0;
+  while( true ) {
+    pbVar3 = pbVar3 + 1;
+    bVar1 = *pbVar3;
+    if (bVar1 == 0) break;
+    if (bVar1 != param_2) {
+      *(byte *)(param_1 + iVar2) = bVar1;
+      iVar2 = iVar2 + 1;
+    }
+  }
+  *(byte *)(param_1 + iVar2) = bVar1;
+  return;
+}
+

FUN_000e7698

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name FUN_000e7698
fullname FUN_000e7698
refcount 1
length 1960
called
Expand for full list:
::MD5_Final
::MD5_Init
::MD5_Update
::curl_easy_cleanup
::curl_easy_init
::curl_easy_perform
::curl_easy_setopt
::curl_easy_strerror
::curl_global_cleanup
::fclose
::fopen
::get_ddns_macaddr
::is_account_bound
::json_object_new_object
::json_object_new_string
::json_object_object_add
::json_object_put
::json_object_to_json_string
::memset
::nvram_get
::sleep
::snprintf
::sprintf
::strcmp
::strlen
::strstr
::system
::unlink
FUN_000e7640
FUN_000e7664
calling FUN_000e7f38
paramcount 0
address 000e7698
sig undefined4 __stdcall FUN_000e7698(void)
sym_type Function
sym_source DEFAULT
external False
--- FUN_000e7698
+++ FUN_000e7698
@@ -0,0 +1,261 @@
+
+undefined4 FUN_000e7698(void)
+
+{
+  char *pcVar1;
+  char *pcVar2;
+  byte *pbVar3;
+  int iVar4;
+  int iVar5;
+  int iVar6;
+  int iVar7;
+  size_t sVar8;
+  undefined *puVar9;
+  int iVar10;
+  FILE *__stream;
+  char *pcVar11;
+  char *__format;
+  undefined4 uVar12;
+  int iVar13;
+  int iVar14;
+  byte *__s;
+  int local_5b0;
+  byte local_594 [52];
+  char acStack_560 [64];
+  char acStack_520 [256];
+  MD5_CTX aMStack_420 [11];
+  
+  iVar13 = 0;
+  local_594[0] = 0;
+  local_594[1] = 0;
+  local_594[2] = 0;
+  local_594[3] = 0;
+  local_594[4] = 0;
+  local_594[5] = 0;
+  local_594[6] = 0;
+  local_594[7] = 0;
+  local_594[8] = 0;
+  local_594[9] = 0;
+  local_594[10] = 0;
+  local_594[0xb] = 0;
+  local_594[0xc] = 0;
+  local_594[0xd] = 0;
+  local_594[0xe] = 0;
+  local_594[0xf] = 0;
+  local_594[0x10] = 0;
+  local_594[0x11] = 0;
+  local_594[0x12] = 0;
+  local_594[0x13] = 0;
+  memset(local_594 + 0x14,0,0x1d);
+  pcVar1 = FUN_000e7640();
+  pcVar2 = FUN_000e7640();
+  pbVar3 = FUN_000e7640();
+  if ((*pcVar1 == '\0') || (*pcVar2 == '\0')) {
+    snprintf((char *)aMStack_420,0x400,
+             "echo \"[ASUSDDNS][%s:(%d)]No userticket.\n\" >> /tmp/asusddns.log","_acquire_token",
+             0x8a);
+    system((char *)aMStack_420);
+    return 0xfffffffe;
+  }
+  if ((*pbVar3 == 0) || ((*pbVar3 & 0xfd) != 0x30)) {
+    snprintf((char *)aMStack_420,0x400,
+             "echo \"[ASUSDDNS][%s:(%d)]No sid (service id).\n\" >> /tmp/asusddns.log",
+             "_acquire_token",0x8f);
+    system((char *)aMStack_420);
+    return 0xfffffff9;
+  }
+  iVar4 = json_object_new_object();
+  if (iVar4 == 0) {
+    snprintf((char *)aMStack_420,0x400,
+             "echo \"[ASUSDDNS][%s:(%d)]Cannot create json object!\n\" >> /tmp/asusddns.log",
+             "_acquire_token",0x97);
+    system((char *)aMStack_420);
+    return 0xfffffffa;
+  }
+  iVar5 = json_object_new_string(pcVar1);
+  if (iVar5 == 0) {
+    snprintf((char *)aMStack_420,0x400,
+             "echo \"[ASUSDDNS][%s:(%d)]Cannot add json object, cusid!\n\" >> /tmp/asusddns.log",
+             "_acquire_token",0xa1);
+    system((char *)aMStack_420);
+    uVar12 = 0xfffffffa;
+    goto LAB_000e78a4;
+  }
+  json_object_object_add(iVar4,"cusid",iVar5);
+  iVar6 = json_object_new_string(pcVar2);
+  if (iVar6 == 0) {
+    snprintf((char *)aMStack_420,0x400,
+             "echo \"[ASUSDDNS][%s:(%d)]Cannot add json object, userticket!\n\" >> /tmp/asusddns.log"
+             ,"_acquire_token",0xab);
+    system((char *)aMStack_420);
+    iVar13 = 0;
+LAB_000e7844:
+    uVar12 = 0xfffffffa;
+  }
+  else {
+    json_object_object_add(iVar4,"userticket",iVar6);
+    uVar12 = get_ddns_macaddr();
+    snprintf(acStack_560,0x40,"%s",uVar12);
+    FUN_000e7664((int)acStack_560,0x3a);
+    iVar7 = json_object_new_string(acStack_560);
+    if (iVar7 == 0) {
+      uVar12 = 0xb7;
+      pcVar1 = 
+      "echo \"[ASUSDDNS][%s:(%d)]Cannot add json object, devicemac!\n\" >> /tmp/asusddns.log";
+      iVar13 = 0;
+LAB_000e7918:
+      snprintf((char *)aMStack_420,0x400,pcVar1,"_acquire_token",uVar12);
+      system((char *)aMStack_420);
+      goto LAB_000e7844;
+    }
+    json_object_object_add(iVar4,"devicemac",iVar7);
+    pcVar1 = FUN_000e7640();
+    sVar8 = strlen(pcVar1);
+    MD5_Init(aMStack_420);
+    MD5_Update(aMStack_420,pcVar1,sVar8);
+    MD5_Final(local_594,aMStack_420);
+    pbVar3 = local_594;
+    __s = local_594 + 0x10;
+    do {
+      iVar13 = iVar13 + 1;
+      sprintf((char *)__s,"%02x",(uint)*pbVar3);
+      __s = __s + 2;
+      pbVar3 = pbVar3 + 1;
+    } while (iVar13 != 0x10);
+    iVar13 = json_object_new_string(local_594 + 0x10);
+    if (iVar13 == 0) {
+      uVar12 = 200;
+      pcVar1 = 
+      "echo \"[ASUSDDNS][%s:(%d)]Cannot add json object, devicemd5mac!\n\" >> /tmp/asusddns.log";
+      goto LAB_000e7918;
+    }
+    json_object_object_add(iVar4,"devicemd5mac",iVar13);
+    iVar7 = is_account_bound();
+    if (iVar7 == 0) {
+      puVar9 = &DAT_0016a811;
+    }
+    else {
+      puVar9 = &DAT_0018919f;
+    }
+    iVar10 = json_object_new_string(puVar9);
+    if (iVar10 == 0) {
+      uVar12 = 0xde;
+      pcVar1 = "echo \"[ASUSDDNS][%s:(%d)]Cannot add json object, sid!\n\" >> /tmp/asusddns.log";
+      goto LAB_000e7918;
+    }
+    iVar14 = -1;
+    json_object_object_add(iVar4,"sid",iVar10);
+    pcVar2 = (char *)json_object_to_json_string(iVar4);
+    pcVar1 = pcVar2;
+    snprintf((char *)aMStack_420,0x400,
+             "echo \"[ASUSDDNS][%s:(%d)]auth_string=%s\n\" >> /tmp/asusddns.log","_acquire_token",
+             0xe4,pcVar2);
+    system((char *)aMStack_420);
+    local_5b0 = 5;
+    do {
+      __stream = fopen("/tmp/asusddns_res","wb");
+      if (__stream == (FILE *)0x0) {
+        snprintf((char *)aMStack_420,0x400,
+                 "echo \"[ASUSDDNS][%s:(%d)]Cannot open file for response data.\n\" >> /tmp/asusddns.log"
+                 ,"_acquire_token",0xee,pcVar1);
+        system((char *)aMStack_420);
+        return 0xfffffffb;
+      }
+      iVar10 = curl_easy_init();
+      if (iVar10 == 0) {
+        snprintf((char *)aMStack_420,0x400,
+                 "echo \"[ASUSDDNS][%s:(%d)]Cannot init CURL\n\" >> /tmp/asusddns.log",
+                 "_acquire_token",0x129);
+        system((char *)aMStack_420);
+LAB_000e7e08:
+        uVar12 = 0xfffffffc;
+      }
+      else {
+        if (((iVar7 == 0) ||
+            (pcVar11 = (char *)nvram_get("ddns_replace_status"), pcVar11 == (char *)0x0)) ||
+           (iVar14 = strcmp(pcVar11,"1"), iVar14 != 0)) {
+LAB_000e7b94:
+          pcVar11 = (char *)nvram_get("ddns_server_x");
+          if ((pcVar11 == (char *)0x0) || (iVar14 = strcmp(pcVar11,"WWW.ASUS.COM.CN"), iVar14 != 0))
+          {
+            pcVar11 = "https://ns1.asuscomm.com";
+          }
+          else {
+            pcVar11 = "https://ns1.asuscomm.cn";
+          }
+          __format = "%s%s";
+        }
+        else {
+          pcVar11 = FUN_000e7640();
+          pcVar11 = strstr(pcVar11,".asuscomm.com");
+          if (pcVar11 == (char *)0x0) {
+LAB_000e7b70:
+            pcVar11 = FUN_000e7640();
+            pcVar11 = strstr(pcVar11,".asuscomm.cn");
+            if (pcVar11 != (char *)0x0) {
+              pcVar11 = FUN_000e7640();
+              pcVar11 = strstr(pcVar11,".asuscomm.cn");
+              if (pcVar11 != (char *)0x0) goto LAB_000e7c00;
+            }
+            goto LAB_000e7b94;
+          }
+          pcVar11 = FUN_000e7640();
+          pcVar11 = strstr(pcVar11,".asuscomm.com");
+          if (pcVar11 == (char *)0x0) goto LAB_000e7b70;
+LAB_000e7c00:
+          pcVar11 = FUN_000e7640();
+          __format = "https://%s%s";
+        }
+        snprintf(acStack_520,0x100,__format,pcVar11,"/ddnsv2/acquireToken.php");
+        curl_easy_setopt(iVar10,0x2712,acStack_520);
+        curl_easy_setopt(iVar10,0xb5,2);
+        curl_easy_setopt(iVar10,0x51,0);
+        curl_easy_setopt(iVar10,0x40,0);
+        curl_easy_setopt(iVar10,0x271f,pcVar2);
+        sVar8 = strlen(pcVar2);
+        curl_easy_setopt(iVar10,0x3c,sVar8);
+        curl_easy_setopt(iVar10,0x29,1);
+        curl_easy_setopt(iVar10,0x4e,10);
+        curl_easy_setopt(iVar10,0xd,0x78);
+        curl_easy_setopt(iVar10,0x4e2b,&LAB_000e7660);
+        curl_easy_setopt(iVar10,0x2711,__stream);
+        curl_easy_setopt(iVar10,0x2d,1);
+        iVar14 = curl_easy_perform(iVar10);
+        fclose(__stream);
+        curl_easy_cleanup(iVar10);
+        if (iVar14 != 0) {
+          pcVar1 = (char *)curl_easy_strerror(iVar14);
+          snprintf((char *)aMStack_420,0x400,
+                   "echo \"[ASUSDDNS][%s:(%d)]CURL perform fail: %s(%d)\n\" >> /tmp/asusddns.log",
+                   "_acquire_token",0x120,pcVar1,iVar14);
+          system((char *)aMStack_420);
+          unlink("/tmp/asusddns_res");
+          local_5b0 = local_5b0 + -1;
+          sleep(1);
+          goto LAB_000e7e08;
+        }
+        snprintf((char *)aMStack_420,0x400,
+                 "echo \"[ASUSDDNS][%s:(%d)]CURL perform success\n\" >> /tmp/asusddns.log",
+                 "_acquire_token",0x11b);
+        system((char *)aMStack_420);
+        uVar12 = 1;
+      }
+      iVar10 = iVar14;
+      if (iVar14 != 0) {
+        iVar10 = local_5b0;
+      }
+    } while ((iVar14 != 0 && local_5b0 != 0) && -1 < iVar10);
+    curl_global_cleanup();
+  }
+  json_object_put(iVar5);
+  if (iVar6 != 0) {
+    json_object_put(iVar6);
+  }
+  if (iVar13 != 0) {
+    json_object_put(iVar13);
+  }
+LAB_000e78a4:
+  json_object_put(iVar4);
+  return uVar12;
+}
+

FUN_000e98c4

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name FUN_000e98c4
fullname FUN_000e98c4
refcount 1
length 3148
called
Expand for full list:
::dbg
::ether_atoe
::ether_etoa
::f_exists
::free
::get_lan_hwaddr
::get_productid
::getpid
::memcmp
::memcpy
::memset
::nvram_get_int
::nvram_set_int
::snprintf
::strchr
::strcmp
::strcspn
::strlen
::strncpy
::strspn
::uptime
::wl_ioctl
FUN_000bc844
FUN_000bcb5c
FUN_000bd634
FUN_000bd670
FUN_000bd6a0
FUN_000bd6b4
FUN_000bd6c8
FUN_000e9828
calling FUN_000ea624
paramcount 0
address 000e98c4
sig undefined4 __stdcall FUN_000e98c4(void)
sym_type Function
sym_source DEFAULT
external False
--- FUN_000e98c4
+++ FUN_000e98c4
@@ -0,0 +1,404 @@
+
+undefined4 FUN_000e98c4(void)
+
+{
+  char cVar1;
+  undefined uVar2;
+  bool bVar3;
+  bool bVar4;
+  bool bVar5;
+  undefined *puVar6;
+  char *pcVar7;
+  size_t sVar8;
+  size_t sVar9;
+  int iVar10;
+  __pid_t _Var11;
+  undefined4 uVar12;
+  undefined4 uVar13;
+  int iVar14;
+  undefined2 *puVar15;
+  void *__src;
+  undefined *puVar16;
+  undefined4 *puVar17;
+  char *__src_00;
+  uint uVar18;
+  int *piVar19;
+  int *piVar20;
+  int iVar21;
+  uint uVar22;
+  int *local_270;
+  int local_268;
+  int local_260;
+  int local_248;
+  undefined auStack_244 [8];
+  undefined4 local_23c;
+  undefined2 local_238;
+  undefined auStack_234 [20];
+  char acStack_220 [128];
+  char local_1a0 [127];
+  undefined local_121;
+  undefined auStack_120 [2];
+  undefined local_11e;
+  undefined local_11d;
+  undefined local_11c;
+  undefined4 local_11b;
+  undefined2 local_117;
+  undefined local_115;
+  undefined local_114;
+  undefined auStack_113 [5];
+  ushort uStack_10e;
+  undefined auStack_10c [2];
+  undefined2 uStack_10a;
+  undefined auStack_108 [2];
+  ushort uStack_106;
+  undefined auStack_104 [228];
+  
+  local_248 = 0;
+  local_270 = (int *)FUN_000bcb5c();
+  if (local_270 != (int *)0x0) {
+    puVar6 = FUN_000e9828();
+    pcVar7 = FUN_000e9828();
+    sVar8 = strspn(pcVar7," ");
+    strncpy(local_1a0,puVar6 + sVar8,0x80);
+    local_121 = 0;
+    sVar9 = strcspn(local_1a0," ");
+    local_1a0[sVar9] = '\0';
+    pcVar7 = strchr(puVar6 + sVar8,0x20);
+    while (local_1a0[0] != '\0') {
+      local_248 = -1;
+      wl_ioctl(local_1a0,0xe,&local_248,4);
+      snprintf(acStack_220,0x80,"wl%d_nband",local_248);
+      iVar10 = nvram_get_int(acStack_220);
+      if (iVar10 == 2) break;
+      __src_00 = "";
+      if (pcVar7 != (char *)0x0) {
+        sVar8 = strspn(pcVar7," ");
+        __src_00 = pcVar7 + sVar8;
+      }
+      strncpy(local_1a0,__src_00,0x80);
+      local_121 = 0;
+      sVar8 = strcspn(local_1a0," ");
+      local_1a0[sVar8] = '\0';
+      pcVar7 = strchr(__src_00,0x20);
+    }
+    if (local_248 != -1) {
+      if ((DAT_001de530 == 0) &&
+         (((DAT_001de52c & 0x10) != 0 || (iVar10 = f_exists("/tmp/OBD_DEBUG"), 0 < iVar10)))) {
+        _Var11 = getpid();
+        uVar12 = uptime();
+        dbg("OBD(%d) %lu: %-4s%-18s\n",_Var11,uVar12,&DAT_0017aef6,"BSSID");
+      }
+      uVar12 = get_lan_hwaddr();
+      ether_atoe(uVar12,auStack_244);
+      iVar10 = 0;
+      local_268 = 0;
+      cVar1 = '\0';
+      piVar20 = local_270;
+      do {
+        if (*(char *)((int)piVar20 + 0xf) != '\0') {
+          puVar17 = (undefined4 *)((int)piVar20 + 9);
+          ether_etoa(puVar17,auStack_234);
+          if (((DAT_001de52c & 0x10) != 0) || (iVar21 = f_exists("/tmp/OBD_DEBUG"), 0 < iVar21)) {
+            _Var11 = getpid();
+            uVar12 = uptime();
+            dbg("OBD(%d) %lu: BSSID=%s, RSSI=%d, VSIE_LEN=%d\n",_Var11,uVar12,auStack_234,
+                (int)*(char *)(piVar20 + 0x104),*(undefined *)((int)piVar20 + 0xf));
+          }
+          piVar19 = piVar20 + 4;
+          iVar21 = 0;
+          bVar3 = false;
+          bVar5 = false;
+          bVar4 = false;
+          for (local_260 = (uint)*(byte *)((int)piVar20 + 0xf) -
+                           (*(byte *)((int)piVar20 + 0x11) + 2); uVar22 = DAT_001de52c,
+              0 < local_260; local_260 = local_260 - iVar14) {
+            switch(*(undefined *)piVar19) {
+            case 1:
+              if (*(char *)((int)piVar19 + 1) == '\x01') {
+                cVar1 = *(char *)((int)piVar19 + 2);
+                if (((DAT_001de52c & 0x10) == 0) &&
+                   (iVar14 = f_exists("/tmp/OBD_DEBUG"), iVar14 < 1)) {
+                  bVar4 = true;
+                }
+                else {
+                  _Var11 = getpid();
+                  uVar12 = uptime();
+                  dbg("OBD(%d) %lu: Status: %x\n",_Var11,uVar12,cVar1);
+                  bVar4 = true;
+                }
+              }
+              break;
+            case 2:
+              if (*(char *)((int)piVar19 + 1) == '\x01') {
+                uVar2 = *(undefined *)((int)piVar19 + 2);
+                if (((DAT_001de52c & 0x10) == 0) &&
+                   (iVar14 = f_exists("/tmp/OBD_DEBUG"), iVar14 < 1)) {
+                  bVar5 = true;
+                }
+                else {
+                  _Var11 = getpid();
+                  uVar12 = uptime();
+                  dbg("OBD(%d) %lu: Cost: %x\n",_Var11,uVar12,uVar2);
+                  bVar5 = true;
+                }
+              }
+              break;
+            case 3:
+              if (*(char *)((int)piVar19 + 1) == '\x14') {
+                if (((DAT_001de52c & 0x10) != 0) ||
+                   (iVar14 = f_exists("/tmp/OBD_DEBUG"), 0 < iVar14)) {
+                  _Var11 = getpid();
+                  uVar12 = uptime();
+                  dbg("OBD(%d) %lu: ID: ",_Var11,uVar12);
+                }
+                if ((DAT_001de52c & 0x10) != 0) {
+                  for (puVar6 = (undefined *)((int)piVar19 + 2);
+                      puVar6 + (-2 - (int)piVar19) < (undefined *)(uint)*(byte *)((int)piVar19 + 1);
+                      puVar6 = puVar6 + 1) {
+                    dbg("%02X",*puVar6);
+                  }
+                  dbg("\n");
+                }
+                bVar3 = true;
+              }
+              break;
+            case 4:
+              if (*(char *)((int)piVar19 + 1) == '\x06') {
+                iVar21 = memcmp(auStack_244,(undefined *)((int)piVar19 + 2),6);
+                if (iVar21 == 0) {
+                  iVar21 = 1;
+                }
+                else {
+                  iVar21 = -1;
+                }
+                if (((uVar22 & 0x10) != 0) || (iVar14 = f_exists("/tmp/OBD_DEBUG"), 0 < iVar14)) {
+                  _Var11 = getpid();
+                  uVar12 = uptime();
+                  uVar13 = ether_etoa((undefined *)((int)piVar19 + 2),auStack_234);
+                  dbg("OBD(%d) %lu: MAC address: %s\n",_Var11,uVar12,uVar13);
+                }
+              }
+              break;
+            case 5:
+            default:
+switchD_000e9cfc_caseD_7:
+              if (((DAT_001de52c & 1) != 0) || (iVar14 = f_exists("/tmp/OBD_DEBUG"), 0 < iVar14)) {
+                _Var11 = getpid();
+                uVar12 = uptime();
+                dbg("OBD(%d) %lu: Unknown TLV: ",_Var11,uVar12);
+              }
+              if ((DAT_001de52c & 0x10) != 0) {
+                dbg("%02X",*(undefined *)piVar19);
+                dbg("%02X",*(undefined *)((int)piVar19 + 1));
+                for (puVar6 = (undefined *)((int)piVar19 + 2);
+                    puVar6 + (-2 - (int)piVar19) < (undefined *)(uint)*(byte *)((int)piVar19 + 1);
+                    puVar6 = puVar6 + 1) {
+                  dbg("%02X",*puVar6);
+                }
+                dbg("\n");
+              }
+              break;
+            case 6:
+              goto switchD_000e9cfc_caseD_7;
+            case 7:
+            }
+            iVar14 = *(byte *)((int)piVar19 + 1) + 2;
+            piVar19 = (int *)((int)piVar19 + iVar14);
+          }
+          if ((DAT_001de52c & 0x10) != 0) {
+            dbg("\n");
+          }
+          if ((bVar4 && bVar5) && bVar3) {
+            if (DAT_001de530 == 0) {
+              if (cVar1 == '\x02') {
+                if (iVar10 == 0) {
+                  nvram_set_int("amesh_found_cap",iVar10 + 1);
+                }
+                iVar21 = iVar10 * 7;
+                *(undefined4 *)((int)&DAT_001e7bf1 + iVar21) = *puVar17;
+                *(undefined2 *)((int)&DAT_001e7bf5 + iVar21) = *(undefined2 *)((int)piVar20 + 0xd);
+                (&DAT_001e7bf7)[iVar21] = *(undefined *)(piVar20 + 0x104);
+LAB_000e9c20:
+                iVar10 = iVar10 + 1;
+              }
+            }
+            else if (DAT_001de530 == 1) {
+              if (cVar1 == '\x02') {
+                iVar14 = iVar10 * 7;
+                *(undefined4 *)((int)&DAT_001e7bf1 + iVar14) = *puVar17;
+                *(undefined2 *)((int)&DAT_001e7bf5 + iVar14) = *(undefined2 *)((int)piVar20 + 0xd);
+                (&DAT_001e7bf7)[iVar14] = *(undefined *)(piVar20 + 0x104);
+                if (iVar21 == 1) {
+                  nvram_set_int("amesh_led",1);
+                  FUN_000bd6b4();
+                }
+                else if (iVar21 == -1) {
+                  nvram_set_int("amesh_led");
+                  FUN_000bd6c8();
+                }
+                goto LAB_000e9c20;
+              }
+              if (cVar1 == '\x04') {
+                if (iVar21 == -1) {
+                  local_268 = local_268 + 1;
+                }
+                else if (iVar21 == 1) {
+                  nvram_set_int("amesh_found_cap");
+                  local_268 = 1;
+                  goto LAB_000ea0b0;
+                }
+              }
+            }
+          }
+        }
+        piVar20 = (int *)*piVar20;
+      } while (piVar20 != (int *)0x0);
+      if (local_268 == 0) {
+LAB_000ea0b0:
+        iVar14 = uptime();
+        iVar21 = local_248;
+        if (iVar14 - DAT_001de534 < 0x12d) {
+          if ((local_268 == 0) || (DAT_001de530 != 1)) {
+            if ((iVar10 != 0) && (DAT_001de530 < 2)) {
+              DAT_001e7bf0 = (byte)iVar10;
+              pcVar7 = (char *)get_productid();
+              if (*pcVar7 != '\0') {
+                for (puVar17 = &DAT_001b6bd0; (char *)*puVar17 != (char *)0x0; puVar17 = puVar17 + 4
+                    ) {
+                  iVar10 = strcmp((char *)*puVar17,pcVar7);
+                  if (iVar10 == 0) {
+                    uVar22 = puVar17[1];
+                    if (599 < uVar22 - 1) {
+                      uVar22 = 0;
+                    }
+                    uVar18 = 0;
+                    if (puVar17[3] - 1 < 300) {
+                      uVar18 = puVar17[3];
+                    }
+                    goto LAB_000ea2f0;
+                  }
+                }
+              }
+              uVar22 = 0xb4;
+              uVar18 = 0x3c;
+LAB_000ea2f0:
+              puVar15 = (undefined2 *)memset(auStack_120,0,0x100);
+              local_11e = 3;
+              *puVar15 = 0x101;
+              uVar12 = get_lan_hwaddr();
+              ether_atoe(uVar12,&local_23c);
+              local_11d = 4;
+              local_11c = 6;
+              local_11b = local_23c;
+              local_117 = local_238;
+              __src = (void *)get_productid();
+              pcVar7 = (char *)get_productid();
+              sVar8 = strlen(pcVar7);
+              if (sVar8 != 0) {
+                local_114 = (undefined)sVar8;
+                local_115 = 5;
+                memcpy(auStack_113,__src,sVar8);
+              }
+              sVar9 = (uint)DAT_001e7bf0 * 7 + 1;
+              iVar14 = (uint)DAT_001e7bf0 * 7 + 3;
+              auStack_113[sVar8] = 6;
+              iVar10 = iVar14 + (sVar8 - 0x113);
+              auStack_113[sVar8 + 1] = (char)sVar9;
+              memcpy(auStack_113 + sVar8 + 2,&DAT_001e7bf0,sVar9);
+              auStack_113[iVar14 + (sVar8 - 0x113) + 0x113] = 0xf;
+              *(ushort *)(auStack_113 + iVar10 + 0x115) =
+                   (ushort)((uVar22 & 0xff) << 8) | (ushort)(uVar22 >> 8) & 0xff;
+              auStack_113[iVar10 + 0x114] = 2;
+              auStack_113[iVar10 + 0x117] = 0x10;
+              auStack_113[iVar10 + 0x118] = 2;
+              auStack_113[iVar10 + 0x11c] = 2;
+              *(undefined2 *)(auStack_113 + iVar10 + 0x119) = 0x7800;
+              *(ushort *)(auStack_113 + iVar10 + 0x11d) =
+                   (ushort)((uVar18 & 0xff) << 8) | (ushort)(uVar18 >> 8) & 0xff;
+              puVar6 = auStack_113 + iVar10 + 0x11f;
+              auStack_113[iVar10 + 0x11b] = 0x11;
+              pcVar7 = FUN_000e9828();
+              if (*pcVar7 != '\0') {
+                puVar16 = FUN_000e9828();
+                pcVar7 = FUN_000e9828();
+                sVar8 = strlen(pcVar7);
+                if (sVar8 != 0) {
+                  auStack_113[iVar10 + 0x11f] = 0x16;
+                  auStack_113[iVar10 + 0x120] = (char)sVar8;
+                  memcpy(auStack_113 + iVar10 + 0x121,puVar16,sVar8);
+                }
+                puVar6 = puVar6 + sVar8 + 2;
+              }
+              if (0 < (int)DAT_001de528) {
+                *puVar6 = 0x1b;
+                puVar16 = puVar6 + 2;
+                puVar6[1] = (char)DAT_001de528;
+                puVar6 = puVar6 + DAT_001de528 + 2;
+                memcpy(puVar16,&DAT_001e7db1,DAT_001de528);
+              }
+              FUN_000bd6a0(iVar21);
+              FUN_000bd670(iVar21,puVar6 + (3 - (int)auStack_120),auStack_120);
+              FUN_000bc844();
+              if (DAT_001de530 == 0) {
+                DAT_001de530 = 1;
+              }
+              DAT_001de534 = uptime();
+            }
+          }
+          else {
+            iVar10 = nvram_get_int("amesh_led");
+            if (iVar10 == 1) {
+              FUN_000bd6c8();
+              nvram_set_int("amesh_led",0);
+            }
+            if (((DAT_001de52c & 0x10) != 0) || (iVar10 = f_exists("/tmp/OBD_DEBUG"), 0 < iVar10)) {
+              _Var11 = getpid();
+              uVar12 = uptime();
+              dbg("OBD(%d) %lu: Start WPS Enroll\n\n",_Var11,uVar12);
+            }
+            DAT_001de538 = 0;
+            FUN_000bd634();
+            DAT_001de530 = 2;
+          }
+        }
+        else {
+          if (((DAT_001de52c & 0x10) != 0) || (iVar10 = f_exists("/tmp/OBD_DEBUG"), 0 < iVar10)) {
+            _Var11 = getpid();
+            uVar12 = uptime();
+            dbg("OBD(%d) %lu: Reset due to timeout\n\n",_Var11,uVar12);
+          }
+          DAT_001de530 = 0;
+          DAT_001de534 = uptime();
+          nvram_set_int("amesh_found_cap",0);
+          iVar10 = nvram_get_int("amesh_led");
+          if (iVar10 == 1) {
+            FUN_000bd6c8();
+            nvram_set_int("amesh_led",0);
+          }
+        }
+        do {
+          piVar20 = (int *)*local_270;
+          free(local_270);
+          local_270 = piVar20;
+        } while (piVar20 != (int *)0x0);
+      }
+      else {
+        if (((DAT_001de52c & 0x10) != 0) || (iVar10 = f_exists("/tmp/OBD_DEBUG"), 0 < iVar10)) {
+          _Var11 = getpid();
+          uVar12 = uptime();
+          dbg("OBD(%d) %lu: Reset due to mismatch of RE MAC address\n\n",_Var11,uVar12);
+        }
+        DAT_001de530 = 0;
+        DAT_001de534 = uptime();
+        nvram_set_int("amesh_found_cap",0);
+        do {
+          piVar20 = (int *)*local_270;
+          free(local_270);
+          local_270 = piVar20;
+        } while (piVar20 != (int *)0x0);
+      }
+    }
+  }
+  return 0;
+}
+

FUN_00100fb0

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name FUN_00100fb0
fullname FUN_00100fb0
refcount 2
length 1964
called
Expand for full list:
::ipv6_nvname_by_unit
::logmessage_normal
::nvram_pf_get_int
::nvram_pf_set
::nvram_pf_set_int
::nvram_set
::sleep
::snprintf
::strcat
::strcpy
FUN_0003445c
FUN_00034638
FUN_00034870
FUN_00034afc
FUN_00034b34
FUN_0003523c
FUN_00038d3c
FUN_00041880
FUN_00042364
FUN_00042860
FUN_00100ee8
FUN_00100f08
calling FUN_00101acc
paramcount 0
address 00100fb0
sig undefined __stdcall FUN_00100fb0(void)
sym_type Function
sym_source DEFAULT
external False
--- FUN_00100fb0
+++ FUN_00100fb0
@@ -0,0 +1,190 @@
+
+void FUN_00100fb0(void)
+
+{
+  bool bVar1;
+  int iVar2;
+  undefined4 uVar3;
+  char *pcVar4;
+  undefined *puVar5;
+  undefined4 uVar6;
+  char acStack_88 [16];
+  char acStack_78 [48];
+  char acStack_48 [48];
+  
+  if (DAT_001b7724 != 0) {
+    iVar2 = nvram_pf_get_int(&DAT_001de764,"s46_hgw_case");
+    if (iVar2 == 0) {
+      FUN_00100f08(5);
+      if (DAT_001de740 == 1) {
+        logmessage_normal("[DS-Lite]","Checking scenario...");
+        nvram_pf_set(&DAT_001de764,"s46_dslite_svc",&DAT_00165aad);
+        iVar2 = nvram_pf_get_int(&DAT_001de764,"s46_dslite_mode");
+        if (iVar2 == 0) {
+          uVar3 = ipv6_nvname_by_unit("ipv6_s46_aftr",DAT_001de774);
+          nvram_set(uVar3,"");
+        }
+      }
+      if (DAT_001de740 == 6) {
+        FUN_00100f08(0x1e);
+        DAT_001de740 = 0;
+        DAT_001b7724 = 0;
+        nvram_pf_set_int(&DAT_001de764,"s46_hgw_case",6);
+        pcVar4 = strcpy(acStack_48,&DAT_001de764);
+        strcat(pcVar4,"ifname");
+        puVar5 = FUN_00100ee8();
+        snprintf(acStack_78,0x10,"%s",puVar5);
+        FUN_00034638("/jffs/s46.log","[%s:(%d)]### HGW OFF ### (DS-Lite start.)\n","do_dslite_check"
+                     ,0xd2);
+        logmessage_normal("[DS-Lite]","DS-Lite start.");
+        FUN_00038d3c(acStack_78);
+      }
+      DAT_001de740 = DAT_001de740 + 1;
+      return;
+    }
+    iVar2 = nvram_pf_get_int(&DAT_001de764,"s46_hgw_case");
+    if (iVar2 == 3) {
+      FUN_00100f08(0xf);
+      DAT_001b7724 = 0;
+      pcVar4 = strcpy(acStack_48,&DAT_001de764);
+      strcat(pcVar4,"ifname");
+      puVar5 = FUN_00100ee8();
+      snprintf(acStack_78,0x10,"%s",puVar5);
+      FUN_00034638("/jffs/s46.log","[%s:(%d)]### HGW OFF ### (DS-Lite is not activated on HGW)\n",
+                   "do_dslite_check",0xdd);
+      logmessage_normal("[DS-Lite]","DS-Lite start.(DS-Lite is not activated on HGW)");
+      FUN_00038d3c(acStack_78);
+      sleep(2);
+      return;
+    }
+    iVar2 = nvram_pf_get_int(&DAT_001de764,"s46_hgw_case");
+    if (iVar2 == 2) {
+      FUN_00034638("/jffs/s46.log","[%s:(%d)]### HGW ON ### (DS-Lite is active on HGW)\n",
+                   "do_dslite_check",0xe6);
+      logmessage_normal("[DS-Lite]","DS-Lite is active on HGW");
+      FUN_00042860(DAT_001de774);
+      return;
+    }
+  }
+  uVar3 = DAT_001de774;
+  if (DAT_001b7720 == 0) {
+    return;
+  }
+  DAT_001b7720 = 0;
+  snprintf(acStack_88,0x10,"wan%d_",DAT_001de774);
+  uVar6 = ipv6_nvname_by_unit("ipv6_ra_addr",uVar3);
+  bVar1 = FUN_0003445c(uVar6,"");
+  if (bVar1) {
+    puVar5 = FUN_00034870(uVar3);
+  }
+  else {
+    ipv6_nvname_by_unit("ipv6_ra_addr",uVar3);
+    puVar5 = FUN_00100ee8();
+  }
+  snprintf(acStack_78,0x2e,"%s",puVar5);
+  bVar1 = FUN_00034afc(acStack_78);
+  if (bVar1) {
+    iVar2 = nvram_pf_get_int(acStack_88,"s46_dslite_mode");
+    if (iVar2 == 0) {
+      FUN_00034638("/jffs/s46.log","[%s:(%d)][DS-Lite] Auto Mode.\n","setup_dslite",0x83);
+      uVar6 = ipv6_nvname_by_unit("ipv6_s46_b4addr",uVar3);
+      nvram_set(uVar6,"192.0.0.2");
+      iVar2 = FUN_0003523c(acStack_78);
+      if (iVar2 == 2) {
+        FUN_00034638("/jffs/s46.log","[%s:(%d)][DS-Lite] Line is transix(East)\n","setup_dslite",
+                     0x90);
+        nvram_pf_set(acStack_88,"s46_dslite_svc","transix");
+        uVar6 = ipv6_nvname_by_unit("ipv6_s46_aftr",uVar3);
+        nvram_set(uVar6,"gw.transix.jp");
+        pcVar4 = FUN_00034b34("gw.transix.jp",acStack_48,0x2e);
+        if (pcVar4 == (char *)0x0) {
+          uVar6 = ipv6_nvname_by_unit("ipv6_s46_aftr_addr",uVar3);
+          pcVar4 = "2404:8e00::feed:100";
+        }
+        else {
+LAB_001014fc:
+          pcVar4 = acStack_48;
+          uVar6 = ipv6_nvname_by_unit("ipv6_s46_aftr_addr",uVar3);
+        }
+      }
+      else if (iVar2 == 3) {
+        FUN_00034638("/jffs/s46.log","[%s:(%d)][DS-Lite] Line is transix(West)\n","setup_dslite",
+                     0x99);
+        nvram_pf_set(acStack_88,"s46_dslite_svc","transix");
+        uVar6 = ipv6_nvname_by_unit("ipv6_s46_aftr",uVar3);
+        nvram_set(uVar6,"gw.transix.jp");
+        pcVar4 = FUN_00034b34("gw.transix.jp",acStack_48,0x2e);
+        if (pcVar4 != (char *)0x0) goto LAB_001014fc;
+        uVar6 = ipv6_nvname_by_unit("ipv6_s46_aftr_addr",uVar3);
+        pcVar4 = "2404:8e01::feed:100";
+      }
+      else {
+        if (iVar2 != 1) {
+          uVar6 = ipv6_nvname_by_unit("ipv6_s46_env_aftr",uVar3);
+          bVar1 = FUN_0003445c(uVar6,"");
+          if (!bVar1) {
+            uVar6 = ipv6_nvname_by_unit("ipv6_s46_aftr",uVar3);
+            ipv6_nvname_by_unit("ipv6_s46_env_aftr",uVar3);
+            puVar5 = FUN_00100ee8();
+            nvram_set(uVar6,puVar5);
+          }
+          goto LAB_0010138c;
+        }
+        FUN_00034638("/jffs/s46.log","[%s:(%d)][DS-Lite] Line is xpass\n","setup_dslite",0x87);
+        nvram_pf_set(acStack_88,"s46_dslite_svc","xpass");
+        uVar6 = ipv6_nvname_by_unit("ipv6_s46_aftr",uVar3);
+        nvram_set(uVar6,"dgw.xpass.jp");
+        pcVar4 = FUN_00034b34("dgw.xpass.jp",acStack_48,0x2e);
+        if (pcVar4 != (char *)0x0) goto LAB_001014fc;
+        uVar6 = ipv6_nvname_by_unit("ipv6_s46_aftr_addr",uVar3);
+        pcVar4 = "2001:f60:0:200::1:1";
+      }
+    }
+    else {
+      FUN_00034638("/jffs/s46.log","[%s:(%d)][DS-Lite] Manual Mode.\n","setup_dslite",0x7e);
+LAB_0010138c:
+      uVar6 = ipv6_nvname_by_unit("ipv6_s46_aftr",uVar3);
+      bVar1 = FUN_0003445c(uVar6,"dgw.xpass.jp");
+      if (bVar1) {
+        pcVar4 = "xpass";
+      }
+      else {
+        uVar6 = ipv6_nvname_by_unit("ipv6_s46_aftr",uVar3);
+        bVar1 = FUN_0003445c(uVar6,"gw.transix.jp");
+        if (bVar1) {
+          pcVar4 = "transix";
+        }
+        else {
+          pcVar4 = "none";
+        }
+      }
+      nvram_pf_set(acStack_88,"s46_dslite_svc",pcVar4);
+      ipv6_nvname_by_unit("ipv6_s46_aftr",uVar3);
+      pcVar4 = FUN_00100ee8();
+      bVar1 = FUN_00034afc(pcVar4);
+      if (!bVar1) {
+        ipv6_nvname_by_unit("ipv6_s46_aftr",uVar3);
+        pcVar4 = FUN_00100ee8();
+        pcVar4 = FUN_00034b34(pcVar4,acStack_48,0x2e);
+        if (pcVar4 != (char *)0x0) goto LAB_001014fc;
+        FUN_00034638("/jffs/s46.log","[%s:(%d)][Err][DS-Lite] Cannot get AFTR addr\n","setup_dslite"
+                     ,0xb9);
+        goto LAB_00101310;
+      }
+      uVar6 = ipv6_nvname_by_unit("ipv6_s46_aftr_addr",uVar3);
+      ipv6_nvname_by_unit("ipv6_s46_aftr",uVar3);
+      pcVar4 = FUN_00100ee8();
+    }
+    nvram_set(uVar6,pcVar4);
+    FUN_00042364(DAT_001de774,0);
+    FUN_00041880(DAT_001de774);
+  }
+  else {
+    FUN_00034638("/jffs/s46.log","[%s:(%d)][DS-Lite]Invalid RA [%s]\n","setup_dslite",0x78);
+LAB_00101310:
+    FUN_00034638("/jffs/s46.log","[%s:(%d)][DS-Lite] Configure error, exit.\n","do_dslite_check",
+                 0xf3);
+  }
+  return;
+}
+

FUN_00101acc

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name FUN_00101acc
fullname FUN_00101acc
refcount 1
length 440
called
Expand for full list:
::exit
::fclose
::fopen
::fprintf
::fputs
::get_wan6_ifname
::get_wan_proto
::getopt
::getpid
::memset
::pause
::sigaction
::snprintf
::strncpy
::strtoul
::wan_primary_ifunit
FUN_00100fb0
calling
paramcount 2
address 00101acc
sig undefined __stdcall FUN_00101acc(int param_1, char * * param_2)
sym_type Function
sym_source DEFAULT
external False
--- FUN_00101acc
+++ FUN_00101acc
@@ -0,0 +1,47 @@
+
+void FUN_00101acc(int param_1,char **param_2)
+
+{
+  int iVar1;
+  char *__src;
+  FILE *__stream;
+  __pid_t _Var2;
+  char acStack_124 [128];
+  _union_1051 local_a4;
+  undefined auStack_a0 [136];
+  
+  DAT_001de774 = wan_primary_ifunit();
+  while( true ) {
+    iVar1 = getopt(param_1,param_2,"u:");
+    if (iVar1 == -1) {
+      __src = (char *)get_wan6_ifname(DAT_001de774);
+      strncpy(&DAT_001de744,__src,0x20);
+      snprintf(&DAT_001de764,0x10,"wan%d_",DAT_001de774);
+      snprintf(acStack_124,0x80,"/var/run/dslited.%d.pid",DAT_001de774);
+      get_wan_proto(&DAT_001de764);
+      __stream = fopen(acStack_124,"w");
+      if (__stream != (FILE *)0x0) {
+        _Var2 = getpid();
+        fprintf(__stream,"%d",_Var2);
+        fclose(__stream);
+      }
+      memset(auStack_a0,0,0x88);
+      local_a4.sa_handler = (__sighandler_t)&LAB_001018f4;
+      sigaction(10,(sigaction *)&local_a4,(sigaction *)0x0);
+      sigaction(0xc,(sigaction *)&local_a4,(sigaction *)0x0);
+      sigaction(0xe,(sigaction *)&local_a4,(sigaction *)0x0);
+      sigaction(0xf,(sigaction *)&local_a4,(sigaction *)0x0);
+      memset(&DAT_001de778,0,0x10);
+      FUN_00100fb0();
+      do {
+        pause();
+      } while( true );
+    }
+    if (iVar1 != 0x75) break;
+    DAT_001de774 = strtoul(optarg,(char **)0x0,0);
+  }
+  fputs("Usage: [options] -u <wan unit>\n",stderr);
+                    /* WARNING: Subroutine does not return */
+  exit(1);
+}
+

FUN_00152ce0

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name FUN_00152ce0
fullname FUN_00152ce0
refcount 1
length 548
called ::RAND_bytes
::__aeabi_idivmod
::__aeabi_uidivmod
::nvram_commit
::nvram_set
::snprintf
::strcmp
::strncpy
::strtoul
FUN_0014e948
calling
paramcount 5
address 00152ce0
sig undefined4 __stdcall FUN_00152ce0(undefined4 param_1, undefined4 param_2, undefined4 param_3, char * param_4, size_t param_5)
sym_type Function
sym_source DEFAULT
external False
--- FUN_00152ce0
+++ FUN_00152ce0
@@ -0,0 +1,66 @@
+
+undefined4
+FUN_00152ce0(undefined4 param_1,undefined4 param_2,undefined4 param_3,char *param_4,size_t param_5)
+
+{
+  undefined *puVar1;
+  int iVar2;
+  ulong uVar3;
+  int extraout_r1;
+  int extraout_r1_00;
+  int extraout_r1_01;
+  int extraout_r1_02;
+  int extraout_r1_03;
+  int extraout_r1_04;
+  int extraout_r1_05;
+  int extraout_r1_06;
+  int extraout_r1_07;
+  uint uVar4;
+  undefined4 local_40 [2];
+  char acStack_38 [7];
+  undefined local_31;
+  undefined local_30;
+  char local_2c [8];
+  ushort local_24;
+  
+  local_2c[0] = '\0';
+  local_2c[1] = '\0';
+  local_2c[2] = '\0';
+  local_2c[3] = '\0';
+  local_2c[4] = '\0';
+  local_2c[5] = '\0';
+  local_2c[6] = '\0';
+  local_2c[7] = '\0';
+  local_24 = 0;
+  puVar1 = FUN_0014e948();
+  snprintf(local_2c,10,"%s",puVar1);
+  if ((local_2c[0] == '\0') || (iVar2 = strcmp(local_2c,"12345670"), iVar2 == 0)) {
+    RAND_bytes((uchar *)local_40,8);
+    snprintf(acStack_38,9,"%08u",local_40[0]);
+    local_31 = 0;
+    uVar3 = strtoul(acStack_38,(char **)0x0,10);
+    uVar4 = uVar3 * 10;
+    __aeabi_uidivmod(uVar4 / 10000000,10,uVar3 * 0x31bde82e);
+    __aeabi_uidivmod((uVar4 >> 5) / 0xc35,10,(uVar4 >> 5) * 0xa7c5ac5);
+    __aeabi_uidivmod(uVar4 / 1000,10,uVar3 * -0x5c28f5c2);
+    __aeabi_idivmod(uVar4 / 10,10,uVar3 * 2);
+    __aeabi_uidivmod(uVar4 / 1000000,10,uVar3 * -0x60e94ee2);
+    __aeabi_uidivmod(uVar4 / 10000,10,uVar3 * 0x3126e97a);
+    __aeabi_uidivmod(uVar4 / 100,10,uVar3 * 0x33333336);
+    __aeabi_uidivmod((extraout_r1 + extraout_r1_00 + extraout_r1_01 + extraout_r1_02) * 3 +
+                     extraout_r1_03 + extraout_r1_04 + extraout_r1_05,10);
+    __aeabi_idivmod(10 - extraout_r1_06,10);
+    snprintf(acStack_38,9,"%08u",extraout_r1_07 + uVar4);
+    local_30 = 0;
+    strncpy(local_2c,acStack_38,9);
+    local_24 = local_24 & 0xff;
+    snprintf(param_4,param_5,"%s",local_2c);
+    nvram_set(param_2,local_2c);
+    nvram_commit();
+  }
+  else {
+    snprintf(param_4,param_5,"%s",local_2c);
+  }
+  return 0;
+}
+

::BIO_new

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name BIO_new
fullname ::BIO_new
refcount 1
length 0
called
calling
paramcount 1
address EXTERNAL:000002b3
sig BIO * BIO_new(BIO_METHOD * type)
sym_type Function
sym_source IMPORTED
external True

No code available for ::BIO_new

::get_first_connected_dual_wan_unit

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name get_first_connected_dual_wan_unit
fullname ::get_first_connected_dual_wan_unit
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:0000021a
sig undefined get_first_connected_dual_wan_unit(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::get_first_connected_dual_wan_unit

::pw_enc

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name pw_enc
fullname ::pw_enc
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:0000003d
sig undefined pw_enc(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::pw_enc

::d2i_X509_fp

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name d2i_X509_fp
fullname ::d2i_X509_fp
refcount 1
length 0
called
calling
paramcount 2
address EXTERNAL:0000005f
sig X509 * d2i_X509_fp(FILE * fp, X509 * * x509)
sym_type Function
sym_source IMPORTED
external True

No code available for ::d2i_X509_fp

::notify_rc_and_wait_2min

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name notify_rc_and_wait_2min
fullname ::notify_rc_and_wait_2min
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:000000ec
sig undefined notify_rc_and_wait_2min(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::notify_rc_and_wait_2min

::notify_rc_and_wait_1min

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name notify_rc_and_wait_1min
fullname ::notify_rc_and_wait_1min
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:000000ff
sig undefined notify_rc_and_wait_1min(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::notify_rc_and_wait_1min

::X509_free

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name X509_free
fullname ::X509_free
refcount 1
length 0
called
calling
paramcount 1
address EXTERNAL:000002c9
sig void X509_free(X509 * a)
sym_type Function
sym_source IMPORTED
external True

No code available for ::X509_free

::save_cert

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name save_cert
fullname ::save_cert
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:000002ec
sig undefined save_cert(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::save_cert

::BIO_free

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name BIO_free
fullname ::BIO_free
refcount 1
length 0
called
calling
paramcount 1
address EXTERNAL:00000059
sig int BIO_free(BIO * a)
sym_type Function
sym_source IMPORTED
external True

No code available for ::BIO_free

::BIO_ctrl

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name BIO_ctrl
fullname ::BIO_ctrl
refcount 1
length 0
called
calling
paramcount 4
address EXTERNAL:0000009e
sig long BIO_ctrl(BIO * bp, int cmd, long larg, void * parg)
sym_type Function
sym_source IMPORTED
external True

No code available for ::BIO_ctrl

::illegal_cert_and_key

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name illegal_cert_and_key
fullname ::illegal_cert_and_key
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:000002cc
sig undefined illegal_cert_and_key(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::illegal_cert_and_key

::is_account_bound

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name is_account_bound
fullname ::is_account_bound
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:00000193
sig undefined is_account_bound(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::is_account_bound

::BIO_s_mem

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name BIO_s_mem
fullname ::BIO_s_mem
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:00000125
sig BIO_METHOD * BIO_s_mem(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::BIO_s_mem

::PEM_read_X509

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name PEM_read_X509
fullname ::PEM_read_X509
refcount 1
length 0
called
calling
paramcount 4
address EXTERNAL:00000063
sig X509 * PEM_read_X509(FILE * fp, X509 * * x, pem_password_cb * cb, void * u)
sym_type Function
sym_source IMPORTED
external True

No code available for ::PEM_read_X509

::pthread_equal

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name pthread_equal
fullname ::pthread_equal
refcount 1
length 0
called
calling
paramcount 2
address EXTERNAL:00000094
sig int pthread_equal(pthread_t __thread1, pthread_t __thread2)
sym_type Function
sym_source IMPORTED
external True

No code available for ::pthread_equal

::resolv_addr6

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name resolv_addr6
fullname ::resolv_addr6
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:00000106
sig undefined resolv_addr6(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::resolv_addr6

::X509V3_EXT_print

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name X509V3_EXT_print
fullname ::X509V3_EXT_print
refcount 1
length 0
called
calling
paramcount 4
address EXTERNAL:00000212
sig int X509V3_EXT_print(BIO * out, X509_EXTENSION * ext, ulong flag, int indent)
sym_type Function
sym_source IMPORTED
external True

No code available for ::X509V3_EXT_print

::restore_cert

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name restore_cert
fullname ::restore_cert
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:00000217
sig undefined restore_cert(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::restore_cert

::X509_get_ext

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name X509_get_ext
fullname ::X509_get_ext
refcount 1
length 0
called
calling
paramcount 2
address EXTERNAL:0000001d
sig X509_EXTENSION * X509_get_ext(X509 * x, int loc)
sym_type Function
sym_source IMPORTED
external True

No code available for ::X509_get_ext

::adjust_62_nv_list

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name adjust_62_nv_list
fullname ::adjust_62_nv_list
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:000001d4
sig undefined adjust_62_nv_list(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::adjust_62_nv_list

::X509_get_ext_by_NID

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name X509_get_ext_by_NID
fullname ::X509_get_ext_by_NID
refcount 1
length 0
called
calling
paramcount 3
address EXTERNAL:000000e0
sig int X509_get_ext_by_NID(X509 * x, int nid, int lastpos)
sym_type Function
sym_source IMPORTED
external True

No code available for ::X509_get_ext_by_NID

::RAND_bytes

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name RAND_bytes
fullname ::RAND_bytes
refcount 1
length 0
called
calling
paramcount 2
address EXTERNAL:00000140
sig int RAND_bytes(uchar * buf, int num)
sym_type Function
sym_source IMPORTED
external True

No code available for ::RAND_bytes

::exec_and_return_string

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name exec_and_return_string
fullname ::exec_and_return_string
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:00000034
sig undefined exec_and_return_string(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::exec_and_return_string

::get_ddns_macaddr

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name get_ddns_macaddr
fullname ::get_ddns_macaddr
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:0000022e
sig undefined get_ddns_macaddr(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::get_ddns_macaddr

::strnlen

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name strnlen
fullname ::strnlen
refcount 1
length 0
called
calling
paramcount 2
address EXTERNAL:00000127
sig size_t strnlen(char * __string, size_t __maxlen)
sym_type Function
sym_source IMPORTED
external True

No code available for ::strnlen

::is_valid_oauth_code

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name is_valid_oauth_code
fullname ::is_valid_oauth_code
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:0000023d
sig undefined is_valid_oauth_code(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::is_valid_oauth_code

::get_pid_by_process_name

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name get_pid_by_process_name
fullname ::get_pid_by_process_name
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:00000060
sig undefined get_pid_by_process_name(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::get_pid_by_process_name

::update_srv_cert_if_lan_ip_changed

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name update_srv_cert_if_lan_ip_changed
fullname ::update_srv_cert_if_lan_ip_changed
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:00000273
sig undefined update_srv_cert_if_lan_ip_changed(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::update_srv_cert_if_lan_ip_changed

::update_srv_cert_if_wan_ip_changed

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name update_srv_cert_if_wan_ip_changed
fullname ::update_srv_cert_if_wan_ip_changed
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:000001ce
sig undefined update_srv_cert_if_wan_ip_changed(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::update_srv_cert_if_wan_ip_changed

::aae_sendIpcMsgAndWaitResp

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name aae_sendIpcMsgAndWaitResp
fullname ::aae_sendIpcMsgAndWaitResp
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:0000004a
sig undefined aae_sendIpcMsgAndWaitResp(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::aae_sendIpcMsgAndWaitResp

::update_srv_cert_if_wan_ipv6_changed

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name update_srv_cert_if_wan_ipv6_changed
fullname ::update_srv_cert_if_wan_ipv6_changed
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:0000018d
sig undefined update_srv_cert_if_wan_ipv6_changed(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::update_srv_cert_if_wan_ipv6_changed

::remove_all_uploaded_cert_from_jffs

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name remove_all_uploaded_cert_from_jffs
fullname ::remove_all_uploaded_cert_from_jffs
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:00000050
sig undefined remove_all_uploaded_cert_from_jffs(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::remove_all_uploaded_cert_from_jffs

::update_srv_cert_if_ddns_changed

Function Meta

Key new_FW_RT_AX55_300438652332_sbin_rc
name update_srv_cert_if_ddns_changed
fullname ::update_srv_cert_if_ddns_changed
refcount 1
length 0
called
calling
paramcount 0
address EXTERNAL:00000041
sig undefined update_srv_cert_if_ddns_changed(void)
sym_type Function
sym_source IMPORTED
external True

No code available for ::update_srv_cert_if_ddns_changed

Modified

Modified functions contain code changes

FUN_00128ecc

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.87
i_ratio 0.47
m_ratio 0.98
b_ratio 0.97
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_00128ecc FUN_00130548
fullname FUN_00128ecc FUN_00130548
refcount 1 1
length 2500 2548
called
Expand for full list:
::asusdebuglog
::check_if_dir_exist
::dbg
::fclose
::fopen
::fprintf
::getAmasSupportMode
::get_auth_code
::getpid
::hw_auth_check
::kill
::memset
::mkdir
::nvram_get_int
::nvram_set
::nvram_set_int
::select
::sigaction
::signal
::sleep
::snprintf
::strchr
::strcmp
::strcspn
::strncpy
::strspn
::time
::uptime
FUN_00119f1c
FUN_0011a544
FUN_0011a6dc
FUN_0011a730
FUN_0011a7b0
FUN_0011aa08
FUN_0011cf48
FUN_0011f2fc
FUN_001281b8
Expand for full list:
::asusdebuglog
::check_if_dir_exist
::dbg
::fclose
::fopen
::fprintf
::getAmasSupportMode
::get_auth_code
::getpid
::hw_auth_check
::kill
::memset
::mkdir
::nvram_get_int
::nvram_set
::nvram_set_int
::select
::sigaction
::signal
::sleep
::snprintf
::strchr
::strcmp
::strcspn
::strncpy
::strspn
::time
::uptime
FUN_001209f0
FUN_00121018
FUN_001211b0
FUN_00121204
FUN_00121284
FUN_001214dc
FUN_00123be4
FUN_00126110
FUN_0012f810
calling FUN_0001ca70 FUN_0001d490
paramcount 0 0
address 00128ecc 00130548
sig undefined4 __stdcall FUN_00128ecc(void) undefined4 __stdcall FUN_00130548(void)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_00128ecc Called Diff

--- FUN_00128ecc called
+++ FUN_00130548 called
@@ -29,9 +29,9 @@
-FUN_00119f1c
-FUN_0011a544
-FUN_0011a6dc
-FUN_0011a730
-FUN_0011a7b0
-FUN_0011aa08
-FUN_0011cf48
-FUN_0011f2fc
-FUN_001281b8
+FUN_001209f0
+FUN_00121018
+FUN_001211b0
+FUN_00121204
+FUN_00121284
+FUN_001214dc
+FUN_00123be4
+FUN_00126110
+FUN_0012f810

FUN_00128ecc Calling Diff

--- FUN_00128ecc calling
+++ FUN_00130548 calling
@@ -1 +1 @@
-FUN_0001ca70
+FUN_0001d490

FUN_00128ecc Diff

--- FUN_00128ecc
+++ FUN_00130548
@@ -1,292 +1,294 @@
 
-undefined4 FUN_00128ecc(void)
+undefined4 FUN_00130548(void)
 
 {
   char cVar1;
   undefined4 *puVar2;
   time_t tVar3;
   uint uVar4;
   char *pcVar5;
   char *pcVar6;
   int iVar7;
   undefined *puVar8;
   size_t sVar9;
   size_t sVar10;
   int iVar11;
   int iVar12;
   FILE *__stream;
   __pid_t __pid;
   undefined4 uVar13;
   __fd_mask *p_Var14;
   uint uVar15;
   undefined4 *puVar16;
   int *piVar17;
   int *piVar18;
   int local_324;
   char local_314 [4];
   undefined4 auStack_310 [2];
   char local_308 [4];
   uint local_304;
   undefined auStack_300 [28];
   char acStack_2e4 [48];
   undefined auStack_2b4 [68];
   undefined auStack_270 [68];
   uint local_22c;
   undefined auStack_228 [124];
   _union_1051 local_1ac [33];
   undefined4 local_128;
   byte local_120 [255];
   undefined local_21;
   
-  dbg("%s(0x%04x): Start amas_wlcconnect\n","amas_wlcconnect_main",0xf07);
+  dbg("%s(0x%04x): Start amas_wlcconnect\n","amas_wlcconnect_main",0xf0c);
   tVar3 = time((time_t *)0x0);
   uVar4 = getAmasSupportMode();
   if ((uVar4 & 2) == 0) {
-    uVar13 = 0xf11;
+    uVar13 = 0xf16;
     pcVar5 = "%s(0x%04x): not support RE\n";
   }
   else {
     memset(acStack_2e4,0,0x30);
     memset(auStack_2b4,0,0x41);
     memset(auStack_270,0,0x41);
     snprintf(acStack_2e4,0x2f,"%ld|%s",tVar3,"g2hkhuig238789ajkhc");
     uVar13 = get_auth_code(acStack_2e4,auStack_2b4,0x41);
     pcVar5 = (char *)hw_auth_check(&DAT_0,uVar13,tVar3,auStack_270,0x41);
     snprintf(acStack_2e4,0x2f,"%ld|%s|%s",tVar3,"g2hkhuig238789ajkhc",&DAT_0);
     pcVar6 = (char *)get_auth_code(acStack_2e4,auStack_2b4,0x41);
     iVar7 = strcmp(pcVar5,pcVar6);
     if (iVar7 == 0) {
-      dbg("%s(0x%04x): This is ASUS router\n","amas_wlcconnect_main",0xf24);
-      DAT_1 = nvram_get_int(&DAT_0018c889);
+      dbg("%s(0x%04x): This is ASUS router\n","amas_wlcconnect_main",0xf29);
+      DAT_1 = nvram_get_int(&DAT_00196c4a);
       DAT_2 = 0;
       DAT_3 = 0;
       DAT_4 = 0;
       nvram_set("amas_wlc_action","");
-      puVar8 = FUN_00119f1c();
-      pcVar5 = FUN_00119f1c();
+      puVar8 = FUN_001209f0();
+      pcVar5 = FUN_001209f0();
       sVar9 = strspn(pcVar5," ");
       strncpy((char *)local_120,puVar8 + sVar9,0x100);
       local_21 = 0;
       sVar10 = strcspn((char *)local_120," ");
       local_120[sVar10] = 0;
       pcVar5 = strchr(puVar8 + sVar9,0x20);
       while (local_120[0] != 0) {
         pcVar6 = "";
         if (pcVar5 != (char *)0x0) {
           sVar9 = strspn(pcVar5," ");
           pcVar6 = pcVar5 + sVar9;
         }
         strncpy((char *)local_120,pcVar6,0x100);
         local_21 = 0;
         sVar9 = strcspn((char *)local_120," ");
         local_120[sVar9] = 0;
         pcVar5 = strchr(pcVar6,0x20);
       }
-      FUN_0011a6dc(0);
+      FUN_001211b0(0);
       nvram_set_int("amas_wlc_request_lock",0);
       iVar7 = nvram_get_int("amas_wlcconnect_handler_pid");
       local_304 = (uint)local_120[0];
       memset(auStack_300,0,0x1c);
       if (0 < iVar7) {
-        iVar11 = FUN_0011a730(iVar7);
+        iVar11 = FUN_00121204(iVar7);
         if (iVar11 != 0) {
           kill(iVar7,0xf);
           iVar11 = 0x1e;
           do {
             if (DAT_1 != 0) {
               uVar13 = uptime();
-              dbg("%s(0x%04x): WLC %lu: Waitting Pre amas_wlcconnect\n","amas_wlcconnect_main",0xf48
+              dbg("%s(0x%04x): WLC %lu: Waitting Pre amas_wlcconnect\n","amas_wlcconnect_main",0xf4d
                   ,uVar13);
             }
-            pcVar5 = FUN_00119f1c();
+            pcVar5 = FUN_001209f0();
             iVar12 = strcmp(pcVar5,"1");
             if (iVar12 == 0) {
               asusdebuglog(6,"amas_wlcconnect.log",0,1,0,"Waitting Pre amas_wlcconnect\n");
             }
-            iVar12 = FUN_0011a730(iVar7);
+            iVar12 = FUN_00121204(iVar7);
             if (iVar12 == 0) break;
             sleep(1);
             iVar11 = iVar11 + -1;
           } while (iVar11 != 0);
-          iVar11 = FUN_0011a730(iVar7);
+          iVar11 = FUN_00121204(iVar7);
           if (iVar11 != 0) {
             kill(iVar7,9);
           }
         }
         nvram_set_int("amas_wlcconnect_handler_pid",0);
       }
       for (iVar7 = 0; iVar7 < DAT_4; iVar7 = iVar7 + 1) {
         snprintf((char *)&local_304,0x20,"amas_wlc%d_connection_pid",iVar7);
         iVar11 = nvram_get_int(&local_304);
         if (0 < iVar11) {
           __pid = nvram_get_int(&local_304);
           kill(__pid,9);
           nvram_set_int(&local_304,0);
         }
       }
       sleep(1);
-      FUN_0011f2fc();
-      local_1ac[0].sa_handler = FUN_0011cf48;
+      FUN_00126110();
+      local_1ac[0].sa_handler = FUN_00123be4;
       local_128 = 0x40000000;
       sigaction(0xf,(sigaction *)local_1ac,(sigaction *)0x0);
       signal(0x11,(__sighandler_t)0x1);
       if (DAT_1 != 0) {
         uVar13 = uptime();
         dbg("%s(0x%04x): WLC %lu: amas_free_all_memory_exit signal handler is registered for SIGTERM...\n"
-            ,"amas_wlcconnect_main",0xf6a,uVar13);
-      }
-      pcVar5 = FUN_00119f1c();
+            ,"amas_wlcconnect_main",0xf6f,uVar13);
+      }
+      pcVar5 = FUN_001209f0();
       iVar7 = strcmp(pcVar5,"1");
       if (iVar7 == 0) {
         asusdebuglog(6,"amas_wlcconnect.log",0,1,0,
                      "amas_free_all_memory_exit signal handler is registered for SIGTERM...\n");
       }
       if (DAT_1 != 0) {
         uVar13 = uptime();
-        dbg("%s(0x%04x): WLC %lu: Ignore SIGCHLD...\n","amas_wlcconnect_main",0xf6b,uVar13);
-      }
-      pcVar5 = FUN_00119f1c();
+        dbg("%s(0x%04x): WLC %lu: Ignore SIGCHLD...\n","amas_wlcconnect_main",0xf70,uVar13);
+      }
+      pcVar5 = FUN_001209f0();
       iVar7 = strcmp(pcVar5,"1");
       if (iVar7 == 0) {
         asusdebuglog(6,"amas_wlcconnect.log",0,1,0,"Ignore SIGCHLD...\n");
       }
       DAT_5 = getpid();
       __stream = fopen("/var/run/amas_wlcconnect.pid","w");
       if (__stream != (FILE *)0x0) {
         fprintf(__stream,"%d",DAT_5);
         fclose(__stream);
       }
       iVar7 = check_if_dir_exist("/tmp/amas/");
       if (iVar7 == 0) {
         if (DAT_1 != 0) {
           uVar13 = uptime();
-          dbg("%s(0x%04x): WLC %lu: create a folder for cfg_mnt (%s)\n","amas_wlcconnect_main",0xf76
+          dbg("%s(0x%04x): WLC %lu: create a folder for cfg_mnt (%s)\n","amas_wlcconnect_main",0xf7b
               ,uVar13,"/tmp/amas/");
         }
-        pcVar5 = FUN_00119f1c();
+        pcVar5 = FUN_001209f0();
         iVar7 = strcmp(pcVar5,"1");
         if (iVar7 == 0) {
           asusdebuglog(6,"amas_wlcconnect.log",0,1,0,"create a folder for cfg_mnt (%s)\n",
                        "/tmp/amas/");
         }
         mkdir("/tmp/amas/",0x1ed);
       }
-      iVar11 = FUN_0011a7b0();
+      iVar11 = FUN_00121284();
       iVar7 = DAT_4;
       if (iVar11 != 0) {
         local_22c = 0;
         memset(auStack_228,0,0x1c);
         pcVar5 = local_314;
         puVar2 = &DAT_6;
         do {
           puVar16 = puVar2;
           pcVar6 = pcVar5;
           uVar13 = puVar16[1];
           *(undefined4 *)pcVar6 = *puVar16;
           *(undefined4 *)(pcVar6 + 4) = uVar13;
           pcVar5 = pcVar6 + 8;
           puVar2 = puVar16 + 2;
         } while (puVar16 + 2 != &DAT_7);
         cVar1 = *(char *)(puVar16 + 3);
         pcVar5[0] = 'X';
         pcVar5[1] = 'X';
         pcVar5[2] = 'X';
         pcVar5[3] = '_';
         pcVar6[0xc] = cVar1;
         piVar18 = &DAT_8;
         piVar17 = &DAT_9;
         for (local_324 = 0; local_324 < iVar7; local_324 = local_324 + 1) {
           snprintf(local_314,0xd,"amas_wlc%d_",local_324);
-          FUN_0011aa08(local_314,"connect_timeout",(char *)&local_22c);
+          FUN_001214dc(local_314,"connect_timeout",(char *)&local_22c);
           iVar11 = nvram_get_int();
           *piVar17 = iVar11;
           if (iVar11 < 0xb4) {
             if (iVar11 != 0) {
               if (DAT_1 != 0) {
                 uVar13 = uptime();
                 dbg("%s(0x%04x): WLC %lu: Connection Timeout value(%d) invalid!!!.\n",
                     "init_conn_time",0x3c,uVar13,*piVar17);
               }
-              pcVar5 = FUN_00119f1c();
+              pcVar5 = FUN_001209f0();
               iVar11 = strcmp(pcVar5,"1");
               if (iVar11 == 0) {
                 asusdebuglog(6,"amas_wlcconnect.log",0,1,0,
                              "Connection Timeout value(%d) invalid!!!.\n",*piVar17);
               }
-              asusdebuglog(6,"/jffs/amas_wlcconnect.log",0,1,0,
-                           "Connection Timeout value(%d) invalid!!!.\n",*piVar17);
+              asusdebuglog(6,"/jffs/amas_wlcconnect.log",0,1,0x200,
+                           "%s(%d) - Connection Timeout value(%d) invalid!!!.\n","init_conn_time",
+                           0x3c,*piVar17);
             }
             *piVar17 = 0xb4;
           }
-          FUN_0011aa08(local_314,"profile_timeout",(char *)&local_22c);
+          FUN_001214dc(local_314,"profile_timeout",(char *)&local_22c);
           iVar11 = nvram_get_int();
           *piVar18 = iVar11;
           if (iVar11 < 0x1e) {
             if (iVar11 != 0) {
               if (DAT_1 != 0) {
                 uVar13 = uptime();
                 dbg("%s(0x%04x): WLC %lu: Profile switch Timeout value(%d) invalid!!!.\n",
                     "init_conn_time",0x42,uVar13,*piVar18);
               }
-              pcVar5 = FUN_00119f1c();
+              pcVar5 = FUN_001209f0();
               iVar11 = strcmp(pcVar5,"1");
               if (iVar11 == 0) {
                 asusdebuglog(6,"amas_wlcconnect.log",0,1,0,
                              "Profile switch Timeout value(%d) invalid!!!.\n",*piVar18);
               }
-              asusdebuglog(6,"/jffs/amas_wlcconnect.log",0,1,0,
-                           "Profile switch Timeout value(%d) invalid!!!.\n",*piVar18);
+              asusdebuglog(6,"/jffs/amas_wlcconnect.log",0,1,0x200,
+                           "%s(%d) - Profile switch Timeout value(%d) invalid!!!.\n",
+                           "init_conn_time",0x42,*piVar18);
             }
             *piVar18 = 0x1e;
           }
           piVar18 = piVar18 + 1;
           piVar17 = piVar17 + 1;
         }
-        FUN_0011a544(0);
+        FUN_00121018(0);
         while( true ) {
           iVar7 = 0;
           p_Var14 = (__fd_mask *)&local_22c;
           do {
             iVar7 = iVar7 + 1;
             *p_Var14 = 0;
             p_Var14 = p_Var14 + 1;
           } while (iVar7 != 0x20);
           uVar4 = DAT_10 & 0x1f;
           uVar15 = DAT_10 + 0x1f;
           if (-1 < (int)DAT_10) {
             uVar15 = DAT_10;
           }
           iVar7 = ((int)uVar15 >> 5) * 4;
           if ((int)DAT_10 < 1) {
             uVar4 = -(-DAT_10 & 0x1f);
           }
           *(uint *)(auStack_228 + iVar7 + -4) =
                *(uint *)(auStack_228 + iVar7 + -4) | 1 << (uVar4 & 0xff);
           iVar7 = select(DAT_10 + 1,(fd_set *)&local_22c,(fd_set *)0x0,(fd_set *)0x0,
                          (timeval *)0x0);
           if (iVar7 < 0) break;
           uVar4 = DAT_10 + 0x1f;
           if (-1 < (int)DAT_10) {
             uVar4 = DAT_10;
           }
           uVar15 = DAT_10 & 0x1f;
           if ((int)DAT_10 < 1) {
             uVar15 = -(-DAT_10 & 0x1f);
           }
           if ((*(uint *)(auStack_228 + ((int)uVar4 >> 5) * 4 + -4) & 1 << (uVar15 & 0xff)) != 0) {
-            FUN_001281b8();
-          }
-        }
-      }
-      uVar13 = 0xf94;
+            FUN_0012f810();
+          }
+        }
+      }
+      uVar13 = 0xf99;
       pcVar5 = "%s(0x%04x):  amas_wlcconnect exit\n";
     }
     else {
-      uVar13 = 0xf27;
+      uVar13 = 0xf2c;
       pcVar5 = "%s(0x%04x): This is not ASUS router\n";
     }
   }
   dbg(pcVar5,"amas_wlcconnect_main",uVar13);
   return 0;
 }
 

FUN_001164c0

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.48
i_ratio 0.19
m_ratio 0.8
b_ratio 0.83
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_001164c0 FUN_0011cefc
fullname FUN_001164c0 FUN_0011cefc
refcount 3 3
length 940 932
called
Expand for full list:
::atoi
::memset
::nvram_default_get
::nvram_get
::nvram_get_int
::nvram_set
::nvram_set_int
::strlcat
::wgn_get_wl_unit
::wgn_subnet_list_find
::wgn_subnet_list_get_from_nvram
::wgn_vlan_list_find
::wgn_vlan_list_get_from_nvram
::wgn_vlan_list_wl_subunit_shift
FUN_0010fdd0
FUN_00110948
FUN_00111ad8
FUN_00111f54
FUN_001120b8
FUN_00112160
FUN_00113340
FUN_00113374
FUN_001154a8
Expand for full list:
::atoi
::memset
::nvram_default_get
::nvram_get
::nvram_get_int
::nvram_set
::nvram_set_int
::strlcat
::wgn_get_wl_unit
::wgn_subnet_list_find
::wgn_subnet_list_get_from_nvram
::wgn_vlan_list_find
::wgn_vlan_list_get_from_nvram
::wgn_vlan_list_wl_subunit_shift
FUN_00116758
FUN_001172d0
FUN_00118538
FUN_001189b0
FUN_00118b14
FUN_00118bbc
FUN_00119d8c
FUN_00119dc0
FUN_0011bee4
calling FUN_0002db20
FUN_0002fa54
FUN_0002e8b4
FUN_000307ec
paramcount 0 0
address 001164c0 0011cefc
sig undefined __stdcall FUN_001164c0(void) undefined __stdcall FUN_0011cefc(void)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_001164c0 Called Diff

--- FUN_001164c0 called
+++ FUN_0011cefc called
@@ -15,9 +15,9 @@
-FUN_0010fdd0
-FUN_00110948
-FUN_00111ad8
-FUN_00111f54
-FUN_001120b8
-FUN_00112160
-FUN_00113340
-FUN_00113374
-FUN_001154a8
+FUN_00116758
+FUN_001172d0
+FUN_00118538
+FUN_001189b0
+FUN_00118b14
+FUN_00118bbc
+FUN_00119d8c
+FUN_00119dc0
+FUN_0011bee4

FUN_001164c0 Calling Diff

--- FUN_001164c0 calling
+++ FUN_0011cefc calling
@@ -1,2 +1,2 @@
-FUN_0002db20
-FUN_0002fa54
+FUN_0002e8b4
+FUN_000307ec

FUN_001164c0 Diff

--- FUN_001164c0
+++ FUN_0011cefc
@@ -1,108 +1,108 @@
 
-void FUN_001164c0(void)
+void FUN_0011cefc(void)
 
 {
   bool bVar1;
   int iVar2;
   char *pcVar3;
-  int *piVar4;
-  void *pvVar5;
+  void *pvVar4;
+  int *piVar5;
   char *pcVar6;
   char *pcVar7;
-  uint uStack_6a27c;
-  char *pcStack_6a274;
-  uint uStack_6a260;
-  int iStack_6a25c;
-  uint uStack_6a258;
-  int iStack_6a254;
-  int iStack_6a250;
-  char acStack_6a24c [36];
-  char acStack_6a228 [4100];
-  char acStack_69224 [4100];
-  char acStack_68220 [12800];
-  undefined auStack_65020 [25600];
-  undefined auStack_5ec20 [388096];
+  uint local_bf78;
+  char *local_bf70;
+  uint local_bf60;
+  int local_bf5c;
+  uint local_bf58;
+  int local_bf54;
+  int local_bf50;
+  char acStack_bf4c [36];
+  char local_bf28 [2052];
+  char local_b724 [2052];
+  char acStack_af20 [6400];
+  undefined auStack_9620 [12800];
+  undefined auStack_6420 [25600];
   
-  uStack_6a258 = 0;
-  iStack_6a254 = 0;
-  iStack_6a250 = 0;
-  memset(acStack_6a228,0,0x1001);
-  memset(acStack_69224,0,0x1001);
+  local_bf58 = 0;
+  local_bf54 = 0;
+  local_bf50 = 0;
+  memset(local_bf28,0,0x801);
+  memset(local_b724,0,0x801);
   iVar2 = nvram_get("sw_mode");
   if (iVar2 == 0) {
     pcVar3 = (char *)nvram_default_get("sw_mode");
     iVar2 = atoi(pcVar3);
   }
   else {
     iVar2 = nvram_get_int();
   }
   iVar2 = iVar2 + -1;
   if (iVar2 != 0) {
     iVar2 = 1;
   }
-  if (((iVar2 == 0) || (bVar1 = FUN_0010fdd0(), bVar1)) ||
+  if (((iVar2 == 0) || (bVar1 = FUN_00116758(), bVar1)) ||
      (iVar2 = nvram_get_int("re_mode"), iVar2 == 1)) {
     iVar2 = nvram_get_int("re_mode");
     if (iVar2 == 1) {
-      FUN_00111ad8();
+      FUN_00118538();
     }
-    memset(acStack_68220,0,0x3200);
-    pcVar3 = FUN_00110948(acStack_68220,0x100,&uStack_6a258);
-    if ((pcVar3 != (char *)0x0) && (uStack_6a258 != 0)) {
-      memset(auStack_65020,0,0x6400);
-      iVar2 = wgn_vlan_list_get_from_nvram(auStack_65020,0x100,&iStack_6a254);
-      if ((iVar2 != 0) && (iStack_6a254 != 0)) {
-        memset(auStack_5ec20,0,0x5ec00);
-        iVar2 = wgn_subnet_list_get_from_nvram(auStack_5ec20,0x100,&iStack_6a250);
-        if ((iVar2 != 0) && (iStack_6a250 != 0)) {
+    memset(acStack_af20,0,0x1900);
+    pcVar3 = FUN_001172d0(acStack_af20,0x80,&local_bf58);
+    if ((pcVar3 != (char *)0x0) && (local_bf58 != 0)) {
+      memset(auStack_9620,0,0x3200);
+      iVar2 = wgn_vlan_list_get_from_nvram(auStack_9620,0x80,&local_bf54);
+      if ((iVar2 != 0) && (local_bf54 != 0)) {
+        pvVar4 = memset(auStack_6420,0,0x6400);
+        iVar2 = wgn_subnet_list_get_from_nvram(pvVar4,0x80,&local_bf50);
+        if ((iVar2 != 0) && (local_bf50 != 0)) {
           iVar2 = nvram_get_int("re_mode");
           if (iVar2 == 1) {
-            wgn_vlan_list_wl_subunit_shift(auStack_65020,iStack_6a254);
+            wgn_vlan_list_wl_subunit_shift(auStack_9620,local_bf54);
           }
-          pcStack_6a274 = acStack_68220;
-          for (uStack_6a27c = 0; uStack_6a27c < uStack_6a258; uStack_6a27c = uStack_6a27c + 1) {
-            piVar4 = (int *)wgn_vlan_list_find(auStack_65020,iStack_6a254,pcStack_6a274 + 0x11);
-            if (((((piVar4 != (int *)0x0) && (piVar4[1] != -1)) && (*piVar4 != 0)) &&
-                ((wgn_get_wl_unit(&uStack_6a260,&iStack_6a25c,piVar4), -1 < (int)uStack_6a260 &&
-                 (0 < iStack_6a25c)))) &&
-               ((iVar2 = FUN_001120b8(uStack_6a260,iStack_6a25c), iVar2 != 0 &&
-                (iVar2 = FUN_00111f54(uStack_6a260,iStack_6a25c), iVar2 == 0)))) {
-              memset(acStack_6a24c,0,0x21);
-              pvVar5 = FUN_00112160(uStack_6a260,iStack_6a25c,acStack_6a24c,0x20);
-              if ((pvVar5 != (void *)0x0) && (piVar4[1] != 0)) {
+          local_bf70 = acStack_af20;
+          for (local_bf78 = 0; local_bf78 < local_bf58; local_bf78 = local_bf78 + 1) {
+            piVar5 = (int *)wgn_vlan_list_find(auStack_9620,local_bf54,local_bf70 + 0x11);
+            if (((((piVar5 != (int *)0x0) && (piVar5[1] != -1)) && (*piVar5 != 0)) &&
+                ((wgn_get_wl_unit(&local_bf60,&local_bf5c,piVar5), -1 < (int)local_bf60 &&
+                 (0 < local_bf5c)))) &&
+               ((iVar2 = FUN_00118b14(local_bf60,local_bf5c), iVar2 != 0 &&
+                (iVar2 = FUN_001189b0(local_bf60,local_bf5c), iVar2 == 0)))) {
+              memset(acStack_bf4c,0,0x21);
+              pvVar4 = FUN_00118bbc(local_bf60,local_bf5c,acStack_bf4c,0x20);
+              if ((pvVar4 != (void *)0x0) && (piVar5[1] != 0)) {
                 iVar2 = nvram_get_int("re_mode");
                 if (iVar2 == 1) {
                   pcVar6 = (char *)0x0;
                   pcVar3 = (char *)0x0;
                 }
                 else {
-                  pcVar3 = (char *)wgn_subnet_list_find(auStack_5ec20,iStack_6a250);
+                  pcVar3 = (char *)wgn_subnet_list_find(auStack_6420,local_bf50);
                   if (pcVar3 == (char *)0x0) goto LAB_0;
                   pcVar6 = pcVar3 + 0x11;
                 }
-                pcVar7 = acStack_68220 + uStack_6a27c * 0x32;
-                iVar2 = FUN_001154a8(pcVar7,pcVar3,pcVar6,acStack_6a24c,piVar4[1]);
+                pcVar7 = acStack_af20 + local_bf78 * 0x32;
+                iVar2 = FUN_0011bee4(pcVar7,pcVar3,pcVar6,acStack_bf4c,piVar5[1]);
                 if (iVar2 != 0) {
-                  strlcat(acStack_69224,acStack_6a24c,0x1001);
-                  strlcat(acStack_69224," ",0x1001);
-                  strlcat(acStack_6a228,pcVar7,0x1001);
-                  strlcat(acStack_6a228," ",0x1001);
+                  strlcat(local_b724,acStack_bf4c,0x801);
+                  strlcat(local_b724," ",0x801);
+                  strlcat(local_bf28,pcVar7,0x801);
+                  strlcat(local_bf28," ",0x801);
                 }
               }
             }
 LAB_0:
-            pcStack_6a274 = pcStack_6a274 + 0x32;
+            local_bf70 = local_bf70 + 0x32;
           }
-          if ((acStack_69224[0] != '\0') && (acStack_6a228[0] != '\0')) {
-            FUN_00113340(acStack_69224);
-            FUN_00113374(acStack_69224);
-            nvram_set("wgn_ifnames",acStack_6a228);
+          if ((local_b724[0] != '\0') && (local_bf28[0] != '\0')) {
+            FUN_00119d8c(local_b724);
+            FUN_00119dc0(local_b724);
+            nvram_set("wgn_ifnames",local_bf28);
             nvram_set_int("wgn_enabled",1);
           }
         }
       }
     }
   }
   return;
 }
 

FUN_00141fac

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling
ratio 0.98
i_ratio 0.64
m_ratio 0.97
b_ratio 0.99
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_00141fac FUN_00149b54
fullname FUN_00141fac FUN_00149b54
refcount 3 3
length 352 356
called ::asusdebuglog
::dbg
::f_exists
::nvram_get_int
::nvram_set_int
::snprintf
::strcat
::strcpy
::asusdebuglog
::dbg
::f_exists
::nvram_get_int
::nvram_set_int
::snprintf
::strcat
::strcpy
calling FUN_00142574 FUN_0014a120
paramcount 2 2
address 00141fac 00149b54
sig undefined __stdcall FUN_00141fac(undefined4 param_1, undefined4 param_2) undefined __stdcall FUN_00149b54(undefined4 param_1, undefined4 param_2)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_00141fac Calling Diff

--- FUN_00141fac calling
+++ FUN_00149b54 calling
@@ -1 +1 @@
-FUN_00142574
+FUN_0014a120

FUN_00141fac Diff

--- FUN_00141fac
+++ FUN_00149b54
@@ -1,51 +1,51 @@
 
-void FUN_00141fac(undefined4 param_1,undefined4 param_2)
+void FUN_00149b54(undefined4 param_1,undefined4 param_2)
 
 {
   undefined2 uVar1;
   undefined4 *puVar2;
   int iVar3;
   undefined4 uVar4;
   char *pcVar5;
   undefined4 *puVar6;
   char *pcVar7;
   char local_8c [4];
   undefined4 auStack_88 [2];
   undefined2 local_80 [2];
   char acStack_7c [104];
   
   pcVar7 = local_8c;
   puVar2 = &DAT_0;
   do {
     puVar6 = puVar2;
     pcVar5 = pcVar7;
     uVar4 = puVar6[1];
     *(undefined4 *)pcVar5 = *puVar6;
     *(undefined4 *)(pcVar5 + 4) = uVar4;
     pcVar7 = pcVar5 + 8;
     puVar2 = puVar6 + 2;
   } while (puVar6 + 2 != &DAT_1);
   uVar1 = *(undefined2 *)(puVar6 + 3);
   pcVar7[0] = 'X';
   pcVar7[1] = 'X';
   pcVar7[2] = 'X';
   pcVar7[3] = 'X';
   *(undefined2 *)(pcVar5 + 0xc) = uVar1;
   snprintf(local_8c,0xe,"amas_wlc%d_",param_1);
   if ((0 < DAT_2) || (iVar3 = f_exists("/tmp/SSD_DEBUG"), 0 < iVar3)) {
     dbg("SSD %s(%d): unit(%d) - change site survey status to %d\n","update_site_survey_status",0x10b
         ,param_1,param_2);
   }
   iVar3 = nvram_get_int("ssd_syslog");
   if (iVar3 != 0) {
     asusdebuglog(6,"amas_ssd.log",0,1,0,"unit(%d) - change site survey status to %d\n",param_1,
                  param_2);
   }
-  asusdebuglog(6,"/jffs/.sys/amas/amas_ssd_dbg.log",0,1,0,
+  asusdebuglog(6,"/jffs/.sys/amas/amas_ssd_dbg.log",0,1,0x200,
                "unit(%d) - change site survey status to %d\n",param_1,param_2);
   pcVar7 = strcpy(acStack_7c,local_8c);
   pcVar7 = strcat(pcVar7,"ss_status");
   nvram_set_int(pcVar7,param_2);
   return;
 }
 

FUN_0011af60

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.91
i_ratio 0.55
m_ratio 0.96
b_ratio 0.96
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_0011af60 FUN_00121ae0
fullname FUN_0011af60 FUN_00121ae0
refcount 3 3
length 592 640
called ::asusdebuglog
::dbg
::nvram_get
::nvram_get_int
::sleep
::snprintf
::strcmp
::uptime
FUN_00119f1c
FUN_0011aa08
::asusdebuglog
::dbg
::nvram_get
::nvram_get_int
::sleep
::snprintf
::strcmp
::uptime
FUN_001209f0
FUN_001214dc
calling FUN_00122678
FUN_00124dc4
FUN_00129508
FUN_0012c180
paramcount 1 1
address 0011af60 00121ae0
sig undefined4 __stdcall FUN_0011af60(undefined4 param_1) undefined4 __stdcall FUN_00121ae0(undefined4 param_1)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_0011af60 Called Diff

--- FUN_0011af60 called
+++ FUN_00121ae0 called
@@ -9,2 +9,2 @@
-FUN_00119f1c
-FUN_0011aa08
+FUN_001209f0
+FUN_001214dc

FUN_0011af60 Calling Diff

--- FUN_0011af60 calling
+++ FUN_00121ae0 calling
@@ -1,2 +1,2 @@
-FUN_00122678
-FUN_00124dc4
+FUN_00129508
+FUN_0012c180

FUN_0011af60 Diff

--- FUN_0011af60
+++ FUN_00121ae0
@@ -1,82 +1,84 @@
 
-undefined4 FUN_0011af60(undefined4 param_1)
+undefined4 FUN_00121ae0(undefined4 param_1)
 
 {
   char cVar1;
   undefined4 *puVar2;
   int iVar3;
   int iVar4;
   int iVar5;
   undefined4 uVar6;
   char *pcVar7;
   undefined4 *puVar8;
   char *pcVar9;
   char local_50 [4];
   undefined4 auStack_4c [2];
   char local_44 [4];
   char acStack_40 [32];
   
   iVar3 = nvram_get_int("amas_ssd_exit_time");
   pcVar9 = local_50;
   puVar2 = &DAT_0;
   if (iVar3 == 0) {
     iVar3 = 0x1e;
   }
   do {
     puVar8 = puVar2;
     pcVar7 = pcVar9;
     uVar6 = puVar8[1];
     *(undefined4 *)pcVar7 = *puVar8;
     *(undefined4 *)(pcVar7 + 4) = uVar6;
     pcVar9 = pcVar7 + 8;
     puVar2 = puVar8 + 2;
   } while (puVar8 + 2 != &DAT_1);
   cVar1 = *(char *)(puVar8 + 3);
   pcVar9[0] = 'X';
   pcVar9[1] = 'X';
   pcVar9[2] = 'X';
   pcVar9[3] = '_';
   pcVar7[0xc] = cVar1;
   if (DAT_2 != 0) {
     uVar6 = uptime();
     dbg("%s(0x%04x): WLC %lu: BandIndex(%d) wait amas_ssd exit\n","waitting_ssd_exit",0x1d3,uVar6,
         param_1);
   }
-  pcVar9 = FUN_00119f1c();
+  pcVar9 = FUN_001209f0();
   iVar4 = strcmp(pcVar9,"1");
   if (iVar4 == 0) {
     asusdebuglog(6,"amas_wlcconnect.log",0,1,0,"BandIndex(%d) wait amas_ssd exit\n",param_1);
   }
-  asusdebuglog(6,"/jffs/amas_wlcconnect.log",0,1,0,"BandIndex(%d) wait amas_ssd exit\n",param_1);
+  asusdebuglog(6,"/jffs/amas_wlcconnect.log",0,1,0x200,"%s(%d) - BandIndex(%d) wait amas_ssd exit\n"
+               ,"waitting_ssd_exit",0x1d3,param_1);
   iVar4 = nvram_get("ssd_not_exit");
   if (iVar4 == 0) {
     snprintf(local_50,0xd,"amas_wlc%d_",param_1);
     for (iVar4 = 0; iVar4 <= iVar3; iVar4 = iVar4 + 1) {
       sleep(1);
-      FUN_0011aa08(local_50,"ss_status",acStack_40);
+      FUN_001214dc(local_50,"ss_status",acStack_40);
       iVar5 = nvram_get_int();
       if (iVar5 == 4) {
 LAB_3:
         if (DAT_2 != 0) {
           uVar6 = uptime();
           dbg("%s(0x%04x): WLC %lu: BandIndex(%d) amas_ssd have exited\n","waitting_ssd_exit",0x1dd,
               uVar6,param_1);
         }
-        pcVar9 = FUN_00119f1c();
+        pcVar9 = FUN_001209f0();
         iVar3 = strcmp(pcVar9,"1");
         if (iVar3 == 0) {
           asusdebuglog(6,"amas_wlcconnect.log",0,1,0,"BandIndex(%d) amas_ssd have exited\n",param_1)
           ;
         }
-        asusdebuglog(6,"/jffs/amas_wlcconnect.log",0,1,0,"BandIndex(%d) amas_ssd have exited\n",
+        asusdebuglog(6,"/jffs/amas_wlcconnect.log",0,1,0x200,
+                     "%s(%d) - BandIndex(%d) amas_ssd have exited\n","waitting_ssd_exit",0x1dd,
                      param_1);
         return 1;
       }
-      FUN_0011aa08(local_50,"ss_status",acStack_40);
+      FUN_001214dc(local_50,"ss_status",acStack_40);
       iVar5 = nvram_get_int();
       if (iVar5 == 3) goto LAB_3;
     }
   }
   return 0;
 }
 

FUN_00116e20

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.32
i_ratio 0.39
m_ratio 0.6
b_ratio 0.65
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_00116e20 FUN_0011d838
fullname FUN_00116e20 FUN_0011d838
refcount 2 2
length 1128 1112
called
Expand for full list:
::__isoc99_sscanf
::_eval
::cprintf
::memset
::nvram_get
::nvram_set_int
::nvram_unset
::snprintf
::strchr
::strcspn
::strncpy
::strspn
::wgn_vlan_list_find
::wgn_vlan_list_get_from_nvram
FUN_000add2c
FUN_000adfd4
FUN_0010fe30
FUN_00110558
FUN_00110948
FUN_001109bc
FUN_00114eb4
Expand for full list:
::__isoc99_sscanf
::_eval
::cprintf
::memset
::nvram_get
::nvram_set_int
::nvram_unset
::snprintf
::strchr
::strcspn
::strncpy
::strspn
::wgn_vlan_list_find
::wgn_vlan_list_get_from_nvram
FUN_000b3a68
FUN_000b3d10
FUN_001167b8
FUN_00116ee0
FUN_001172d0
FUN_00117344
FUN_0011b8f0
calling FUN_0002c548
FUN_0002f614
FUN_0002d2d8
FUN_000303ac
paramcount 0 0
address 00116e20 0011d838
sig undefined __stdcall FUN_00116e20(void) undefined __stdcall FUN_0011d838(void)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_00116e20 Called Diff

--- FUN_00116e20 called
+++ FUN_0011d838 called
@@ -15,7 +15,7 @@
-FUN_000add2c
-FUN_000adfd4
-FUN_0010fe30
-FUN_00110558
-FUN_00110948
-FUN_001109bc
-FUN_00114eb4
+FUN_000b3a68
+FUN_000b3d10
+FUN_001167b8
+FUN_00116ee0
+FUN_001172d0
+FUN_00117344
+FUN_0011b8f0

FUN_00116e20 Calling Diff

--- FUN_00116e20 calling
+++ FUN_0011d838 calling
@@ -1,2 +1,2 @@
-FUN_0002c548
-FUN_0002f614
+FUN_0002d2d8
+FUN_000303ac

FUN_00116e20 Diff

--- FUN_00116e20
+++ FUN_0011d838
@@ -1,124 +1,124 @@
 
-void FUN_00116e20(void)
+void FUN_0011d838(void)
 
 {
   char *pcVar1;
   char *pcVar2;
   void *pvVar3;
   int iVar4;
   size_t sVar5;
   size_t sVar6;
   int iVar7;
   undefined4 uVar8;
-  uint local_9ec4;
-  int local_9ec0;
-  undefined4 local_9ebc;
-  char local_9eb8 [63];
-  undefined local_9e79;
-  char acStack_9e78 [84];
-  char *local_9e24;
-  char *local_9e20;
-  char *local_9e1c;
-  char *local_9e18;
-  undefined *local_9e14;
-  char *local_9e10;
-  undefined *local_9e0c;
-  char *local_9e08;
-  undefined4 local_9e04;
-  char acStack_9620 [12800];
-  undefined auStack_6420 [25600];
+  uint local_53c4;
+  int local_53c0;
+  undefined4 local_53bc;
+  char local_53b8 [63];
+  undefined local_5379;
+  char acStack_5378 [84];
+  char *local_5324;
+  char *local_5320;
+  char *local_531c;
+  char *local_5318;
+  undefined *local_5314;
+  char *local_5310;
+  undefined *local_530c;
+  char *local_5308;
+  undefined4 local_5304;
+  char acStack_4b20 [6400];
+  undefined auStack_3220 [12800];
   
-  local_9ec4 = 0;
-  local_9ec0 = 0;
-  local_9ebc = 0;
+  local_53c4 = 0;
+  local_53c0 = 0;
+  local_53bc = 0;
   pcVar1 = (char *)nvram_get("wgn_ifnames");
   if (pcVar1 != (char *)0x0) {
-    pcVar2 = (char *)memset(acStack_9620,0,0x3200);
-    pcVar2 = FUN_00110948(pcVar2,0x100,&local_9ec4);
-    if ((pcVar2 != (char *)0x0) && (local_9ec4 != 0)) {
-      pvVar3 = memset(auStack_6420,0,0x6400);
-      iVar4 = wgn_vlan_list_get_from_nvram(pvVar3,0x100,&local_9ec0);
-      if ((iVar4 != 0) && (local_9ec0 != 0)) {
-        FUN_00114eb4();
+    pcVar2 = (char *)memset(acStack_4b20,0,0x1900);
+    pcVar2 = FUN_001172d0(pcVar2,0x80,&local_53c4);
+    if ((pcVar2 != (char *)0x0) && (local_53c4 != 0)) {
+      pvVar3 = memset(auStack_3220,0,0x3200);
+      iVar4 = wgn_vlan_list_get_from_nvram(pvVar3,0x80,&local_53c0);
+      if ((iVar4 != 0) && (local_53c0 != 0)) {
+        FUN_0011b8f0();
         sVar5 = strspn(pcVar1," ");
-        strncpy(local_9eb8,pcVar1 + sVar5,0x40);
-        local_9e79 = 0;
-        sVar6 = strcspn(local_9eb8," ");
-        local_9eb8[sVar6] = '\0';
+        strncpy(local_53b8,pcVar1 + sVar5,0x40);
+        local_5379 = 0;
+        sVar6 = strcspn(local_53b8," ");
+        local_53b8[sVar6] = '\0';
         pcVar1 = strchr(pcVar1 + sVar5,0x20);
-        while (local_9eb8[0] != '\0') {
-          pcVar2 = FUN_001109bc(acStack_9620,local_9ec4,local_9eb8);
+        while (local_53b8[0] != '\0') {
+          pcVar2 = FUN_00117344(acStack_4b20,local_53c4,local_53b8);
           if (pcVar2 != (char *)0x0) {
-            iVar4 = wgn_vlan_list_find(auStack_6420,local_9ec0,pcVar2 + 0x11);
-            if ((iVar4 != 0) && (iVar7 = __isoc99_sscanf(local_9eb8,"br%d",&local_9ebc), iVar7 == 1)
+            iVar4 = wgn_vlan_list_find(auStack_3220,local_53c0,pcVar2 + 0x11);
+            if ((iVar4 != 0) && (iVar7 = __isoc99_sscanf(local_53b8,"br%d",&local_53bc), iVar7 == 1)
                ) {
-              local_9e10 = "1";
-              local_9e04 = 0;
-              local_9e24 = "bcmmcastctl";
-              local_9e20 = "mode";
-              local_9e1c = &DAT_0;
-              local_9e18 = local_9eb8;
-              local_9e14 = &DAT_1;
-              local_9e0c = &DAT_2;
-              local_9e08 = "0";
-              _eval(&local_9e24,0,0,0);
-              local_9e04 = 0;
-              local_9e10 = &DAT_3;
-              local_9e24 = "bcmmcastctl";
-              local_9e20 = "mode";
-              local_9e1c = &DAT_0;
-              local_9e18 = local_9eb8;
-              local_9e14 = &DAT_1;
-              local_9e0c = &DAT_2;
-              local_9e08 = "0";
-              _eval(&local_9e24,0,0,0);
-              FUN_000add2c(*(undefined4 *)(iVar4 + 4));
-              FUN_0010fe30(local_9eb8,0,(char *)0x0,(char *)0x0);
-              local_9e24 = "brctl";
-              local_9e20 = "delbr";
+              local_5310 = "1";
+              local_5304 = 0;
+              local_5324 = "bcmmcastctl";
+              local_5320 = "mode";
+              local_531c = &DAT_0;
+              local_5318 = local_53b8;
+              local_5314 = &DAT_1;
+              local_530c = &DAT_2;
+              local_5308 = "0";
+              _eval(&local_5324,0,0,0);
+              local_5304 = 0;
+              local_5310 = &DAT_3;
+              local_5324 = "bcmmcastctl";
+              local_5320 = "mode";
+              local_531c = &DAT_0;
+              local_5318 = local_53b8;
+              local_5314 = &DAT_1;
+              local_530c = &DAT_2;
+              local_5308 = "0";
+              _eval(&local_5324,0,0,0);
+              FUN_000b3a68(*(undefined4 *)(iVar4 + 4));
+              FUN_001167b8(local_53b8,0,(char *)0x0,(char *)0x0);
+              local_5324 = "brctl";
+              local_5320 = "delbr";
               uVar8 = 0;
-              local_9e18 = (char *)0x0;
-              local_9e1c = local_9eb8;
-              iVar4 = _eval(&local_9e24,0,0);
+              local_5318 = (char *)0x0;
+              local_531c = local_53b8;
+              iVar4 = _eval(&local_5324,0,0);
               if (iVar4 == -1) {
-                memset(&local_9e24,0,0x801);
-                pcVar2 = FUN_00110558((char *)&local_9e24,0x800,"*** WARNING, eval() return -1 ***",
+                memset(&local_5324,0,0x801);
+                pcVar2 = FUN_00116ee0((char *)&local_5324,0x800,"*** WARNING, eval() return -1 ***",
                                       uVar8);
-                cprintf("%s(LINE:%d):%s\n","amas_wgn.c",0xaba,pcVar2);
+                cprintf("%s(LINE:%d):%s\n","amas_wgn.c",0xada,pcVar2);
               }
-              FUN_000adfd4();
-              memset(acStack_9e78,0,0x51);
-              snprintf(acStack_9e78,0x50,"lan%d_ifname",local_9ebc);
-              nvram_unset(acStack_9e78);
-              memset(acStack_9e78,0,0x51);
-              snprintf(acStack_9e78,0x50,"lan%d_ifnames",local_9ebc);
-              nvram_unset(acStack_9e78);
-              memset(acStack_9e78,0,0x51);
-              snprintf(acStack_9e78,0x50,"br%d_ifname",local_9ebc);
-              nvram_unset(acStack_9e78);
-              memset(acStack_9e78,0,0x51);
-              snprintf(acStack_9e78,0x50,"br%d_ifnames",local_9ebc);
-              nvram_unset(acStack_9e78);
+              FUN_000b3d10();
+              memset(acStack_5378,0,0x51);
+              snprintf(acStack_5378,0x50,"lan%d_ifname",local_53bc);
+              nvram_unset(acStack_5378);
+              memset(acStack_5378,0,0x51);
+              snprintf(acStack_5378,0x50,"lan%d_ifnames",local_53bc);
+              nvram_unset(acStack_5378);
+              memset(acStack_5378,0,0x51);
+              snprintf(acStack_5378,0x50,"br%d_ifname",local_53bc);
+              nvram_unset(acStack_5378);
+              memset(acStack_5378,0,0x51);
+              snprintf(acStack_5378,0x50,"br%d_ifnames",local_53bc);
+              nvram_unset(acStack_5378);
             }
           }
           if (pcVar1 == (char *)0x0) {
             pcVar1 = "";
           }
           else {
             sVar5 = strspn(pcVar1," ");
             pcVar1 = pcVar1 + sVar5;
           }
-          strncpy(local_9eb8,pcVar1,0x40);
-          local_9e79 = 0;
-          sVar5 = strcspn(local_9eb8," ");
-          local_9eb8[sVar5] = '\0';
+          strncpy(local_53b8,pcVar1,0x40);
+          local_5379 = 0;
+          sVar5 = strcspn(local_53b8," ");
+          local_53b8[sVar5] = '\0';
           pcVar1 = strchr(pcVar1,0x20);
         }
         nvram_unset("wgn_ifnames");
         nvram_set_int("wgn_enabled",0);
       }
     }
   }
   return;
 }
 

FUN_000361c4

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.1
i_ratio 0.03
m_ratio 0.18
b_ratio 0.21
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_000361c4 FUN_0004b0fc
fullname FUN_000361c4 FUN_0004b0fc
refcount 1 1
length 556 144
called ::_eval
FUN_00034bd4
FUN_00061bf0
::_eval
::nvram_get_int
::snprintf
::strtol
FUN_0003f6c8
calling FUN_00038078 FUN_0005096c
paramcount 1 0
address 000361c4 0004b0fc
sig undefined __stdcall FUN_000361c4(undefined4 param_1) undefined __stdcall FUN_0004b0fc(void)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_000361c4 Called Diff

--- FUN_000361c4 called
+++ FUN_0004b0fc called
@@ -2,2 +2,4 @@
-FUN_00034bd4
-FUN_00061bf0
+<EXTERNAL>::nvram_get_int
+<EXTERNAL>::snprintf
+<EXTERNAL>::strtol
+FUN_0003f6c8

FUN_000361c4 Calling Diff

--- FUN_000361c4 calling
+++ FUN_0004b0fc calling
@@ -1 +1 @@
-FUN_00038078
+FUN_0005096c

FUN_000361c4 Diff

--- FUN_000361c4
+++ FUN_0004b0fc
@@ -1,101 +1,31 @@
 
-void FUN_000361c4(undefined4 param_1)
+void FUN_0004b0fc(void)
 
 {
-  bool bVar1;
-  undefined *puVar2;
-  undefined *puVar3;
-  char *pcVar4;
-  char *pcVar5;
-  undefined *puVar6;
-  char *pcVar7;
-  undefined *puVar8;
-  undefined *puVar9;
-  char *pcVar10;
-  char *pcVar11;
-  char *local_60;
-  undefined *local_5c;
-  char *local_58;
-  undefined *local_54;
-  char *local_50;
-  undefined *local_4c;
-  undefined4 local_48;
-  undefined *local_44;
-  char *local_40;
-  char *local_3c;
-  undefined *local_38;
-  char *local_34;
-  undefined *local_30;
-  undefined *local_2c;
-  undefined *local_28;
-  undefined4 local_24;
+  int iVar1;
+  char *__nptr;
+  long lVar2;
+  undefined auStack_28 [4];
+  char acStack_24 [8];
+  undefined4 uStack_1c;
+  undefined4 uStack_18;
+  undefined4 uStack_14;
+  char *local_10;
+  undefined4 local_c;
   
-  local_58 = "INPUT";
-  puVar2 = &DAT_0;
-  pcVar11 = "ebtables";
-  puVar3 = &DAT_1;
-  pcVar4 = "broadcast";
-  pcVar10 = "ipv4";
-  pcVar5 = "--ip-proto";
-  puVar6 = &DAT_2;
-  pcVar7 = "--ip-destination-port";
-  puVar8 = &DAT_3;
-  puVar9 = &DAT_4;
-  local_24 = 0;
-  local_60 = pcVar11;
-  local_5c = &DAT_5;
-  local_54 = &DAT_6;
-  local_50 = pcVar10;
-  local_4c = puVar2;
-  local_48 = param_1;
-  local_44 = puVar3;
-  local_40 = pcVar4;
-  local_3c = pcVar5;
-  local_38 = puVar6;
-  local_34 = pcVar7;
-  local_30 = puVar8;
-  local_2c = puVar9;
-  local_28 = &DAT_7;
-  _eval(&local_60,0,0,0,param_1,&DAT_1,"broadcast","--ip-proto",&DAT_0016e11d,
-        "--ip-destination-port",&DAT_3,&DAT_0015f192,&DAT_0015f0bd);
-  local_24 = 0;
-  local_60 = pcVar11;
-  local_5c = &DAT_5;
-  local_58 = "FORWARD";
-  local_54 = &DAT_6;
-  local_50 = pcVar10;
-  local_4c = puVar2;
-  local_48 = param_1;
-  local_44 = puVar3;
-  local_40 = pcVar4;
-  local_3c = pcVar5;
-  local_38 = puVar6;
-  local_34 = pcVar7;
-  local_30 = puVar8;
-  local_2c = puVar9;
-  local_28 = &DAT_7;
-  _eval(&local_60,0,0,0);
-  local_4c = &DAT_8;
-  local_24 = 0;
-  local_60 = pcVar11;
-  local_5c = &DAT_5;
-  local_58 = "FORWARD";
-  local_54 = &DAT_6;
-  local_50 = pcVar10;
-  local_48 = param_1;
-  local_44 = puVar3;
-  local_40 = pcVar4;
-  local_3c = pcVar5;
-  local_38 = puVar6;
-  local_34 = pcVar7;
-  local_30 = puVar8;
-  local_2c = puVar9;
-  local_28 = &DAT_7;
-  _eval(&local_60,0,0,0);
-  bVar1 = FUN_00034bd4("switch_wantag","hinet_mesh");
-  if (bVar1) {
-    FUN_00061bf0("dhcpfwd");
+  uStack_1c = DAT_0;
+  uStack_18 = DAT_1;
+  uStack_14 = DAT_2;
+  local_10 = DAT_3;
+  local_c = DAT_4;
+  iVar1 = nvram_get_int("iperf3_svr_port");
+  if (iVar1 != 0) {
+    __nptr = FUN_0003f6c8();
+    lVar2 = strtol(__nptr,(char **)0x0,10);
+    snprintf(acStack_24,8,"%d",lVar2);
+    local_10 = acStack_24;
   }
+  _eval(&uStack_1c,0,0,auStack_28);
   return;
 }
 

FUN_00075564

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.96
i_ratio 0.46
m_ratio 0.99
b_ratio 0.99
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_00075564 FUN_00078d18
fullname FUN_00075564 FUN_00078d18
refcount 1 1
length 212 208
called ::_eval
::get_ipv6_service
::get_wan6face
::nvram_get_int
FUN_00070278
FUN_00075554
::_eval
::get_ipv6_service
::get_wan6face
::nvram_get_int
FUN_0007374c
FUN_00078d08
calling FUN_000371f8 FUN_00038d3c
paramcount 0 0
address 00075564 00078d18
sig undefined4 __stdcall FUN_00075564(void) undefined4 __stdcall FUN_00078d18(void)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_00075564 Called Diff

--- FUN_00075564 called
+++ FUN_00078d18 called
@@ -5,2 +5,2 @@
-FUN_00070278
-FUN_00075554
+FUN_0007374c
+FUN_00078d08

FUN_00075564 Calling Diff

--- FUN_00075564 calling
+++ FUN_00078d18 calling
@@ -1 +1 @@
-FUN_000371f8
+FUN_00038d3c

FUN_00075564 Diff

--- FUN_00075564
+++ FUN_00078d18
@@ -1,53 +1,53 @@
 
-undefined4 FUN_00075564(void)
+undefined4 FUN_00078d18(void)
 
 {
   undefined *puVar1;
   char *pcVar2;
   int iVar3;
   undefined4 uVar4;
   int iVar5;
   undefined4 auStack_38 [4];
   undefined4 uStack_28;
   undefined4 uStack_24;
   undefined *local_20;
   undefined4 local_1c;
   undefined4 local_18;
   undefined4 uStack_14;
   
-  puVar1 = FUN_00070278();
+  puVar1 = FUN_0007374c();
   pcVar2 = (char *)get_wan6face();
   auStack_38[0] = DAT_0;
   auStack_38[1] = DAT_1;
   auStack_38[2] = DAT_2;
   auStack_38[3] = DAT_3;
   uStack_28 = DAT_4;
   uStack_24 = DAT_5;
   local_20 = DAT_6;
   local_1c = DAT_7;
   local_18 = DAT_8;
   uStack_14 = DAT_9;
   iVar3 = get_ipv6_service();
   if (iVar3 == 6) {
     if ((pcVar2 == (char *)0x0) || (*pcVar2 == '\0')) {
       uVar4 = 0xffffffff;
     }
     else {
-      FUN_00075554();
+      FUN_00078d08();
       iVar5 = nvram_get_int("ipv6_debug");
       iVar3 = 6;
       if (iVar5 != 0) {
         iVar3 = 7;
         local_20 = &DAT_10;
       }
       auStack_38[iVar3] = pcVar2;
       auStack_38[iVar3 + 1] = puVar1;
       uVar4 = _eval(auStack_38,0,0);
     }
   }
   else {
     uVar4 = 0;
   }
   return uVar4;
 }
 

FUN_00112ad4

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.6
i_ratio 0.37
m_ratio 0.96
b_ratio 0.98
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_00112ad4 FUN_00119530
fullname FUN_00112ad4 FUN_00119530
refcount 1 1
length 580 576
called
Expand for full list:
::atoi
::fprintf
::memset
::nvram_default_get
::nvram_get
::nvram_get_int
::wgn_subnet_list_find
::wgn_subnet_list_get_from_nvram
FUN_0010fdd0
FUN_00110948
FUN_00111ad8
Expand for full list:
::atoi
::fprintf
::memset
::nvram_default_get
::nvram_get
::nvram_get_int
::wgn_subnet_list_find
::wgn_subnet_list_get_from_nvram
FUN_00116758
FUN_001172d0
FUN_00118538
calling FUN_00042c98 FUN_00044a20
paramcount 1 1
address 00112ad4 00119530
sig undefined __stdcall FUN_00112ad4(FILE * param_1) undefined __stdcall FUN_00119530(FILE * param_1)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_00112ad4 Called Diff

--- FUN_00112ad4 called
+++ FUN_00119530 called
@@ -9,3 +9,3 @@
-FUN_0010fdd0
-FUN_00110948
-FUN_00111ad8
+FUN_00116758
+FUN_001172d0
+FUN_00118538

FUN_00112ad4 Calling Diff

--- FUN_00112ad4 calling
+++ FUN_00119530 calling
@@ -1 +1 @@
-FUN_00042c98
+FUN_00044a20

FUN_00112ad4 Diff

--- FUN_00112ad4
+++ FUN_00119530
@@ -1,73 +1,74 @@
 
-void FUN_00112ad4(FILE *param_1)
+void FUN_00119530(FILE *param_1)
 
 {
   bool bVar1;
   int iVar2;
   char *pcVar3;
   undefined4 uVar4;
   int iVar5;
   int iVar6;
-  char *__s;
-  uint uVar7;
-  uint uStack_61e28;
-  int iStack_61e24;
-  char acStack_61e20 [12800];
-  undefined auStack_5ec20 [388096];
+  char *pcVar7;
+  uint uVar8;
+  uint local_7d28;
+  int local_7d24;
+  char acStack_7d20 [6400];
+  undefined auStack_6420 [25600];
   
-  uStack_61e28 = 0;
-  iStack_61e24 = 0;
+  pcVar7 = acStack_7d20;
+  local_7d28 = 0;
+  local_7d24 = 0;
   iVar2 = nvram_get_int("re_mode");
   if (iVar2 != 1) {
     iVar2 = nvram_get("sw_mode");
     if (iVar2 == 0) {
       pcVar3 = (char *)nvram_default_get("sw_mode");
       iVar2 = atoi(pcVar3);
     }
     else {
       iVar2 = nvram_get_int();
     }
     iVar2 = iVar2 + -1;
     if (iVar2 != 0) {
       iVar2 = 1;
     }
-    if (((iVar2 == 0) || (bVar1 = FUN_0010fdd0(), bVar1)) && (param_1 != (FILE *)0x0)) {
+    if (((iVar2 == 0) || (bVar1 = FUN_00116758(), bVar1)) && (param_1 != (FILE *)0x0)) {
       pcVar3 = (char *)nvram_get("wgn_brif_rulelist");
       if ((pcVar3 == (char *)0x0) || (*pcVar3 == '\0')) {
-        FUN_00111ad8();
+        FUN_00118538();
       }
-      __s = acStack_61e20;
-      memset(__s,0,0x3200);
-      pcVar3 = FUN_00110948(__s,0x100,&uStack_61e28);
-      if ((pcVar3 != (char *)0x0) && (uStack_61e28 != 0)) {
-        memset(auStack_5ec20,0,0x5ec00);
-        iVar2 = wgn_subnet_list_get_from_nvram(auStack_5ec20,0x100,&iStack_61e24);
-        if ((iVar2 != 0) && (iStack_61e24 != 0)) {
-          for (uVar7 = 0; uVar7 < uStack_61e28; uVar7 = uVar7 + 1) {
-            iVar2 = wgn_subnet_list_find(auStack_5ec20,iStack_61e24,__s + 0x11);
+      memset(acStack_7d20,0,0x1900);
+      pcVar3 = FUN_001172d0(acStack_7d20,0x80,&local_7d28);
+      if ((pcVar3 != (char *)0x0) && (local_7d28 != 0)) {
+        memset(auStack_6420,0,0x6400);
+        iVar2 = wgn_subnet_list_get_from_nvram(auStack_6420,0x80,&local_7d24);
+        if ((iVar2 != 0) && (local_7d24 != 0)) {
+          for (uVar8 = 0; uVar8 < local_7d28; uVar8 = uVar8 + 1) {
+            iVar2 = wgn_subnet_list_find(auStack_6420,local_7d24,pcVar7 + 0x11);
             if ((iVar2 != 0) && (*(int *)(iVar2 + 0x24) != 0)) {
-              fprintf(param_1,"interface=%s\n",__s);
+              fprintf(param_1,"interface=%s\n",pcVar7);
               uVar4 = *(undefined4 *)(iVar2 + 0x4c);
               iVar5 = iVar2 + 0x11;
               iVar6 = iVar2 + 0x39;
-              fprintf(param_1,"dhcp-range=%s,%s,%s,%s,%ds\n",__s,iVar2 + 0x28,iVar6,iVar5,uVar4);
-              fprintf(param_1,"dhcp-option=%s,3,%s\n",__s,iVar2);
+              fprintf(param_1,"dhcp-range=%s,%s,%s,%s,%ds\n",pcVar7,iVar2 + 0x28,iVar6,iVar5,uVar4);
+              fprintf(param_1,"dhcp-option=%s,3,%s\n",pcVar7,iVar2);
               if (*(char *)(iVar2 + 0x50) != '\0') {
-                fprintf(param_1,"dhcp-option=%s,15,%s\n",__s,iVar2 + 0x50,iVar6,iVar5,uVar4);
+                fprintf(param_1,"dhcp-option=%s,15,%s\n",pcVar7,iVar2 + 0x50,iVar6,iVar5,uVar4);
               }
-              if (*(char *)(iVar2 + 0xd5) != '\0') {
-                fprintf(param_1,"dhcp-option=%s,6,%s,0.0.0.0\n",__s,iVar2 + 0xd5,iVar6,iVar5,uVar4);
+              if (*(char *)(iVar2 + 0x91) != '\0') {
+                fprintf(param_1,"dhcp-option=%s,6,%s,0.0.0.0\n",pcVar7,iVar2 + 0x91,iVar6,iVar5,
+                        uVar4);
               }
-              if (*(char *)(iVar2 + 0x15a) != '\0') {
-                fprintf(param_1,"dhcp-option=%s,44,%s\n",__s,iVar2 + 0x15a,iVar6,iVar5,uVar4);
+              if (*(char *)(iVar2 + 0xa2) != '\0') {
+                fprintf(param_1,"dhcp-option=%s,44,%s\n",pcVar7,iVar2 + 0xa2,iVar6,iVar5,uVar4);
               }
             }
-            __s = __s + 0x32;
+            pcVar7 = pcVar7 + 0x32;
           }
         }
       }
     }
   }
   return;
 }
 

FUN_000d0d1c

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.44
i_ratio 0.24
m_ratio 0.57
b_ratio 0.58
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_000d0d1c FUN_000d6d2c
fullname FUN_000d0d1c FUN_000d6d2c
refcount 3 3
length 2456 2540
called
Expand for full list:
::MD5_Final
::MD5_Init
::MD5_Update
::__aeabi_dmul
::check_if_file_exist
::curl_easy_cleanup
::curl_easy_getinfo
::curl_easy_init
::curl_easy_perform
::curl_easy_setopt
::curl_easy_strerror
::curl_formadd
::curl_formfree
::dbg
::fclose
::fopen
::fprintf
::fread
::free
::logmessage_normal
::memcpy
::open_memstream
::snprintf
::sprintf
::strchr
::strcpy
::strcspn
::strlen
::strncpy
::strspn
::strstr
::trimNL
FUN_000d0a8c
FUN_000d0aac
Expand for full list:
::MD5_Final
::MD5_Init
::MD5_Update
::__aeabi_dmul
::check_if_file_exist
::curl_easy_cleanup
::curl_easy_getinfo
::curl_easy_init
::curl_easy_perform
::curl_easy_setopt
::curl_easy_strerror
::curl_formadd
::curl_formfree
::dbg
::fclose
::fopen
::fprintf
::fread
::free
::logmessage_normal
::memcpy
::open_memstream
::snprintf
::sprintf
::strchr
::strcpy
::strcspn
::strlen
::strncpy
::strspn
::strstr
::trimNL
FUN_000d6a9c
FUN_000d6abc
calling FUN_000d176c FUN_000d77d0
paramcount 3 3
address 000d0d1c 000d6d2c
sig int __stdcall FUN_000d0d1c(undefined4 param_1, undefined4 param_2, char * param_3) int __stdcall FUN_000d6d2c(undefined4 param_1, undefined4 param_2, char * param_3)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_000d0d1c Called Diff

--- FUN_000d0d1c called
+++ FUN_000d6d2c called
@@ -33,2 +33,2 @@
-FUN_000d0a8c
-FUN_000d0aac
+FUN_000d6a9c
+FUN_000d6abc

FUN_000d0d1c Calling Diff

--- FUN_000d0d1c calling
+++ FUN_000d6d2c calling
@@ -1 +1 @@
-FUN_000d176c
+FUN_000d77d0

FUN_000d0d1c Diff

--- FUN_000d0d1c
+++ FUN_000d6d2c
@@ -1,247 +1,252 @@
 
-int FUN_000d0d1c(undefined4 param_1,undefined4 param_2,char *param_3)
+/* WARNING: Restarted to delay deadcode elimination for space: stack */
+
+int FUN_000d6d2c(undefined4 param_1,undefined4 param_2,char *param_3)
 
 {
   bool bVar1;
   int iVar2;
   FILE *pFVar3;
   char *pcVar4;
   size_t sVar5;
   undefined *puVar6;
   undefined *puVar7;
   undefined *puVar8;
   size_t sVar9;
   undefined4 uVar10;
   char *pcVar11;
   int iVar12;
   byte *pbVar13;
   undefined8 uVar14;
-  char *local_d5c;
-  undefined4 local_d40;
-  undefined4 local_d3c;
-  undefined4 local_d38;
-  undefined4 uStack_d34;
-  undefined4 local_d30;
-  undefined4 uStack_d2c;
-  undefined4 local_d28;
-  undefined4 uStack_d24;
-  char *local_d20;
-  char *local_d1c;
-  byte local_d18 [12];
-  byte abStack_d0c [16];
-  char acStack_cfc [64];
-  char acStack_cbc [64];
-  MD5_CTX MStack_c7c;
+  char *local_1060;
+  int local_105c;
+  undefined4 local_1040;
+  undefined4 local_103c;
+  undefined4 local_1038;
+  undefined4 uStack_1034;
+  undefined4 local_1030;
+  undefined4 uStack_102c;
+  undefined4 local_1028;
+  undefined4 uStack_1024;
+  char *local_1020;
+  char *local_101c;
+  byte local_1018 [12];
+  byte abStack_100c [16];
+  char acStack_ffc [64];
+  char acStack_fbc [64];
+  MD5_CTX MStack_f7c;
+  undefined auStack_f20 [64];
+  undefined auStack_ee0 [64];
+  undefined auStack_ea0 [64];
+  undefined auStack_e60 [64];
+  undefined auStack_e20 [64];
+  undefined auStack_de0 [64];
+  undefined auStack_da0 [64];
+  undefined auStack_d60 [64];
+  undefined auStack_d20 [64];
+  undefined auStack_ce0 [64];
+  undefined auStack_ca0 [64];
+  undefined auStack_c60 [64];
   undefined auStack_c20 [64];
   undefined auStack_be0 [64];
   undefined auStack_ba0 [64];
   undefined auStack_b60 [64];
-  undefined auStack_b20 [64];
-  undefined auStack_ae0 [64];
-  undefined auStack_aa0 [64];
-  undefined auStack_a60 [64];
-  undefined auStack_a20 [64];
-  undefined auStack_9e0 [64];
-  undefined auStack_9a0 [64];
-  undefined auStack_960 [64];
-  undefined auStack_920 [64];
-  undefined auStack_8e0 [64];
-  undefined auStack_8a0 [64];
-  undefined auStack_860 [64];
-  byte local_820 [2047];
+  byte local_b20 [2815];
   undefined local_21;
   
-  local_d40 = 0;
-  local_d3c = 0;
-  local_d38 = 0;
-  uStack_d34 = 0;
-  local_d30 = 0;
-  uStack_d2c = 0;
-  local_d28 = 0;
-  uStack_d24 = 0;
-  memcpy(auStack_c20,"label_mac",0x400);
+  local_1040 = 0;
+  local_103c = 0;
+  local_1038 = 0;
+  uStack_1034 = 0;
+  local_1030 = 0;
+  uStack_102c = 0;
+  local_1028 = 0;
+  uStack_1024 = 0;
+  memcpy(auStack_f20,"label_mac",0x400);
   iVar2 = check_if_file_exist("/tmp/FB_DEBUG");
   if ((iVar2 != 0) && (pFVar3 = fopen("/tmp/fb_debug.log","a"), pFVar3 != (FILE *)0x0)) {
     fprintf(pFVar3,"attach_cmd=[%s]\n",param_3);
     fclose(pFVar3);
   }
   iVar2 = curl_easy_init();
   if (iVar2 == 0) {
     iVar12 = 2;
   }
   else {
-    snprintf(acStack_cfc,0x40,"%s",auStack_c20);
-    pcVar4 = FUN_000d0a8c();
-    MD5_Init(&MStack_c7c);
+    snprintf(acStack_ffc,0x40,"%s",auStack_f20);
+    pcVar4 = FUN_000d6a9c();
+    MD5_Init(&MStack_f7c);
     sVar5 = strlen(pcVar4);
-    MD5_Update(&MStack_c7c,pcVar4,sVar5);
-    MD5_Final(abStack_d0c,&MStack_c7c);
-    local_d18[0] = 0;
-    local_d18[1] = 0;
-    local_d18[2] = 0;
-    local_d18[3] = 0;
-    local_d18[4] = 0;
-    local_d18[5] = 0;
-    local_d18[6] = 0;
-    local_d18[7] = 0;
-    local_d18[8] = 0;
-    local_d18[9] = 0;
+    MD5_Update(&MStack_f7c,pcVar4,sVar5);
+    MD5_Final(abStack_100c,&MStack_f7c);
+    local_1018[0] = 0;
+    local_1018[1] = 0;
+    local_1018[2] = 0;
+    local_1018[3] = 0;
+    local_1018[4] = 0;
+    local_1018[5] = 0;
+    local_1018[6] = 0;
+    local_1018[7] = 0;
+    local_1018[8] = 0;
+    local_1018[9] = 0;
     pFVar3 = fopen("/dev/urandom","r");
     if (pFVar3 != (FILE *)0x0) {
-      fread(local_d18,1,10,pFVar3);
+      fread(local_1018,1,10,pFVar3);
       fclose(pFVar3);
     }
-    snprintf(acStack_cfc,0x40,"%s",auStack_ba0);
-    snprintf(acStack_cbc,0x40,"%s",auStack_be0);
-    bVar1 = FUN_000d0aac(acStack_cbc,"");
+    snprintf(acStack_ffc,0x40,"%s",auStack_ea0);
+    snprintf(acStack_fbc,0x40,"%s",auStack_ee0);
+    bVar1 = FUN_000d6abc(acStack_fbc,"");
     if (!bVar1) {
-      puVar6 = FUN_000d0a8c();
-      curl_formadd(&local_d40,&local_d3c,1,acStack_cfc,4,puVar6,0x11);
-    }
-    snprintf(acStack_cfc,0x40,"%s",auStack_b60);
+      puVar6 = FUN_000d6a9c();
+      curl_formadd(&local_1040,&local_103c,1,acStack_ffc,4,puVar6,0x11);
+    }
+    snprintf(acStack_ffc,0x40,"%s",auStack_e60);
     iVar12 = 0;
-    pbVar13 = local_d18;
-    pcVar4 = acStack_cbc;
+    pbVar13 = local_1018;
+    pcVar4 = acStack_fbc;
     do {
       iVar12 = iVar12 + 1;
       sprintf(pcVar4,"%02x",(uint)*pbVar13);
       pcVar4 = pcVar4 + 2;
       pbVar13 = pbVar13 + 1;
     } while (iVar12 != 10);
-    curl_formadd(&local_d40,&local_d3c,1,acStack_cfc,4,acStack_cbc,0x11);
-    snprintf(acStack_cfc,0x40,"%s",auStack_b20);
-    snprintf(acStack_cbc,0x40,"Ver%04d",1);
-    curl_formadd(&local_d40,&local_d3c,1,acStack_cfc,4,acStack_cbc,0x11);
-    snprintf(acStack_cfc,0x40,"%s",auStack_ae0);
-    curl_formadd(&local_d40,&local_d3c,1,acStack_cfc,4,param_1,0x11);
-    snprintf(acStack_cfc,0x40,"%s",auStack_aa0);
-    snprintf(acStack_cbc,0x40,"%s",auStack_a60);
-    curl_formadd(&local_d40,&local_d3c,1,acStack_cfc,4,acStack_cbc,0x11);
-    snprintf(acStack_cfc,0x40,"%s",auStack_a20);
-    snprintf(acStack_cbc,0x40,"%s",auStack_9e0);
-    curl_formadd(&local_d40,&local_d3c,1,acStack_cfc,4,acStack_cbc,0x11);
-    snprintf(acStack_cfc,0x40,"%s",auStack_9a0);
-    puVar6 = FUN_000d0a8c();
-    curl_formadd(&local_d40,&local_d3c,1,acStack_cfc,4,puVar6,0x11);
-    snprintf(acStack_cfc,0x40,"%s",auStack_960);
-    puVar6 = FUN_000d0a8c();
-    puVar7 = FUN_000d0a8c();
-    puVar8 = FUN_000d0a8c();
-    snprintf(acStack_cbc,0x40,"%s.%s_%s",puVar6,puVar7,puVar8);
+    curl_formadd(&local_1040,&local_103c,1,acStack_ffc,4,acStack_fbc,0x11);
+    snprintf(acStack_ffc,0x40,"%s",auStack_e20);
+    snprintf(acStack_fbc,0x40,"Ver%04d",1);
+    curl_formadd(&local_1040,&local_103c,1,acStack_ffc,4,acStack_fbc,0x11);
+    snprintf(acStack_ffc,0x40,"%s",auStack_de0);
+    curl_formadd(&local_1040,&local_103c,1,acStack_ffc,4,param_1,0x11);
+    snprintf(acStack_ffc,0x40,"%s",auStack_da0);
+    snprintf(acStack_fbc,0x40,"%s",auStack_d60);
+    curl_formadd(&local_1040,&local_103c,1,acStack_ffc,4,acStack_fbc,0x11);
+    snprintf(acStack_ffc,0x40,"%s",auStack_d20);
+    snprintf(acStack_fbc,0x40,"%s",auStack_ce0);
+    curl_formadd(&local_1040,&local_103c,1,acStack_ffc,4,acStack_fbc,0x11);
+    snprintf(acStack_ffc,0x40,"%s",auStack_ca0);
+    puVar6 = FUN_000d6a9c();
+    curl_formadd(&local_1040,&local_103c,1,acStack_ffc,4,puVar6,0x11);
+    snprintf(acStack_ffc,0x40,"%s",auStack_c60);
+    puVar6 = FUN_000d6a9c();
+    puVar7 = FUN_000d6a9c();
+    puVar8 = FUN_000d6a9c();
+    snprintf(acStack_fbc,0x40,"%s.%s_%s",puVar6,puVar7,puVar8);
+    curl_formadd(&local_1040,&local_103c,1,acStack_ffc,4,acStack_fbc,0x11);
     iVar12 = 0;
-    curl_formadd(&local_d40,&local_d3c,1,acStack_cfc,4,acStack_cbc,0x11);
-    snprintf(acStack_cfc,0x40,"%s",auStack_920);
-    pbVar13 = abStack_d0c;
-    local_d5c = acStack_cbc;
+    snprintf(acStack_ffc,0x40,"%s",auStack_c20);
+    pbVar13 = abStack_100c;
+    local_1060 = acStack_fbc;
     do {
       iVar12 = iVar12 + 1;
-      sprintf(local_d5c,"%02x",(uint)*pbVar13);
-      local_d5c = local_d5c + 2;
+      sprintf(local_1060,"%02x",(uint)*pbVar13);
+      local_1060 = local_1060 + 2;
       pbVar13 = pbVar13 + 1;
     } while (iVar12 != 0x10);
-    curl_formadd(&local_d40,&local_d3c,1,acStack_cfc,4,acStack_cbc,0x11);
-    snprintf(acStack_cfc,0x40,"%s",auStack_8e0);
-    pcVar4 = FUN_000d0a8c();
+    curl_formadd(&local_1040,&local_103c,1,acStack_ffc,4,acStack_fbc,0x11);
+    snprintf(acStack_ffc,0x40,"%s",auStack_be0);
+    pcVar4 = FUN_000d6a9c();
     pcVar4 = strchr(pcVar4,0x60);
     if (pcVar4 == (char *)0x0) {
-      puVar6 = FUN_000d0a8c();
-      snprintf(acStack_cbc,0x40,"%s",puVar6);
+      puVar6 = FUN_000d6a9c();
+      snprintf(acStack_fbc,0x40,"%s",puVar6);
     }
     else {
-      strcpy(acStack_cbc,"[email protected]");
-    }
-    curl_formadd(&local_d40,&local_d3c,1,acStack_cfc,4,acStack_cbc,0x11);
-    snprintf(acStack_cfc,0x40,"%s",auStack_8a0);
-    local_d5c = (char *)check_if_file_exist(param_2);
-    if (local_d5c != (char *)0x0) {
-      snprintf(acStack_cbc,0x40,"%s[%d]",acStack_cfc,0);
-      curl_formadd(&local_d40,&local_d3c,1,acStack_cbc,10,param_2,0x11);
-      local_d5c = (char *)0x1;
+      strcpy(acStack_fbc,"[email protected]");
+    }
+    curl_formadd(&local_1040,&local_103c,1,acStack_ffc,4,acStack_fbc,0x11);
+    snprintf(acStack_ffc,0x40,"%s",auStack_ba0);
+    local_105c = check_if_file_exist(param_2);
+    if (local_105c != 0) {
+      snprintf(acStack_fbc,0x40,"%s[%d]",acStack_ffc,0);
+      curl_formadd(&local_1040,&local_103c,1,acStack_fbc,10,param_2,0x11);
+      local_105c = 1;
     }
     sVar5 = strspn(param_3," ");
-    strncpy((char *)local_820,param_3 + sVar5,0x800);
+    strncpy((char *)local_b20,param_3 + sVar5,0xb00);
     local_21 = 0;
-    sVar9 = strcspn((char *)local_820," ");
-    local_820[sVar9] = 0;
+    sVar9 = strcspn((char *)local_b20," ");
+    local_b20[sVar9] = 0;
     pcVar4 = strchr(param_3 + sVar5,0x20);
-    while (pcVar11 = (char *)(uint)local_820[0], pcVar11 != (char *)0x0) {
-      pcVar11 = strstr((char *)local_820,"-a");
-      if ((pcVar11 == (char *)0x0) && (iVar12 = check_if_file_exist(local_820), iVar12 != 0)) {
-        snprintf(acStack_cbc,0x40,"%s[%d]",acStack_cfc,local_d5c);
-        curl_formadd(&local_d40,&local_d3c,1,acStack_cbc,10,local_820,0x11);
-        local_d5c = (char *)((int)local_d5c + 1);
+    while( true ) {
+      pcVar11 = (char *)(uint)local_b20[0];
+      if (pcVar11 == (char *)0x0) break;
+      pcVar11 = strstr((char *)local_b20,"-a");
+      if ((pcVar11 == (char *)0x0) && (iVar12 = check_if_file_exist(local_b20), iVar12 != 0)) {
+        snprintf(acStack_fbc,0x40,"%s[%d]",acStack_ffc,local_105c);
+        curl_formadd(&local_1040,&local_103c,1,acStack_fbc,10,local_b20,0x11);
+        local_105c = local_105c + 1;
       }
       if (pcVar4 == (char *)0x0) {
         pcVar4 = "";
       }
       else {
         sVar5 = strspn(pcVar4," ");
         pcVar4 = pcVar4 + sVar5;
       }
-      strncpy((char *)local_820,pcVar4,0x800);
+      strncpy((char *)local_b20,pcVar4,0xb00);
       local_21 = 0;
-      sVar5 = strcspn((char *)local_820," ");
-      local_820[sVar5] = 0;
+      sVar5 = strcspn((char *)local_b20," ");
+      local_b20[sVar5] = 0;
       pcVar4 = strchr(pcVar4,0x20);
     }
-    snprintf(acStack_cbc,0x40,"%s",auStack_860);
-    curl_easy_setopt(iVar2,0x2712,acStack_cbc);
-    curl_easy_setopt(iVar2,0x2728,local_d40);
+    snprintf(acStack_fbc,0x40,"%s",auStack_b60);
+    curl_easy_setopt(iVar2,0x2712,acStack_fbc);
+    curl_easy_setopt(iVar2,0x2728,local_1040);
     curl_easy_setopt(iVar2,0xb5,2);
     curl_easy_setopt(iVar2,0x51,1);
     curl_easy_setopt(iVar2,0x40,1);
     curl_easy_setopt(iVar2,0x29,1);
     curl_easy_setopt(iVar2,0x4e,0x1e);
     curl_easy_setopt(iVar2,0xd,0xf0);
-    local_d20 = pcVar11;
-    local_d1c = pcVar11;
-    pFVar3 = open_memstream(&local_d20,(size_t *)&local_d1c);
+    local_1020 = pcVar11;
+    local_101c = pcVar11;
+    pFVar3 = open_memstream(&local_1020,(size_t *)&local_101c);
     if (pFVar3 != (FILE *)0x0) {
       curl_easy_setopt(iVar2,0x2711,pFVar3);
     }
     iVar12 = curl_easy_perform(iVar2);
     if (pFVar3 != (FILE *)0x0) {
       fclose(pFVar3);
     }
     if (iVar12 == 0) {
-      if (local_d20 == (char *)0x0) {
+      if (local_1020 == (char *)0x0) {
         pcVar4 = "";
       }
-      else if (local_d1c == (char *)0x0) {
+      else if (local_101c == (char *)0x0) {
         pcVar4 = "";
       }
       else {
         pcVar4 = (char *)trimNL();
       }
       dbg("resp=[%s]\n",pcVar4);
-      if (((local_d20 == (char *)0x0) || (local_d1c == (char *)0x0)) ||
-         (pcVar4 = strstr(local_d20,"Upload successfully"), pcVar4 == (char *)0x0)) {
+      if (((local_1020 == (char *)0x0) || (local_101c == (char *)0x0)) ||
+         (pcVar4 = strstr(local_1020,"Upload successfully"), pcVar4 == (char *)0x0)) {
         iVar12 = 0x16;
         logmessage_normal("frs_feedback","curl_easy_perform() failed: CURLE_HTTP_RETURNED_ERROR\n");
       }
       else {
-        curl_easy_getinfo(iVar2,0x30000a,&local_d38);
-        curl_easy_getinfo(iVar2,0x300007,&local_d30);
-        curl_easy_getinfo(iVar2,0x300003,&local_d28);
-        uVar14 = __aeabi_dmul(local_d38,uStack_d34,0,0x3f500000);
+        curl_easy_getinfo(iVar2,0x30000a,&local_1038);
+        curl_easy_getinfo(iVar2,0x300007,&local_1030);
+        curl_easy_getinfo(iVar2,0x300003,&local_1028);
+        uVar14 = __aeabi_dmul(local_1038,uStack_1034,0,0x3f500000);
         logmessage_normal("frs_feedback","Transfer rate: %.0f KB/sec (%.0f bytes in %.0f seconds)",
-                          (int)uVar14,(int)((ulonglong)uVar14 >> 0x20),local_d30,uStack_d2c,
-                          local_d28,uStack_d24);
-        uVar14 = __aeabi_dmul(local_d38,uStack_d34,0,0x3f500000);
-        dbg("Transfer rate: %.0f KB/sec (%.0f bytes in %.0f seconds)\n",uStack_d2c,(int)uVar14,
-            (int)((ulonglong)uVar14 >> 0x20),local_d30,uStack_d2c,local_d28,uStack_d24);
+                          (int)uVar14,(int)((ulonglong)uVar14 >> 0x20),local_1030,uStack_102c,
+                          local_1028,uStack_1024);
+        uVar14 = __aeabi_dmul(local_1038,uStack_1034,0,0x3f500000);
+        dbg("Transfer rate: %.0f KB/sec (%.0f bytes in %.0f seconds)\n",uStack_102c,(int)uVar14,
+            (int)((ulonglong)uVar14 >> 0x20),local_1030,uStack_102c,local_1028,uStack_1024);
       }
     }
     else {
       uVar10 = curl_easy_strerror(iVar12);
       dbg("curl_easy_perform() failed: %s\n",uVar10);
       uVar10 = curl_easy_strerror(iVar12);
       logmessage_normal("frs_feedback","curl_easy_perform() failed: %s\n",uVar10);
     }
-    curl_formfree(local_d40);
+    curl_formfree(local_1040);
     curl_easy_cleanup(iVar2);
-    free(local_d20);
+    free(local_1020);
   }
   return iVar12;
 }
 

FUN_000d23d4

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.59
i_ratio 0.25
m_ratio 0.95
b_ratio 0.95
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_000d23d4 FUN_000d8438
fullname FUN_000d23d4 FUN_000d8438
refcount 1 1
length 1896 1904
called
Expand for full list:
::__aeabi_idiv
::__errno_location
::check_if_file_exist
::closedir
::fclose
::fopen
::fprintf
::fputs
::get_label_mac
::get_productid
::logmessage_normal
::memset
::nvram_commit
::nvram_get_int
::nvram_set
::nvram_set_int
::opendir
::readdir
::snprintf
::strchr
::strcmp
::strerror
::strlcpy
::strrchr
::strstr
::system
::unlink
FUN_000d0a8c
FUN_000d0adc
FUN_000d1890
FUN_0015bbf4
Expand for full list:
::__aeabi_idiv
::__errno_location
::check_if_file_exist
::closedir
::fclose
::fopen
::fprintf
::fputs
::get_label_mac
::get_productid
::logmessage_normal
::memset
::nvram_commit
::nvram_get_int
::nvram_set
::nvram_set_int
::opendir
::readdir
::snprintf
::strchr
::strcmp
::strerror
::strlcpy
::strrchr
::strstr
::system
::unlink
FUN_000d6a9c
FUN_000d6aec
FUN_000d78f4
FUN_00163d58
calling FUN_0004d76c FUN_0005096c
paramcount 1 1
address 000d23d4 000d8438
sig undefined __stdcall FUN_000d23d4(char * param_1) undefined __stdcall FUN_000d8438(char * param_1)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_000d23d4 Called Diff

--- FUN_000d23d4 called
+++ FUN_000d8438 called
@@ -28,4 +28,4 @@
-FUN_000d0a8c
-FUN_000d0adc
-FUN_000d1890
-FUN_0015bbf4
+FUN_000d6a9c
+FUN_000d6aec
+FUN_000d78f4
+FUN_00163d58

FUN_000d23d4 Calling Diff

--- FUN_000d23d4 calling
+++ FUN_000d8438 calling
@@ -1 +1 @@
-FUN_0004d76c
+FUN_0005096c

FUN_000d23d4 Diff

--- FUN_000d23d4
+++ FUN_000d8438
@@ -1,209 +1,209 @@
 
-void FUN_000d23d4(char *param_1)
+void FUN_000d8438(char *param_1)
 
 {
   bool bVar1;
   bool bVar2;
   char *pcVar3;
   undefined *puVar4;
   int iVar5;
   char *pcVar6;
   FILE *__stream;
   undefined *puVar7;
   undefined *puVar8;
   undefined4 uVar9;
   DIR *__dirp;
   dirent *pdVar10;
   int *piVar11;
   char *__haystack;
-  undefined4 local_11b8;
-  undefined auStack_11b4 [60];
-  stat sStack_1178;
-  char local_1120 [256];
-  char acStack_1020 [512];
-  char local_e20 [512];
-  char local_c20 [1024];
-  char local_820 [2048];
+  undefined4 local_14b8;
+  undefined auStack_14b4 [60];
+  stat sStack_1478;
+  char local_1420 [256];
+  char local_1320 [512];
+  char local_1120 [512];
+  char local_f20 [1024];
+  char local_b20 [2816];
   
-  local_c20[0] = '\0';
-  local_c20[1] = '\0';
-  local_c20[2] = '\0';
-  local_c20[3] = '\0';
-  memset(local_c20 + 4,0,0x3fc);
-  acStack_1020[0] = '\0';
-  acStack_1020[1] = '\0';
-  acStack_1020[2] = '\0';
-  acStack_1020[3] = '\0';
-  memset(acStack_1020 + 4,0,0x1fc);
+  local_f20[0] = '\0';
+  local_f20[1] = '\0';
+  local_f20[2] = '\0';
+  local_f20[3] = '\0';
+  memset(local_f20 + 4,0,0x3fc);
+  local_1320[0] = '\0';
+  local_1320[1] = '\0';
+  local_1320[2] = '\0';
+  local_1320[3] = '\0';
+  memset(local_1320 + 4,0,0x1fc);
+  local_1420[0] = '\0';
+  local_1420[1] = '\0';
+  local_1420[2] = '\0';
+  local_1420[3] = '\0';
+  memset(local_1420 + 4,0,0xfc);
   local_1120[0] = '\0';
   local_1120[1] = '\0';
   local_1120[2] = '\0';
   local_1120[3] = '\0';
-  memset(local_1120 + 4,0,0xfc);
-  local_e20[0] = '\0';
-  local_e20[1] = '\0';
-  local_e20[2] = '\0';
-  local_e20[3] = '\0';
-  memset(local_e20 + 4,0,0x1fc);
-  local_11b8 = 0;
-  memset(auStack_11b4,0,0x3c);
+  memset(local_1120 + 4,0,0x1fc);
+  local_14b8 = 0;
+  memset(auStack_14b4,0,0x3c);
   logmessage_normal("senddblog","start_senddblog() start...\n");
-  pcVar3 = FUN_000d0a8c();
+  pcVar3 = FUN_000d6a9c();
   pcVar3 = strchr(pcVar3,0x60);
   if (pcVar3 == (char *)0x0) {
-    puVar4 = FUN_000d0a8c();
-    strlcpy(&local_11b8,puVar4,0x40);
+    puVar4 = FUN_000d6a9c();
+    strlcpy(&local_14b8,puVar4,0x40);
   }
   iVar5 = check_if_file_exist(param_1);
   if (iVar5 == 0) {
     logmessage_normal("senddblog","No dblog file!\n");
     uVar9 = 9;
   }
   else {
-    snprintf(acStack_1020,0x200,"-a %s",param_1);
-    snprintf(local_1120,0x100,"%s");
-    pcVar6 = strrchr(local_1120,0x2f);
+    snprintf(local_1320,0x200,"-a %s",param_1);
+    snprintf(local_1420,0x100,"%s");
+    pcVar6 = strrchr(local_1420,0x2f);
     pcVar3 = pcVar6;
     if (pcVar6 != (char *)0x0) {
       pcVar3 = pcVar6 + 1;
       *pcVar6 = '\0';
     }
     nvram_set("fb_state","0");
     __stream = fopen("/tmp/dblogmailcontent","w");
     if (__stream != (FILE *)0x0) {
       fputs("SYSTEM DEBUG LOG\n----------------------------------------------------------------------------------------------------------------\n\n"
             ,__stream);
       fputs("Model: ",__stream);
       pcVar6 = (char *)get_productid();
       fputs(pcVar6,__stream);
       fputs("\nFirmware Version: ",__stream);
-      puVar4 = FUN_000d0a8c();
-      puVar7 = FUN_000d0a8c();
-      puVar8 = FUN_000d0a8c();
+      puVar4 = FUN_000d6a9c();
+      puVar7 = FUN_000d6a9c();
+      puVar8 = FUN_000d6a9c();
       fprintf(__stream,"%s.%s_%s",puVar4,puVar7,puVar8);
       fputs("\nInner Version: ",__stream);
-      pcVar6 = FUN_000d0a8c();
+      pcVar6 = FUN_000d6a9c();
       fputs(pcVar6,__stream);
       fputs("\nMAC Address: ",__stream);
       pcVar6 = (char *)get_label_mac();
       fputs(pcVar6,__stream);
       uVar9 = nvram_get_int("dblog_duration");
       uVar9 = __aeabi_idiv(uVar9,0xe10);
       fprintf(__stream,"\nSystem debug log capture duration: %d hrs\n",uVar9);
-      puVar4 = FUN_000d0a8c();
+      puVar4 = FUN_000d6a9c();
       fprintf(__stream,"Group Id: %s\n",puVar4);
-      puVar4 = FUN_000d0a8c();
+      puVar4 = FUN_000d6a9c();
       fprintf(__stream,"System Diagnostic: %s\n",puVar4);
-      puVar4 = FUN_000d0a8c();
+      puVar4 = FUN_000d6a9c();
       fprintf(__stream,"Transaction Id: %s\n",puVar4);
-      puVar4 = FUN_000d0a8c();
+      puVar4 = FUN_000d6a9c();
       fprintf(__stream,"Dblog Remaining Time: %s\n",puVar4);
-      fprintf(__stream,"E-mail: %s\n",&local_11b8);
-      iVar5 = FUN_000d0adc("fb_contact_type","");
-      if (iVar5 != 0) {
-        puVar4 = FUN_000d0a8c();
+      fprintf(__stream,"E-mail: %s\n",&local_14b8);
+      iVar5 = FUN_000d6aec("fb_contact_type","");
+      if (iVar5 != 0) {
+        puVar4 = FUN_000d6a9c();
         fprintf(__stream,"User_Contact_Type: %s\n",puVar4);
       }
-      iVar5 = FUN_000d0adc("fb_phone","");
-      if (iVar5 != 0) {
-        puVar4 = FUN_000d0a8c();
+      iVar5 = FUN_000d6aec("fb_phone","");
+      if (iVar5 != 0) {
+        puVar4 = FUN_000d6a9c();
         fprintf(__stream,"User_Phone_Number: %s\n",puVar4);
       }
-      iVar5 = FUN_000d0adc("fb_ptype","");
-      if (iVar5 != 0) {
-        puVar4 = FUN_000d0a8c();
+      iVar5 = FUN_000d6aec("fb_ptype","");
+      if (iVar5 != 0) {
+        puVar4 = FUN_000d6a9c();
         fprintf(__stream,"Problem Type: %s\n",puVar4);
       }
-      iVar5 = FUN_000d0adc("fb_pdesc","");
-      if (iVar5 != 0) {
-        puVar4 = FUN_000d0a8c();
+      iVar5 = FUN_000d6aec("fb_pdesc","");
+      if (iVar5 != 0) {
+        puVar4 = FUN_000d6a9c();
         fprintf(__stream,"Problem Description: %s\n",puVar4);
       }
-      iVar5 = FUN_000d0adc("fb_when_occur","");
-      if (iVar5 != 0) {
-        puVar4 = FUN_000d0a8c();
+      iVar5 = FUN_000d6aec("fb_when_occur","");
+      if (iVar5 != 0) {
+        puVar4 = FUN_000d6a9c();
         fprintf(__stream,"When did it occur: %s\n",puVar4);
       }
-      iVar5 = FUN_000d0adc("fb_which_band","");
-      if (iVar5 != 0) {
-        puVar4 = FUN_000d0a8c();
+      iVar5 = FUN_000d6aec("fb_which_band","");
+      if (iVar5 != 0) {
+        puVar4 = FUN_000d6a9c();
         fprintf(__stream,"Which band(s): %s\n",puVar4);
       }
-      iVar5 = FUN_000d0adc("fb_unstable_conn","");
-      if (iVar5 != 0) {
-        puVar4 = FUN_000d0a8c();
+      iVar5 = FUN_000d6aec("fb_unstable_conn","");
+      if (iVar5 != 0) {
+        puVar4 = FUN_000d6a9c();
         fprintf(__stream,"Issue specifically with Wi-Fi or WAN: %s\n",puVar4);
       }
-      iVar5 = FUN_000d0adc("fb_serviceno","");
-      if (iVar5 != 0) {
-        puVar4 = FUN_000d0a8c();
+      iVar5 = FUN_000d6aec("fb_serviceno","");
+      if (iVar5 != 0) {
+        puVar4 = FUN_000d6a9c();
         fprintf(__stream,"ASUS_Service_Number or CRS ID: %s\n",puVar4);
       }
-      iVar5 = FUN_000d0adc("fb_tech_account","");
-      if (iVar5 != 0) {
-        puVar4 = FUN_000d0a8c();
+      iVar5 = FUN_000d6aec("fb_tech_account","");
+      if (iVar5 != 0) {
+        puVar4 = FUN_000d6a9c();
         fprintf(__stream,"Account_Name_ID: %s\n",puVar4);
       }
       fclose(__stream);
     }
-    FUN_0015bbf4(param_1,&sStack_1178);
-    if (sStack_1178.st_size < 0x200001) {
+    FUN_00163d58(param_1,&sStack_1478);
+    if (sStack_1478.st_size < 0x200001) {
       bVar1 = false;
     }
     else {
-      memset(local_c20,0,0x400);
-      snprintf(local_c20,0x400,"split -b 2m -a 1 %s %s.",param_1,param_1);
-      iVar5 = system(local_c20);
+      memset(local_f20,0,0x400);
+      snprintf(local_f20,0x400,"split -b 2m -a 1 %s %s.",param_1,param_1);
+      iVar5 = system(local_f20);
       if (iVar5 != 0) {
         logmessage_normal("senddblog","Failed to split log file!\n");
         uVar9 = 8;
         goto LAB_0;
       }
       bVar1 = true;
     }
-    __dirp = opendir(local_1120);
+    __dirp = opendir(local_1420);
     if (__dirp != (DIR *)0x0) {
       while( true ) {
         do {
           pdVar10 = readdir(__dirp);
           if (pdVar10 == (dirent *)0x0) {
             closedir(__dirp);
             nvram_set_int("dblog_state",6);
             nvram_set("fb_state","1");
             unlink("/tmp/dblogmailcontent");
             unlink(param_1);
             nvram_commit();
             logmessage_normal("senddblog","start_senddblog() end...\n");
             return;
           }
           __haystack = pdVar10->d_name;
           pcVar6 = strstr(__haystack,"sysdblog");
         } while ((pcVar6 == (char *)0x0) ||
                 ((bVar1 && (iVar5 = strcmp(__haystack,pcVar3), iVar5 == 0))));
-        snprintf(local_e20,0x200,"%s/%s",local_1120,__haystack);
-        local_820[0] = '\0';
-        local_820[1] = '\0';
-        local_820[2] = '\0';
-        local_820[3] = '\0';
-        memset(local_820 + 4,0,0x7fc);
-        snprintf(local_820,0x800,"-a %s",local_e20);
-        bVar2 = FUN_000d1890("/tmp/dblogmailcontent",local_820);
+        snprintf(local_1120,0x200,"%s/%s",local_1420,__haystack);
+        local_b20[0] = '\0';
+        local_b20[1] = '\0';
+        local_b20[2] = '\0';
+        local_b20[3] = '\0';
+        memset(local_b20 + 4,0,0xafc);
+        snprintf(local_b20,0xb00,"-a %s",local_1120);
+        bVar2 = FUN_000d78f4("/tmp/dblogmailcontent",local_b20);
         if (!bVar2) break;
-        unlink(local_e20);
+        unlink(local_1120);
       }
       logmessage_normal("senddblog","Send Diagnostic Log failed\n");
       nvram_set_int("dblog_state",7);
       closedir(__dirp);
       nvram_set("fb_state",&DAT_1);
       return;
     }
     piVar11 = __errno_location();
     pcVar3 = strerror(*piVar11);
-    logmessage_normal("senddblog","Open Directory %s Error: %s\n",local_1120,pcVar3);
+    logmessage_normal("senddblog","Open Directory %s Error: %s\n",local_1420,pcVar3);
     uVar9 = 9;
   }
 LAB_0:
   nvram_set_int("dblog_state",uVar9);
   return;
 }
 

FUN_0003643c

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,refcount,length,sig,address,calling,called
ratio 0.61
i_ratio 0.21
m_ratio 0.65
b_ratio 0.66
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_0003643c FUN_00037f70
fullname FUN_0003643c FUN_00037f70
refcount 13 15
length 3156 3172
called
Expand for full list:
::atoi
::fclose
::file_lock
::file_unlock
::find_word
::fopen
::fprintf
::get_ipv6_service
::inet_pton
::ipv6_nvname
::is_phy_connect
::nvram_default_get
::nvram_get
::nvram_get_int
::nvram_get_r
::perror
::snprintf
::strchr
::strcpy
::strcspn
::strlcat
::strncpy
::strspn
::wan_primary_ifunit
::write_ovpn_resolv_dnsmasq
FUN_00034bb4
FUN_00034bd4
FUN_00034c04
FUN_0003ee00
FUN_000ea674
Expand for full list:
::atoi
::fclose
::file_lock
::file_unlock
::find_word
::fopen
::fprintf
::get_ipv6_service
::inet_pton
::ipv6_nvname
::is_phy_connect
::nvram_default_get
::nvram_get
::nvram_get_int
::nvram_get_r
::perror
::snprintf
::strchr
::strcpy
::strcspn
::strlcat
::strncpy
::strspn
::wan_primary_ifunit
::write_ovpn_resolv_dnsmasq
FUN_00036450
FUN_00036470
FUN_000364a0
FUN_000405d4
FUN_000f2074
calling FUN_00038010
FUN_00039000
FUN_000394a0
FUN_0003acc0
FUN_00070e04
FUN_0007203c
FUN_000739ec
FUN_00074f4c
FUN_000c0110
FUN_000c7bb0
Expand for full list:
FUN_00039b80
FUN_0003a628
FUN_0003aac8
FUN_0003c2cc
FUN_0005096c
FUN_0007430c
FUN_00075620
FUN_00076fc4
FUN_00078610
FUN_000c61b0
FUN_000cdbc0
FUN_001001d4
paramcount 0 0
address 0003643c 00037f70
sig undefined4 __stdcall FUN_0003643c(void) undefined4 __stdcall FUN_00037f70(void)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_0003643c Called Diff

--- FUN_0003643c called
+++ FUN_00037f70 called
@@ -26,5 +26,5 @@
-FUN_00034bb4
-FUN_00034bd4
-FUN_00034c04
-FUN_0003ee00
-FUN_000ea674
+FUN_00036450
+FUN_00036470
+FUN_000364a0
+FUN_000405d4
+FUN_000f2074

FUN_0003643c Calling Diff

--- FUN_0003643c calling
+++ FUN_00037f70 calling
@@ -1,10 +1,12 @@
-FUN_00038010
-FUN_00039000
-FUN_000394a0
-FUN_0003acc0
-FUN_00070e04
-FUN_0007203c
-FUN_000739ec
-FUN_00074f4c
-FUN_000c0110
-FUN_000c7bb0
+FUN_00039b80
+FUN_0003a628
+FUN_0003aac8
+FUN_0003c2cc
+FUN_0005096c
+FUN_0007430c
+FUN_00075620
+FUN_00076fc4
+FUN_00078610
+FUN_000c61b0
+FUN_000cdbc0
+FUN_001001d4

FUN_0003643c Diff

--- FUN_0003643c
+++ FUN_00037f70
@@ -1,346 +1,346 @@
 
-undefined4 FUN_0003643c(void)
+undefined4 FUN_00037f70(void)
 
 {
   bool bVar1;
   int iVar2;
   int iVar3;
   int iVar4;
   undefined4 uVar5;
   FILE *__stream;
   FILE *__stream_00;
   undefined4 uVar6;
   char *pcVar7;
   char *pcVar8;
   int iVar9;
   char *pcVar10;
-  char *pcVar11;
-  int iVar12;
+  int iVar11;
+  size_t sVar12;
   size_t sVar13;
-  size_t sVar14;
-  undefined *puVar15;
+  undefined *puVar14;
+  char *pcVar15;
   char *pcVar16;
-  char *pcVar17;
+  char *local_3b8;
   char acStack_398 [16];
   undefined auStack_388 [16];
   undefined auStack_378 [36];
   char local_354 [63];
   undefined local_315;
   char local_314 [99];
   undefined local_2b1;
   char local_2b0 [144];
   undefined auStack_220 [256];
   undefined auStack_120 [256];
   
   iVar2 = wan_primary_ifunit();
   iVar3 = nvram_get_int("dnspriv_enable");
-  iVar4 = FUN_000ea674();
+  iVar4 = FUN_000f2074();
   if (iVar4 != 0) {
     return 0;
   }
   uVar5 = file_lock("resolv");
   __stream = fopen("/tmp/resolv.conf","w+");
   if (__stream == (FILE *)0x0) {
     perror("/tmp/resolv.conf");
   }
   else {
     __stream_00 = fopen("/tmp/resolv.dnsmasq","w+");
     if (__stream_00 != (FILE *)0x0) {
       iVar4 = 0;
       do {
         snprintf(acStack_398,0xf,"wan%d_",iVar4);
-        uVar6 = FUN_00034c04(acStack_398,"dns",local_314);
+        uVar6 = FUN_000364a0(acStack_398,"dns",local_314);
         pcVar7 = (char *)nvram_get_r(uVar6,local_2b0,0x8d);
         if (pcVar7 == (char *)0x0) {
           pcVar7 = "";
         }
-        uVar6 = FUN_00034c04(acStack_398,"xdns",local_314);
+        uVar6 = FUN_000364a0(acStack_398,"xdns",local_314);
         pcVar8 = (char *)nvram_get_r(uVar6,auStack_378,0x22);
         if (pcVar8 == (char *)0x0) {
           pcVar8 = "";
         }
         if ((*pcVar7 != '\0') || (*pcVar8 != '\0')) {
-          bVar1 = FUN_00034bd4("wans_mode","lb");
+          bVar1 = FUN_00036470("wans_mode","lb");
           if (bVar1) {
             iVar9 = is_phy_connect(iVar4);
             if (iVar9 != 0) goto LAB_0;
           }
           else {
-            bVar1 = FUN_00034bd4("wans_mode","fb");
+            bVar1 = FUN_00036470("wans_mode","fb");
             if (bVar1) {
               if (iVar2 == iVar4) goto LAB_0;
-              pcVar16 = pcVar8;
+              pcVar15 = pcVar8;
               if (*pcVar7 != '\0') goto LAB_1;
             }
             else {
               if (iVar2 != iVar4) goto LAB_1;
 LAB_0:
-              pcVar16 = pcVar7;
+              pcVar15 = pcVar7;
               if (*pcVar7 == '\0') {
-                pcVar16 = pcVar8;
-              }
-            }
-            sVar13 = strspn(pcVar16," ");
-            pcVar10 = strncpy(local_314,pcVar16 + sVar13,100);
+                pcVar15 = pcVar8;
+              }
+            }
+            sVar12 = strspn(pcVar15," ");
+            pcVar10 = strncpy(local_314,pcVar15 + sVar12,100);
             local_2b1 = 0;
-            sVar14 = strcspn(pcVar10," ");
-            local_314[sVar14] = '\0';
-            pcVar16 = strchr(pcVar16 + sVar13,0x20);
+            sVar13 = strcspn(pcVar10," ");
+            local_314[sVar13] = '\0';
+            pcVar15 = strchr(pcVar15 + sVar12,0x20);
             while (local_314[0] != '\0') {
               fprintf(__stream,"nameserver %s\n",local_314);
               pcVar10 = "";
-              if (pcVar16 != (char *)0x0) {
-                sVar13 = strspn(pcVar16," ");
-                pcVar10 = pcVar16 + sVar13;
+              if (pcVar15 != (char *)0x0) {
+                sVar12 = strspn(pcVar15," ");
+                pcVar10 = pcVar15 + sVar12;
               }
               strncpy(local_314,pcVar10,100);
               local_2b1 = 0;
-              sVar13 = strcspn(local_314," ");
-              local_314[sVar13] = '\0';
-              pcVar16 = strchr(pcVar10,0x20);
+              sVar12 = strcspn(local_314," ");
+              local_314[sVar12] = '\0';
+              pcVar15 = strchr(pcVar10,0x20);
             }
             if ((iVar3 == 0) && (iVar9 = write_ovpn_resolv_dnsmasq(__stream_00), iVar9 == 0)) {
-              bVar1 = FUN_00034bd4("wans_mode","lb");
-              pcVar16 = pcVar7;
+              bVar1 = FUN_00036470("wans_mode","lb");
+              pcVar15 = pcVar7;
               if (bVar1) {
                 if (*pcVar7 == '\0') goto LAB_2;
               }
               else if (*pcVar7 == '\0') {
-                pcVar16 = pcVar8;
-              }
-              sVar13 = strspn(pcVar16," ");
-              pcVar10 = strncpy(local_314,pcVar16 + sVar13,100);
+                pcVar15 = pcVar8;
+              }
+              sVar12 = strspn(pcVar15," ");
+              pcVar10 = strncpy(local_314,pcVar15 + sVar12,100);
               local_2b1 = 0;
-              sVar14 = strcspn(pcVar10," ");
-              local_314[sVar14] = '\0';
-              pcVar16 = strchr(pcVar16 + sVar13,0x20);
+              sVar13 = strcspn(pcVar10," ");
+              local_314[sVar13] = '\0';
+              pcVar15 = strchr(pcVar15 + sVar12,0x20);
               while (local_314[0] != '\0') {
                 fprintf(__stream_00,"server=%s\n",local_314);
                 pcVar10 = "";
-                if (pcVar16 != (char *)0x0) {
-                  sVar13 = strspn(pcVar16," ");
-                  pcVar10 = pcVar16 + sVar13;
+                if (pcVar15 != (char *)0x0) {
+                  sVar12 = strspn(pcVar15," ");
+                  pcVar10 = pcVar15 + sVar12;
                 }
                 strncpy(local_314,pcVar10,100);
                 local_2b1 = 0;
-                sVar13 = strcspn(local_314," ");
-                local_314[sVar13] = '\0';
-                pcVar16 = strchr(pcVar10,0x20);
+                sVar12 = strcspn(local_314," ");
+                local_314[sVar12] = '\0';
+                pcVar15 = strchr(pcVar10,0x20);
               }
             }
 LAB_2:
-            uVar6 = FUN_00034c04(acStack_398,"domain",local_314);
-            pcVar16 = (char *)nvram_get_r(uVar6,auStack_220,0x100);
-            if (pcVar16 == (char *)0x0) {
-              pcVar16 = "";
-            }
-            sVar13 = strspn(pcVar7," ");
-            pcVar10 = strncpy(local_314,pcVar7 + sVar13,100);
+            uVar6 = FUN_000364a0(acStack_398,"domain",local_314);
+            local_3b8 = (char *)nvram_get_r(uVar6,auStack_220,0x100);
+            if (local_3b8 == (char *)0x0) {
+              local_3b8 = "";
+            }
+            sVar12 = strspn(pcVar7," ");
+            pcVar15 = strncpy(local_314,pcVar7 + sVar12,100);
             local_2b1 = 0;
-            sVar14 = strcspn(pcVar10," ");
-            local_314[sVar14] = '\0';
-            pcVar10 = strchr(pcVar7 + sVar13,0x20);
+            sVar13 = strcspn(pcVar15," ");
+            local_314[sVar13] = '\0';
+            pcVar15 = strchr(pcVar7 + sVar12,0x20);
             while (local_314[0] != '\0') {
-              sVar13 = strspn(pcVar16," ");
-              pcVar11 = strncpy(local_354,pcVar16 + sVar13,0x40);
+              sVar12 = strspn(local_3b8," ");
+              pcVar10 = strncpy(local_354,local_3b8 + sVar12,0x40);
               local_315 = 0;
-              sVar14 = strcspn(pcVar11," ");
-              local_354[sVar14] = '\0';
-              pcVar11 = strchr(pcVar16 + sVar13,0x20);
+              sVar13 = strcspn(pcVar10," ");
+              local_354[sVar13] = '\0';
+              pcVar10 = strchr(local_3b8 + sVar12,0x20);
               while (local_354[0] != '\0') {
                 fprintf(__stream_00,"server=/%s/%s\n",local_354,local_314);
-                pcVar17 = "";
-                if (pcVar11 != (char *)0x0) {
-                  sVar13 = strspn(pcVar11," ");
-                  pcVar17 = pcVar11 + sVar13;
+                pcVar16 = "";
+                if (pcVar10 != (char *)0x0) {
+                  sVar12 = strspn(pcVar10," ");
+                  pcVar16 = pcVar10 + sVar12;
                 }
-                pcVar11 = strncpy(local_354,pcVar17,0x40);
+                pcVar10 = strncpy(local_354,pcVar16,0x40);
                 local_315 = 0;
-                sVar13 = strcspn(pcVar11," ");
-                local_354[sVar13] = '\0';
-                pcVar11 = strchr(pcVar17,0x20);
-              }
-              if (pcVar10 == (char *)0x0) {
-                pcVar10 = "";
+                sVar12 = strcspn(pcVar10," ");
+                local_354[sVar12] = '\0';
+                pcVar10 = strchr(pcVar16,0x20);
+              }
+              if (pcVar15 == (char *)0x0) {
+                pcVar15 = "";
               }
               else {
-                sVar13 = strspn(pcVar10," ");
-                pcVar10 = pcVar10 + sVar13;
-              }
-              strncpy(local_314,pcVar10,100);
+                sVar12 = strspn(pcVar15," ");
+                pcVar15 = pcVar15 + sVar12;
+              }
+              pcVar10 = strncpy(local_314,pcVar15,100);
               local_2b1 = 0;
-              sVar13 = strcspn(local_314," ");
-              local_314[sVar13] = '\0';
-              pcVar10 = strchr(pcVar10,0x20);
-            }
-            uVar6 = FUN_00034c04(acStack_398,"xdomain",local_314);
-            pcVar10 = (char *)nvram_get_r(uVar6,auStack_120,0x100);
-            if (pcVar10 == (char *)0x0) {
-              pcVar10 = "";
-            }
-            sVar13 = strspn(pcVar8," ");
-            pcVar8 = strncpy(local_314,pcVar8 + sVar13,100);
+              sVar12 = strcspn(pcVar10," ");
+              local_314[sVar12] = '\0';
+              pcVar15 = strchr(pcVar15,0x20);
+            }
+            uVar6 = FUN_000364a0(acStack_398,"xdomain",local_314);
+            pcVar15 = (char *)nvram_get_r(uVar6,auStack_120,0x100);
+            if (pcVar15 == (char *)0x0) {
+              pcVar15 = "";
+            }
+            sVar12 = strspn(pcVar8," ");
+            pcVar8 = strncpy(local_314,pcVar8 + sVar12,100);
             local_2b1 = 0;
-            sVar14 = strcspn(pcVar8," ");
-            local_314[sVar14] = '\0';
-            pcVar8 = strchr(pcVar8 + sVar13,0x20);
+            sVar13 = strcspn(pcVar8," ");
+            local_314[sVar13] = '\0';
+            pcVar8 = strchr(pcVar8 + sVar12,0x20);
             while (local_314[0] != '\0') {
               iVar9 = find_word(pcVar7,local_314);
-              sVar13 = strspn(pcVar10," ");
-              pcVar11 = strncpy(local_354,pcVar10 + sVar13,0x40);
+              sVar12 = strspn(pcVar15," ");
+              pcVar10 = strncpy(local_354,pcVar15 + sVar12,0x40);
               local_315 = 0;
-              sVar14 = strcspn(pcVar11," ");
-              local_354[sVar14] = '\0';
-              pcVar11 = strchr(pcVar10 + sVar13,0x20);
+              sVar13 = strcspn(pcVar10," ");
+              local_354[sVar13] = '\0';
+              pcVar10 = strchr(pcVar15 + sVar12,0x20);
               while (local_354[0] != '\0') {
-                if ((iVar9 == 0) || (iVar12 = find_word(pcVar16,local_354), iVar12 == 0)) {
+                if ((iVar9 == 0) || (iVar11 = find_word(local_3b8,local_354), iVar11 == 0)) {
                   fprintf(__stream_00,"server=/%s/%s\n",local_354,local_314);
                 }
-                pcVar17 = "";
-                if (pcVar11 != (char *)0x0) {
-                  sVar13 = strspn(pcVar11," ");
-                  pcVar17 = pcVar11 + sVar13;
+                pcVar16 = "";
+                if (pcVar10 != (char *)0x0) {
+                  sVar12 = strspn(pcVar10," ");
+                  pcVar16 = pcVar10 + sVar12;
                 }
-                pcVar11 = strncpy(local_354,pcVar17,0x40);
+                pcVar10 = strncpy(local_354,pcVar16,0x40);
                 local_315 = 0;
-                sVar13 = strcspn(pcVar11," ");
-                local_354[sVar13] = '\0';
-                pcVar11 = strchr(pcVar17,0x20);
+                sVar12 = strcspn(pcVar10," ");
+                local_354[sVar12] = '\0';
+                pcVar10 = strchr(pcVar16,0x20);
               }
               if (pcVar8 == (char *)0x0) {
                 pcVar8 = "";
               }
               else {
-                sVar13 = strspn(pcVar8," ");
-                pcVar8 = pcVar8 + sVar13;
-              }
-              pcVar11 = strncpy(local_314,pcVar8,100);
+                sVar12 = strspn(pcVar8," ");
+                pcVar8 = pcVar8 + sVar12;
+              }
+              pcVar10 = strncpy(local_314,pcVar8,100);
               local_2b1 = 0;
-              sVar13 = strcspn(pcVar11," ");
-              local_314[sVar13] = '\0';
+              sVar12 = strcspn(pcVar10," ");
+              local_314[sVar12] = '\0';
               pcVar8 = strchr(pcVar8,0x20);
             }
           }
         }
 LAB_1:
-        if (iVar4 == 1) goto code_r0x000365a0;
+        if (iVar4 == 1) goto code_r0x000380d0;
         iVar4 = 1;
       } while( true );
     }
     perror("/tmp/resolv.dnsmasq");
     fclose(__stream);
   }
   file_unlock(uVar5);
   return 0xffffffff;
-code_r0x000365a0:
+code_r0x000380d0:
   if (iVar3 != 0) {
     fprintf(__stream,"nameserver %s\n","127.0.1.1");
     fprintf(__stream_00,"server=%s\n","127.0.1.1");
   }
   iVar2 = get_ipv6_service();
   if (iVar2 == 0) goto LAB_3;
   iVar2 = nvram_get("sw_mode");
   if (iVar2 == 0) {
     pcVar7 = (char *)nvram_default_get("sw_mode");
     iVar2 = atoi(pcVar7);
   }
   else {
     iVar2 = nvram_get_int();
   }
   if (iVar2 != 1) {
     iVar2 = nvram_get("sw_mode");
     if (iVar2 == 0) {
       pcVar7 = (char *)nvram_default_get("sw_mode");
       iVar2 = atoi(pcVar7);
     }
     else {
       iVar2 = nvram_get_int("sw_mode");
     }
     if (iVar2 != 4) goto LAB_3;
   }
   iVar2 = get_ipv6_service();
   if ((iVar2 == 1) || (iVar2 == 6)) {
     ipv6_nvname("ipv6_dnsenable");
     iVar2 = nvram_get_int();
     if (iVar2 == 0) goto LAB_4;
     uVar6 = ipv6_nvname("ipv6_get_dns");
     pcVar7 = (char *)nvram_get_r(uVar6,local_2b0,0x8d);
     if (pcVar7 == (char *)0x0) {
       pcVar7 = "";
     }
     uVar6 = ipv6_nvname("ipv6_get_domain");
     pcVar8 = (char *)nvram_get_r(uVar6,auStack_220,0x100);
     if (pcVar8 == (char *)0x0) {
       pcVar8 = "";
     }
   }
   else {
 LAB_4:
     pcVar7 = strcpy(local_2b0,"");
     iVar2 = 1;
     do {
       snprintf(local_314,100,"ipv6_dns%d",iVar2);
       if (local_2b0[0] != '\0') {
         strlcat(local_2b0," ",0x8d);
       }
       iVar2 = iVar2 + 1;
       ipv6_nvname(local_314);
-      puVar15 = FUN_00034bb4();
-      strlcat(local_2b0,puVar15,0x8d);
+      puVar14 = FUN_00036450();
+      strlcat(local_2b0,puVar14,0x8d);
     } while (iVar2 != 4);
     pcVar8 = "";
   }
-  sVar13 = strspn(pcVar7," ");
-  strncpy(local_314,pcVar7 + sVar13,100);
+  sVar12 = strspn(pcVar7," ");
+  strncpy(local_314,pcVar7 + sVar12,100);
   local_2b1 = 0;
-  sVar14 = strcspn(local_314," ");
-  local_314[sVar14] = '\0';
-  pcVar7 = strchr(pcVar7 + sVar13,0x20);
+  sVar13 = strcspn(local_314," ");
+  local_314[sVar13] = '\0';
+  pcVar7 = strchr(pcVar7 + sVar12,0x20);
   while (local_314[0] != '\0') {
     iVar2 = inet_pton(10,local_314,auStack_388);
     if (0 < iVar2) {
-      sVar13 = strspn(pcVar8," ");
-      strncpy(local_354,pcVar8 + sVar13,0x40);
+      sVar12 = strspn(pcVar8," ");
+      strncpy(local_354,pcVar8 + sVar12,0x40);
       local_315 = 0;
-      sVar14 = strcspn(local_354," ");
-      local_354[sVar14] = '\0';
-      pcVar16 = strchr(pcVar8 + sVar13,0x20);
+      sVar13 = strcspn(local_354," ");
+      local_354[sVar13] = '\0';
+      pcVar15 = strchr(pcVar8 + sVar12,0x20);
       while (local_354[0] != '\0') {
         fprintf(__stream_00,"server=/%s/%s\n",local_354,local_314);
         pcVar10 = "";
-        if (pcVar16 != (char *)0x0) {
-          sVar13 = strspn(pcVar16," ");
-          pcVar10 = pcVar16 + sVar13;
+        if (pcVar15 != (char *)0x0) {
+          sVar12 = strspn(pcVar15," ");
+          pcVar10 = pcVar15 + sVar12;
         }
         strncpy(local_354,pcVar10,0x40);
         local_315 = 0;
-        sVar13 = strcspn(local_354," ");
-        local_354[sVar13] = '\0';
-        pcVar16 = strchr(pcVar10,0x20);
+        sVar12 = strcspn(local_354," ");
+        local_354[sVar12] = '\0';
+        pcVar15 = strchr(pcVar10,0x20);
       }
       if (iVar3 == 0) {
-        fprintf(__stream,"nameserver %s\n",local_314);
+        fprintf(__stream,"nameserver %s\n");
         fprintf(__stream_00,"server=%s\n",local_314);
       }
     }
     if (pcVar7 == (char *)0x0) {
       pcVar7 = "";
     }
     else {
-      sVar13 = strspn(pcVar7," ");
-      pcVar7 = pcVar7 + sVar13;
-    }
-    strncpy(local_314,pcVar7,100);
+      sVar12 = strspn(pcVar7," ");
+      pcVar7 = pcVar7 + sVar12;
+    }
+    pcVar15 = strncpy(local_314,pcVar7,100);
     local_2b1 = 0;
-    sVar13 = strcspn(local_314," ");
-    local_314[sVar13] = '\0';
+    sVar12 = strcspn(pcVar15," ");
+    local_314[sVar12] = '\0';
     pcVar7 = strchr(pcVar7,0x20);
   }
 LAB_3:
   fclose(__stream);
   fclose(__stream_00);
   file_unlock(uVar5);
-  FUN_0003ee00();
+  FUN_000405d4();
   return 0;
 }
 

FUN_0011cf48

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.73
i_ratio 0.46
m_ratio 0.92
b_ratio 0.94
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_0011cf48 FUN_00123be4
fullname FUN_0011cf48 FUN_00123be4
refcount 2 2
length 532 604
called
Expand for full list:
::asusdebuglog
::dbg
::exit
::nvram_get_int
::strcmp
::uptime
FUN_00119f1c
FUN_0011a544
FUN_0011a6a0
FUN_0011ced8
FUN_0011cf10
Expand for full list:
::asusdebuglog
::dbg
::exit
::nvram_get_int
::strcmp
::uptime
FUN_001209f0
FUN_00121018
FUN_00121174
FUN_00123b74
FUN_00123bac
calling FUN_00128ecc FUN_00130548
paramcount 3 4
address 0011cf48 00123be4
sig undefined __stdcall FUN_0011cf48(undefined4 param_1, undefined4 param_2, undefined4 param_3) undefined __stdcall FUN_00123be4(undefined4 param_1, undefined4 param_2, undefined4 param_3, undefined4 param_4)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_0011cf48 Called Diff

--- FUN_0011cf48 called
+++ FUN_00123be4 called
@@ -7,5 +7,5 @@
-FUN_00119f1c
-FUN_0011a544
-FUN_0011a6a0
-FUN_0011ced8
-FUN_0011cf10
+FUN_001209f0
+FUN_00121018
+FUN_00121174
+FUN_00123b74
+FUN_00123bac

FUN_0011cf48 Calling Diff

--- FUN_0011cf48 calling
+++ FUN_00123be4 calling
@@ -1 +1 @@
-FUN_00128ecc
+FUN_00130548

FUN_0011cf48 Diff

--- FUN_0011cf48
+++ FUN_00123be4
@@ -1,56 +1,59 @@
 
-void FUN_0011cf48(undefined4 param_1,undefined4 param_2,undefined4 param_3)
+void FUN_00123be4(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
 
 {
   undefined4 uVar1;
   char *pcVar2;
   int iVar3;
   
-  FUN_0011cf10();
-  FUN_0011ced8();
+  FUN_00123bac();
+  FUN_00123b74();
   if (DAT_0 == 0) {
-    FUN_0011a6a0();
+    FUN_00121174();
     if (DAT_1 != 0) {
       uVar1 = uptime();
       dbg("%s(0x%04x): WLC %lu: The amas_wlcconnect main is be terminal.\n",
-          "amas_free_all_memory_exit",0xa75,uVar1,param_1,param_2,param_3);
+          "amas_free_all_memory_exit",0xa75,uVar1,param_1,param_2,param_3,param_4);
     }
-    pcVar2 = FUN_00119f1c();
+    pcVar2 = FUN_001209f0();
     iVar3 = strcmp(pcVar2,"1");
     if (iVar3 == 0) {
       asusdebuglog(6,"amas_wlcconnect.log",0,1,0,"The amas_wlcconnect main is be terminal.\n");
     }
-    pcVar2 = "The amas_wlcconnect main is be terminal.\n";
+    uVar1 = 0xa75;
+    pcVar2 = "%s(%d) - The amas_wlcconnect main is be terminal.\n";
   }
   else if ((DAT_0 == 1) && (iVar3 = nvram_get_int("amas_wlc_action_state"), iVar3 != 4)) {
-    FUN_0011a544(2);
+    FUN_00121018(2);
     if (DAT_1 != 0) {
       uVar1 = uptime();
       dbg("%s(0x%04x): WLC %lu: The Request is be terminal.\n","amas_free_all_memory_exit",0xa7d,
           uVar1);
     }
-    pcVar2 = FUN_00119f1c();
+    pcVar2 = FUN_001209f0();
     iVar3 = strcmp(pcVar2,"1");
     if (iVar3 == 0) {
       asusdebuglog(6,"amas_wlcconnect.log",0,1,0,"The Request is be terminal.\n");
     }
-    pcVar2 = "The Request is be terminal.\n";
+    uVar1 = 0xa7d;
+    pcVar2 = "%s(%d) - The Request is be terminal.\n";
   }
   else {
     if (DAT_1 != 0) {
       uVar1 = uptime();
       dbg("%s(0x%04x): WLC %lu: The Connection process is be terminal.\n",
-          "amas_free_all_memory_exit",0xa7f,uVar1,param_1,param_2,param_3);
+          "amas_free_all_memory_exit",0xa7f,uVar1,param_1,param_2,param_3,param_4);
     }
-    pcVar2 = FUN_00119f1c();
+    pcVar2 = FUN_001209f0();
     iVar3 = strcmp(pcVar2,"1");
     if (iVar3 == 0) {
       asusdebuglog(6,"amas_wlcconnect.log",0,1,0,"The Connection process is be terminal.\n");
     }
-    pcVar2 = "The Connection process is be terminal.\n";
+    uVar1 = 0xa7f;
+    pcVar2 = "%s(%d) - The Connection process is be terminal.\n";
   }
-  asusdebuglog(6,"/jffs/amas_wlcconnect.log",0,1,0,pcVar2);
+  asusdebuglog(6,"/jffs/amas_wlcconnect.log",0,1,0x200,pcVar2,"amas_free_all_memory_exit",uVar1);
                     /* WARNING: Subroutine does not return */
   exit(0);
 }
 

FUN_00111a5c

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.67
i_ratio 0.26
m_ratio 0.8
b_ratio 0.91
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_00111a5c FUN_001184bc
fullname FUN_00111a5c FUN_001184bc
refcount 4 4
length 1004 996
called
Expand for full list:
::atoi
::cprintf
::get_iptv_and_dualwan_info
::memset
::nvram_default_get
::nvram_get
::nvram_get_int
::wgn_vlan_list_get_from_nvram
::wgn_vlan_list_get_other_from_nvram
::wgn_vlan_list_set_to_nvram
FUN_0010fdd0
FUN_00110558
FUN_00110a30
FUN_00110fe0
Expand for full list:
::atoi
::cprintf
::get_iptv_and_dualwan_info
::memset
::nvram_default_get
::nvram_get
::nvram_get_int
::wgn_vlan_list_get_from_nvram
::wgn_vlan_list_get_other_from_nvram
::wgn_vlan_list_set_to_nvram
FUN_00116758
FUN_00116ee0
FUN_001173b8
FUN_00117988
calling FUN_0002db20
FUN_0002fa54
FUN_000394a0
FUN_0002e8b4
FUN_000307ec
FUN_0003aac8
paramcount 0 0
address 00111a5c 001184bc
sig undefined __stdcall FUN_00111a5c(void) undefined __stdcall FUN_001184bc(void)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_00111a5c Called Diff

--- FUN_00111a5c called
+++ FUN_001184bc called
@@ -11,4 +11,4 @@
-FUN_0010fdd0
-FUN_00110558
-FUN_00110a30
-FUN_00110fe0
+FUN_00116758
+FUN_00116ee0
+FUN_001173b8
+FUN_00117988

FUN_00111a5c Calling Diff

--- FUN_00111a5c calling
+++ FUN_001184bc calling
@@ -1,3 +1,3 @@
-FUN_0002db20
-FUN_0002fa54
-FUN_000394a0
+FUN_0002e8b4
+FUN_000307ec
+FUN_0003aac8

FUN_00111a5c Diff

--- FUN_00111a5c
+++ FUN_001184bc
@@ -1,153 +1,153 @@
 
-void FUN_00111a5c(void)
+void FUN_001184bc(void)
 
 {
   int *piVar1;
   bool bVar2;
   bool bVar3;
   char *pcVar4;
   int iVar5;
   undefined *puVar6;
   int iVar7;
   int iVar8;
   undefined4 uVar9;
   uint uVar10;
   bool bVar11;
   uint uVar12;
-  undefined4 local_d040;
-  undefined4 local_d03c;
-  int local_d038;
-  uint local_d034;
-  int local_d030;
-  int local_d02c;
-  int local_d028;
-  char acStack_d024 [2052];
-  undefined auStack_c820 [25600];
-  undefined auStack_6420 [4];
-  int local_641c [6400];
+  undefined4 local_6c40;
+  undefined4 local_6c3c;
+  int local_6c38;
+  uint local_6c34;
+  int local_6c30;
+  int local_6c2c;
+  int local_6c28;
+  char acStack_6c24 [2052];
+  undefined auStack_6420 [12800];
+  undefined auStack_3220 [4];
+  int local_321c [3200];
   
   iVar5 = nvram_get("sw_mode");
   if (iVar5 == 0) {
     pcVar4 = (char *)nvram_default_get("sw_mode");
     iVar5 = atoi(pcVar4);
   }
   else {
     iVar5 = nvram_get_int();
   }
   iVar5 = iVar5 + -1;
   if (iVar5 != 0) {
     iVar5 = 1;
   }
-  if (((iVar5 != 0) && (bVar3 = FUN_0010fdd0(), !bVar3)) &&
+  if (((iVar5 != 0) && (bVar3 = FUN_00116758(), !bVar3)) &&
      (iVar5 = nvram_get_int("re_mode"), iVar5 != 1)) {
     return;
   }
-  FUN_00110fe0();
-  FUN_00110a30();
+  FUN_00117988();
+  FUN_001173b8();
   uVar12 = 0;
-  local_d03c = 0xff00ff;
-  local_d030 = 0;
-  local_d02c = 0;
-  local_d028 = 0;
-  local_d040 = 0;
-  local_d038 = 0;
-  local_d034 = 0;
-  memset(auStack_c820,0,0x6400);
-  iVar5 = wgn_vlan_list_get_other_from_nvram(auStack_c820,0x100,&local_d038);
+  local_6c3c = 0xff00ff;
+  local_6c30 = 0;
+  local_6c2c = 0;
+  local_6c28 = 0;
+  local_6c40 = 0;
+  local_6c38 = 0;
+  local_6c34 = 0;
+  memset(auStack_6420,0,0x3200);
+  iVar5 = wgn_vlan_list_get_other_from_nvram(auStack_6420,0x80,&local_6c38);
   if (iVar5 != 0) {
-    memset(auStack_6420,0,0x6400);
-    iVar5 = wgn_vlan_list_get_from_nvram(auStack_6420,0x100,&local_d034);
+    memset(auStack_3220,0,0x3200);
+    iVar5 = wgn_vlan_list_get_from_nvram(auStack_3220,0x80,&local_6c34);
     if (iVar5 != 0) {
+      get_iptv_and_dualwan_info(&local_6c30,3,&local_6c40,&local_6c3c);
+      bVar11 = false;
       iVar5 = 0;
-      get_iptv_and_dualwan_info(&local_d030,3,&local_d040,&local_d03c);
-      bVar11 = false;
       bVar3 = false;
       bVar2 = false;
-      while (uVar12 < local_d034) {
+      while (uVar12 < local_6c34) {
         if (bVar11) {
           if (iVar5 == 0) {
             iVar7 = 0x1fe;
 LAB_0:
-            local_641c[uVar12 * 0x19] = iVar7;
-            memset(acStack_d024,0,0x801);
+            local_321c[uVar12 * 0x19] = iVar7;
+            memset(acStack_6c24,0,0x801);
             iVar5 = iVar7;
-            pcVar4 = FUN_00110558(acStack_d024,0x800,"solve conflict: vlan_list[%d].vid: %d\n",
+            pcVar4 = FUN_00116ee0(acStack_6c24,0x800,"solve conflict: vlan_list[%d].vid: %d\n",
                                   uVar12);
-            cprintf("%s(LINE:%d):%s\n","amas_wgn.c",0x2d5,pcVar4,iVar5);
+            cprintf("%s(LINE:%d):%s\n","amas_wgn.c",0x2f5,pcVar4,iVar5);
             bVar3 = true;
             iVar5 = iVar7;
             goto LAB_1;
           }
           if (iVar5 == -1) {
-            local_641c[uVar12 * 0x19] = -1;
+            local_321c[uVar12 * 0x19] = -1;
           }
           else {
             iVar7 = iVar5 + 1;
             if (bVar2) {
               if (iVar7 < 0x1000) goto LAB_2;
             }
             else {
               if (0x5e6 < iVar7) {
                 iVar7 = 0x32;
                 bVar2 = true;
                 goto LAB_0;
               }
 LAB_2:
               if (iVar5 != -2) goto LAB_0;
             }
             iVar5 = -1;
-            local_641c[uVar12 * 0x19] = -1;
+            local_321c[uVar12 * 0x19] = -1;
           }
           bVar3 = true;
 LAB_3:
           uVar12 = uVar12 + 1;
           bVar11 = false;
         }
         else {
 LAB_1:
-          iVar7 = local_641c[uVar12 * 0x19];
+          iVar7 = local_321c[uVar12 * 0x19];
           if (iVar7 != -1) {
-            if (((iVar7 != local_d030) && (iVar7 != local_d02c)) && (iVar7 != local_d028)) {
-              puVar6 = auStack_c820;
-              for (iVar8 = 0; local_d038 != iVar8; iVar8 = iVar8 + 1) {
+            if (((iVar7 != local_6c30) && (iVar7 != local_6c2c)) && (iVar7 != local_6c28)) {
+              puVar6 = auStack_6420;
+              for (iVar8 = 0; local_6c38 != iVar8; iVar8 = iVar8 + 1) {
                 piVar1 = (int *)(puVar6 + 4);
                 puVar6 = puVar6 + 100;
                 if (iVar7 == *piVar1) {
-                  memset(acStack_d024,0,0x801);
-                  pcVar4 = FUN_00110558(acStack_d024,0x800,
+                  memset(acStack_6c24,0,0x801);
+                  pcVar4 = FUN_00116ee0(acStack_6c24,0x800,
                                         "TAGGED_BASE conflict: vlan_list[%d].vid: %d\n",uVar12);
-                  uVar9 = 0x2f0;
+                  uVar9 = 0x310;
                   goto LAB_4;
                 }
               }
-              puVar6 = auStack_6420;
-              for (uVar10 = 0; local_d034 != uVar10; uVar10 = uVar10 + 1) {
+              puVar6 = auStack_3220;
+              for (uVar10 = 0; local_6c34 != uVar10; uVar10 = uVar10 + 1) {
                 if ((uVar12 != uVar10) && (iVar7 == *(int *)(puVar6 + 4))) {
-                  memset(acStack_d024,0,0x801);
-                  pcVar4 = FUN_00110558(acStack_d024,0x800,"WGN conflict: vlan_list[%d].vid: %d\n",
+                  memset(acStack_6c24,0,0x801);
+                  pcVar4 = FUN_00116ee0(acStack_6c24,0x800,"WGN conflict: vlan_list[%d].vid: %d\n",
                                         uVar12);
-                  uVar9 = 0x301;
+                  uVar9 = 0x321;
                   goto LAB_4;
                 }
                 puVar6 = puVar6 + 100;
               }
               goto LAB_3;
             }
-            memset(acStack_d024,0,0x801);
-            pcVar4 = FUN_00110558(acStack_d024,0x800,"IPTV conflict: vlan_list[%d].vid: %d\n",uVar12
+            memset(acStack_6c24,0,0x801);
+            pcVar4 = FUN_00116ee0(acStack_6c24,0x800,"IPTV conflict: vlan_list[%d].vid: %d\n",uVar12
                                  );
-            uVar9 = 0x2e3;
+            uVar9 = 0x303;
 LAB_4:
             cprintf("%s(LINE:%d):%s\n","amas_wgn.c",uVar9,pcVar4,iVar7);
           }
           bVar11 = true;
         }
       }
       if (bVar3) {
-        wgn_vlan_list_set_to_nvram(auStack_6420);
+        wgn_vlan_list_set_to_nvram(auStack_3220);
       }
     }
   }
   return;
 }
 

FUN_00048260

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.3
i_ratio 0.39
m_ratio 0.8
b_ratio 0.29
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_00048260 FUN_0004a4b8
fullname FUN_00048260 FUN_0004a4b8
refcount 10 10
length 2024 1988
called
Expand for full list:
::_vstrsep
::atoi
::ether_atoe
::f_exists
::f_read
::fclose
::fopen
::fprintf
::fputs
::free
::get_lan_hostname
::get_lan_hwaddr
::get_productid
::get_wan_ifname
::getpid
::getuid
::is_nat_enabled
::is_phy_connect
::mkdir
::notify_rc
::nvram_default_get
::nvram_get
::nvram_get_int
::nvram_set
::nvram_set_int
::snprintf
::strcmp
::strdup
::strsep
::wan_primary_ifunit
FUN_0003dfd4
FUN_0003dff4
FUN_0003e15c
FUN_00060c20
FUN_00061dfc
Expand for full list:
::_vstrsep
::atoi
::ether_atoe
::f_exists
::f_read
::fclose
::fopen
::fprintf
::fputs
::free
::get_lan_hostname
::get_lan_hwaddr
::get_productid
::get_wan_ifname
::getpid
::getuid
::is_nat_enabled
::is_phy_connect
::mkdir
::notify_rc
::nvram_default_get
::nvram_get
::nvram_get_int
::nvram_set
::nvram_set_int
::snprintf
::strcmp
::strdup
::strsep
::wan_primary_ifunit
FUN_0003f6c8
FUN_0003f6e8
FUN_0003f850
FUN_00063ffc
FUN_000651d8
calling FUN_000394a0
FUN_0004d584
FUN_0004d76c
FUN_0003aac8
FUN_00050780
FUN_0005096c
paramcount 0 0
address 00048260 0004a4b8
sig undefined __stdcall FUN_00048260(void) undefined __stdcall FUN_0004a4b8(void)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_00048260 Called Diff

--- FUN_00048260 called
+++ FUN_0004a4b8 called
@@ -31,5 +31,5 @@
-FUN_0003dfd4
-FUN_0003dff4
-FUN_0003e15c
-FUN_00060c20
-FUN_00061dfc
+FUN_0003f6c8
+FUN_0003f6e8
+FUN_0003f850
+FUN_00063ffc
+FUN_000651d8

FUN_00048260 Calling Diff

--- FUN_00048260 calling
+++ FUN_0004a4b8 calling
@@ -1,3 +1,3 @@
-FUN_000394a0
-FUN_0004d584
-FUN_0004d76c
+FUN_0003aac8
+FUN_00050780
+FUN_0005096c

FUN_00048260 Diff

--- FUN_00048260
+++ FUN_0004a4b8
@@ -1,242 +1,239 @@
 
-void FUN_00048260(void)
+void FUN_0004a4b8(void)
 
 {
-  undefined4 uVar1;
-  undefined4 uVar2;
-  bool bVar3;
-  __pid_t _Var4;
-  __uid_t _Var5;
+  bool bVar1;
+  __pid_t _Var2;
+  __uid_t _Var3;
+  int iVar4;
+  int iVar5;
   int iVar6;
-  int iVar7;
-  int iVar8;
   FILE *__stream;
-  undefined *puVar9;
-  undefined *puVar10;
-  uint uVar11;
+  undefined *puVar7;
+  undefined *puVar8;
+  uint uVar9;
+  undefined4 uVar10;
+  undefined4 uVar11;
   undefined4 uVar12;
   undefined4 uVar13;
-  undefined4 uVar14;
-  undefined4 uVar15;
+  char *pcVar14;
+  int iVar15;
   char *pcVar16;
-  int iVar17;
+  char *pcVar17;
   char *pcVar18;
-  char *pcVar19;
-  char *pcVar20;
   char *local_f8;
   char *local_f4;
   undefined auStack_f0 [4];
   char *pcStack_ec;
   undefined auStack_e8 [4];
   undefined auStack_e4 [4];
   char *local_e0;
   char *local_dc;
   byte local_d8;
   byte local_d7;
   byte local_d6;
   byte local_d5;
   byte local_d4;
   byte local_d3;
   char acStack_d0 [16];
   char acStack_c0 [20];
   char acStack_ac [40];
   char acStack_84 [100];
   
-  _Var4 = getpid();
-  if ((_Var4 != 1) && (_Var5 = getuid(), _Var5 != 0)) {
+  _Var2 = getpid();
+  if ((_Var2 != 1) && (_Var3 = getuid(), _Var3 != 0)) {
     notify_rc("start_upnp");
     return;
   }
-  iVar6 = nvram_get("sw_mode");
+  iVar4 = nvram_get("sw_mode");
+  if (iVar4 == 0) {
+    pcVar18 = (char *)nvram_default_get("sw_mode");
+    iVar4 = atoi(pcVar18);
+  }
+  else {
+    iVar4 = nvram_get_int();
+  }
+  iVar4 = iVar4 + -1;
+  if (iVar4 != 0) {
+    iVar4 = 1;
+  }
+  if (iVar4 != 0) {
+    iVar4 = nvram_get("sw_mode");
+    if (iVar4 == 0) {
+      pcVar18 = (char *)nvram_default_get("sw_mode");
+      iVar4 = atoi(pcVar18);
+    }
+    else {
+      iVar4 = nvram_get_int();
+    }
+    iVar4 = iVar4 + -4;
+    if (iVar4 != 0) {
+      iVar4 = 1;
+    }
+    if (iVar4 != 0) {
+      return;
+    }
+  }
+  iVar4 = wan_primary_ifunit();
+  bVar1 = FUN_0003f6e8("wans_mode","lb");
+  if ((bVar1) && (iVar5 = is_phy_connect(iVar4), iVar5 == 0)) {
+    iVar4 = 1 - iVar4;
+  }
+  snprintf(acStack_d0,0xf,"wan%d_",iVar4);
+  iVar5 = nvram_get_int("upnp_mnp");
+  FUN_0003f850(acStack_d0,"upnp_enable",acStack_84);
+  iVar6 = nvram_get_int();
   if (iVar6 == 0) {
-    pcVar20 = (char *)nvram_default_get("sw_mode");
-    iVar6 = atoi(pcVar20);
-  }
-  else {
-    iVar6 = nvram_get_int();
-  }
-  iVar6 = iVar6 + -1;
-  if (iVar6 != 0) {
-    iVar6 = 1;
-  }
-  if (iVar6 != 0) {
-    iVar6 = nvram_get("sw_mode");
-    if (iVar6 == 0) {
-      pcVar20 = (char *)nvram_default_get("sw_mode");
-      iVar6 = atoi(pcVar20);
-    }
-    else {
-      iVar6 = nvram_get_int();
-    }
-    iVar6 = iVar6 + -4;
-    if (iVar6 != 0) {
-      iVar6 = 1;
-    }
-    if (iVar6 != 0) {
-      return;
-    }
-  }
-  iVar6 = wan_primary_ifunit();
-  bVar3 = FUN_0003dff4("wans_mode","lb");
-  if ((bVar3) && (iVar7 = is_phy_connect(iVar6), iVar7 == 0)) {
-    iVar6 = 1 - iVar6;
-  }
-  snprintf(acStack_d0,0xf,"wan%d_",iVar6);
-  iVar7 = nvram_get_int("upnp_mnp");
-  FUN_0003e15c(acStack_d0,"upnp_enable",acStack_84);
-  iVar8 = nvram_get_int();
-  if (iVar8 == 0) {
     return;
   }
-  pcVar20 = "/etc/upnp/config.alt";
+  pcVar18 = "/etc/upnp/config.alt";
   mkdir("/etc/upnp",0x1ff);
-  iVar8 = f_exists("/etc/upnp/config.alt");
-  if (iVar8 != 0) goto LAB_0;
+  iVar6 = f_exists("/etc/upnp/config.alt");
+  if (iVar6 != 0) goto LAB_0;
   __stream = fopen("/etc/upnp/config","w");
   if (__stream == (FILE *)0x0) {
     return;
   }
-  puVar9 = FUN_0003dfd4();
-  puVar10 = FUN_0003dfd4();
-  uVar11 = nvram_get_int("upnp_port");
-  if (0xffff < uVar11) {
-    uVar11 = 0;
-  }
-  uVar12 = get_lan_hwaddr();
-  iVar8 = ether_atoe(uVar12,&local_d8);
-  if (iVar8 == 0) {
+  puVar7 = FUN_0003f6c8();
+  puVar8 = FUN_0003f6c8();
+  uVar9 = nvram_get_int("upnp_port");
+  if (0xffff < uVar9) {
+    uVar9 = 0;
+  }
+  uVar10 = get_lan_hwaddr();
+  iVar6 = ether_atoe(uVar10,&local_d8);
+  if (iVar6 == 0) {
     f_read("/dev/urandom",&local_d8,6);
   }
   snprintf(acStack_c0,0x12,"%02x:%02x:%02x:%02x:%02x:%02x",(uint)local_d8,(uint)local_d7,
            (uint)local_d6,(uint)local_d5,(uint)local_d4,(uint)local_d3);
   snprintf(acStack_ac,0x25,"3ddcd1d3-2380-45f5-b069-%02x%02x%02x%02x%02x%02x",(uint)local_d8,
            (uint)local_d7,(uint)local_d6,(uint)local_d5,(uint)local_d4,(uint)local_d3);
-  nvram_set_int("upnp_unit",iVar6);
-  uVar12 = get_wan_ifname(iVar6);
-  nvram_set("upnp_ifname",uVar12);
-  uVar12 = get_wan_ifname(iVar6);
-  if (iVar7 == 0) {
-    pcVar20 = "no";
-  }
-  else {
-    pcVar20 = "yes";
-  }
-  iVar6 = nvram_get_int("upnp_secure");
-  if (iVar6 == 0) {
-    pcVar19 = "no";
-  }
-  else {
-    pcVar19 = "yes";
-  }
-  uVar13 = nvram_get_int("upnp_ssdp_interval");
-  uVar14 = get_lan_hostname();
-  uVar15 = get_productid();
-  uVar2 = rt_serialno;
-  uVar1 = rt_version;
-  pcVar16 = (char *)nvram_get("serial_no");
-  if (pcVar16 == (char *)0x0) {
-    pcVar16 = acStack_c0;
+  nvram_set_int("upnp_unit",iVar4);
+  uVar10 = get_wan_ifname(iVar4);
+  nvram_set("upnp_ifname",uVar10);
+  uVar10 = get_wan_ifname(iVar4);
+  if (iVar5 == 0) {
+    pcVar18 = "no";
+  }
+  else {
+    pcVar18 = "yes";
+  }
+  iVar4 = nvram_get_int("upnp_secure");
+  if (iVar4 == 0) {
+    pcVar17 = "no";
+  }
+  else {
+    pcVar17 = "yes";
+  }
+  uVar11 = nvram_get_int("upnp_ssdp_interval");
+  uVar12 = get_lan_hostname();
+  uVar13 = get_productid();
+  pcVar14 = (char *)nvram_get("serial_no");
+  if (pcVar14 == (char *)0x0) {
+    pcVar14 = acStack_c0;
   }
   fprintf(__stream,
-          "ext_ifname=%s\nlistening_ip=%s/%s\nport=%d\nenable_upnp=%s\nenable_natpmp=%s\nsecure_mode=%s\nupnp_forward_chain=FUPNP\nupnp_nat_chain=VUPNP\nnotify_interval=%d\nsystem_uptime=yes\nfriendly_name=%s\nmodel_name=%s\nmodel_description=%s\nmodel_number=%s.%s\nserial=%s\nuuid=%s\nlease_file=%s\n"
-          ,uVar12,puVar9,puVar10,uVar11,&DAT_1,pcVar20,pcVar19,uVar13,uVar14,uVar15,
-          "ASUS Wireless Router",uVar1,uVar2,pcVar16,acStack_ac,"/tmp/upnp.leases");
-  iVar6 = nvram_get_int("upnp_clean");
-  if (iVar6 == 0) {
+          "ext_ifname=%s\nlistening_ip=%s/%s\nport=%d\nenable_upnp=%s\nenable_natpmp=%s\nsecure_mode=%s\nupnp_forward_chain=FUPNP\nupnp_nat_chain=VUPNP\nnotify_interval=%d\nsystem_uptime=yes\nfriendly_name=%s\nmodel_name=%s\nmodel_description=%s\nmodel_number=%s\nserial=%s\nuuid=%s\nlease_file=%s\n"
+          ,uVar10,puVar7,puVar8,uVar9,&DAT_1,pcVar18,pcVar17,uVar11,uVar12,
+          "ASUS Wireless Router","ASUS Wireless Router",uVar13,pcVar14,acStack_ac,"/tmp/upnp.leases"
+         );
+  iVar4 = nvram_get_int("upnp_clean");
+  if (iVar4 == 0) {
     fprintf(__stream,"clean_ruleset_interval=%d\n");
   }
   else {
     nvram_get_int("upnp_clean_interval");
     nvram_get_int("upnp_clean_threshold");
     fprintf(__stream,"clean_ruleset_interval=%d\nclean_ruleset_threshold=%d\n");
   }
   fputs("presentation_url=",__stream);
-  iVar6 = nvram_get_int("http_enable");
-  if (iVar6 == 1) {
-    iVar6 = nvram_get_int("https_lanport");
-    pcVar20 = "https";
-    if (iVar6 == 0) {
-      iVar6 = 0x1bb;
-    }
-  }
-  else {
-    iVar6 = nvram_get_int("http_lanport");
-    pcVar20 = "http";
-    if (iVar6 == 0) {
-      iVar6 = 0x50;
-    }
-  }
-  fprintf(__stream,"%s://%s:%d/\n",pcVar20,puVar9,iVar6);
-  iVar6 = is_nat_enabled();
-  if ((iVar6 != 0) && (bVar3 = FUN_0003dff4("vts_enable_x","1"), bVar3)) {
-    pcVar20 = FUN_0003dfd4();
-    pcVar20 = strdup(pcVar20);
-    local_e0 = pcVar20;
-    while ((pcVar20 != (char *)0x0 && (pcVar19 = strsep(&local_e0,"<"), pcVar19 != (char *)0x0))) {
-      iVar6 = _vstrsep(pcVar19,">",auStack_e4,&local_f4,auStack_e8,auStack_f0,&local_f8,&pcStack_ec,
+  iVar4 = nvram_get_int("http_enable");
+  if (iVar4 == 1) {
+    iVar4 = nvram_get_int("https_lanport");
+    pcVar18 = "https";
+    if (iVar4 == 0) {
+      iVar4 = 0x1bb;
+    }
+  }
+  else {
+    iVar4 = nvram_get_int("http_lanport");
+    pcVar18 = "http";
+    if (iVar4 == 0) {
+      iVar4 = 0x50;
+    }
+  }
+  fprintf(__stream,"%s://%s:%d/\n",pcVar18,puVar7,iVar4);
+  iVar4 = is_nat_enabled();
+  if ((iVar4 != 0) && (bVar1 = FUN_0003f6e8("vts_enable_x","1"), bVar1)) {
+    pcVar18 = FUN_0003f6c8();
+    pcVar18 = strdup(pcVar18);
+    local_e0 = pcVar18;
+    while ((pcVar18 != (char *)0x0 && (pcVar17 = strsep(&local_e0,"<"), pcVar17 != (char *)0x0))) {
+      iVar4 = _vstrsep(pcVar17,">",auStack_e4,&local_f4,auStack_e8,auStack_f0,&local_f8,&pcStack_ec,
                        0);
-      if (4 < iVar6) {
-        if (iVar6 == 5) {
+      if (4 < iVar4) {
+        if (iVar4 == 5) {
           pcStack_ec = "";
         }
-        pcVar19 = strdup(local_f4);
-        local_dc = pcVar19;
-        while ((pcVar19 != (char *)0x0 &&
-               (pcVar18 = strsep(&local_dc,","), pcVar16 = local_f8, pcVar18 != (char *)0x0))) {
-          iVar6 = strcmp(local_f8,"TCP");
-          if ((iVar6 == 0) || (iVar6 = strcmp(pcVar16,"BOTH"), iVar6 == 0)) {
-            fprintf(__stream,"deny %s 0.0.0.0/0 0-65535\n",pcVar18);
+        pcVar17 = strdup(local_f4);
+        local_dc = pcVar17;
+        while ((pcVar17 != (char *)0x0 &&
+               (pcVar16 = strsep(&local_dc,","), pcVar14 = local_f8, pcVar16 != (char *)0x0))) {
+          iVar4 = strcmp(local_f8,"TCP");
+          if ((iVar4 == 0) || (iVar4 = strcmp(pcVar14,"BOTH"), iVar4 == 0)) {
+            fprintf(__stream,"deny %s 0.0.0.0/0 0-65535\n",pcVar16);
           }
-          pcVar16 = local_f8;
-          iVar6 = strcmp(local_f8,"UDP");
-          if ((iVar6 == 0) || (iVar6 = strcmp(pcVar16,"BOTH"), iVar6 == 0)) {
-            fprintf(__stream,"deny %s 0.0.0.0/0 0-65535\n",pcVar18);
+          pcVar14 = local_f8;
+          iVar4 = strcmp(local_f8,"UDP");
+          if ((iVar4 == 0) || (iVar4 = strcmp(pcVar14,"BOTH"), iVar4 == 0)) {
+            fprintf(__stream,"deny %s 0.0.0.0/0 0-65535\n",pcVar16);
           }
         }
-        free(pcVar19);
+        free(pcVar17);
       }
     }
-    free(pcVar20);
-  }
-  iVar6 = nvram_get_int("misc_http_x");
-  if (iVar6 != 0) {
-    iVar6 = nvram_get_int("http_enable");
-    if (iVar6 != 0) {
-      iVar8 = nvram_get_int("misc_httpsport_x");
-      iVar7 = 0x20fb;
-      if (iVar8 != 0) {
-        iVar7 = iVar8;
+    free(pcVar18);
+  }
+  iVar4 = nvram_get_int("misc_http_x");
+  if (iVar4 != 0) {
+    iVar4 = nvram_get_int("http_enable");
+    if (iVar4 != 0) {
+      iVar6 = nvram_get_int("misc_httpsport_x");
+      iVar5 = 0x20fb;
+      if (iVar6 != 0) {
+        iVar5 = iVar6;
       }
-      fprintf(__stream,"deny %d 0.0.0.0/0 0-65535\n",iVar7);
-      if (iVar6 == 1) goto LAB_2;
-    }
-    iVar7 = nvram_get_int("misc_httpport_x");
-    iVar6 = 0x1f90;
-    if (iVar7 != 0) {
-      iVar6 = iVar7;
-    }
-    fprintf(__stream,"deny %d 0.0.0.0/0 0-65535\n",iVar6);
+      fprintf(__stream,"deny %d 0.0.0.0/0 0-65535\n",iVar5);
+      if (iVar4 == 1) goto LAB_2;
+    }
+    iVar5 = nvram_get_int("misc_httpport_x");
+    iVar4 = 0x1f90;
+    if (iVar5 != 0) {
+      iVar4 = iVar5;
+    }
+    fprintf(__stream,"deny %d 0.0.0.0/0 0-65535\n",iVar4);
   }
 LAB_2:
-  uVar11 = nvram_get_int("aae_enable");
-  if ((uVar11 & 1) != 0) {
+  uVar9 = nvram_get_int("aae_enable");
+  if ((uVar9 & 1) != 0) {
     fputs("deny 61689 0.0.0.0/0 0-65535\n",__stream);
   }
-  iVar6 = nvram_get_int("upnp_min_port_int");
-  if ((((iVar6 < 1) || (iVar7 = nvram_get_int("upnp_max_port_int"), iVar7 < 1)) ||
-      (iVar8 = nvram_get_int("upnp_min_port_ext"), iVar8 < 1)) ||
-     (iVar17 = nvram_get_int("upnp_max_port_ext"), iVar17 < 1)) {
-    fprintf(__stream,"allow 1024-65535 %s/%s 1024-65535\n",puVar9,puVar10);
-  }
-  else {
-    fprintf(__stream,"allow %d-%d %s/%s %d-%d\n",iVar6,iVar7,puVar9,puVar10,iVar8,iVar17);
-  }
-  FUN_00061dfc(__stream,"/etc/upnp/config.custom");
+  iVar4 = nvram_get_int("upnp_min_port_int");
+  if ((((iVar4 < 1) || (iVar5 = nvram_get_int("upnp_max_port_int"), iVar5 < 1)) ||
+      (iVar6 = nvram_get_int("upnp_min_port_ext"), iVar6 < 1)) ||
+     (iVar15 = nvram_get_int("upnp_max_port_ext"), iVar15 < 1)) {
+    fprintf(__stream,"allow 1024-65535 %s/%s 1024-65535\n",puVar7,puVar8);
+  }
+  else {
+    fprintf(__stream,"allow %d-%d %s/%s %d-%d\n",iVar4,iVar5,puVar7,puVar8,iVar6,iVar15);
+  }
+  FUN_000651d8(__stream,"/etc/upnp/config.custom");
   fputs("\ndeny 0-65535 0.0.0.0/0 0-65535\n",__stream);
   fclose(__stream);
-  pcVar20 = "/etc/upnp/config";
+  pcVar18 = "/etc/upnp/config";
 LAB_0:
-  FUN_00060c20("miniupnpd",0x1617d9,pcVar20,0);
+  FUN_00063ffc("miniupnpd",0x169c4d,pcVar18,0);
   return;
 }
 

FUN_0011e608

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.83
i_ratio 0.61
m_ratio 0.95
b_ratio 0.89
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_0011e608 FUN_001252f8
fullname FUN_0011e608 FUN_001252f8
refcount 1 1
length 824 848
called ::__aeabi_f2d
::asusdebuglog
::dbg
::strcmp
::uptime
FUN_00119f1c
FUN_0011a1b8
::__aeabi_f2d
::asusdebuglog
::dbg
::strcmp
::uptime
FUN_001209f0
FUN_00120c8c
calling FUN_00121250 FUN_00128074
paramcount 1 1
address 0011e608 001252f8
sig undefined __stdcall FUN_0011e608(undefined4 * param_1) undefined __stdcall FUN_001252f8(undefined4 * param_1)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_0011e608 Called Diff

--- FUN_0011e608 called
+++ FUN_001252f8 called
@@ -6,2 +6,2 @@
-FUN_00119f1c
-FUN_0011a1b8
+FUN_001209f0
+FUN_00120c8c

FUN_0011e608 Calling Diff

--- FUN_0011e608 calling
+++ FUN_001252f8 calling
@@ -1 +1 @@
-FUN_00121250
+FUN_00128074

FUN_0011e608 Diff

--- FUN_0011e608
+++ FUN_001252f8
@@ -1,64 +1,65 @@
 
-void FUN_0011e608(undefined4 *param_1)
+void FUN_001252f8(undefined4 *param_1)
 
 {
   undefined4 uVar1;
   char *pcVar2;
   int iVar3;
   undefined *puVar4;
   int iVar5;
   int iVar6;
   undefined4 *puVar7;
   undefined4 uVar8;
   
   if (DAT_0 != 0) {
     uVar1 = uptime();
     dbg("%s(0x%04x): WLC %lu: Site Survey Result:\n","amas_dump_sitesurvey_ap",0x40b,uVar1);
   }
-  pcVar2 = FUN_00119f1c();
+  pcVar2 = FUN_001209f0();
   iVar3 = strcmp(pcVar2,"1");
   if (iVar3 == 0) {
     asusdebuglog(6,"amas_wlcconnect.log",0,1,0,"Site Survey Result:\n");
   }
   iVar3 = 0;
   for (; param_1 != (undefined4 *)0x0; param_1 = (undefined4 *)param_1[0x22]) {
     puVar7 = param_1 + 3;
     iVar6 = (int)param_1 + 0x2d;
     if (DAT_0 != 0) {
       uVar1 = uptime();
       uVar8 = *param_1;
-      puVar4 = FUN_0011a1b8(param_1[1]);
+      puVar4 = FUN_00120c8c(param_1[1]);
       __aeabi_f2d(param_1[0x19]);
       __aeabi_f2d(param_1[0x1b]);
       dbg("%s(0x%04x): WLC %lu: [%d] UUID[%d] Band[%s] SSID[%s] BSSID[%s] Manual_mode[%d] CAP Role[%d] Prefer dev[%d] RSSI[%d] Channel[%d] BW[%d] Lastbytes[0x%02x,0x%02x,0x%02x,0x%02x] PAP Cost[%.1f] Cost[%.1f] Cost_Band[%d] Score[%d]\n"
           ,"amas_dump_sitesurvey_ap",0x410,uVar1,iVar3,uVar8,puVar4,puVar7,iVar6,param_1[0x12],
           param_1[0x10],param_1[0x11],param_1[0x17],param_1[0x18],*(undefined *)(param_1 + 0x21),
           param_1[0x13],param_1[0x14],param_1[0x15],param_1[0x16]);
     }
-    pcVar2 = FUN_00119f1c();
+    pcVar2 = FUN_001209f0();
     iVar5 = strcmp(pcVar2,"1");
     if (iVar5 == 0) {
       uVar1 = *param_1;
-      puVar4 = FUN_0011a1b8(param_1[1]);
+      puVar4 = FUN_00120c8c(param_1[1]);
       __aeabi_f2d(param_1[0x19]);
       __aeabi_f2d(param_1[0x1b]);
       asusdebuglog(6,"amas_wlcconnect.log",0,1,0,
                    "[%d] UUID[%d] Band[%s] SSID[%s] BSSID[%s] Manual_mode[%d] CAP Role[%d] Prefer dev[%d] RSSI[%d] Channel[%d] BW[%d] Lastbytes[0x%02x,0x%02x,0x%02x,0x%02x] PAP Cost[%.1f] Cost[%.1f] Cost_Band[%d] Score[%d]\n"
                    ,iVar3,uVar1,puVar4,puVar7,iVar6,param_1[0x12],param_1[0x10],param_1[0x11],
                    param_1[0x17],param_1[0x18],*(undefined *)(param_1 + 0x21),param_1[0x13],
                    param_1[0x14],param_1[0x15],param_1[0x16]);
     }
     uVar1 = *param_1;
-    puVar4 = FUN_0011a1b8(param_1[1]);
+    puVar4 = FUN_00120c8c(param_1[1]);
     __aeabi_f2d(param_1[0x19]);
     __aeabi_f2d(param_1[0x1b]);
-    asusdebuglog(6,"/jffs/amas_wlcconnect.log",0,1,0,
-                 "[%d] UUID[%d] Band[%s] SSID[%s] BSSID[%s] Manual_mode[%d] CAP Role[%d] Prefer dev[%d] RSSI[%d] Channel[%d] BW[%d] Lastbytes[0x%02x,0x%02x,0x%02x,0x%02x] PAP Cost[%.1f] Cost[%.1f] Cost_Band[%d] Score[%d]\n"
-                 ,iVar3,uVar1,puVar4,puVar7,iVar6,param_1[0x12],param_1[0x10],param_1[0x11],
-                 param_1[0x17],param_1[0x18],*(undefined *)(param_1 + 0x21),param_1[0x13],
-                 param_1[0x14],param_1[0x15],param_1[0x16]);
+    asusdebuglog(6,"/jffs/amas_wlcconnect.log",0,1,0x200,
+                 "%s(%d) - [%d] UUID[%d] Band[%s] SSID[%s] BSSID[%s] Manual_mode[%d] CAP Role[%d] Prefer dev[%d] RSSI[%d] Channel[%d] BW[%d] Lastbytes[0x%02x,0x%02x,0x%02x,0x%02x] PAP Cost[%.1f] Cost[%.1f] Cost_Band[%d] Score[%d]\n"
+                 ,"amas_dump_sitesurvey_ap",0x410,iVar3,uVar1,puVar4,puVar7,iVar6,param_1[0x12],
+                 param_1[0x10],param_1[0x11],param_1[0x17],param_1[0x18],
+                 *(undefined *)(param_1 + 0x21),param_1[0x13],param_1[0x14],param_1[0x15],
+                 param_1[0x16]);
     iVar3 = iVar3 + 1;
   }
   return;
 }
 

FUN_001281b8

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.85
i_ratio 0.3
m_ratio 0.82
b_ratio 0.83
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_001281b8 FUN_0012f810
fullname FUN_001281b8 FUN_0012f810
refcount 1 1
length 2916 2952
called
Expand for full list:
::accept
::asusdebuglog
::close
::dbg
::exit
::fork
::get_wl_count
::getpid
::kill
::memset
::nvram_get_int
::nvram_set
::nvram_set_int
::sigaction
::sleep
::snprintf
::strcmp
::strtoul
::uptime
FUN_00119f1c
FUN_0011a244
FUN_0011a544
FUN_0011a558
FUN_0011a6dc
FUN_0011a730
FUN_00124dc4
FUN_001461c4
Expand for full list:
::accept
::asusdebuglog
::close
::dbg
::exit
::fork
::get_wl_count
::getpid
::kill
::memset
::nvram_get_int
::nvram_set
::nvram_set_int
::sigaction
::sleep
::snprintf
::strcmp
::strtoul
::uptime
FUN_001209f0
FUN_00120d18
FUN_00121018
FUN_0012102c
FUN_001211b0
FUN_00121204
FUN_0012c180
FUN_0014e028
calling FUN_00128ecc FUN_00130548
paramcount 0 0
address 001281b8 0012f810
sig undefined __stdcall FUN_001281b8(void) undefined __stdcall FUN_0012f810(void)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_001281b8 Called Diff

--- FUN_001281b8 called
+++ FUN_0012f810 called
@@ -20,8 +20,8 @@
-FUN_00119f1c
-FUN_0011a244
-FUN_0011a544
-FUN_0011a558
-FUN_0011a6dc
-FUN_0011a730
-FUN_00124dc4
-FUN_001461c4
+FUN_001209f0
+FUN_00120d18
+FUN_00121018
+FUN_0012102c
+FUN_001211b0
+FUN_00121204
+FUN_0012c180
+FUN_0014e028

FUN_001281b8 Calling Diff

--- FUN_001281b8 calling
+++ FUN_0012f810 calling
@@ -1 +1 @@
-FUN_00128ecc
+FUN_00130548

FUN_001281b8 Diff

--- FUN_001281b8
+++ FUN_0012f810
@@ -1,331 +1,333 @@
 
-void FUN_001281b8(void)
+void FUN_0012f810(void)
 
 {
   bool bVar1;
   char *pcVar2;
   undefined4 uVar3;
   int iVar4;
   __pid_t _Var5;
   ulong uVar6;
   ulong uVar7;
   undefined *puVar8;
   char *__s1;
   int iVar9;
   ulong uVar10;
   int iVar11;
   uint uVar12;
   char local_32c [32];
   char local_30c [32];
   char local_2ec [32];
   char local_2cc [32];
   _union_1051 local_2ac [33];
   undefined4 local_228;
   char acStack_220 [512];
   
-  DAT_0 = nvram_get_int(&DAT_0018c889);
+  DAT_0 = nvram_get_int(&DAT_00196c4a);
   pcVar2 = (char *)accept(DAT_1,(sockaddr *)0x0,(socklen_t *)0x0);
   if ((int)pcVar2 < 0) {
     if (DAT_0 != 0) {
       uVar3 = uptime();
-      dbg("%s(0x%04x): WLC %lu: failed to socket accept()!\n","amas_ipc_receive_handler",0xe06,uVar3
+      dbg("%s(0x%04x): WLC %lu: failed to socket accept()!\n","amas_ipc_receive_handler",0xe07,uVar3
          );
     }
-    pcVar2 = FUN_00119f1c();
+    pcVar2 = FUN_001209f0();
     iVar4 = strcmp(pcVar2,"1");
     if (iVar4 != 0) {
       return;
     }
     pcVar2 = "SSD %s(%d): failed to socket accept()!\n";
 LAB_2:
     asusdebuglog(6,"amas_wlcconnect.log",0,1,0,pcVar2 + 0xc);
     return;
   }
   _Var5 = fork();
   if (_Var5 < 0) {
     if (DAT_0 != 0) {
       uVar3 = uptime();
-      dbg("%s(0x%04x): WLC %lu: fork fail\n","amas_ipc_receive_handler",0xe0b,uVar3);
-    }
-    pcVar2 = FUN_00119f1c();
+      dbg("%s(0x%04x): WLC %lu: fork fail\n","amas_ipc_receive_handler",0xe0c,uVar3);
+    }
+    pcVar2 = FUN_001209f0();
     iVar4 = strcmp(pcVar2,"1");
     if (iVar4 != 0) {
       return;
     }
     pcVar2 = "SSD %s(%d): fork fail\n";
     goto LAB_2;
   }
   if (_Var5 != 0) {
     close((int)pcVar2);
     return;
   }
   close(DAT_1);
   DAT_1 = 0xffffffff;
-  FUN_0011a6dc(1);
+  FUN_001211b0(1);
   __s1 = acStack_220;
   local_2ac[0].sa_handler = (__sighandler_t)&DAT_3;
   local_228 = 0x40000000;
   sigaction(0xf,(sigaction *)local_2ac,(sigaction *)0x0);
   memset(__s1,0,0x200);
-  iVar4 = FUN_001461c4(pcVar2,__s1,0x200,(byte *)"Received",3000);
+  iVar4 = FUN_0014e028(pcVar2,__s1,0x200,(byte *)"Received",3000);
   if (iVar4 < 0) {
     if (DAT_0 != 0) {
       uVar3 = uptime();
-      dbg("%s(0x%04x): WLC %lu: Read socket error!\n","amas_ipc_handle_socekt",0xdea,uVar3);
-    }
-    pcVar2 = FUN_00119f1c();
+      dbg("%s(0x%04x): WLC %lu: Read socket error!\n","amas_ipc_handle_socekt",0xdeb,uVar3);
+    }
+    pcVar2 = FUN_001209f0();
     iVar4 = strcmp(pcVar2,"1");
     if (iVar4 != 0) goto LAB_4;
     pcVar2 = "%s(0x%04x): WLC %lu: Read socket error!\n";
   }
   else {
     iVar4 = nvram_get_int("amas_wlc_request_lock");
     if (iVar4 != 1) {
       nvram_set_int("amas_wlc_request_lock",1);
       if (DAT_0 != 0) {
         uVar3 = uptime();
-        dbg("%s(0x%04x): WLC %lu: Receive event: %s\n","amas_ipc_event_handler",0xd6a,uVar3,__s1);
+        dbg("%s(0x%04x): WLC %lu: Receive event: %s\n","amas_ipc_event_handler",0xd6b,uVar3,__s1);
       }
-      pcVar2 = FUN_00119f1c();
+      pcVar2 = FUN_001209f0();
       iVar4 = strcmp(pcVar2,"1");
       if (iVar4 == 0) {
         asusdebuglog(6,"amas_wlcconnect.log",0,1,0,"Receive event: %s\n",__s1);
       }
-      asusdebuglog(6,"/jffs/amas_wlcconnect.log",0,1,0,"Receive event: %s\n",__s1);
-      pcVar2 = FUN_00119f1c();
+      asusdebuglog(6,"/jffs/amas_wlcconnect.log",0,1,0x200,"%s(%d) - Receive event: %s\n",
+                   "amas_ipc_event_handler",0xd6b,__s1);
+      pcVar2 = FUN_001209f0();
       uVar6 = strtoul(pcVar2,(char **)0x0,0x10);
-      pcVar2 = FUN_00119f1c();
+      pcVar2 = FUN_001209f0();
       uVar7 = strtoul(pcVar2,(char **)0x0,0x10);
       local_32c[0] = '\0';
       local_32c[1] = '\0';
       local_32c[2] = '\0';
       local_32c[3] = '\0';
       memset(local_32c + 4,0,0x1c);
       local_30c[0] = '\0';
       local_30c[1] = '\0';
       local_30c[2] = '\0';
       local_30c[3] = '\0';
       memset(local_30c + 4,0,0x1c);
       local_2ec[0] = '\0';
       local_2ec[1] = '\0';
       local_2ec[2] = '\0';
       local_2ec[3] = '\0';
       memset(local_2ec + 4,0,0x1c);
       local_2cc[0] = '\0';
       local_2cc[1] = '\0';
       local_2cc[2] = '\0';
       local_2cc[3] = '\0';
       memset(local_2cc + 4,0,0x1c);
       iVar4 = strcmp(__s1,"START_CONNECTING");
       if (iVar4 == 0) {
         uVar12 = 1;
 LAB_5:
         iVar4 = nvram_get_int("amas_wlc_action_state");
         if (iVar4 != 4) {
           iVar4 = nvram_get_int("amas_wlcconnect_handler_pid");
-          if ((0 < iVar4) && (iVar4 = FUN_0011a730(iVar4), iVar4 != 0)) {
-            pcVar2 = FUN_00119f1c();
+          if ((0 < iVar4) && (iVar4 = FUN_00121204(iVar4), iVar4 != 0)) {
+            pcVar2 = FUN_001209f0();
             iVar4 = strcmp(pcVar2,__s1);
             if (iVar4 == 0) {
               iVar4 = strcmp(__s1,"START_CONNECTING_BY_DRIVER");
               if (iVar4 == 0) {
 LAB_6:
                 if (DAT_0 != 0) {
                   uVar3 = uptime();
-                  puVar8 = FUN_00119f1c();
+                  puVar8 = FUN_001209f0();
                   dbg("%s(0x%04x): WLC %lu: IPC: The event %s is same as the current processing event %s. Drop the request.\n"
-                      ,"amas_ipc_event_handler",0xda7,uVar3,acStack_220,puVar8);
+                      ,"amas_ipc_event_handler",0xda8,uVar3,acStack_220,puVar8);
                 }
-                pcVar2 = FUN_00119f1c();
+                pcVar2 = FUN_001209f0();
                 iVar4 = strcmp(pcVar2,"1");
                 if (iVar4 == 0) {
-                  puVar8 = FUN_00119f1c();
+                  puVar8 = FUN_001209f0();
                   asusdebuglog(6,"amas_wlcconnect.log",0,1,0,
                                "IPC: The event %s is same as the current processing event %s. Drop the request.\n"
                                ,acStack_220,puVar8);
                 }
-                FUN_0011a544(1);
+                FUN_00121018(1);
                 for (iVar4 = 0; iVar9 = get_wl_count(), iVar4 < iVar9; iVar4 = iVar4 + 1) {
-                  iVar9 = FUN_0011a244(iVar4);
+                  iVar9 = FUN_00120d18(iVar4);
                   if (iVar9 == 3) {
-                    FUN_0011a558(iVar4,1);
+                    FUN_0012102c(iVar4,1);
                   }
                 }
                 goto LAB_7;
               }
               iVar4 = strcmp(__s1,"START_CONNECTING");
               if ((iVar4 == 0) || (iVar4 = strcmp(__s1,"RESTART_CONNECTING"), iVar4 == 0)) {
-                pcVar2 = FUN_00119f1c();
+                pcVar2 = FUN_001209f0();
                 uVar10 = strtoul(pcVar2,(char **)0x0,0x10);
                 if (uVar6 == uVar10) {
-                  pcVar2 = FUN_00119f1c();
+                  pcVar2 = FUN_001209f0();
                   uVar10 = strtoul(pcVar2,(char **)0x0,0x10);
                   if (uVar7 == uVar10) {
                     bVar1 = false;
                     for (iVar4 = 0; iVar4 < DAT_8; iVar4 = iVar4 + 1) {
                       snprintf(local_30c,0x20,"amas_wlc%d_priority");
                       snprintf(local_2ec,0x20,"amas_wlc%d_priority_ongoing",iVar4);
                       iVar9 = nvram_get_int(local_30c);
                       iVar11 = nvram_get_int(local_2ec);
                       if (iVar9 != iVar11) goto LAB_9;
                       bVar1 = true;
                     }
                     if (bVar1) goto LAB_6;
                   }
                 }
               }
             }
           }
 LAB_9:
           nvram_set("amas_wlc_action",acStack_220);
-          FUN_0011a544(4);
+          FUN_00121018(4);
           nvram_set_int("amas_wlc_request_lock",0);
           _Var5 = nvram_get_int("amas_wlcconnect_handler_pid");
           if (0 < _Var5) {
             iVar4 = 0x1e;
             kill(_Var5,0xf);
             do {
-              iVar9 = FUN_0011a730(_Var5);
+              iVar9 = FUN_00121204(_Var5);
               if (iVar9 == 0) break;
               sleep(1);
               iVar4 = iVar4 + -1;
             } while (iVar4 != 0);
           }
-          iVar4 = FUN_0011a730(_Var5);
+          iVar4 = FUN_00121204(_Var5);
           if (iVar4 != 0) {
             kill(_Var5,9);
             for (iVar4 = 0; iVar4 < DAT_8; iVar4 = iVar4 + 1) {
               snprintf(local_2cc,0x20,"amas_wlc%d_connection_pid",iVar4);
               iVar9 = nvram_get_int(local_2cc);
               if (0 < iVar9) {
                 _Var5 = nvram_get_int(local_2cc);
                 kill(_Var5,9);
                 nvram_set_int(local_2cc,0);
               }
             }
             sleep(1);
           }
           _Var5 = getpid();
           nvram_set_int("amas_wlcconnect_handler_pid",_Var5);
           snprintf(local_32c,0x20,"%X",uVar6);
           nvram_set("amas_wlc_active_ongoing",local_32c);
           snprintf(local_32c,0x20,"%X",uVar7);
           nvram_set("amas_wlc_action_ongoing",local_32c);
           for (iVar4 = 0; iVar4 < DAT_8; iVar4 = iVar4 + 1) {
             snprintf(local_30c,0x20,"amas_wlc%d_priority",iVar4);
             snprintf(local_2ec,0x20,"amas_wlc%d_priority_ongoing",iVar4);
             uVar3 = nvram_get_int(local_30c);
             nvram_set_int(local_2ec,uVar3);
           }
-          FUN_00124dc4(uVar12);
-          FUN_0011a544(2);
+          FUN_0012c180(uVar12);
+          FUN_00121018(2);
           if (DAT_0 != 0) {
             uVar3 = uptime();
-            dbg("%s(0x%04x): WLC %lu: The Request Done.\n","amas_ipc_receive_handler",0xe1c,uVar3);
-          }
-          pcVar2 = FUN_00119f1c();
+            dbg("%s(0x%04x): WLC %lu: The Request Done.\n","amas_ipc_receive_handler",0xe1d,uVar3);
+          }
+          pcVar2 = FUN_001209f0();
           iVar4 = strcmp(pcVar2,"1");
           if (iVar4 == 0) {
             asusdebuglog(6,"amas_wlcconnect.log",0,1,0,"The Request Done.\n");
           }
-          asusdebuglog(6,"/jffs/amas_wlcconnect.log",0,1,0,"The Request Done.\n");
+          asusdebuglog(6,"/jffs/amas_wlcconnect.log",0,1,0x200,"%s(%d) - The Request Done.\n",
+                       "amas_ipc_receive_handler",0xe1d);
           nvram_set_int("amas_wlcconnect_handler_pid",0);
           if (DAT_0 != 0) {
             uVar3 = uptime();
             _Var5 = getpid();
-            dbg("%s(0x%04x): WLC %lu: Child(%d) exit\n","amas_ipc_receive_handler",0xe1e,uVar3,_Var5
+            dbg("%s(0x%04x): WLC %lu: Child(%d) exit\n","amas_ipc_receive_handler",0xe1f,uVar3,_Var5
                );
           }
-          pcVar2 = FUN_00119f1c();
+          pcVar2 = FUN_001209f0();
           iVar4 = strcmp(pcVar2,"1");
           if (iVar4 == 0) {
             _Var5 = getpid();
             asusdebuglog(6,"amas_wlcconnect.log",0,1,0,"Child(%d) exit\n",_Var5);
           }
           goto LAB_4;
         }
         if (DAT_0 != 0) {
           uVar3 = uptime();
-          puVar8 = FUN_00119f1c();
+          puVar8 = FUN_001209f0();
           dbg("%s(0x%04x): WLC %lu: IPC: The current request %s state is READY PROCESSING. Drop the new request.\n"
-              ,"amas_ipc_event_handler",0xd8c,uVar3,puVar8);
-        }
-        pcVar2 = FUN_00119f1c();
+              ,"amas_ipc_event_handler",0xd8d,uVar3,puVar8);
+        }
+        pcVar2 = FUN_001209f0();
         iVar4 = strcmp(pcVar2,"1");
         if (iVar4 == 0) {
-          __s1 = FUN_00119f1c();
+          __s1 = FUN_001209f0();
           pcVar2 = 
           "%s(0x%04x): WLC %lu: IPC: The current request %s state is READY PROCESSING. Drop the new request.\n"
           ;
 LAB_10:
           asusdebuglog(6,"amas_wlcconnect.log",0,1,0,pcVar2 + 0x15,__s1);
         }
       }
       else {
         iVar4 = strcmp(__s1,"START_SELF_OPTIMIZATION");
         if (iVar4 == 0) {
           uVar12 = 2;
           goto LAB_5;
         }
         iVar4 = strcmp(__s1,"RESTART_CONNECTING");
         if (iVar4 == 0) {
           uVar12 = 3;
           goto LAB_5;
         }
         iVar4 = strcmp(__s1,"MAINTAIN_STATUS_QUO");
         if (iVar4 == 0) {
           uVar12 = 4;
           goto LAB_5;
         }
         iVar4 = strcmp(__s1,"STOP_SELF_OPTIMIZATION");
         if (iVar4 == 0) {
           uVar12 = 5;
           goto LAB_5;
         }
         iVar4 = strcmp(__s1,"DISCONNECT_BAND");
         if (iVar4 == 0) {
           uVar12 = 6;
           goto LAB_5;
         }
         iVar4 = strcmp(__s1,"START_CONNECTING_BY_DRIVER");
         if (iVar4 == 0) {
           uVar12 = 9;
           goto LAB_5;
         }
         iVar4 = strcmp(__s1,"START_FOLLOW_CONNECTION");
         if (iVar4 == 0) {
           uVar12 = 10;
           goto LAB_5;
         }
         if (DAT_0 != 0) {
           uVar3 = uptime();
-          dbg("%s(0x%04x): WLC %lu: IPC: Not support event: %s\n","amas_ipc_event_handler",0xd86,
+          dbg("%s(0x%04x): WLC %lu: IPC: Not support event: %s\n","amas_ipc_event_handler",0xd87,
               uVar3,__s1);
         }
-        pcVar2 = FUN_00119f1c();
+        pcVar2 = FUN_001209f0();
         iVar4 = strcmp(pcVar2,"1");
         if (iVar4 == 0) {
           pcVar2 = "%s(0x%04x): WLC %lu: IPC: Not support event: %s\n";
           goto LAB_10;
         }
       }
 LAB_7:
       nvram_set_int("amas_wlc_request_lock",0);
       goto LAB_4;
     }
     if (DAT_0 != 0) {
       uVar3 = uptime();
       dbg("%s(0x%04x): WLC %lu: Request LOCK!! Drop incomming request.\n","amas_ipc_handle_socekt",
-          0xdef,uVar3);
-    }
-    pcVar2 = FUN_00119f1c();
+          0xdf0,uVar3);
+    }
+    pcVar2 = FUN_001209f0();
     iVar4 = strcmp(pcVar2,"1");
     if (iVar4 != 0) goto LAB_4;
     pcVar2 = "%s(0x%04x): WLC %lu: Request LOCK!! Drop incomming request.\n";
   }
   asusdebuglog(6,"amas_wlcconnect.log",0,1,0,pcVar2 + 0x15);
 LAB_4:
                     /* WARNING: Subroutine does not return */
   exit(0);
 }
 

FUN_001049c8

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.97
i_ratio 0.43
m_ratio 0.98
b_ratio 0.98
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_001049c8 FUN_0010af14
fullname FUN_001049c8 FUN_0010af14
refcount 1 1
length 1104 1108
called ::__ctype_toupper_loc
::asusdebuglog
::cprintf
::f_exists
::logmessage_normal
::memset
::strcmp
::uptime
FUN_00103df8
FUN_00104434
::__ctype_toupper_loc
::asusdebuglog
::cprintf
::f_exists
::logmessage_normal
::memset
::strcmp
::uptime
FUN_0010a344
FUN_0010a980
calling FUN_0010b084 FUN_0011198c
paramcount 1 1
address 001049c8 0010af14
sig undefined __stdcall FUN_001049c8(undefined * param_1) undefined __stdcall FUN_0010af14(undefined * param_1)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_001049c8 Called Diff

--- FUN_001049c8 called
+++ FUN_0010af14 called
@@ -9,2 +9,2 @@
-FUN_00103df8
-FUN_00104434
+FUN_0010a344
+FUN_0010a980

FUN_001049c8 Calling Diff

--- FUN_001049c8 calling
+++ FUN_0010af14 calling
@@ -1 +1 @@
-FUN_0010b084
+FUN_0011198c

FUN_001049c8 Diff

--- FUN_001049c8
+++ FUN_0010af14
@@ -1,109 +1,109 @@
 
-void FUN_001049c8(undefined *param_1)
+void FUN_0010af14(undefined *param_1)
 
 {
   byte bVar1;
   bool bVar2;
   __int32_t **pp_Var3;
   undefined4 uVar4;
   __int32_t *p_Var5;
   int iVar6;
   byte *pbVar7;
   byte *pbVar8;
   undefined *puVar9;
   byte *pbVar10;
   char *pcVar11;
   char local_35;
   byte local_34 [20];
   
   do {
     local_35 = '\0';
     memset(local_34,0,0x12);
     if (param_1 == (undefined *)0x0) {
       return;
     }
     puVar9 = param_1 + 1;
     pcVar11 = *(char **)(param_1 + 0x14);
-    FUN_00104434((int)puVar9,&local_35,(char *)local_34);
+    FUN_0010a980((int)puVar9,&local_35,(char *)local_34);
     for (; pcVar11 != (char *)0x0; pcVar11 = *(char **)(pcVar11 + 0x14)) {
       pp_Var3 = __ctype_toupper_loc();
       iVar6 = 0x11;
       p_Var5 = *pp_Var3;
       pbVar10 = local_34;
       do {
         iVar6 = iVar6 + -1;
         *pbVar10 = (byte)p_Var5[*pbVar10];
         pbVar10 = pbVar10 + 1;
       } while (iVar6 != 0);
       pbVar7 = (byte *)(pcVar11 + 1);
       pbVar10 = pbVar7;
       do {
         pbVar8 = pbVar10 + 1;
         *pbVar10 = (byte)p_Var5[*pbVar10];
         pbVar10 = pbVar8;
       } while (pbVar8 != (byte *)(pcVar11 + 0x12));
       if ((DAT_0 != 0) || (iVar6 = f_exists("/tmp/RAST_DEBUG"), iVar6 != 0)) {
         uVar4 = uptime();
         cprintf("RAST %lu: [%s][%s]\n",uVar4,local_34,pbVar7);
       }
       if ((DAT_1 != 0) || (iVar6 = f_exists("/tmp/RAST_DEBUG"), iVar6 != 0)) {
         asusdebuglog(6,"roamast.log",0,1,0,"[%s][%s]\n",local_34,pbVar7);
       }
       if (DAT_2 != 0) {
         logmessage_normal("roamast","[%s][%s]\n",local_34,pbVar7);
       }
       iVar6 = strcmp((char *)local_34,(char *)pbVar7);
       if (iVar6 == 0) {
-        if ((int)local_35 != 0) {
+        if (local_35 != '\0') {
           *param_1 = 1;
-          bVar2 = FUN_00103df8((int)local_35,(int)*pcVar11);
+          bVar2 = FUN_0010a344((int)local_35,(int)*pcVar11);
           if (bVar2) {
             if ((DAT_0 != 0) || (iVar6 = f_exists("/tmp/RAST_DEBUG"), iVar6 != 0)) {
               uVar4 = uptime();
               cprintf("RAST %lu: rcpi follow spec\n",uVar4);
             }
             if ((DAT_1 != 0) || (iVar6 = f_exists("/tmp/RAST_DEBUG"), iVar6 != 0)) {
               asusdebuglog(6,"roamast.log",0,1,0,"rcpi follow spec\n");
             }
             if (DAT_2 != 0) {
               logmessage_normal("roamast","rcpi follow spec\n");
             }
             for (pbVar10 = *(byte **)(param_1 + 0x14); pbVar10 != (byte *)0x0;
                 pbVar10 = *(byte **)(pbVar10 + 0x14)) {
               bVar1 = *pbVar10;
               pbVar7 = pbVar10 + 1;
               *pbVar10 = (bVar1 >> 1) + 0x92;
               if ((DAT_0 != 0) || (iVar6 = f_exists("/tmp/RAST_DEBUG"), iVar6 != 0)) {
                 uVar4 = uptime();
                 cprintf("RAST %lu: sta[%s] on ap[%s], rcpi is %hhu and rssi is %hhd\n",uVar4,puVar9,
                         pbVar7,bVar1,*pbVar10);
               }
               if ((DAT_1 != 0) || (iVar6 = f_exists("/tmp/RAST_DEBUG"), iVar6 != 0)) {
                 asusdebuglog(6,"roamast.log",0,1,0,
                              "sta[%s] on ap[%s], rcpi is %hhu and rssi is %hhd\n",puVar9,pbVar7,
                              bVar1,*pbVar10);
               }
               if (DAT_2 != 0) {
                 logmessage_normal("roamast","sta[%s] on ap[%s], rcpi is %hhu and rssi is %hhd\n",
                                   puVar9,pbVar7,bVar1,*pbVar10);
               }
               uVar4 = uptime();
               cprintf("RAST %lu: sta[%s] on ap[%s], rcpi is %hhu and rssi is %hhd\n",uVar4,puVar9,
                       pbVar7,bVar1,*pbVar10);
               if ((DAT_1 != 0) || (iVar6 = f_exists("/tmp/RAST_DEBUG"), iVar6 != 0)) {
                 asusdebuglog(6,"roamast.log",0,1,0,
                              "sta[%s] on ap[%s], rcpi is %hhu and rssi is %hhd\n",puVar9,pbVar7,
                              bVar1,*pbVar10);
               }
               logmessage_normal("roamast","sta[%s] on ap[%s], rcpi is %hhu and rssi is %hhd\n",
                                 puVar9,pbVar7,bVar1,*pbVar10);
             }
           }
         }
         break;
       }
     }
     param_1 = *(undefined **)(param_1 + 0x18);
   } while( true );
 }
 

FUN_000f9fac

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,refcount,length,sig,address,calling,called
ratio 0.88
i_ratio 0.29
m_ratio 0.96
b_ratio 0.99
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_000f9fac FUN_001043b4
fullname FUN_000f9fac FUN_001043b4
refcount 5 3
length 860 856
called
Expand for full list:
::__errno_location
::asusdebuglog
::close
::connect
::cprintf
::f_exists
::logmessage_normal
::memset
::snprintf
::socket
::strerror
::strlen
::uptime
::write
Expand for full list:
::__errno_location
::asusdebuglog
::close
::connect
::cprintf
::f_exists
::logmessage_normal
::memset
::socket
::strcpy
::strerror
::strlen
::uptime
::write
calling FUN_000ff220
FUN_001003cc
FUN_001016f4
FUN_001028ac
FUN_00106b50
FUN_00107cac
FUN_00108cb0
paramcount 2 1
address 000f9fac 001043b4
sig undefined4 __stdcall FUN_000f9fac(char * param_1, char * param_2) undefined4 __stdcall FUN_001043b4(char * param_1)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_000f9fac Called Diff

--- FUN_000f9fac called
+++ FUN_001043b4 called
@@ -9 +8,0 @@
-<EXTERNAL>::snprintf
@@ -10,0 +10 @@
+<EXTERNAL>::strcpy

FUN_000f9fac Calling Diff

--- FUN_000f9fac calling
+++ FUN_001043b4 calling
@@ -1,4 +1,3 @@
-FUN_000ff220
-FUN_001003cc
-FUN_001016f4
-FUN_001028ac
+FUN_00106b50
+FUN_00107cac
+FUN_00108cb0

FUN_000f9fac Diff

--- FUN_000f9fac
+++ FUN_001043b4
@@ -1,81 +1,81 @@
 
-undefined4 FUN_000f9fac(char *param_1,char *param_2)
+undefined4 FUN_001043b4(char *param_1)
 
 {
   int __fd;
   undefined4 uVar1;
   int iVar2;
   size_t __n;
   ssize_t sVar3;
   int *piVar4;
   char *pcVar5;
   sockaddr local_90 [7];
   
   __fd = socket(1,1,0);
   if (__fd < 0) {
     uVar1 = uptime();
     cprintf("RAST %lu: ipc socket error!\n",uVar1);
     if ((DAT_0 != 0) || (iVar2 = f_exists("/tmp/RAST_DEBUG"), iVar2 != 0)) {
       asusdebuglog(6,"roamast.log",0,1,0,"ipc socket error!\n");
     }
     if (DAT_1 != 0) {
       pcVar5 = "RAST %lu: ipc socket error!\n";
 LAB_2:
       logmessage_normal("roamast",pcVar5 + 10);
     }
   }
   else {
     memset(local_90,0,0x6e);
     local_90[0].sa_family = 1;
-    snprintf(local_90[0].sa_data,0x6c,param_1);
+    strcpy(local_90[0].sa_data,"/var/run/cfgmnt_ipc_socket");
     iVar2 = connect(__fd,local_90,0x6e);
     if (iVar2 < 0) {
       uVar1 = uptime();
       cprintf("RAST %lu: ipc connect error\n",uVar1);
       if ((DAT_0 != 0) || (iVar2 = f_exists("/tmp/RAST_DEBUG"), iVar2 != 0)) {
         asusdebuglog(6,"roamast.log",0,1,0,"ipc connect error\n");
       }
       if (DAT_1 != 0) {
         pcVar5 = "RAST %lu: ipc connect error\n";
         goto LAB_2;
       }
     }
     else {
       if ((DAT_3 != 0) || (iVar2 = f_exists("/tmp/RAST_DEBUG"), iVar2 != 0)) {
         uVar1 = uptime();
-        cprintf("RAST %lu: IPC Send: %s  <<< SEND EVENT >>>\n",uVar1,param_2);
+        cprintf("RAST %lu: IPC Send: %s  <<< SEND EVENT >>>\n",uVar1,param_1);
       }
       if ((DAT_0 != 0) || (iVar2 = f_exists("/tmp/RAST_DEBUG"), iVar2 != 0)) {
-        asusdebuglog(6,"roamast.log",0,1,0,"IPC Send: %s  <<< SEND EVENT >>>\n",param_2);
+        asusdebuglog(6,"roamast.log",0,1,0,"IPC Send: %s  <<< SEND EVENT >>>\n",param_1);
       }
       if (DAT_1 != 0) {
-        logmessage_normal("roamast","IPC Send: %s  <<< SEND EVENT >>>\n",param_2);
+        logmessage_normal("roamast","IPC Send: %s  <<< SEND EVENT >>>\n",param_1);
       }
-      __n = strlen(param_2);
-      sVar3 = write(__fd,param_2,__n);
+      __n = strlen(param_1);
+      sVar3 = write(__fd,param_1,__n);
       if (-1 < sVar3) {
         uVar1 = 1;
         goto LAB_4;
       }
       uVar1 = uptime();
       piVar4 = __errno_location();
       pcVar5 = strerror(*piVar4);
-      cprintf("RAST %lu: [%s:(%d)] ERROR writing:%s.\n",uVar1,"rast_ipc_send_event",0x6b4,pcVar5);
+      cprintf("RAST %lu: [%s:(%d)] ERROR writing:%s.\n",uVar1,"rast_ipc_send_event",0x6c5,pcVar5);
       if ((DAT_0 != 0) || (iVar2 = f_exists("/tmp/RAST_DEBUG"), iVar2 != 0)) {
         pcVar5 = strerror(*piVar4);
         asusdebuglog(6,"roamast.log",0,1,0,"[%s:(%d)] ERROR writing:%s.\n","rast_ipc_send_event",
-                     0x6b4,pcVar5);
+                     0x6c5,pcVar5);
       }
       if (DAT_1 != 0) {
         pcVar5 = strerror(*piVar4);
-        logmessage_normal("roamast","[%s:(%d)] ERROR writing:%s.\n","rast_ipc_send_event",0x6b4,
+        logmessage_normal("roamast","[%s:(%d)] ERROR writing:%s.\n","rast_ipc_send_event",0x6c5,
                           pcVar5);
       }
     }
   }
   uVar1 = 0xffffffff;
 LAB_4:
   close(__fd);
   return uVar1;
 }
 

FUN_00110a30

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.31
i_ratio 0.05
m_ratio 0.36
b_ratio 0.64
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_00110a30 FUN_001173b8
fullname FUN_00110a30 FUN_001173b8
refcount 1 1
length 1424 1464
called
Expand for full list:
::atoi
::inet_deconflict
::inet_ntoa
::memset
::nvram_default_get
::nvram_get
::nvram_get_int
::snprintf
::wgn_subnet_list_find
::wgn_subnet_list_get_from_nvram
::wgn_subnet_list_get_other_from_nvram
::wgn_subnet_list_set_to_nvram
::wgn_vlan_list_get_from_nvram
::wgn_vlan_list_get_other_from_nvram
::wgn_vlan_list_set_to_nvram
FUN_0010fdd0
ipmask_to_int
Expand for full list:
::atoi
::inet_deconflict
::inet_ntoa
::memset
::nvram_default_get
::nvram_get
::nvram_get_int
::snprintf
::wgn_subnet_list_find
::wgn_subnet_list_get_from_nvram
::wgn_subnet_list_get_other_from_nvram
::wgn_subnet_list_set_to_nvram
::wgn_vlan_list_get_from_nvram
::wgn_vlan_list_get_other_from_nvram
::wgn_vlan_list_set_to_nvram
FUN_00116758
ipmask_to_int
calling FUN_00111a5c FUN_001184bc
paramcount 0 0
address 00110a30 001173b8
sig undefined __stdcall FUN_00110a30(void) undefined __stdcall FUN_001173b8(void)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_00110a30 Called Diff

--- FUN_00110a30 called
+++ FUN_001173b8 called
@@ -16 +16 @@
-FUN_0010fdd0
+FUN_00116758

FUN_00110a30 Calling Diff

--- FUN_00110a30 calling
+++ FUN_001173b8 calling
@@ -1 +1 @@
-FUN_00111a5c
+FUN_001184bc

FUN_00110a30 Diff

--- FUN_00110a30
+++ FUN_001173b8
@@ -1,163 +1,164 @@
 
-void FUN_00110a30(void)
+void FUN_001173b8(void)
 
 {
   in_addr iVar1;
   bool bVar2;
   int iVar3;
-  char *pcVar4;
+  void *pvVar4;
   char *pcVar5;
+  char *pcVar6;
+  uint uVar7;
   char *__s;
-  uint uVar6;
-  char *pcVar7;
   uint uVar8;
-  uint uStack_ca05c;
-  undefined *puStack_ca058;
-  uint uStack_ca04c;
-  int iStack_ca048;
-  undefined *puStack_ca044;
-  uint uStack_ca034;
-  uint uStack_ca030;
-  int iStack_ca02c;
-  int iStack_ca028;
-  in_addr iStack_ca024;
-  undefined auStack_ca020 [25600];
-  undefined auStack_c3c20 [53];
-  undefined auStack_c3beb [25547];
-  undefined auStack_bd820 [388096];
-  undefined auStack_5ec20 [388096];
+  undefined *puVar9;
+  char *pcVar10;
+  uint uStack_12c50;
+  undefined *puStack_12c4c;
+  int iStack_12c48;
+  uint uStack_12c34;
+  uint uStack_12c30;
+  int iStack_12c2c;
+  int iStack_12c28;
+  in_addr iStack_12c24;
+  undefined auStack_12c20 [12800];
+  undefined auStack_fa20 [53];
+  undefined auStack_f9eb [12747];
+  undefined auStack_c820 [25600];
+  undefined auStack_6420 [25600];
   
-  uStack_ca034 = 0;
-  uStack_ca030 = 0;
-  iStack_ca02c = 0;
-  iStack_ca028 = 0;
+  uStack_12c34 = 0;
+  uStack_12c30 = 0;
+  iStack_12c2c = 0;
+  iStack_12c28 = 0;
   iVar3 = nvram_get_int("re_mode");
   if (iVar3 != 1) {
     iVar3 = nvram_get("sw_mode");
     if (iVar3 == 0) {
-      pcVar4 = (char *)nvram_default_get("sw_mode");
-      iVar3 = atoi(pcVar4);
+      pcVar5 = (char *)nvram_default_get("sw_mode");
+      iVar3 = atoi(pcVar5);
     }
     else {
       iVar3 = nvram_get_int();
     }
     iVar3 = iVar3 + -1;
     if (iVar3 != 0) {
       iVar3 = 1;
     }
-    if ((iVar3 == 0) || (bVar2 = FUN_0010fdd0(), bVar2)) {
-      memset(auStack_ca020,0,0x6400);
-      iVar3 = wgn_vlan_list_get_other_from_nvram(auStack_ca020,0x100,&uStack_ca034);
-      if ((iVar3 != 0) && (uStack_ca034 != 0)) {
-        memset(auStack_5ec20,0,0x5ec00);
-        iVar3 = wgn_subnet_list_get_other_from_nvram(auStack_5ec20,0x100,&iStack_ca028);
-        if ((iVar3 != 0) && (iStack_ca028 != 0)) {
-          memset(auStack_c3c20,0,0x6400);
-          iVar3 = wgn_vlan_list_get_from_nvram(auStack_c3c20,0x100,&uStack_ca030);
-          if ((iVar3 != 0) && (uStack_ca030 != 0)) {
-            memset(auStack_bd820,0,0x5ec00);
-            iVar3 = wgn_subnet_list_get_from_nvram(auStack_bd820,0x100,&iStack_ca02c);
-            if ((iVar3 != 0) && (iStack_ca02c != 0)) {
+    if ((iVar3 == 0) || (bVar2 = FUN_00116758(), bVar2)) {
+      memset(auStack_12c20,0,0x3200);
+      iVar3 = wgn_vlan_list_get_other_from_nvram(auStack_12c20,0x80,&uStack_12c34);
+      if ((iVar3 != 0) && (uStack_12c34 != 0)) {
+        pvVar4 = memset(auStack_6420,0,0x6400);
+        iVar3 = wgn_subnet_list_get_other_from_nvram(pvVar4,0x80,&iStack_12c28);
+        if ((iVar3 != 0) && (iStack_12c28 != 0)) {
+          puStack_12c4c = auStack_fa20;
+          memset(puStack_12c4c,0,0x3200);
+          iVar3 = wgn_vlan_list_get_from_nvram(puStack_12c4c,0x80,&uStack_12c30);
+          if ((iVar3 != 0) && (uStack_12c30 != 0)) {
+            pvVar4 = memset(auStack_c820,0,0x6400);
+            iVar3 = wgn_subnet_list_get_from_nvram(pvVar4,0x80,&iStack_12c2c);
+            if ((iVar3 != 0) && (iStack_12c2c != 0)) {
               bVar2 = false;
-              uStack_ca05c = 0;
-              puStack_ca058 = auStack_c3c20;
+              uStack_12c50 = 0;
 LAB_0:
-              if (uStack_ca05c < uStack_ca030) {
-                __s = puStack_ca058 + 0x35;
-                pcVar4 = (char *)wgn_subnet_list_find(auStack_bd820,iStack_ca02c,__s);
-                if (pcVar4 != (char *)0x0) goto code_r0x00110c20;
+              if (uStack_12c50 < uStack_12c30) {
+                __s = puStack_12c4c + 0x35;
+                pcVar5 = (char *)wgn_subnet_list_find(auStack_c820,iStack_12c2c,__s);
+                if (pcVar5 != (char *)0x0) goto code_r0x001175a8;
                 goto LAB_1;
               }
               if (bVar2) {
-                wgn_vlan_list_set_to_nvram(auStack_c3c20);
-                wgn_subnet_list_set_to_nvram(auStack_bd820,iStack_ca02c);
+                wgn_vlan_list_set_to_nvram(auStack_fa20);
+                wgn_subnet_list_set_to_nvram(auStack_c820,iStack_12c2c);
               }
             }
           }
         }
       }
     }
   }
   return;
-code_r0x00110c20:
-  iStack_ca048 = 0;
-  puStack_ca044 = auStack_ca020;
-  for (uStack_ca04c = 0; uStack_ca04c < uStack_ca034; uStack_ca04c = uStack_ca04c + 1) {
-    iVar3 = wgn_subnet_list_find(auStack_5ec20,iStack_ca028,puStack_ca044 + 0x35);
+code_r0x001175a8:
+  iStack_12c48 = 0;
+  puVar9 = auStack_12c20;
+  for (uVar8 = 0; uVar8 < uStack_12c34; uVar8 = uVar8 + 1) {
+    iVar3 = wgn_subnet_list_find(auStack_6420,iStack_12c28,puVar9 + 0x35);
     if (iVar3 != 0) {
-      pcVar7 = pcVar4 + 0x11;
-      iStack_ca048 = inet_deconflict(pcVar4,pcVar7,iVar3,iVar3 + 0x11,&iStack_ca024);
-      iVar1.s_addr = iStack_ca024.s_addr;
-      if (iStack_ca048 != 0) {
-        memset(pcVar4,0,0x11);
-        pcVar5 = inet_ntoa(iVar1);
-        snprintf(pcVar4,0x10,"%s",pcVar5);
-        memset(pcVar7,0,0x11);
-        pcVar5 = inet_ntoa((in_addr)0xffffff);
-        snprintf(pcVar7,0x10,"%s",pcVar5);
-        uVar6 = (iStack_ca024.s_addr << 0x18 | (iStack_ca024.s_addr >> 8 & 0xff) << 0x10 |
-                 (iStack_ca024.s_addr >> 0x10 & 0xff) << 8 | iStack_ca024.s_addr >> 0x18) + 1;
-        memset(pcVar4 + 0x28,0,0x11);
-        pcVar7 = inet_ntoa((in_addr)(uVar6 * 0x1000000 | (uVar6 >> 8 & 0xff) << 0x10 |
-                                     (uVar6 >> 0x10 & 0xff) << 8 | uVar6 >> 0x18));
-        snprintf(pcVar4 + 0x28,0x10,"%s",pcVar7);
-        uVar6 = iStack_ca024.s_addr & 0xffffff;
-        memset(pcVar4 + 0x39,0,0x11);
-        pcVar7 = inet_ntoa((in_addr)(uVar6 | 0xfe000000));
-        snprintf(pcVar4 + 0x39,0x10,"%s",pcVar7);
+      pcVar10 = pcVar5 + 0x11;
+      iStack_12c48 = inet_deconflict(pcVar5,pcVar10,iVar3,iVar3 + 0x11,&iStack_12c24);
+      iVar1.s_addr = iStack_12c24.s_addr;
+      if (iStack_12c48 != 0) {
+        memset(pcVar5,0,0x11);
+        pcVar6 = inet_ntoa(iVar1);
+        snprintf(pcVar5,0x10,"%s",pcVar6);
+        memset(pcVar10,0,0x11);
+        pcVar6 = inet_ntoa((in_addr)0xffffff);
+        snprintf(pcVar10,0x10,"%s",pcVar6);
+        uVar7 = (iStack_12c24.s_addr << 0x18 | (iStack_12c24.s_addr >> 8 & 0xff) << 0x10 |
+                 (iStack_12c24.s_addr >> 0x10 & 0xff) << 8 | iStack_12c24.s_addr >> 0x18) + 1;
+        memset(pcVar5 + 0x28,0,0x11);
+        pcVar10 = inet_ntoa((in_addr)(uVar7 * 0x1000000 | (uVar7 >> 8 & 0xff) << 0x10 |
+                                      (uVar7 >> 0x10 & 0xff) << 8 | uVar7 >> 0x18));
+        snprintf(pcVar5 + 0x28,0x10,"%s",pcVar10);
+        uVar7 = iStack_12c24.s_addr & 0xffffff;
+        memset(pcVar5 + 0x39,0,0x11);
+        pcVar10 = inet_ntoa((in_addr)(uVar7 | 0xfe000000));
+        snprintf(pcVar5 + 0x39,0x10,"%s",pcVar10);
         memset(__s,0,0x21);
-        uVar6 = ipmask_to_int(0xffffff00);
-        snprintf(__s,0x20,"%s/%d",pcVar4,uVar6);
-        pcVar4 = (char *)wgn_subnet_list_find(auStack_bd820,iStack_ca02c,__s);
-        if (pcVar4 == (char *)0x0) {
+        uVar7 = ipmask_to_int(0xffffff00);
+        snprintf(__s,0x20,"%s/%d",pcVar5,uVar7);
+        pcVar5 = (char *)wgn_subnet_list_find(auStack_c820,iStack_12c2c,__s);
+        if (pcVar5 == (char *)0x0) {
           bVar2 = true;
-          uStack_ca05c = uStack_ca05c + 1;
-          puStack_ca058 = puStack_ca058 + 100;
+          uStack_12c50 = uStack_12c50 + 1;
+          puStack_12c4c = puStack_12c4c + 100;
           goto LAB_0;
         }
         bVar2 = true;
       }
     }
-    puStack_ca044 = puStack_ca044 + 100;
+    puVar9 = puVar9 + 100;
   }
-  for (uVar6 = 0; uVar6 < uStack_ca030; uVar6 = uVar6 + 1) {
-    if ((uStack_ca05c != uVar6) &&
-       (iVar3 = wgn_subnet_list_find(auStack_bd820,iStack_ca02c,auStack_c3beb + uVar6 * 100),
-       iVar3 != 0)) {
-      pcVar7 = pcVar4 + 0x11;
-      iStack_ca048 = inet_deconflict(pcVar4,pcVar7,iVar3,iVar3 + 0x11,&iStack_ca024);
-      iVar1.s_addr = iStack_ca024.s_addr;
-      if (iStack_ca048 != 0) {
-        memset(pcVar4,0,0x11);
-        pcVar5 = inet_ntoa(iVar1);
-        snprintf(pcVar4,0x10,"%s",pcVar5);
-        memset(pcVar7,0,0x11);
-        pcVar5 = inet_ntoa((in_addr)0xffffff);
-        snprintf(pcVar7,0x10,"%s",pcVar5);
-        uVar8 = (iStack_ca024.s_addr << 0x18 | (iStack_ca024.s_addr >> 8 & 0xff) << 0x10 |
-                 (iStack_ca024.s_addr >> 0x10 & 0xff) << 8 | iStack_ca024.s_addr >> 0x18) + 1;
-        memset(pcVar4 + 0x28,0,0x11);
-        pcVar7 = inet_ntoa((in_addr)(uVar8 * 0x1000000 | (uVar8 >> 8 & 0xff) << 0x10 |
-                                     (uVar8 >> 0x10 & 0xff) << 8 | uVar8 >> 0x18));
-        snprintf(pcVar4 + 0x28,0x10,"%s",pcVar7);
-        uVar8 = iStack_ca024.s_addr & 0xffffff;
-        memset(pcVar4 + 0x39,0,0x11);
-        pcVar7 = inet_ntoa((in_addr)(uVar8 | 0xfe000000));
-        snprintf(pcVar4 + 0x39,0x10,"%s",pcVar7);
-        memset(__s,0,0x21);
-        uVar8 = ipmask_to_int(0xffffff00);
-        bVar2 = true;
-        snprintf(__s,0x20,"%s/%d",pcVar4,uVar8);
-        pcVar4 = (char *)wgn_subnet_list_find(auStack_bd820,iStack_ca02c,__s);
-        if (pcVar4 == (char *)0x0) break;
+  for (uVar8 = 0; uVar8 < uStack_12c30; uVar8 = uVar8 + 1) {
+    if (uStack_12c50 != uVar8) {
+      iVar3 = wgn_subnet_list_find(auStack_c820,iStack_12c2c,auStack_f9eb + uVar8 * 100);
+      if (iVar3 != 0) {
+        pcVar10 = pcVar5 + 0x11;
+        iStack_12c48 = inet_deconflict(pcVar5,pcVar10,iVar3,iVar3 + 0x11,&iStack_12c24);
+        iVar1.s_addr = iStack_12c24.s_addr;
+        if (iStack_12c48 != 0) {
+          memset(pcVar5,0,0x11);
+          pcVar6 = inet_ntoa(iVar1);
+          snprintf(pcVar5,0x10,"%s",pcVar6);
+          memset(pcVar10,0,0x11);
+          pcVar6 = inet_ntoa((in_addr)0xffffff);
+          snprintf(pcVar10,0x10,"%s",pcVar6);
+          uVar7 = (iStack_12c24.s_addr << 0x18 | (iStack_12c24.s_addr >> 8 & 0xff) << 0x10 |
+                   (iStack_12c24.s_addr >> 0x10 & 0xff) << 8 | iStack_12c24.s_addr >> 0x18) + 1;
+          memset(pcVar5 + 0x28,0,0x11);
+          pcVar10 = inet_ntoa((in_addr)(uVar7 * 0x1000000 | (uVar7 >> 8 & 0xff) << 0x10 |
+                                        (uVar7 >> 0x10 & 0xff) << 8 | uVar7 >> 0x18));
+          snprintf(pcVar5 + 0x28,0x10,"%s",pcVar10);
+          uVar7 = iStack_12c24.s_addr & 0xffffff;
+          memset(pcVar5 + 0x39,0,0x11);
+          pcVar10 = inet_ntoa((in_addr)(uVar7 | 0xfe000000));
+          bVar2 = true;
+          snprintf(pcVar5 + 0x39,0x10,"%s",pcVar10);
+          memset(__s,0,0x21);
+          uVar7 = ipmask_to_int(0xffffff00);
+          snprintf(__s,0x20,"%s/%d",pcVar5,uVar7);
+          pcVar5 = (char *)wgn_subnet_list_find(auStack_c820,iStack_12c2c,__s);
+          if (pcVar5 == (char *)0x0) break;
+        }
       }
     }
   }
-  if (iStack_ca048 != 1) {
+  if (iStack_12c48 != 1) {
 LAB_1:
-    uStack_ca05c = uStack_ca05c + 1;
-    puStack_ca058 = puStack_ca058 + 100;
+    uStack_12c50 = uStack_12c50 + 1;
+    puStack_12c4c = puStack_12c4c + 100;
   }
   goto LAB_0;
 }
 

FUN_001016f4

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.95
i_ratio 0.45
m_ratio 0.99
b_ratio 0.84
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_001016f4 FUN_00107cac
fullname FUN_001016f4 FUN_00107cac
refcount 2 2
length 1816 1808
called
Expand for full list:
::asusdebuglog
::cprintf
::f_exists
::json_object_get_string
::json_object_new_object
::json_object_new_string
::json_object_object_add
::json_object_object_get_ex
::json_object_put
::json_object_to_json_string
::json_tokener_parse
::logmessage_normal
::memset
::nvram_get_int
::nvram_set
::snprintf
::strlen
::strncmp
::uptime
FUN_000f94e8
FUN_000f9fac
FUN_000ff1ac
FUN_00108304
Expand for full list:
::asusdebuglog
::cprintf
::f_exists
::json_object_get_string
::json_object_new_object
::json_object_new_string
::json_object_object_add
::json_object_object_get_ex
::json_object_put
::json_object_to_json_string
::json_tokener_parse
::logmessage_normal
::memset
::nvram_get_int
::nvram_set
::snprintf
::strlen
::strncmp
::uptime
FUN_00101d60
FUN_001043b4
FUN_00105a1c
FUN_0010ec0c
calling FUN_000fc394 FUN_00102d44
paramcount 1 1
address 001016f4 00107cac
sig int __stdcall FUN_001016f4(undefined4 param_1) int __stdcall FUN_00107cac(undefined4 param_1)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_001016f4 Called Diff

--- FUN_001016f4 called
+++ FUN_00107cac called
@@ -20,4 +20,4 @@
-FUN_000f94e8
-FUN_000f9fac
-FUN_000ff1ac
-FUN_00108304
+FUN_00101d60
+FUN_001043b4
+FUN_00105a1c
+FUN_0010ec0c

FUN_001016f4 Calling Diff

--- FUN_001016f4 calling
+++ FUN_00107cac calling
@@ -1 +1 @@
-FUN_000fc394
+FUN_00102d44

FUN_001016f4 Diff

--- FUN_001016f4
+++ FUN_00107cac
@@ -1,174 +1,174 @@
 
-int FUN_001016f4(undefined4 param_1)
+int FUN_00107cac(undefined4 param_1)
 
 {
   undefined4 uVar1;
   char *pcVar2;
   undefined4 uVar3;
   undefined *__n;
   undefined4 *puVar4;
   size_t sVar5;
   undefined4 uVar6;
   undefined4 uVar7;
   undefined *puVar8;
   int iVar9;
   int iVar10;
   undefined4 local_1a8;
   int local_1a4;
   int local_1a0;
   int local_19c;
   undefined4 local_198;
   undefined4 auStack_194 [2];
   char acStack_18c [8];
   char acStack_184 [8];
   char acStack_17c [8];
   char acStack_174 [8];
   char acStack_16c [16];
   char acStack_15c [20];
   char acStack_148 [20];
   char acStack_134 [20];
   char acStack_120 [256];
   
   local_1a8 = 0;
   local_1a4 = 0;
   local_1a0 = 0;
   local_19c = 0;
   local_198 = 0;
   if ((DAT_0 != 0) || (iVar10 = f_exists("/tmp/RAST_DEBUG"), iVar10 != 0)) {
     uVar1 = uptime();
     cprintf("RAST %lu: Process STAMON event\n",uVar1);
   }
   if ((DAT_1 != 0) || (iVar10 = f_exists("/tmp/RAST_DEBUG"), iVar10 != 0)) {
     asusdebuglog(6,"roamast.log",0,1,0,"Process STAMON event\n");
   }
   if (DAT_2 != 0) {
     logmessage_normal("roamast","Process STAMON event\n");
   }
   uVar1 = json_tokener_parse(param_1);
   json_object_object_get_ex(uVar1,&DAT_3,&local_1a8);
   json_object_object_get_ex(local_1a8,"STA",&local_1a4);
   json_object_object_get_ex(local_1a8,&DAT_4,&local_1a0);
   json_object_object_get_ex(local_1a8,"BAND",&local_19c);
   json_object_object_get_ex(local_1a8,"SERVED_AP_BSSID",&local_198);
   if (((((local_1a4 == 0) || (pcVar2 = (char *)json_object_get_string(), *pcVar2 == '\0')) ||
        (local_1a0 == 0)) ||
       ((pcVar2 = (char *)json_object_get_string(), *pcVar2 == '\0' || (local_19c == 0)))) ||
      (pcVar2 = (char *)json_object_get_string(), *pcVar2 == '\0')) {
     if ((DAT_0 != 0) || (iVar10 = f_exists("/tmp/RAST_DEBUG"), iVar10 != 0)) {
       uVar3 = uptime();
       cprintf("RAST %lu: incorrect data format!!\n",uVar3);
     }
     if ((DAT_1 != 0) || (iVar10 = f_exists("/tmp/RAST_DEBUG"), iVar10 != 0)) {
       asusdebuglog(6,"roamast.log",0,1,0,"incorrect data format!!\n");
     }
     iVar10 = DAT_2;
     if (DAT_2 != 0) {
       iVar10 = 0;
       logmessage_normal("roamast","incorrect data format!!\n");
     }
   }
   else {
     uVar3 = json_object_get_string(local_1a4);
     snprintf(acStack_15c,0x12,"%s",uVar3);
     uVar3 = json_object_get_string(local_1a0);
     snprintf(acStack_16c,0x10,"%s",uVar3);
     uVar3 = json_object_get_string(local_19c);
     snprintf(acStack_18c,8,"%s",uVar3);
     uVar3 = json_object_get_string(local_198);
     snprintf(acStack_148,0x12,"%s",uVar3);
     nvram_set("nac_bssid",acStack_148);
     puVar8 = &DAT_5;
     for (iVar10 = 0; iVar10 < (int)(uint)DAT_6; iVar10 = iVar10 + 1) {
       if (*(int *)(puVar8 + 0x40) == 2) {
         __n = (undefined *)strlen(acStack_18c);
         pcVar2 = "2";
 LAB_7:
         iVar9 = strncmp(acStack_18c,pcVar2,(size_t)__n);
         if ((iVar9 == 0) && (*(int *)(puVar8 + 0x7c) == 1)) {
           if ((DAT_0 != 0) || (iVar9 = f_exists("/tmp/RAST_DEBUG"), iVar9 != 0)) {
             uVar3 = uptime();
             __n = puVar8;
             cprintf("RAST %lu: [%s] perform sta monitor...\n",uVar3);
           }
           if ((DAT_1 != 0) || (iVar9 = f_exists("/tmp/RAST_DEBUG"), iVar9 != 0)) {
             __n = (undefined *)0x0;
             asusdebuglog(6,"roamast.log",0,1,0,"[%s] perform sta monitor...\n",puVar8);
           }
           if (DAT_2 != 0) {
             __n = puVar8;
             logmessage_normal("roamast","[%s] perform sta monitor...\n");
           }
-          puVar4 = FUN_000ff1ac(acStack_15c,auStack_194,__n);
-          iVar9 = FUN_00108304(iVar10,puVar4);
+          puVar4 = FUN_00105a1c(acStack_15c,auStack_194,__n);
+          iVar9 = FUN_0010ec0c(iVar10,puVar4);
           if (iVar9 != 0) {
             uVar3 = (&DAT_8)[iVar10 * 0x36];
             goto LAB_9;
           }
         }
       }
       else if (*(int *)(puVar8 + 0x40) == 1) {
         __n = (undefined *)strlen(acStack_18c);
         pcVar2 = "1";
         goto LAB_7;
       }
       puVar8 = puVar8 + 0xd8;
     }
     uVar3 = 0xffffff9d;
     iVar9 = -99;
 LAB_9:
     iVar10 = nvram_get_int("re_mode");
     if (iVar10 == 0) {
       sVar5 = strlen(acStack_18c);
       iVar10 = strncmp(acStack_18c,"2",sVar5);
       if (iVar10 == 0) {
-        puVar8 = FUN_000f94e8();
+        puVar8 = FUN_00101d60();
       }
       else {
-        puVar8 = FUN_000f94e8();
+        puVar8 = FUN_00101d60();
       }
     }
     else {
       sVar5 = strlen(acStack_18c);
       iVar10 = strncmp(acStack_18c,"2",sVar5);
       if (iVar10 == 0) {
-        puVar8 = FUN_000f94e8();
+        puVar8 = FUN_00101d60();
       }
       else {
-        puVar8 = FUN_000f94e8();
+        puVar8 = FUN_00101d60();
       }
     }
     snprintf(acStack_134,0x12,"%s",puVar8);
-    puVar8 = FUN_000f94e8();
+    puVar8 = FUN_00101d60();
     snprintf(acStack_17c,8,"%d",2);
     snprintf(acStack_184,8,"%d",iVar9);
     snprintf(acStack_174,8,"%d",uVar3);
     uVar3 = json_object_new_object();
     uVar6 = json_object_new_object();
     uVar7 = json_object_new_string(acStack_17c);
     json_object_object_add(uVar6,&DAT_10,uVar7);
     uVar7 = json_object_new_string(acStack_15c);
     json_object_object_add(uVar6,"STA",uVar7);
     uVar7 = json_object_new_string(acStack_184);
     json_object_object_add(uVar6,"RSSI",uVar7);
     uVar7 = json_object_new_string(acStack_16c);
     json_object_object_add(uVar6,&DAT_4,uVar7);
     uVar7 = json_object_new_string(puVar8);
     json_object_object_add(uVar6,&DAT_11,uVar7);
     uVar7 = json_object_new_string(acStack_18c);
     json_object_object_add(uVar6,"BAND",uVar7);
     uVar7 = json_object_new_string(acStack_174);
     json_object_object_add(uVar6,"AP_RSSI_CRITERIA",uVar7);
     uVar7 = json_object_new_string(acStack_134);
     json_object_object_add(uVar6,"AP_TARGET_MAC",uVar7);
     json_object_object_add(uVar3,&DAT_12,uVar6);
     memset(acStack_120,0,0x100);
     uVar6 = json_object_to_json_string(uVar3);
     snprintf(acStack_120,0x100,"%s",uVar6);
     json_object_put(uVar3);
-    FUN_000f9fac("/var/run/cfgmnt_ipc_socket",acStack_120);
+    FUN_001043b4(acStack_120);
     iVar10 = 1;
   }
   json_object_put(uVar1);
   return iVar10;
 }
 

FUN_00113500

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.4
i_ratio 0.33
m_ratio 0.96
b_ratio 1.0
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_00113500 FUN_00119f4c
fullname FUN_00113500 FUN_00119f4c
refcount 2 2
length 1640 1624
called
Expand for full list:
::__isoc99_sscanf
::_eval
::cprintf
::memset
::nvram_get_int
::snprintf
::strncmp
::wgn_get_wl_unit
::wgn_vlan_list_find
::wgn_vlan_list_get_from_nvram
::wgn_vlan_list_wl_subunit_shift
FUN_0010fe30
FUN_00110558
FUN_001105c0
FUN_00110948
FUN_00111f54
FUN_001120b8
Expand for full list:
::__isoc99_sscanf
::_eval
::cprintf
::memset
::nvram_get_int
::snprintf
::strncmp
::wgn_get_wl_unit
::wgn_vlan_list_find
::wgn_vlan_list_get_from_nvram
::wgn_vlan_list_wl_subunit_shift
FUN_001167b8
FUN_00116ee0
FUN_00116f48
FUN_001172d0
FUN_001189b0
FUN_00118b14
calling FUN_0002ce30 FUN_0002dbc0
paramcount 2 2
address 00113500 00119f4c
sig undefined __stdcall FUN_00113500(char * param_1, uint param_2) undefined __stdcall FUN_00119f4c(char * param_1, uint param_2)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_00113500 Called Diff

--- FUN_00113500 called
+++ FUN_00119f4c called
@@ -12,6 +12,6 @@
-FUN_0010fe30
-FUN_00110558
-FUN_001105c0
-FUN_00110948
-FUN_00111f54
-FUN_001120b8
+FUN_001167b8
+FUN_00116ee0
+FUN_00116f48
+FUN_001172d0
+FUN_001189b0
+FUN_00118b14

FUN_00113500 Calling Diff

--- FUN_00113500 calling
+++ FUN_00119f4c calling
@@ -1 +1 @@
-FUN_0002ce30
+FUN_0002dbc0

FUN_00113500 Diff

--- FUN_00113500
+++ FUN_00119f4c
@@ -1,172 +1,172 @@
 
 /* WARNING: Type propagation algorithm not settling */
 
-void FUN_00113500(char *param_1,uint param_2)
+void FUN_00119f4c(char *param_1,uint param_2)
 
 {
   int iVar1;
   char *pcVar2;
   int *piVar3;
   int iVar4;
   uint uVar5;
   undefined4 uVar6;
-  uint local_9e98;
-  char *local_9e94;
-  int local_9e78;
-  int local_9e74 [6];
-  char acStack_9e5c [20];
-  char acStack_9e48 [36];
-  char *local_9e24;
-  char *local_9e20;
-  char *local_9e1c;
-  char *local_9e18;
-  int local_9e14;
-  char acStack_9620 [12800];
-  undefined auStack_6420 [25600];
+  uint local_5398;
+  char *local_5394;
+  int local_5378;
+  int local_5374 [6];
+  char acStack_535c [20];
+  char acStack_5348 [36];
+  char *local_5324;
+  char *local_5320;
+  char *local_531c;
+  char *local_5318;
+  int local_5314;
+  char acStack_4b20 [6400];
+  undefined auStack_3220 [12800];
   
-  local_9e78 = 0;
-  local_9e74[0] = 0;
-  local_9e74[1] = 0;
-  local_9e74[2] = 0;
-  local_9e74[3] = 0;
-  local_9e74[4] = 0;
-  local_9e74[5] = 0;
+  local_5378 = 0;
+  local_5374[0] = 0;
+  local_5374[1] = 0;
+  local_5374[2] = 0;
+  local_5374[3] = 0;
+  local_5374[4] = 0;
+  local_5374[5] = 0;
   if ((((param_1 != (char *)0x0) && (*param_1 != '\0')) && (param_2 < 2)) &&
      (iVar1 = strncmp(param_1,"wds",3), iVar1 == 0)) {
-    iVar1 = __isoc99_sscanf(param_1,"wds%d.%d.%d.%d.%d",&local_9e78,local_9e74,local_9e74 + 1,
-                            local_9e74 + 2,local_9e74 + 3);
+    iVar1 = __isoc99_sscanf(param_1,"wds%d.%d.%d.%d.%d",&local_5378,local_5374,local_5374 + 1,
+                            local_5374 + 2,local_5374 + 3);
     if (iVar1 == 3) {
-      pcVar2 = FUN_00110948(acStack_9620,0x100,(uint *)(local_9e74 + 4));
+      pcVar2 = FUN_001172d0(acStack_4b20,0x80,(uint *)(local_5374 + 4));
       if (pcVar2 != (char *)0x0) {
-        iVar1 = wgn_vlan_list_get_from_nvram(auStack_6420,0x100,local_9e74 + 5);
+        iVar1 = wgn_vlan_list_get_from_nvram(auStack_3220,0x80,local_5374 + 5);
         if (iVar1 != 0) {
           iVar1 = nvram_get_int("re_mode");
           if (iVar1 == 1) {
-            wgn_vlan_list_wl_subunit_shift(auStack_6420,local_9e74[5]);
+            wgn_vlan_list_wl_subunit_shift(auStack_3220,local_5374[5]);
           }
-          local_9e94 = acStack_9620;
-          for (local_9e98 = 0; local_9e98 < (uint)local_9e74[4]; local_9e98 = local_9e98 + 1) {
-            piVar3 = (int *)wgn_vlan_list_find(auStack_6420,local_9e74[5],local_9e94 + 0x11);
+          local_5394 = acStack_4b20;
+          for (local_5398 = 0; local_5398 < (uint)local_5374[4]; local_5398 = local_5398 + 1) {
+            piVar3 = (int *)wgn_vlan_list_find(auStack_3220,local_5374[5],local_5394 + 0x11);
             if (((piVar3 != (int *)0x0) && (*piVar3 != 0)) && (piVar3[1] != 0)) {
-              local_9e74[0] = 0;
-              local_9e78 = 0;
-              wgn_get_wl_unit(&local_9e78,local_9e74,piVar3);
-              iVar1 = FUN_001120b8(local_9e78,local_9e74[0]);
-              if ((iVar1 != 0) && (iVar1 = FUN_00111f54(local_9e78,local_9e74[0]), iVar1 == 0)) {
-                memset(acStack_9e5c,0,0x11);
-                snprintf(acStack_9e5c,0x10,"%s.%d",param_1,piVar3[1]);
-                memset(acStack_9e48,0,0x21);
-                snprintf(acStack_9e48,0x20,"%d",piVar3[1]);
+              local_5374[0] = 0;
+              local_5378 = 0;
+              wgn_get_wl_unit(&local_5378,local_5374,piVar3);
+              iVar1 = FUN_00118b14(local_5378,local_5374[0]);
+              if ((iVar1 != 0) && (iVar1 = FUN_001189b0(local_5378,local_5374[0]), iVar1 == 0)) {
+                memset(acStack_535c,0,0x11);
+                snprintf(acStack_535c,0x10,"%s.%d",param_1,piVar3[1]);
+                memset(acStack_5348,0,0x21);
+                snprintf(acStack_5348,0x20,"%d",piVar3[1]);
                 if (param_2 == 1) {
                   iVar1 = strncmp(param_1,"wds",3);
                   if (iVar1 == 0) {
-                    local_9e24 = "brctl";
-                    local_9e20 = "delif";
-                    local_9e1c = &DAT_0;
-                    local_9e18 = param_1;
-                    local_9e14 = iVar1;
-                    iVar4 = _eval(&local_9e24,0,0);
+                    local_5324 = "brctl";
+                    local_5320 = "delif";
+                    local_531c = &DAT_0;
+                    local_5318 = param_1;
+                    local_5314 = iVar1;
+                    iVar4 = _eval(&local_5324,0,0);
                     if (iVar4 == -1) {
-                      memset(&local_9e24,0,0x801);
-                      pcVar2 = FUN_00110558((char *)&local_9e24,0x800,
+                      memset(&local_5324,0,0x801);
+                      pcVar2 = FUN_00116ee0((char *)&local_5324,0x800,
                                             "*** WARNING, eval() return -1 ***",iVar1);
-                      cprintf("%s(LINE:%d):%s\n","amas_wgn.c",0x66c,pcVar2);
+                      cprintf("%s(LINE:%d):%s\n","amas_wgn.c",0x68c,pcVar2);
                     }
                   }
-                  local_9e24 = DAT_1;
-                  local_9e20 = (char *)DAT_2;
-                  local_9e1c = (char *)DAT_3;
-                  local_9e18 = (char *)DAT_4;
+                  local_5324 = DAT_1;
+                  local_5320 = (char *)DAT_2;
+                  local_531c = (char *)DAT_3;
+                  local_5318 = (char *)DAT_4;
                   uVar6 = 0;
-                  iVar1 = _eval(&local_9e24,0,0);
+                  iVar1 = _eval(&local_5324,0,0);
                   if (iVar1 == -1) {
-                    memset(&local_9e24,0,0x801);
-                    pcVar2 = FUN_00110558((char *)&local_9e24,0x800,
+                    memset(&local_5324,0,0x801);
+                    pcVar2 = FUN_00116ee0((char *)&local_5324,0x800,
                                           "*** WARNING, eval() return -1 ***",uVar6);
-                    cprintf("%s(LINE:%d):%s\n","amas_wgn.c",0x66d,pcVar2);
+                    cprintf("%s(LINE:%d):%s\n","amas_wgn.c",0x68d,pcVar2);
                   }
-                  local_9e24 = "vconfig";
-                  local_9e14 = 0;
-                  local_9e20 = "add";
+                  local_5324 = "vconfig";
+                  local_5320 = "add";
                   uVar6 = 0;
-                  local_9e1c = param_1;
-                  local_9e18 = acStack_9e48;
-                  iVar1 = _eval(&local_9e24,0,0);
+                  local_5314 = 0;
+                  local_531c = param_1;
+                  local_5318 = acStack_5348;
+                  iVar1 = _eval(&local_5324,0,0);
                   if (iVar1 == -1) {
-                    memset(&local_9e24,0,0x801);
-                    pcVar2 = FUN_00110558((char *)&local_9e24,0x800,
+                    memset(&local_5324,0,0x801);
+                    pcVar2 = FUN_00116ee0((char *)&local_5324,0x800,
                                           "*** WARNING, eval() return -1 ***",uVar6);
-                    cprintf("%s(LINE:%d):%s\n","amas_wgn.c",0x66f,pcVar2);
+                    cprintf("%s(LINE:%d):%s\n","amas_wgn.c",0x68f,pcVar2);
                   }
-                  FUN_0010fe30(acStack_9e5c,0x1043,(char *)0x0,(char *)0x0);
+                  FUN_001167b8(acStack_535c,0x1043,(char *)0x0,(char *)0x0);
                   iVar1 = strncmp(param_1,"wds",3);
                   if (iVar1 == 0) {
-                    local_9e24 = "brctl";
-                    local_9e20 = "addif";
-                    local_9e1c = &DAT_0;
-                    local_9e18 = param_1;
-                    local_9e14 = iVar1;
-                    iVar4 = _eval(&local_9e24,0,0);
+                    local_5324 = "brctl";
+                    local_5320 = "addif";
+                    local_531c = &DAT_0;
+                    local_5318 = param_1;
+                    local_5314 = iVar1;
+                    iVar4 = _eval(&local_5324,0,0);
                     if (iVar4 == -1) {
-                      memset(&local_9e24,0,0x801);
-                      pcVar2 = FUN_00110558((char *)&local_9e24,0x800,
+                      memset(&local_5324,0,0x801);
+                      pcVar2 = FUN_00116ee0((char *)&local_5324,0x800,
                                             "*** WARNING, eval() return -1 ***",iVar1);
-                      cprintf("%s(LINE:%d):%s\n","amas_wgn.c",0x674,pcVar2);
+                      cprintf("%s(LINE:%d):%s\n","amas_wgn.c",0x694,pcVar2);
                     }
                   }
-                  local_9e24 = "brctl";
-                  local_9e20 = "addif";
-                  local_9e14 = 0;
-                  local_9e1c = acStack_9620 + local_9e98 * 0x32;
+                  local_5324 = "brctl";
+                  local_5320 = "addif";
+                  local_5314 = 0;
+                  local_531c = acStack_4b20 + local_5398 * 0x32;
                   uVar6 = 0;
-                  local_9e18 = acStack_9e5c;
-                  iVar1 = _eval(&local_9e24,0,0);
+                  local_5318 = acStack_535c;
+                  iVar1 = _eval(&local_5324,0,0);
                   if (iVar1 == -1) {
-                    memset(&local_9e24,0,0x801);
-                    pcVar2 = FUN_00110558((char *)&local_9e24,0x800,
+                    memset(&local_5324,0,0x801);
+                    pcVar2 = FUN_00116ee0((char *)&local_5324,0x800,
                                           "*** WARNING, eval() return -1 ***",uVar6);
-                    cprintf("%s(LINE:%d):%s\n","amas_wgn.c",0x675,pcVar2);
+                    cprintf("%s(LINE:%d):%s\n","amas_wgn.c",0x695,pcVar2);
                   }
-                  local_9e24 = DAT_5;
-                  local_9e20 = DAT_6;
-                  local_9e1c = DAT_7;
-                  local_9e18 = (char *)DAT_8;
+                  local_5324 = DAT_5;
+                  local_5320 = DAT_6;
+                  local_531c = DAT_7;
+                  local_5318 = (char *)DAT_8;
                   uVar6 = 0;
-                  iVar1 = _eval(&local_9e24,0,0);
+                  iVar1 = _eval(&local_5324,0,0);
                   if (iVar1 == -1) {
-                    memset(&local_9e24,0,0x801);
-                    pcVar2 = FUN_00110558((char *)&local_9e24,0x800,
+                    memset(&local_5324,0,0x801);
+                    pcVar2 = FUN_00116ee0((char *)&local_5324,0x800,
                                           "*** WARNING, eval() return -1 ***",uVar6);
-                    uVar6 = 0x676;
+                    uVar6 = 0x696;
 LAB_9:
                     cprintf("%s(LINE:%d):%s\n","amas_wgn.c",uVar6,pcVar2);
                   }
                 }
                 else {
-                  uVar5 = FUN_001105c0((uint)acStack_9e5c);
+                  uVar5 = FUN_00116f48((uint)acStack_535c);
                   if (uVar5 != 0) {
-                    local_9e24 = "vconfig";
-                    local_9e20 = &DAT_10;
-                    local_9e1c = acStack_9e5c;
-                    local_9e18 = (char *)iVar1;
-                    iVar4 = _eval(&local_9e24,0,0);
+                    local_5324 = "vconfig";
+                    local_5320 = &DAT_10;
+                    local_531c = acStack_535c;
+                    local_5318 = (char *)iVar1;
+                    iVar4 = _eval(&local_5324,0,0);
                     if (iVar4 == -1) {
-                      memset(&local_9e24,0,0x801);
-                      pcVar2 = FUN_00110558((char *)&local_9e24,0x800,
+                      memset(&local_5324,0,0x801);
+                      pcVar2 = FUN_00116ee0((char *)&local_5324,0x800,
                                             "*** WARNING, eval() return -1 ***",iVar1);
-                      uVar6 = 0x68e;
+                      uVar6 = 0x6ae;
                       goto LAB_9;
                     }
                   }
                 }
               }
             }
-            local_9e94 = local_9e94 + 0x32;
+            local_5394 = local_5394 + 0x32;
           }
         }
       }
     }
   }
   return;
 }
 

FUN_000f1c20

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.69
i_ratio 0.45
m_ratio 0.8
b_ratio 0.78
match_types StructuralGraphExactHash

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_000f1c20 FUN_000f9610
fullname FUN_000f1c20 FUN_000f9610
refcount 1 1
length 3540 3552
called
Expand for full list:
::__errno_location
::__isoc99_sscanf
::alarm
::asusdebuglog
::cprintf
::f_exists
::fclose
::fgets
::fopen
::getpid
::memset
::nvram_get_int
::printf
::pthread_mutex_lock
::pthread_mutex_unlock
::pthread_self
::puts
::read
::sleep
::strcasecmp
::strcmp
::strerror
::write
FUN_000ebc74
FUN_000ebfc0
FUN_000ec42c
FUN_000eccb0
FUN_000ed1c4
FUN_000ed2d8
FUN_000eeb04
FUN_000f030c
Expand for full list:
::__errno_location
::__isoc99_sscanf
::alarm
::asusdebuglog
::cprintf
::f_exists
::fclose
::fgets
::fopen
::getpid
::memset
::nvram_get_int
::printf
::pthread_equal
::pthread_mutex_lock
::pthread_mutex_unlock
::pthread_self
::puts
::read
::sleep
::strcasecmp
::strcmp
::strerror
::write
FUN_000f3664
FUN_000f39b0
FUN_000f3e1c
FUN_000f46a0
FUN_000f4bb4
FUN_000f4cc8
FUN_000f64f4
FUN_000f7cfc
calling FUN_000f2ba0 FUN_000fa5a0
paramcount 1 1
address 000f1c20 000f9610
sig undefined __stdcall FUN_000f1c20(int param_1) undefined __stdcall FUN_000f9610(int param_1)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_000f1c20 Called Diff

--- FUN_000f1c20 called
+++ FUN_000f9610 called
@@ -13,0 +14 @@
+<EXTERNAL>::pthread_equal
@@ -24,8 +25,8 @@
-FUN_000ebc74
-FUN_000ebfc0
-FUN_000ec42c
-FUN_000eccb0
-FUN_000ed1c4
-FUN_000ed2d8
-FUN_000eeb04
-FUN_000f030c
+FUN_000f3664
+FUN_000f39b0
+FUN_000f3e1c
+FUN_000f46a0
+FUN_000f4bb4
+FUN_000f4cc8
+FUN_000f64f4
+FUN_000f7cfc

FUN_000f1c20 Calling Diff

--- FUN_000f1c20 calling
+++ FUN_000f9610 calling
@@ -1 +1 @@
-FUN_000f2ba0
+FUN_000fa5a0

FUN_000f1c20 Diff

--- FUN_000f1c20
+++ FUN_000f9610
@@ -1,417 +1,417 @@
 
-void FUN_000f1c20(int param_1)
+void FUN_000f9610(int param_1)
 
 {
+  pthread_t __thread1;
   ssize_t sVar1;
   int iVar2;
   int *piVar3;
   char *pcVar4;
   __pid_t _Var5;
   FILE *pFVar6;
   int iVar7;
-  pthread_t pVar8;
-  pthread_t pVar9;
-  char *pcVar10;
-  int *piVar11;
-  int *piVar12;
-  undefined4 uVar13;
-  undefined4 uVar14;
+  pthread_t __thread2;
+  char *pcVar8;
+  int *piVar9;
+  int *piVar10;
+  undefined4 uVar11;
+  undefined4 uVar12;
   int local_1cc;
   char local_1bc [16];
   undefined4 local_1ac;
   undefined auStack_1a8 [16];
   int local_198;
   undefined4 uStack_194;
   undefined4 uStack_190;
   undefined4 uStack_18c;
   undefined4 local_188;
   undefined4 uStack_184;
   undefined4 uStack_180;
   undefined4 uStack_17c;
   undefined4 local_178;
   undefined4 uStack_174;
   int iStack_170;
   int local_16c [5];
   undefined4 uStack_158;
   undefined4 uStack_154;
   undefined4 uStack_150;
   undefined4 local_14c;
   undefined auStack_148 [4];
   undefined4 uStack_144;
   undefined4 uStack_140;
   undefined4 local_13c;
   undefined4 uStack_138;
   int local_134;
   int iStack_130;
   undefined4 local_12c;
   undefined4 uStack_128;
   undefined4 uStack_124;
   char local_120 [256];
   
   memset(&local_198,0,0x3c);
   sVar1 = read(param_1,&local_198,0x3c);
   if (sVar1 < 0) {
     puts("ERROR reading from socket.");
     iVar2 = f_exists("/tmp/AMASLIB_DEBUG");
     if (0 < iVar2) {
       piVar3 = __errno_location();
       pcVar4 = strerror(*piVar3);
-      cprintf("[AMASLIB][%s:(%d)] socket read error : %s\n","receive_s",0x428,pcVar4);
-    }
-    iVar2 = nvram_get_int("amaslib_syslog");
-    uVar13 = __progname;
+      cprintf("[AMASLIB][%s:(%d)] socket read error : %s\n","receive_s",0x42a,pcVar4);
+    }
+    iVar2 = nvram_get_int("amaslib_syslog");
+    uVar11 = __progname;
     if (iVar2 != 0) {
       _Var5 = getpid();
       piVar3 = __errno_location();
       pcVar4 = strerror(*piVar3);
-      uVar14 = 0x428;
-      pcVar10 = "[%s][%d]][%s:(%d)]  socket read error : %s\n";
+      uVar12 = 0x42a;
+      pcVar8 = "[%s][%d]][%s:(%d)]  socket read error : %s\n";
 LAB_0:
-      asusdebuglog(6,"amas_lib.log",0,1,0,pcVar10,uVar13,_Var5,"receive_s",uVar14,pcVar4);
+      asusdebuglog(6,"amas_lib.log",0,1,0,pcVar8,uVar11,_Var5,"receive_s",uVar12,pcVar4);
     }
   }
   else if (local_198 == 0) {
     iVar2 = f_exists("/tmp/AMASLIB_DEBUG");
     if (0 < iVar2) {
-      cprintf("[AMASLIB][%s:(%d)] Get AMASLIB_ACTION_NODE_MAC_UPDATE\n","receive_s",0x42e);
-    }
-    iVar2 = nvram_get_int("amaslib_syslog");
-    uVar13 = __progname;
+      cprintf("[AMASLIB][%s:(%d)] Get AMASLIB_ACTION_NODE_MAC_UPDATE\n","receive_s",0x430);
+    }
+    iVar2 = nvram_get_int("amaslib_syslog");
+    uVar11 = __progname;
     if (iVar2 != 0) {
       _Var5 = getpid();
       asusdebuglog(6,"amas_lib.log",0,1,0,"[%s][%d]][%s:(%d)]  Get AMASLIB_ACTION_NODE_MAC_UPDATE\n"
-                   ,uVar13,_Var5,"receive_s",0x42e);
+                   ,uVar11,_Var5,"receive_s",0x430);
     }
     local_16c[4] = local_198;
     uStack_158 = uStack_194;
     uStack_154 = uStack_190;
     uStack_150 = uStack_18c;
     local_14c = local_188;
     auStack_148 = (undefined  [4])uStack_184;
     uStack_144 = uStack_180;
     uStack_140 = uStack_17c;
     local_13c = local_178;
     uStack_138 = uStack_174;
     local_134 = iStack_170;
     iStack_130 = local_16c[0];
     local_12c = local_16c[1];
     uStack_128 = local_16c[2];
     uStack_124 = local_16c[3];
     iVar2 = f_exists("/tmp/AMASLIB_DEBUG");
     if (0 < iVar2) {
-      cprintf("[AMASLIB][%s:(%d)] sta2g=%s, sta5g=%s, flag=%d\n","amaslib_scan_mode",0x3b9,
+      cprintf("[AMASLIB][%s:(%d)] sta2g=%s, sta5g=%s, flag=%d\n","amaslib_scan_mode",0x3bb,
               &uStack_158,auStack_148 + 2,local_134);
     }
     iVar2 = nvram_get_int("amaslib_syslog");
-    uVar13 = __progname;
-    if (iVar2 != 0) {
-      _Var5 = getpid();
-      asusdebuglog(6,"amas_lib.log",0,1,0,"[%s][%d]][%s:(%d)]  sta2g=%s, sta5g=%s, flag=%d\n",uVar13
-                   ,_Var5,"amaslib_scan_mode",0x3b9,&uStack_158,auStack_148 + 2,local_134);
+    uVar11 = __progname;
+    if (iVar2 != 0) {
+      _Var5 = getpid();
+      asusdebuglog(6,"amas_lib.log",0,1,0,"[%s][%d]][%s:(%d)]  sta2g=%s, sta5g=%s, flag=%d\n",uVar11
+                   ,_Var5,"amaslib_scan_mode",0x3bb,&uStack_158,auStack_148 + 2,local_134);
     }
     if (local_134 == 0) {
-      FUN_000ec42c();
-      FUN_000f030c(0);
+      FUN_000f3e1c();
+      FUN_000f7cfc(0);
     }
     else if (local_134 == 1) {
-      iVar2 = FUN_000ebc74((char *)&uStack_158);
+      iVar2 = FUN_000f3664((char *)&uStack_158);
       if (iVar2 != 1) {
-        FUN_000eccb0(&uStack_158);
+        FUN_000f46a0(&uStack_158);
       }
-      iVar2 = FUN_000ebc74(auStack_148 + 2);
+      iVar2 = FUN_000f3664(auStack_148 + 2);
       if (iVar2 != 1) {
-        FUN_000eccb0((undefined4 *)(auStack_148 + 2));
+        FUN_000f46a0((undefined4 *)(auStack_148 + 2));
       }
-      FUN_000ec42c();
+      FUN_000f3e1c();
     }
     else if (local_134 == 2) {
-      FUN_000ec42c();
-      iVar2 = FUN_000ed1c4(&uStack_158,auStack_148 + 2);
+      FUN_000f3e1c();
+      iVar2 = FUN_000f4bb4(&uStack_158,auStack_148 + 2);
       if ((iVar2 != 0) &&
-         (iVar2 = FUN_000ebfc0((char *)&uStack_158,auStack_148 + 2), 1 < iVar2 - 1U)) {
+         (iVar2 = FUN_000f39b0((char *)&uStack_158,auStack_148 + 2), 1 < iVar2 - 1U)) {
         local_120[0] = '\0';
         local_120[1] = '\0';
         local_120[2] = '\0';
         local_120[3] = '\0';
         memset(local_120 + 4,0,0xfc);
         local_1ac = 0;
         memset(auStack_1a8,0,0xe);
         local_1bc[0] = '\0';
         local_1bc[1] = '\0';
         local_1bc[2] = '\0';
         local_1bc[3] = '\0';
         local_1bc[4] = '\0';
         local_1bc[5] = '\0';
         local_1bc[6] = '\0';
         local_1bc[7] = '\0';
         local_1bc[8] = '\0';
         local_1bc[9] = '\0';
         local_1bc[10] = '\0';
         local_1bc[0xb] = '\0';
         local_1bc[0xc] = '\0';
         local_1bc[0xd] = '\0';
         local_1bc[0xe] = '\0';
         local_1bc[0xf] = '\0';
         pFVar6 = fopen("/var/lib/misc/dnsmasq.leases","r");
         if (pFVar6 == (FILE *)0x0) {
           printf("FAIL to open %s\n","/var/lib/misc/dnsmasq.leases");
           pcVar4 = (char *)0x0;
         }
         else {
           do {
             pcVar4 = fgets(local_120,0x100,pFVar6);
             if (pcVar4 == (char *)0x0) goto LAB_1;
             memset(&local_1ac,0,0x12);
             memset(local_1bc,0,0x10);
             iVar2 = __isoc99_sscanf(local_120,"%*s %s %s %*s %*s",&local_1ac,local_1bc);
           } while (((iVar2 != 2) ||
                    (iVar2 = strcasecmp((char *)&uStack_158,(char *)&local_1ac), iVar2 != 0)) ||
                   (iVar2 = strcasecmp(auStack_148 + 2,local_1bc), iVar2 != 0));
           pcVar4 = (char *)0x1;
 LAB_1:
           fclose(pFVar6);
         }
         iVar2 = f_exists("/tmp/AMASLIB_DEBUG");
         if (0 < iVar2) {
           cprintf("[AMASLIB][%s:(%d)] mac=%s, ip=%s, macbuf=%s, ipbuf=%s, ret=%d\n",
-                  "check_dhcp_lease_table",0x275,&uStack_158,auStack_148 + 2,&local_1ac,local_1bc,
+                  "check_dhcp_lease_table",0x277,&uStack_158,auStack_148 + 2,&local_1ac,local_1bc,
                   pcVar4);
         }
         iVar2 = nvram_get_int("amaslib_syslog");
-        uVar13 = __progname;
+        uVar11 = __progname;
         if (iVar2 != 0) {
           _Var5 = getpid();
           asusdebuglog(6,"amas_lib.log",0,1,0,
-                       "[%s][%d]][%s:(%d)]  mac=%s, ip=%s, macbuf=%s, ipbuf=%s, ret=%d\n",uVar13,
-                       _Var5,"check_dhcp_lease_table",0x275,&uStack_158,auStack_148 + 2,&local_1ac,
+                       "[%s][%d]][%s:(%d)]  mac=%s, ip=%s, macbuf=%s, ipbuf=%s, ret=%d\n",uVar11,
+                       _Var5,"check_dhcp_lease_table",0x277,&uStack_158,auStack_148 + 2,&local_1ac,
                        local_1bc,pcVar4);
         }
         if (pcVar4 == (char *)0x1) {
           local_120[0] = '\0';
           local_120[1] = '\0';
           local_120[2] = '\0';
           local_120[3] = '\0';
           memset(local_120 + 4,0,0xfc);
           local_1ac = 0;
           memset(auStack_1a8,0,0xe);
           local_1cc = 10;
           local_1bc[0] = '\0';
           local_1bc[1] = '\0';
           local_1bc[2] = '\0';
           local_1bc[3] = '\0';
           local_1bc[4] = '\0';
           local_1bc[5] = '\0';
           local_1bc[6] = '\0';
           local_1bc[7] = '\0';
           local_1bc[8] = '\0';
           local_1bc[9] = '\0';
           local_1bc[10] = '\0';
           local_1bc[0xb] = '\0';
           local_1bc[0xc] = '\0';
           local_1bc[0xd] = '\0';
           local_1bc[0xe] = '\0';
           local_1bc[0xf] = '\0';
           do {
             pFVar6 = fopen("/proc/net/arp","r");
             if (pFVar6 == (FILE *)0x0) {
               printf("FAIL to open %s\n","/proc/net/arp");
               iVar2 = 0;
               break;
             }
             fgets(local_120,0x100,pFVar6);
             do {
               pcVar4 = fgets(local_120,0x100,pFVar6);
               if (pcVar4 == (char *)0x0) {
                 iVar2 = 0;
                 goto LAB_2;
               }
               memset(&local_1ac,0,0x12);
               memset(local_1bc,0,0x10);
               iVar2 = __isoc99_sscanf(local_120,"%15s %*s %*s %s %*s %*s",local_1bc,&local_1ac);
             } while ((iVar2 != 2) || (iVar2 = strcmp(local_1bc,auStack_148 + 2), iVar2 != 0));
             iVar7 = strcasecmp((char *)&local_1ac,(char *)&uStack_158);
             iVar2 = 1;
             if (iVar7 == 0) {
 LAB_2:
               fclose(pFVar6);
               break;
             }
             iVar2 = strcasecmp((char *)&local_1ac,"00:00:00:00:00:00");
             if (iVar2 != 0) {
               iVar2 = 2;
               goto LAB_2;
             }
             fclose(pFVar6);
             sleep(1);
             iVar2 = f_exists("/tmp/AMASLIB_DEBUG");
             if (0 < iVar2) {
               cprintf("[AMASLIB][%s:(%d)] IP matched but mac is empty, retry to read arp table!!\n",
-                      "check_arp_entry_table",0x2a0);
+                      "check_arp_entry_table",0x2a2);
             }
             iVar2 = nvram_get_int("amaslib_syslog");
-            uVar13 = __progname;
+            uVar11 = __progname;
             if (iVar2 != 0) {
               _Var5 = getpid();
               asusdebuglog(6,"amas_lib.log",0,1,0,
                            "[%s][%d]][%s:(%d)]  IP matched but mac is empty, retry to read arp table!!\n"
-                           ,uVar13,_Var5,"check_arp_entry_table",0x2a0);
+                           ,uVar11,_Var5,"check_arp_entry_table",0x2a2);
             }
             local_1cc = local_1cc + -1;
             iVar2 = 0;
           } while (local_1cc != 0);
           iVar7 = f_exists("/tmp/AMASLIB_DEBUG");
           if (0 < iVar7) {
             cprintf("[AMASLIB][%s:(%d)] mac=%s, ip=%s, macbuf=%s, ipbuf=%s, ret=%d\n",
-                    "check_arp_entry_table",0x2b0,&uStack_158,auStack_148 + 2,&local_1ac,local_1bc,
+                    "check_arp_entry_table",0x2b2,&uStack_158,auStack_148 + 2,&local_1ac,local_1bc,
                     iVar2);
           }
           iVar7 = nvram_get_int("amaslib_syslog");
-          uVar13 = __progname;
+          uVar11 = __progname;
           if (iVar7 != 0) {
             _Var5 = getpid();
             asusdebuglog(6,"amas_lib.log",0,1,0,
-                         "[%s][%d]][%s:(%d)]  mac=%s, ip=%s, macbuf=%s, ipbuf=%s, ret=%d\n",uVar13,
-                         _Var5,"check_arp_entry_table",0x2b0,&uStack_158,auStack_148 + 2,&local_1ac,
+                         "[%s][%d]][%s:(%d)]  mac=%s, ip=%s, macbuf=%s, ipbuf=%s, ret=%d\n",uVar11,
+                         _Var5,"check_arp_entry_table",0x2b2,&uStack_158,auStack_148 + 2,&local_1ac,
                          local_1bc,iVar2);
           }
           if (iVar2 == 2) {
-            iVar2 = FUN_000ed1c4(&uStack_158,auStack_148 + 2);
+            iVar2 = FUN_000f4bb4(&uStack_158,auStack_148 + 2);
             if (iVar2 != 0) {
-              FUN_000ed2d8(&uStack_158,(undefined4 *)(auStack_148 + 2));
+              FUN_000f4cc8(&uStack_158,(undefined4 *)(auStack_148 + 2));
             }
           }
         }
       }
-      FUN_000eeb04();
-    }
-    else if ((local_134 == 3) && (FUN_000ec42c(), DAT_3 == 0)) {
-      pVar8 = getpid();
-      pVar9 = pthread_self();
-      if (pVar8 == pVar9) {
+      FUN_000f64f4();
+    }
+    else if ((local_134 == 3) && (FUN_000f3e1c(), __thread1 = DAT_3, DAT_001de69c == 0)) {
+      __thread2 = pthread_self();
+      iVar2 = pthread_equal(__thread1,__thread2);
+      if (iVar2 == 0) {
+        sleep(0x1e);
+        DAT_4 = 1;
+      }
+      else {
         alarm(0x1e);
       }
-      else {
-        sleep(0x1e);
-        DAT_3 = 1;
-      }
     }
   }
   else if (local_198 == 1) {
     iVar2 = f_exists("/tmp/AMASLIB_DEBUG");
     if (0 < iVar2) {
-      cprintf("[AMASLIB][%s:(%d)] Enter.\n","get_ip_from_amas_entry_list",0x21e);
-    }
-    iVar2 = nvram_get_int("amaslib_syslog");
-    uVar13 = __progname;
-    if (iVar2 != 0) {
-      _Var5 = getpid();
-      asusdebuglog(6,"amas_lib.log",0,1,0,"[%s][%d]][%s:(%d)]  Enter.\n",uVar13,_Var5,
-                   "get_ip_from_amas_entry_list",0x21e);
-    }
-    pthread_mutex_lock((pthread_mutex_t *)&DAT_4);
-    iVar2 = f_exists("/tmp/AMASLIB_DEBUG");
-    if (0 < iVar2) {
-      cprintf("[AMASLIB][%s:(%d)] Enter. Entry locked\n","get_ip_from_amas_entry_list",0x220);
-    }
-    iVar2 = nvram_get_int("amaslib_syslog");
-    uVar13 = __progname;
-    if (iVar2 != 0) {
-      _Var5 = getpid();
-      asusdebuglog(6,"amas_lib.log",0,1,0,"[%s][%d]][%s:(%d)]  Enter. Entry locked\n",uVar13,_Var5,
+      cprintf("[AMASLIB][%s:(%d)] Enter.\n","get_ip_from_amas_entry_list",0x220);
+    }
+    iVar2 = nvram_get_int("amaslib_syslog");
+    uVar11 = __progname;
+    if (iVar2 != 0) {
+      _Var5 = getpid();
+      asusdebuglog(6,"amas_lib.log",0,1,0,"[%s][%d]][%s:(%d)]  Enter.\n",uVar11,_Var5,
                    "get_ip_from_amas_entry_list",0x220);
     }
-    piVar3 = (int *)*DAT_5;
-LAB_6:
+    pthread_mutex_lock((pthread_mutex_t *)&DAT_5);
+    iVar2 = f_exists("/tmp/AMASLIB_DEBUG");
+    if (0 < iVar2) {
+      cprintf("[AMASLIB][%s:(%d)] Enter. Entry locked\n","get_ip_from_amas_entry_list",0x222);
+    }
+    iVar2 = nvram_get_int("amaslib_syslog");
+    uVar11 = __progname;
+    if (iVar2 != 0) {
+      _Var5 = getpid();
+      asusdebuglog(6,"amas_lib.log",0,1,0,"[%s][%d]][%s:(%d)]  Enter. Entry locked\n",uVar11,_Var5,
+                   "get_ip_from_amas_entry_list",0x222);
+    }
+    piVar3 = (int *)*DAT_6;
+LAB_7:
     if (piVar3 != (int *)0x0) {
       pcVar4 = (char *)piVar3[2];
       if ((pcVar4 == (char *)0x0) || (iVar2 = strcasecmp(pcVar4,(char *)&uStack_194), iVar2 != 0))
-      goto LAB_7;
-      piVar12 = local_16c;
+      goto LAB_8;
+      piVar10 = local_16c;
       piVar3 = (int *)(pcVar4 + 0x12);
       do {
-        piVar11 = piVar3 + 2;
+        piVar9 = piVar3 + 2;
         iVar2 = piVar3[1];
-        *piVar12 = *piVar3;
-        piVar12[1] = iVar2;
-        piVar12 = piVar12 + 2;
-        piVar3 = piVar11;
-      } while (piVar11 != (int *)(pcVar4 + 0x22));
+        *piVar10 = *piVar3;
+        piVar10[1] = iVar2;
+        piVar10 = piVar10 + 2;
+        piVar3 = piVar9;
+      } while (piVar9 != (int *)(pcVar4 + 0x22));
       piVar3 = (int *)0x1;
     }
     iVar2 = f_exists("/tmp/AMASLIB_DEBUG");
     if (0 < iVar2) {
-      cprintf("[AMASLIB][%s:(%d)] Leave. Entry unlocked\n","get_ip_from_amas_entry_list",0x229);
-    }
-    iVar2 = nvram_get_int("amaslib_syslog");
-    uVar13 = __progname;
-    if (iVar2 != 0) {
-      _Var5 = getpid();
-      asusdebuglog(6,"amas_lib.log",0,1,0,"[%s][%d]][%s:(%d)]  Leave. Entry unlocked\n",uVar13,_Var5
-                   ,"get_ip_from_amas_entry_list",0x229);
-    }
-    pthread_mutex_unlock((pthread_mutex_t *)&DAT_4);
-    iVar2 = f_exists("/tmp/AMASLIB_DEBUG");
-    if (0 < iVar2) {
-      cprintf("[AMASLIB][%s:(%d)] Leave.\n","get_ip_from_amas_entry_list",0x22b);
-    }
-    iVar2 = nvram_get_int("amaslib_syslog");
-    uVar13 = __progname;
-    if (iVar2 != 0) {
-      _Var5 = getpid();
-      asusdebuglog(6,"amas_lib.log",0,1,0,"[%s][%d]][%s:(%d)]  Leave.\n",uVar13,_Var5,
-                   "get_ip_from_amas_entry_list",0x22b);
-    }
-    iVar2 = f_exists("/tmp/AMASLIB_DEBUG");
-    if (0 < iVar2) {
-      cprintf("[AMASLIB][%s:(%d)] mac=%s, ip=%s, ret=%d\n","get_ip_from_amas_entry_list",0x22d,
+      cprintf("[AMASLIB][%s:(%d)] Leave. Entry unlocked\n","get_ip_from_amas_entry_list",0x22b);
+    }
+    iVar2 = nvram_get_int("amaslib_syslog");
+    uVar11 = __progname;
+    if (iVar2 != 0) {
+      _Var5 = getpid();
+      asusdebuglog(6,"amas_lib.log",0,1,0,"[%s][%d]][%s:(%d)]  Leave. Entry unlocked\n",uVar11,_Var5
+                   ,"get_ip_from_amas_entry_list",0x22b);
+    }
+    pthread_mutex_unlock((pthread_mutex_t *)&DAT_5);
+    iVar2 = f_exists("/tmp/AMASLIB_DEBUG");
+    if (0 < iVar2) {
+      cprintf("[AMASLIB][%s:(%d)] Leave.\n","get_ip_from_amas_entry_list",0x22d);
+    }
+    iVar2 = nvram_get_int("amaslib_syslog");
+    uVar11 = __progname;
+    if (iVar2 != 0) {
+      _Var5 = getpid();
+      asusdebuglog(6,"amas_lib.log",0,1,0,"[%s][%d]][%s:(%d)]  Leave.\n",uVar11,_Var5,
+                   "get_ip_from_amas_entry_list",0x22d);
+    }
+    iVar2 = f_exists("/tmp/AMASLIB_DEBUG");
+    if (0 < iVar2) {
+      cprintf("[AMASLIB][%s:(%d)] mac=%s, ip=%s, ret=%d\n","get_ip_from_amas_entry_list",0x22f,
               &uStack_194,local_16c,piVar3);
     }
     iVar2 = nvram_get_int("amaslib_syslog");
-    uVar13 = __progname;
-    if (iVar2 != 0) {
-      _Var5 = getpid();
-      asusdebuglog(6,"amas_lib.log",0,1,0,"[%s][%d]][%s:(%d)]  mac=%s, ip=%s, ret=%d\n",uVar13,_Var5
-                   ,"get_ip_from_amas_entry_list",0x22d,&uStack_194,local_16c,piVar3);
+    uVar11 = __progname;
+    if (iVar2 != 0) {
+      _Var5 = getpid();
+      asusdebuglog(6,"amas_lib.log",0,1,0,"[%s][%d]][%s:(%d)]  mac=%s, ip=%s, ret=%d\n",uVar11,_Var5
+                   ,"get_ip_from_amas_entry_list",0x22f,&uStack_194,local_16c,piVar3);
     }
     iVar2 = f_exists("/tmp/AMASLIB_DEBUG");
     if (0 < iVar2) {
       cprintf("[AMASLIB][%s:(%d)] Get AMASLIB_ACTION_DEVICE_IP_QUERY, MAC=%s, IP=%s\n","receive_s",
-              0x433,&uStack_194,local_16c);
-    }
-    iVar2 = nvram_get_int("amaslib_syslog");
-    uVar13 = __progname;
+              0x435,&uStack_194,local_16c);
+    }
+    iVar2 = nvram_get_int("amaslib_syslog");
+    uVar11 = __progname;
     if (iVar2 != 0) {
       _Var5 = getpid();
       asusdebuglog(6,"amas_lib.log",0,1,0,
-                   "[%s][%d]][%s:(%d)]  Get AMASLIB_ACTION_DEVICE_IP_QUERY, MAC=%s, IP=%s\n",uVar13,
-                   _Var5,"receive_s",0x433,&uStack_194,local_16c);
+                   "[%s][%d]][%s:(%d)]  Get AMASLIB_ACTION_DEVICE_IP_QUERY, MAC=%s, IP=%s\n",uVar11,
+                   _Var5,"receive_s",0x435,&uStack_194,local_16c);
     }
     sVar1 = write(param_1,&local_198,0x3c);
     if (-1 < sVar1) {
       return;
     }
     puts("ERROR writing to socket.");
     iVar2 = f_exists("/tmp/AMASLIB_DEBUG");
     if (0 < iVar2) {
       piVar3 = __errno_location();
       pcVar4 = strerror(*piVar3);
-      cprintf("[AMASLIB][%s:(%d)] socket write error : %s\n","receive_s",0x437,pcVar4);
-    }
-    iVar2 = nvram_get_int("amaslib_syslog");
-    uVar13 = __progname;
+      cprintf("[AMASLIB][%s:(%d)] socket write error : %s\n","receive_s",0x439,pcVar4);
+    }
+    iVar2 = nvram_get_int("amaslib_syslog");
+    uVar11 = __progname;
     if (iVar2 == 0) {
       return;
     }
     _Var5 = getpid();
     piVar3 = __errno_location();
     pcVar4 = strerror(*piVar3);
-    uVar14 = 0x437;
-    pcVar10 = "[%s][%d]][%s:(%d)]  socket write error : %s\n";
+    uVar12 = 0x439;
+    pcVar8 = "[%s][%d]][%s:(%d)]  socket write error : %s\n";
     goto LAB_0;
   }
   return;
-LAB_7:
+LAB_8:
   piVar3 = (int *)*piVar3;
-  goto LAB_6;
+  goto LAB_7;
 }
 

FUN_0009871c

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,refcount,length,sig,address,calling,called
ratio 0.29
i_ratio 0.28
m_ratio 0.69
b_ratio 0.68
match_types BSIM

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_0009871c FUN_0009e184
fullname FUN_0009871c FUN_0009e184
refcount 2 1
length 548 412
called ::sprintf
::strchr
::strcmp
::strcspn
::strncpy
::strspn
::syslog
FUN_0007a3fc
FUN_0007a4a8
::cprintf
::nvram_get_int
::nvram_set
::sprintf
::strchr
::strcspn
::strncpy
::strspn
FUN_0007dcc4
calling FUN_00098754 FUN_00049c50
paramcount 1 0
address 0009871c 0009e184
sig undefined __stdcall FUN_0009871c(undefined4 param_1) undefined __stdcall FUN_0009e184(void)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_0009871c Called Diff

--- FUN_0009871c called
+++ FUN_0009e184 called
@@ -0,0 +1,3 @@
+<EXTERNAL>::cprintf
+<EXTERNAL>::nvram_get_int
+<EXTERNAL>::nvram_set
@@ -3 +5,0 @@
-<EXTERNAL>::strcmp
@@ -7,3 +9 @@
-<EXTERNAL>::syslog
-FUN_0007a3fc
-FUN_0007a4a8
+FUN_0007dcc4

FUN_0009871c Calling Diff

--- FUN_0009871c calling
+++ FUN_0009e184 calling
@@ -1 +1 @@
-FUN_00098754
+FUN_00049c50

FUN_0009871c Diff

--- FUN_0009871c
+++ FUN_0009e184
@@ -1,64 +1,52 @@
 
-void FUN_0009871c(undefined4 param_1)
+void FUN_0009e184(void)
 
 {
-  bool bVar1;
+  int iVar1;
   undefined *puVar2;
   char *pcVar3;
   size_t sVar4;
   size_t sVar5;
+  char *__src;
   int iVar6;
-  char *__src;
-  int iVar7;
-  int iVar8;
+  char acStack_160 [32];
   char acStack_140 [32];
   char local_120 [255];
   undefined local_21;
   
-  bVar1 = FUN_0007a4a8("cfg_abl","1");
-  if (!bVar1) {
-    return;
-  }
-  puVar2 = FUN_0007a3fc();
-  pcVar3 = FUN_0007a3fc();
-  sVar4 = strspn(pcVar3," ");
-  iVar8 = 0;
-  strncpy(local_120,puVar2 + sVar4,0x100);
-  local_21 = 0;
-  sVar5 = strcspn(local_120," ");
-  local_120[sVar5] = '\0';
-  pcVar3 = strchr(puVar2 + sVar4,0x20);
-  while (local_120[0] != '\0') {
-    iVar8 = iVar8 + 1;
-    __src = "";
-    if (pcVar3 != (char *)0x0) {
-      sVar4 = strspn(pcVar3," ");
-      __src = pcVar3 + sVar4;
+  iVar1 = nvram_get_int("re_mode");
+  if (iVar1 != 1) {
+    puVar2 = FUN_0007dcc4();
+    pcVar3 = FUN_0007dcc4();
+    sVar4 = strspn(pcVar3," ");
+    iVar1 = 0;
+    strncpy(local_120,puVar2 + sVar4,0x100);
+    local_21 = 0;
+    sVar5 = strcspn(local_120," ");
+    local_120[sVar5] = '\0';
+    pcVar3 = strchr(puVar2 + sVar4,0x20);
+    while (local_120[0] != '\0') {
+      iVar1 = iVar1 + 1;
+      __src = "";
+      if (pcVar3 != (char *)0x0) {
+        sVar4 = strspn(pcVar3," ");
+        __src = pcVar3 + sVar4;
+      }
+      strncpy(local_120,__src,0x100);
+      local_21 = 0;
+      sVar4 = strcspn(local_120," ");
+      local_120[sVar4] = '\0';
+      pcVar3 = strchr(__src,0x20);
     }
-    strncpy(local_120,__src,0x100);
-    local_21 = 0;
-    sVar4 = strcspn(local_120," ");
-    local_120[sVar4] = '\0';
-    pcVar3 = strchr(__src,0x20);
-  }
-  for (iVar7 = 0; iVar8 != iVar7; iVar7 = iVar7 + 1) {
-    sprintf(acStack_140,"wl%d_acs_excl_chans",iVar7);
-    pcVar3 = FUN_0007a3fc();
-    iVar6 = strcmp(pcVar3,"1");
-    if (iVar6 == 0) {
-      puVar2 = FUN_0007a3fc();
-      syslog(5,"[%s(%d)]:[%s] wl%d_acs_excl_chans:\n%s\n\n","dump_acs_excl_chans",0x2a7a,param_1,
-             iVar7,puVar2);
-    }
-    sprintf(acStack_140,"wl%d_acs_excl_chans_cfg",iVar7);
-    pcVar3 = FUN_0007a3fc();
-    iVar6 = strcmp(pcVar3,"1");
-    if (iVar6 == 0) {
-      puVar2 = FUN_0007a3fc();
-      syslog(5,"[%s(%d)]:[%s] wl%d_acs_excl_chans_cfg:\n%s\n\n","dump_acs_excl_chans",0x2a7c,param_1
-             ,iVar7,puVar2);
+    for (iVar6 = 0; iVar6 != iVar1; iVar6 = iVar6 + 1) {
+      sprintf(acStack_160,"wl%d_acs_excl_chans",iVar6);
+      sprintf(acStack_140,"wl%d_acs_excl_chans_valid",iVar6);
+      puVar2 = FUN_0007dcc4();
+      nvram_set(acStack_140,puVar2);
+      puVar2 = FUN_0007dcc4();
+      cprintf("\nset exclchans valid[%d]:[%s]=[%s]\n",iVar6,acStack_140,puVar2);
     }
   }
   return;
 }
 

FUN_0004d76c

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.66
i_ratio 0.3
m_ratio 0.66
b_ratio 0.81
match_types BSIM

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_0004d76c FUN_0005096c
fullname FUN_0004d76c FUN_0005096c
refcount 2 2
length 20648 20948
called
Expand for full list:
::ATE_UPGRADE_MODE_STR
::MobileDevMode_restart
::_eval
::atoi
::cprintf
::dbg
::disable_dpi_engine_setting
::f_exists
::f_read_string
::f_write_string
::fclose
::fopen
::fprintf
::fputs
::fwrite
::get_nr_wan_unit
::get_primaryif_dualwan_unit
::get_wan_ifname
::get_wanx_ifname
::getpid
::inet_deconflict
::inet_network
::inet_ntoa
::is_wan_connect
::kill
::kill_pidfile_s
::killall
::logmessage_normal
::memcpy
::memset
::modprobe_r
::num_of_wl_if
::nvram_commit
::nvram_contains_word
::nvram_default_get
::nvram_get
::nvram_get_int
::nvram_set
::nvram_set_int
::nvram_unset
::pidof
::psname
::puts
::remove
::rename
::send_cfgmnt_event
::setBootImageState
::set_action
::set_wan_primary_ifunit
::setup_wrs_conf
::sleep
::snprintf
::sprintf
::start_dpi_engine_service
::start_letsencrypt
::start_ovpn_client
::start_ovpn_server
::start_wrs_wbl_service
::stop_dpi_engine_service
::stop_letsencrypt
::stop_ovpn_client
::stop_ovpn_server
::strchr
::strcmp
::strcpy
::strlcpy
::strlen
::strncmp
::strncpy
::strsep
::strstr
::strtok_r
::system
::trigger_opt
::unlink
::update_6rd_info
::update_sta_binding_list
::uptime
::wait_action_idle
::wan_primary_ifunit
::wan_primary_ifunit_ipv6
FUN_00023ee8
FUN_00025c5c
FUN_000297f0
FUN_000298c0
FUN_0002ad80
FUN_0002ad90
FUN_0002af4c
FUN_0002be8c
FUN_0002bf80
FUN_0002bfd0
FUN_0002c548
FUN_0002db20
FUN_0002f614
FUN_0002fa54
FUN_00030ae4
FUN_00031918
FUN_00031b44
FUN_00031d5c
FUN_00031da0
FUN_0003203c
FUN_000322d4
FUN_00032474
FUN_0003252c
FUN_000326e4
FUN_00032f14
FUN_00032f5c
FUN_00038078
FUN_00038448
FUN_000384d4
FUN_000394a0
FUN_0003a864
FUN_0003acc0
FUN_0003bd2c
FUN_0003d8ac
FUN_0003d998
FUN_0003dfd4
FUN_0003dff4
FUN_0003e15c
FUN_0003e17c
FUN_0003e29c
FUN_0003ee00
FUN_0003ee38
FUN_0003ef20
FUN_0003efe4
FUN_00040900
FUN_000409d0
FUN_00040a58
FUN_00040b28
FUN_00040bb0
FUN_00040fa8
FUN_00040fb8
FUN_00041068
FUN_00041384
FUN_00041c20
FUN_00041e38
FUN_00042550
FUN_000425a0
FUN_000425ec
FUN_000425fc
FUN_00042658
FUN_00042668
FUN_000426c4
FUN_000426d4
FUN_00042728
FUN_00042784
FUN_00042794
FUN_000427a4
FUN_000427fc
FUN_0004280c
FUN_00042868
FUN_00042894
FUN_00042950
FUN_00042c98
FUN_000441f0
FUN_00045174
FUN_00045254
FUN_00045b4c
FUN_00046310
FUN_0004640c
FUN_00046448
FUN_00046498
FUN_000472d0
FUN_00047320
FUN_00047380
FUN_000474a0
FUN_000474cc
FUN_000477b4
FUN_000477bc
FUN_00047808
FUN_00047d68
FUN_00047dec
FUN_00048260
FUN_00048b8c
FUN_00048cbc
FUN_00048d38
FUN_00048d64
FUN_00048e1c
FUN_00048e98
FUN_00048ea8
FUN_00048ed4
FUN_00048f54
FUN_0004955c
FUN_00049604
FUN_00049640
FUN_00049704
FUN_00049718
FUN_00049728
FUN_00049748
FUN_00049914
FUN_00049960
FUN_000499e8
FUN_00049a50
FUN_00049a8c
FUN_00049b20
FUN_00049b30
FUN_00049b68
FUN_00049bc0
FUN_0004a02c
FUN_0004a030
FUN_0004a058
FUN_0004a174
FUN_0004a1bc
FUN_0004a1f8
FUN_0004a2b8
FUN_0004a2f4
FUN_0004a3b4
FUN_0004a400
FUN_0004a4c0
FUN_0004a50c
FUN_0004a5cc
FUN_0004a618
FUN_0004a6f8
FUN_0004a744
FUN_0004a804
FUN_0004a850
FUN_0004a90c
FUN_0004affc
FUN_0004b06c
FUN_0004b9f4
FUN_0004ba7c
FUN_0004bad0
FUN_0004bb4c
FUN_0004be94
FUN_0004bea4
FUN_0004bef8
FUN_0004bf8c
FUN_0004c04c
FUN_0004c060
FUN_0004c6ac
FUN_0004c778
FUN_0004c7a4
FUN_0004c7e8
FUN_0004ca64
FUN_0004cac4
FUN_0004cd30
FUN_0004cd5c
FUN_0004cd98
FUN_0004cdf4
FUN_0004ce04
FUN_0004d1c4
FUN_0004d360
FUN_00058f28
FUN_00058ff4
FUN_0005ef4c
FUN_00061b48
FUN_000625b0
FUN_0006d8c4
FUN_0006fa68
FUN_0006fab0
FUN_0006fbcc
FUN_0006ff84
FUN_00072a84
FUN_00075298
FUN_000752a8
FUN_00075554
FUN_0007be08
FUN_00099d04
FUN_000a0ed0
FUN_000a12e8
FUN_000a1660
FUN_000a1b98
FUN_000a245c
FUN_000a3a38
FUN_000a5cc4
FUN_000a68dc
FUN_000a6a30
FUN_000b15b0
FUN_000b329c
FUN_000b9c10
FUN_000bc540
FUN_000bc5c4
FUN_000bc648
FUN_000bc864
FUN_000bd0c0
FUN_000c6434
FUN_000c6528
FUN_000c6aa4
FUN_000c6d34
FUN_000c7af4
FUN_000c8b88
FUN_000c9010
FUN_000c9128
FUN_000c937c
FUN_000cb6e4
FUN_000d23d4
FUN_000d3c30
FUN_000d3ca0
FUN_000d3f9c
FUN_000e8548
FUN_000e87d8
FUN_000eb508
FUN_000f2c94
FUN_000f4a20
FUN_000f4a34
FUN_000f5260
FUN_000f5434
FUN_0010dd80
FUN_00117774
FUN_00117828
FUN_001178b8
FUN_0014df80
FUN_0014f084
FUN_0014f130
FUN_0014f228
FUN_0014f3c8
thunk_FUN_0003e6cc
Expand for full list:
::ATE_UPGRADE_MODE_STR
::MobileDevMode_restart
::_eval
::atoi
::cprintf
::dbg
::disable_dpi_engine_setting
::f_exists
::f_read_string
::f_write_string
::fclose
::fopen
::fprintf
::fputs
::fwrite
::get_ipv6_service
::get_nr_wan_unit
::get_primaryif_dualwan_unit
::get_userdns_r
::get_wan_ifname
::get_wanx_ifname
::getpid
::inet_deconflict
::inet_network
::inet_ntoa
::is_wan_connect
::kill
::kill_pidfile_s
::killall
::logmessage_normal
::memcpy
::memset
::modprobe_r
::num_of_wl_if
::nvram_commit
::nvram_contains_word
::nvram_default_get
::nvram_get
::nvram_get_int
::nvram_set
::nvram_set_int
::nvram_unset
::pidof
::psname
::puts
::remove
::rename
::send_cfgmnt_event
::setBootImageState
::set_action
::set_wan_primary_ifunit
::setup_wrs_conf
::sleep
::snprintf
::sprintf
::start_dpi_engine_service
::start_letsencrypt
::start_ovpn_client
::start_ovpn_server
::start_wrs_wbl_service
::stop_dpi_engine_service
::stop_letsencrypt
::stop_ovpn_client
::stop_ovpn_server
::strchr
::strcmp
::strcpy
::strlcpy
::strlen
::strncmp
::strncpy
::strsep
::strstr
::strtok_r
::system
::trigger_opt
::unlink
::update_6rd_info
::update_srv_cert_if_ddns_changed
::update_srv_cert_if_lan_ip_changed
::update_sta_binding_list
::uptime
::wait_action_idle
::wan_primary_ifunit
::wan_primary_ifunit_ipv6
FUN_00024c84
FUN_0002699c
FUN_0002a580
FUN_0002a650
FUN_0002bb10
FUN_0002bb20
FUN_0002bcdc
FUN_0002cc1c
FUN_0002cd10
FUN_0002cd60
FUN_0002d2d8
FUN_0002e8b4
FUN_000303ac
FUN_000307ec
FUN_0003187c
FUN_000326b0
FUN_000328dc
FUN_00032af4
FUN_00032b38
FUN_00032dd4
FUN_0003306c
FUN_0003320c
FUN_000332c4
FUN_0003347c
FUN_00033cb0
FUN_00033cf8
FUN_00037f70
FUN_00039be8
FUN_00039fec
FUN_0003a078
FUN_0003aac8
FUN_0003be70
FUN_0003c2cc
FUN_0003d41c
FUN_0003efa0
FUN_0003f08c
FUN_0003f6c8
FUN_0003f6e8
FUN_0003f850
FUN_0003f870
FUN_0003fa9c
FUN_000405d4
FUN_0004060c
FUN_000406f4
FUN_000407b8
FUN_000424e0
FUN_000425b0
FUN_00042638
FUN_00042708
FUN_000428e8
FUN_00042ce0
FUN_00042cf0
FUN_00042da0
FUN_000430bc
FUN_00043958
FUN_00043b70
FUN_00044288
FUN_000442d8
FUN_00044324
FUN_00044334
FUN_00044390
FUN_000443a0
FUN_000443e0
FUN_000443f0
FUN_0004444c
FUN_0004445c
FUN_000444b0
FUN_0004450c
FUN_0004451c
FUN_0004452c
FUN_00044584
FUN_00044594
FUN_000445f0
FUN_0004461c
FUN_000446d8
FUN_00044a20
FUN_00046194
FUN_00047474
FUN_00047554
FUN_00048190
FUN_00048be0
FUN_00048cdc
FUN_00048d18
FUN_00048d68
FUN_00049ba0
FUN_00049bf0
FUN_00049c50
FUN_00049d74
FUN_00049da0
FUN_0004a088
FUN_0004a090
FUN_0004a0dc
FUN_0004a4b8
FUN_0004adb4
FUN_0004aee4
FUN_0004af60
FUN_0004af8c
FUN_0004b044
FUN_0004b0c0
FUN_0004b0d0
FUN_0004b0fc
FUN_0004b198
FUN_0004b7a0
FUN_0004b848
FUN_0004b884
FUN_0004b948
FUN_0004b95c
FUN_0004b96c
FUN_0004b98c
FUN_0004bb58
FUN_0004bba4
FUN_0004bc2c
FUN_0004bc94
FUN_0004bcd0
FUN_0004bd64
FUN_0004bd74
FUN_0004bdac
FUN_0004be04
FUN_0004c270
FUN_0004c274
FUN_0004c29c
FUN_0004c3b8
FUN_0004cc68
FUN_0004d21c
FUN_0004d338
FUN_0004d380
FUN_0004d3bc
FUN_0004d47c
FUN_0004d4b8
FUN_0004d578
FUN_0004d5c4
FUN_0004d684
FUN_0004d6d0
FUN_0004d790
FUN_0004d7dc
FUN_0004d8bc
FUN_0004d908
FUN_0004d9c8
FUN_0004da14
FUN_0004dad0
FUN_0004e17c
FUN_0004e1ec
FUN_0004eb74
FUN_0004ebfc
FUN_0004ec50
FUN_0004eccc
FUN_0004f014
FUN_0004f024
FUN_0004f078
FUN_0004f10c
FUN_0004f1cc
FUN_0004f1e0
FUN_0004f82c
FUN_0004f8f8
FUN_0004f924
FUN_0004f968
FUN_0004fbe4
FUN_0004fc44
FUN_0004fedc
FUN_0004ff08
FUN_0004ff44
FUN_0004ffa0
FUN_0004ffb0
FUN_00050394
FUN_0005055c
FUN_0005c2c8
FUN_0005c394
FUN_000622f8
FUN_00064f24
FUN_000659b4
FUN_00070d98
FUN_00072f3c
FUN_00072f84
FUN_000730a0
FUN_00073458
FUN_00076068
FUN_0007895c
FUN_0007896c
FUN_00078d08
FUN_0007f508
FUN_0009f8d8
FUN_000a6a68
FUN_000a6e80
FUN_000a71f8
FUN_000a7730
FUN_000a802c
FUN_000a9608
FUN_000ab984
FUN_000ac5e0
FUN_000ac734
FUN_000b733c
FUN_000b916c
FUN_000bfbc8
FUN_000c2530
FUN_000c25b4
FUN_000c2638
FUN_000c28ac
FUN_000c3160
FUN_000cc4d4
FUN_000cc5c8
FUN_000ccb44
FUN_000ccdd4
FUN_000cdb04
FUN_000ceb98
FUN_000cf020
FUN_000cf138
FUN_000cf38c
FUN_000d16f4
FUN_000d8438
FUN_000d9c9c
FUN_000d9d0c
FUN_000da008
FUN_000eff48
FUN_000f01d8
FUN_000f2ef8
FUN_000fa694
FUN_000fc434
FUN_000fc448
FUN_000fcc74
FUN_000fce48
FUN_00114688
FUN_0011e17c
FUN_0011e250
FUN_0011e2e0
FUN_00156000
FUN_00157230
FUN_001572dc
FUN_001573d4
FUN_00157574
thunk_FUN_0003fea0
calling FUN_0001e168
FUN_00025d04
FUN_0001eb88
FUN_00026a44
paramcount 0 0
address 0004d76c 0005096c
sig undefined __stdcall FUN_0004d76c(void) undefined __stdcall FUN_0005096c(void)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_0004d76c Called Diff

--- FUN_0004d76c called
+++ FUN_0005096c called
@@ -15,0 +16 @@
+<EXTERNAL>::get_ipv6_service
@@ -17,0 +19 @@
+<EXTERNAL>::get_userdns_r
@@ -76,0 +79,2 @@
+<EXTERNAL>::update_srv_cert_if_ddns_changed
+<EXTERNAL>::update_srv_cert_if_lan_ip_changed
@@ -82,226 +86,230 @@
-FUN_00023ee8
-FUN_00025c5c
-FUN_000297f0
-FUN_000298c0
-FUN_0002ad80
-FUN_0002ad90
-FUN_0002af4c
-FUN_0002be8c
-FUN_0002bf80
-FUN_0002bfd0
-FUN_0002c548
-FUN_0002db20
-FUN_0002f614
-FUN_0002fa54
-FUN_00030ae4
-FUN_00031918
-FUN_00031b44
-FUN_00031d5c
-FUN_00031da0
-FUN_0003203c
-FUN_000322d4
-FUN_00032474
-FUN_0003252c
-FUN_000326e4
-FUN_00032f14
-FUN_00032f5c
-FUN_00038078
-FUN_00038448
-FUN_000384d4
-FUN_000394a0
-FUN_0003a864
-FUN_0003acc0
-FUN_0003bd2c
-FUN_0003d8ac
-FUN_0003d998
-FUN_0003dfd4
-FUN_0003dff4
-FUN_0003e15c
-FUN_0003e17c
-FUN_0003e29c
-FUN_0003ee00
-FUN_0003ee38
-FUN_0003ef20
-FUN_0003efe4
-FUN_00040900
-FUN_000409d0
-FUN_00040a58
-FUN_00040b28
-FUN_00040bb0
-FUN_00040fa8
-FUN_00040fb8
-FUN_00041068
-FUN_00041384
-FUN_00041c20
-FUN_00041e38
-FUN_00042550
-FUN_000425a0
-FUN_000425ec
-FUN_000425fc
-FUN_00042658
-FUN_00042668
-FUN_000426c4
-FUN_000426d4
-FUN_00042728
-FUN_00042784
-FUN_00042794
-FUN_000427a4
-FUN_000427fc
-FUN_0004280c
-FUN_00042868
-FUN_00042894
-FUN_00042950
-FUN_00042c98
-FUN_000441f0
-FUN_00045174
-FUN_00045254
-FUN_00045b4c
-FUN_00046310
-FUN_0004640c
-FUN_00046448
-FUN_00046498
-FUN_000472d0
-FUN_00047320
-FUN_00047380
-FUN_000474a0
-FUN_000474cc
-FUN_000477b4
-FUN_000477bc
-FUN_00047808
-FUN_00047d68
-FUN_00047dec
-FUN_00048260
-FUN_00048b8c
-FUN_00048cbc
-FUN_00048d38
-FUN_00048d64
-FUN_00048e1c
-FUN_00048e98
-FUN_00048ea8
-FUN_00048ed4
-FUN_00048f54
-FUN_0004955c
-FUN_00049604
-FUN_00049640
-FUN_00049704
-FUN_00049718
-FUN_00049728
-FUN_00049748
-FUN_00049914
-FUN_00049960
-FUN_000499e8
-FUN_00049a50
-FUN_00049a8c
-FUN_00049b20
-FUN_00049b30
-FUN_00049b68
-FUN_00049bc0
-FUN_0004a02c
-FUN_0004a030
-FUN_0004a058
-FUN_0004a174
-FUN_0004a1bc
-FUN_0004a1f8
-FUN_0004a2b8
-FUN_0004a2f4
-FUN_0004a3b4
-FUN_0004a400
-FUN_0004a4c0
-FUN_0004a50c
-FUN_0004a5cc
-FUN_0004a618
-FUN_0004a6f8
-FUN_0004a744
-FUN_0004a804
-FUN_0004a850
-FUN_0004a90c
-FUN_0004affc
-FUN_0004b06c
-FUN_0004b9f4
-FUN_0004ba7c
-FUN_0004bad0
-FUN_0004bb4c
-FUN_0004be94
-FUN_0004bea4
-FUN_0004bef8
-FUN_0004bf8c
-FUN_0004c04c
-FUN_0004c060
-FUN_0004c6ac
-FUN_0004c778
-FUN_0004c7a4
-FUN_0004c7e8
-FUN_0004ca64
-FUN_0004cac4
-FUN_0004cd30
-FUN_0004cd5c
-FUN_0004cd98
-FUN_0004cdf4
-FUN_0004ce04
-FUN_0004d1c4
-FUN_0004d360
-FUN_00058f28
-FUN_00058ff4
-FUN_0005ef4c
-FUN_00061b48
-FUN_000625b0
-FUN_0006d8c4
-FUN_0006fa68
-FUN_0006fab0
-FUN_0006fbcc
-FUN_0006ff84
-FUN_00072a84
-FUN_00075298
-FUN_000752a8
-FUN_00075554
-FUN_0007be08
-FUN_00099d04
-FUN_000a0ed0
-FUN_000a12e8
-FUN_000a1660
-FUN_000a1b98
-FUN_000a245c
-FUN_000a3a38
-FUN_000a5cc4
-FUN_000a68dc
-FUN_000a6a30
-FUN_000b15b0
-FUN_000b329c
-FUN_000b9c10
-FUN_000bc540
-FUN_000bc5c4
-FUN_000bc648
-FUN_000bc864
-FUN_000bd0c0
-FUN_000c6434
-FUN_000c6528
-FUN_000c6aa4
-FUN_000c6d34
-FUN_000c7af4
-FUN_000c8b88
-FUN_000c9010
-FUN_000c9128
-FUN_000c937c
-FUN_000cb6e4
-FUN_000d23d4
-FUN_000d3c30
-FUN_000d3ca0
-FUN_000d3f9c
-FUN_000e8548
-FUN_000e87d8
-FUN_000eb508
-FUN_000f2c94
-FUN_000f4a20
-FUN_000f4a34
-FUN_000f5260
-FUN_000f5434
-FUN_0010dd80
-FUN_00117774
-FUN_00117828
-FUN_001178b8
-FUN_0014df80
-FUN_0014f084
-FUN_0014f130
-FUN_0014f228
-FUN_0014f3c8
-thunk_FUN_0003e6cc
+FUN_00024c84
+FUN_0002699c
+FUN_0002a580
+FUN_0002a650
+FUN_0002bb10
+FUN_0002bb20
+FUN_0002bcdc
+FUN_0002cc1c
+FUN_0002cd10
+FUN_0002cd60
+FUN_0002d2d8
+FUN_0002e8b4
+FUN_000303ac
+FUN_000307ec
+FUN_0003187c
+FUN_000326b0
+FUN_000328dc
+FUN_00032af4
+FUN_00032b38
+FUN_00032dd4
+FUN_0003306c
+FUN_0003320c
+FUN_000332c4
+FUN_0003347c
+FUN_00033cb0
+FUN_00033cf8
+FUN_00037f70
+FUN_00039be8
+FUN_00039fec
+FUN_0003a078
+FUN_0003aac8
+FUN_0003be70
+FUN_0003c2cc
+FUN_0003d41c
+FUN_0003efa0
+FUN_0003f08c
+FUN_0003f6c8
+FUN_0003f6e8
+FUN_0003f850
+FUN_0003f870
+FUN_0003fa9c
+FUN_000405d4
+FUN_0004060c
+FUN_000406f4
+FUN_000407b8
+FUN_000424e0
+FUN_000425b0
+FUN_00042638
+FUN_00042708
+FUN_000428e8
+FUN_00042ce0
+FUN_00042cf0
+FUN_00042da0
+FUN_000430bc
+FUN_00043958
+FUN_00043b70
+FUN_00044288
+FUN_000442d8
+FUN_00044324
+FUN_00044334
+FUN_00044390
+FUN_000443a0
+FUN_000443e0
+FUN_000443f0
+FUN_0004444c
+FUN_0004445c
+FUN_000444b0
+FUN_0004450c
+FUN_0004451c
+FUN_0004452c
+FUN_00044584
+FUN_00044594
+FUN_000445f0
+FUN_0004461c
+FUN_000446d8
+FUN_00044a20
+FUN_00046194
+FUN_00047474
+FUN_00047554
+FUN_00048190
+FUN_00048be0
+FUN_00048cdc
+FUN_00048d18
+FUN_00048d68
+FUN_00049ba0
+FUN_00049bf0
+FUN_00049c50
+FUN_00049d74
+FUN_00049da0
+FUN_0004a088
+FUN_0004a090
+FUN_0004a0dc
+FUN_0004a4b8
+FUN_0004adb4
+FUN_0004aee4
+FUN_0004af60
+FUN_0004af8c
+FUN_0004b044
+FUN_0004b0c0
+FUN_0004b0d0
+FUN_0004b0fc
+FUN_0004b198
+FUN_0004b7a0
+FUN_0004b848
+FUN_0004b884
+FUN_0004b948
+FUN_0004b95c
+FUN_0004b96c
+FUN_0004b98c
+FUN_0004bb58
+FUN_0004bba4
+FUN_0004bc2c
+FUN_0004bc94
+FUN_0004bcd0
+FUN_0004bd64
+FUN_0004bd74
+FUN_0004bdac
+FUN_0004be04
+FUN_0004c270
+FUN_0004c274
+FUN_0004c29c
+FUN_0004c3b8
+FUN_0004cc68
+FUN_0004d21c
+FUN_0004d338
+FUN_0004d380
+FUN_0004d3bc
+FUN_0004d47c
+FUN_0004d4b8
+FUN_0004d578
+FUN_0004d5c4
+FUN_0004d684
+FUN_0004d6d0
+FUN_0004d790
+FUN_0004d7dc
+FUN_0004d8bc
+FUN_0004d908
+FUN_0004d9c8
+FUN_0004da14
+FUN_0004dad0
+FUN_0004e17c
+FUN_0004e1ec
+FUN_0004eb74
+FUN_0004ebfc
+FUN_0004ec50
+FUN_0004eccc
+FUN_0004f014
+FUN_0004f024
+FUN_0004f078
+FUN_0004f10c
+FUN_0004f1cc
+FUN_0004f1e0
+FUN_0004f82c
+FUN_0004f8f8
+FUN_0004f924
+FUN_0004f968
+FUN_0004fbe4
+FUN_0004fc44
+FUN_0004fedc
+FUN_0004ff08
+FUN_0004ff44
+FUN_0004ffa0
+FUN_0004ffb0
+FUN_00050394
+FUN_0005055c
+FUN_0005c2c8
+FUN_0005c394
+FUN_000622f8
+FUN_00064f24
+FUN_000659b4
+FUN_00070d98
+FUN_00072f3c
+FUN_00072f84
+FUN_000730a0
+FUN_00073458
+FUN_00076068
+FUN_0007895c
+FUN_0007896c
+FUN_00078d08
+FUN_0007f508
+FUN_0009f8d8
+FUN_000a6a68
+FUN_000a6e80
+FUN_000a71f8
+FUN_000a7730
+FUN_000a802c
+FUN_000a9608
+FUN_000ab984
+FUN_000ac5e0
+FUN_000ac734
+FUN_000b733c
+FUN_000b916c
+FUN_000bfbc8
+FUN_000c2530
+FUN_000c25b4
+FUN_000c2638
+FUN_000c28ac
+FUN_000c3160
+FUN_000cc4d4
+FUN_000cc5c8
+FUN_000ccb44
+FUN_000ccdd4
+FUN_000cdb04
+FUN_000ceb98
+FUN_000cf020
+FUN_000cf138
+FUN_000cf38c
+FUN_000d16f4
+FUN_000d8438
+FUN_000d9c9c
+FUN_000d9d0c
+FUN_000da008
+FUN_000eff48
+FUN_000f01d8
+FUN_000f2ef8
+FUN_000fa694
+FUN_000fc434
+FUN_000fc448
+FUN_000fcc74
+FUN_000fce48
+FUN_00114688
+FUN_0011e17c
+FUN_0011e250
+FUN_0011e2e0
+FUN_00156000
+FUN_00157230
+FUN_001572dc
+FUN_001573d4
+FUN_00157574
+thunk_FUN_0003fea0

FUN_0004d76c Calling Diff

--- FUN_0004d76c calling
+++ FUN_0005096c calling
@@ -1,2 +1,2 @@
-FUN_0001e168
-FUN_00025d04
+FUN_0001eb88
+FUN_00026a44

FUN_0004d76c Diff

--- FUN_0004d76c
+++ FUN_0005096c
@@ -1,3376 +1,3422 @@
 
 /* WARNING: Type propagation algorithm not settling */
 
-void FUN_0004d76c(void)
+void FUN_0005096c(void)
 
 {
   char cVar1;
   undefined2 uVar2;
   undefined4 *puVar3;
   bool bVar4;
   undefined *puVar5;
   char *pcVar6;
   char *pcVar7;
   int iVar8;
   __pid_t _Var9;
   undefined4 uVar10;
   FILE *pFVar11;
   char *pcVar12;
   byte *pbVar13;
   size_t sVar14;
   char **ppcVar15;
   char **ppcVar16;
   in_addr_t iVar17;
   int iVar18;
-  undefined *puVar19;
+  char **ppcVar19;
   undefined *puVar20;
+  undefined *puVar21;
   undefined4 extraout_r1;
   undefined4 extraout_r1_00;
   undefined4 extraout_r1_01;
   undefined4 extraout_r1_02;
   undefined4 extraout_r1_03;
   undefined *extraout_r1_04;
   undefined4 extraout_r1_05;
   undefined4 extraout_r1_06;
   undefined4 extraout_r1_07;
   undefined4 extraout_r1_08;
   undefined4 extraout_r1_09;
   undefined *extraout_r1_10;
   undefined4 extraout_r1_11;
   undefined4 extraout_r1_12;
   undefined4 extraout_r1_13;
   undefined4 extraout_r1_14;
   undefined *extraout_r1_15;
   undefined4 extraout_r1_16;
   undefined4 extraout_r1_17;
   undefined4 extraout_r1_18;
   uint extraout_r1_19;
   undefined4 extraout_r1_20;
   undefined4 extraout_r1_21;
   uint extraout_r1_22;
   uint extraout_r1_23;
   undefined4 extraout_r1_24;
   undefined *extraout_r1_25;
   undefined4 extraout_r1_26;
   undefined4 extraout_r1_27;
   undefined4 extraout_r1_28;
   undefined4 extraout_r1_29;
   undefined4 extraout_r1_30;
   undefined4 extraout_r1_31;
   undefined4 extraout_r1_32;
   uint extraout_r1_33;
   uint extraout_r1_34;
   undefined4 extraout_r1_35;
   undefined4 extraout_r1_36;
   uint extraout_r1_37;
   undefined4 extraout_r1_38;
   undefined *extraout_r1_39;
   undefined4 extraout_r1_40;
   undefined4 extraout_r1_41;
   undefined4 extraout_r1_42;
   uint extraout_r1_43;
   uint extraout_r1_44;
   uint extraout_r1_45;
   uint extraout_r1_46;
   uint extraout_r1_47;
   uint extraout_r1_48;
   uint extraout_r1_49;
   uint extraout_r1_50;
   uint extraout_r1_51;
   uint extraout_r1_52;
   uint extraout_r1_53;
   uint extraout_r1_54;
-  char ***pppcVar21;
+  char ***pppcVar22;
   char *__dest;
-  undefined4 uVar22;
-  char *pcVar23;
-  uint uVar24;
+  undefined4 uVar23;
+  char *pcVar24;
   uint uVar25;
-  int *piVar26;
-  char **ppcVar27;
+  uint uVar26;
+  int *piVar27;
   undefined *puVar28;
   undefined4 *puVar29;
   char ***pppcVar30;
   uint uVar31;
   uint uVar32;
   int iVar33;
   int iVar34;
   undefined8 uVar35;
   longlong lVar36;
   char *local_162c;
   char *local_1628;
   char local_1624 [36];
-  char *local_1600 [8];
+  char *local_1600;
+  char **local_15fc;
+  char *local_15f8;
+  char *local_15f4;
   char **ppcStack_15e0;
   char **ppcStack_15dc;
   char **ppcStack_15d8;
   char *apcStack_15a0 [32];
   char local_1520 [256];
   in_addr local_1420;
   undefined4 local_141c;
-  char **local_1220;
-  char **local_121c [2];
+  char **local_1220 [3];
   undefined *local_1214;
   char *local_1210;
   undefined4 local_120c;
   char *local_1020;
-  char *local_101c [2];
+  char **local_101c;
+  char *local_1018;
   undefined4 local_1014;
   int local_1010;
   
-  puVar5 = FUN_0003dfd4();
+  puVar5 = FUN_0003f6c8();
   strlcpy(local_1520,puVar5,0x100);
   __dest = local_1624 + 4;
   uVar31 = 0;
   local_1628 = local_1520;
   do {
+    ppcVar19 = &local_1020;
     pcVar6 = strsep(&local_1628,";");
     iVar34 = 0;
     local_162c = pcVar6;
-    memset(local_1600,0,0x20);
+    memset(&local_1600,0,0x20);
     do {
       pcVar7 = strtok_r(pcVar6," ",&local_162c);
       if (pcVar7 == (char *)0x0) {
         if (iVar34 == 0) {
           nvram_set("rc_service","");
           return;
         }
         break;
       }
       cprintf("cmd[%d]=%s\n",iVar34);
       pcVar6 = (char *)0x0;
-      local_1600[iVar34] = pcVar7;
+      (&local_1600)[iVar34] = pcVar7;
       iVar34 = iVar34 + 1;
     } while (iVar34 != 8);
-    pcVar6 = local_1600[0];
-    iVar8 = strncmp(local_1600[0],"start_",6);
+    pcVar6 = local_1600;
+    iVar8 = strncmp(local_1600,"start_",6);
     if (iVar8 == 0) {
       uVar31 = uVar31 | 2;
       pcVar6 = pcVar6 + 6;
     }
     else {
       iVar8 = strncmp(pcVar6,"stop_",5);
       if (iVar8 == 0) {
         uVar31 = uVar31 | 1;
         pcVar6 = pcVar6 + 5;
       }
       else {
         iVar8 = strncmp(pcVar6,"restart_",8);
         if (iVar8 == 0) {
           pcVar6 = pcVar6 + 8;
           uVar31 = 3;
         }
         else {
           uVar31 = 0;
         }
       }
     }
     _Var9 = getpid();
-    psname(_Var9,&local_1020,0x10);
+    psname(_Var9,ppcVar19,0x10);
     uVar10 = uptime();
-    ppcVar16 = &local_1020;
-    cprintf("[%d %s:%s +%ld] running: %d %s\n",_Var9,&local_1020,"handle_notifications",uVar10,
-            uVar31,pcVar6);
+    ppcVar16 = ppcVar19;
+    cprintf("[%d %s:%s +%ld] running: %d %s\n",_Var9,ppcVar19,"handle_notifications",uVar10,uVar31,
+            pcVar6);
     iVar8 = strcmp(pcVar6,"reboot");
     if ((iVar8 == 0) || (iVar8 = strcmp(pcVar6,"rebootandrestore"), iVar8 == 0)) {
       iVar8 = wait_action_idle(10);
       if (iVar8 != 0) {
         set_action(8);
       }
       iVar33 = 1;
       DAT_0 = 1;
-      uVar22 = 0;
+      uVar23 = 0;
       uVar10 = 0;
       f_write_string("/tmp/reboot","1");
       uVar35 = nvram_set_int("wlready",0);
-      FUN_0003a864((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),uVar10,uVar22);
+      FUN_0003be70((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),uVar10,uVar23);
       iVar8 = strcmp(pcVar6,"rebootandrestore");
       if (iVar8 == 0) {
         for (; iVar33 < iVar34; iVar33 = iVar33 + 1) {
-          pcVar6 = local_1600[iVar33];
+          pcVar6 = (&local_1600)[iVar33];
           if (pcVar6 != (char *)0x0) {
-            FUN_00025c5c(pcVar6);
+            FUN_0002699c(pcVar6);
           }
         }
       }
     }
     else {
       pcVar7 = (char *)strcmp(pcVar6,"resetdefault_erase");
       if (pcVar7 == (char *)0x0) {
         local_1020 = DAT_1;
-        local_101c[0] = DAT_2;
-        local_101c[1] = DAT_3;
+        local_101c = DAT_2;
+        local_1018 = DAT_3;
         pcVar6 = pcVar7;
-        uVar35 = _eval(&local_1020,0);
-        FUN_0004a058((undefined *)uVar35,(int)((ulonglong)uVar35 >> 0x20),pcVar7,pcVar6);
+        uVar35 = _eval(ppcVar19,0);
+        FUN_0004c29c((undefined *)uVar35,(int)((ulonglong)uVar35 >> 0x20),pcVar7,pcVar6);
       }
       else {
         iVar8 = strcmp(pcVar6,"resetdefault");
         if (iVar8 == 0) {
-          FUN_0004a058((undefined *)0x0,extraout_r1,ppcVar16,pcVar7);
+          FUN_0004c29c((undefined *)0x0,extraout_r1,ppcVar16,pcVar7);
         }
         else {
           iVar8 = strcmp(pcVar6,"jitterentropy");
           if (iVar8 == 0) {
             if ((uVar31 & 1) == 0) {
               if ((uVar31 & 2) != 0) {
-                FUN_00049604(0,extraout_r1_00);
+                FUN_0004b848(0,extraout_r1_00);
               }
             }
             else {
-              FUN_00049640(0);
+              FUN_0004b884(0);
             }
           }
           else {
             iVar8 = strcmp(pcVar6,"all");
             if (iVar8 == 0) {
               nvram_set("sys_reboot_reason","rc_all");
               sleep(2);
-              FUN_00031d5c();
-              FUN_00031b44(6);
+              FUN_00032af4();
+              FUN_000328dc(6);
               kill(1,0xf);
             }
             else {
               iVar8 = strcmp(pcVar6,"upgrade_ate");
               if (iVar8 == 0) {
                 iVar34 = nvram_get_int("asus_stop_commit");
                 if (iVar34 == 0) {
                   nvram_set("asus_stop_commit","1");
                   wait_action_idle(10);
                 }
                 iVar34 = 1;
                 DAT_4 = 1;
                 f_write_string("/tmp/upgrade","1",0);
-                if (local_1600[1] != (char *)0x0) {
-                  iVar34 = atoi(local_1600[1]);
+                if (local_15fc != (char **)0x0) {
+                  iVar34 = atoi((char *)local_15fc);
                 }
-                pcVar6 = local_1600[2];
-                if (local_1600[2] != (char *)0x0) {
-                  pcVar6 = (char *)atoi(local_1600[2]);
+                pcVar6 = local_15f8;
+                if (local_15f8 != (char *)0x0) {
+                  pcVar6 = (char *)atoi(local_15f8);
                 }
-                pcVar7 = local_1600[3];
-                if (local_1600[3] != (char *)0x0) {
-                  pcVar7 = (char *)atoi(local_1600[3]);
+                pcVar7 = local_15f4;
+                if (local_15f4 != (char *)0x0) {
+                  pcVar7 = (char *)atoi(local_15f4);
                 }
                 pcVar12 = pcVar6;
                 cprintf("REBOOT = %d, RESET = %d, BOOTNEW = %d\n",iVar34,pcVar6,pcVar7);
-                bVar4 = FUN_000b329c();
+                bVar4 = FUN_000b916c();
                 if (!bVar4) {
                   uVar10 = ATE_UPGRADE_MODE_STR();
-                  bVar4 = FUN_0003dff4(uVar10,"1");
+                  bVar4 = FUN_0003f6e8(uVar10,"1");
                   if (!bVar4) {
                     cprintf("Only support under ATE test mode, Skip...\n");
                     nvram_set_int("ate_upgrade_state",0);
                     goto LAB_5;
                   }
                 }
                 if ((uVar31 & 1) != 0) {
                   pFVar11 = fopen("/tmp/ate_upgrade_state","w");
                   if (pFVar11 == (FILE *)0x0) {
                     cprintf("Fail to open /tmp/ate_upgrade_state\n");
                   }
                   else {
                     fputs("stop_upgarde_ate\n",pFVar11);
                     fclose(pFVar11);
                   }
                   iVar8 = nvram_get("sw_mode");
                   if (iVar8 == 0) {
-                    pcVar23 = (char *)nvram_default_get("sw_mode");
-                    iVar8 = atoi(pcVar23);
+                    pcVar24 = (char *)nvram_default_get("sw_mode");
+                    iVar8 = atoi(pcVar24);
                   }
                   else {
                     iVar8 = nvram_get_int();
                   }
                   if (iVar8 == 2) {
-                    FUN_0004a2b8();
+                    FUN_0004d47c();
                   }
-                  FUN_0004c04c();
-                  FUN_0004ce04();
-                  FUN_0004640c();
-                  FUN_00048b8c();
-                  FUN_00061b48();
-                  FUN_00072a84(-1);
-                  FUN_00075554();
-                  FUN_00075298();
-                  FUN_000c6434(1);
-                  FUN_00042868();
-                  FUN_000427fc();
-                  FUN_0004cd30();
-                  FUN_0004ca64();
-                  FUN_00049914();
-                  FUN_00049a8c();
+                  FUN_0004f1cc();
+                  FUN_0004ffb0();
+                  FUN_00048cdc();
+                  FUN_0004adb4();
+                  FUN_00064f24();
+                  FUN_00076068(-1);
+                  FUN_00078d08();
+                  FUN_0007895c();
+                  FUN_000cc4d4(1);
+                  FUN_000445f0();
+                  FUN_00044584();
+                  FUN_0004fedc();
+                  FUN_0004fbe4();
+                  FUN_0004bb58();
+                  FUN_0004bcd0();
                 }
                 cprintf(">> wait upgrading\n");
-                pcVar23 = "*";
+                pcVar24 = "*";
                 iVar8 = 0;
                 do {
                   cprintf("*");
                   sleep(1);
-                  bVar4 = FUN_0003dff4("upgrade_done","1");
+                  bVar4 = FUN_0003f6e8("upgrade_done","1");
                   if (bVar4) {
                     nvram_set("upgrade_done","0");
                     break;
                   }
                   iVar8 = iVar8 + 1;
                 } while (iVar8 != 0x78);
                 cprintf("<< wait upgrading %d secs\n",iVar8);
                 if ((pcVar7 != (char *)0x0) || (iVar8 = nvram_get_int("bootnew"), iVar8 == 1)) {
                   pcVar12 = (char *)nvram_get_int("bootnew");
                   cprintf("[ATE] BOOTNEW...(%d)(%d)\n",pcVar7);
                   iVar8 = setBootImageState(0x30);
                   if (iVar8 != 0) {
                     cprintf("%s: setBootImageState(BOOT_SET_NEW_IMAGE) failed..\n",
                             "handle_notifications");
                   }
                 }
                 if (pcVar6 != (char *)0x0) {
                   uVar35 = cprintf("[ATE] Reset Default...\n");
-                  FUN_000a3a38((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),pcVar12,pcVar23);
+                  FUN_000a9608((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),pcVar12,pcVar24);
                 }
                 if (iVar34 != 0) {
                   nvram_set("sys_reboot_reason","ate_upg_rbt");
                   cprintf("[ATE] REBOOT...\n");
                   kill(1,0xf);
                 }
               }
               else {
                 iVar8 = strcmp(pcVar6,"upgrade");
                 if (iVar8 == 0) {
-                  FUN_0004a02c();
+                  FUN_0004c270();
                   iVar34 = nvram_get_int("asus_stop_commit");
                   if (iVar34 == 0) {
                     nvram_set("asus_stop_commit","1");
                     wait_action_idle(10);
                   }
                   if ((uVar31 & 1) != 0) {
                     DAT_4 = 1;
                     f_write_string("/tmp/upgrade","1",0);
                     nvram_set_int("wlready",0);
                     iVar8 = nvram_get("sw_mode");
                     if (iVar8 == 0) {
                       pcVar6 = (char *)nvram_default_get("sw_mode");
                       iVar8 = atoi(pcVar6);
                     }
                     else {
                       iVar8 = nvram_get_int();
                     }
                     if (iVar8 == 2) {
-                      FUN_0004a2b8();
+                      FUN_0004d47c();
                     }
-                    FUN_0004c04c();
-                    bVar4 = FUN_0003dff4("webs_state_flag","1");
-                    if ((!bVar4) || (bVar4 = FUN_0003dff4("webs_state_upgrade","0"), !bVar4)) {
-                      FUN_00049704();
+                    FUN_0004f1cc();
+                    bVar4 = FUN_0003f6e8("webs_state_flag","1");
+                    if ((!bVar4) || (bVar4 = FUN_0003f6e8("webs_state_upgrade","0"), !bVar4)) {
+                      FUN_0004b948();
                     }
                     stop_dpi_engine_service(1);
-                    FUN_00061b48();
-                    FUN_00072a84(-1);
-                    FUN_00075554();
-                    uVar10 = FUN_0004ce04();
-                    FUN_00049640(uVar10);
+                    FUN_00064f24();
+                    FUN_00076068(-1);
+                    FUN_00078d08();
+                    uVar10 = FUN_0004ffb0();
+                    FUN_0004b884(uVar10);
                   }
                   if ((uVar31 & 2) != 0) {
-                    ppcVar16 = &local_1020;
+                    ppcVar16 = ppcVar19;
                     pcVar6 = "/tmp/linux.trx";
                     do {
                       pcVar7 = pcVar6;
                       ppcVar15 = ppcVar16;
                       pcVar6 = *(char **)(pcVar7 + 4);
                       *ppcVar15 = *(char **)pcVar7;
                       ppcVar15[1] = pcVar6;
                       ppcVar16 = ppcVar15 + 2;
                       pcVar6 = pcVar7 + 8;
                     } while (pcVar7 + 8 != "ux.trx");
                     uVar10 = 0x31;
                     uVar2 = *(undefined2 *)(pcVar7 + 0xc);
                     cVar1 = pcVar7[0xe];
                     ppcVar15[2] = (char *)0x742e7875;
                     *(undefined2 *)(ppcVar15 + 3) = uVar2;
                     *(char *)((int)ppcVar15 + 0xe) = cVar1;
                     memset((void *)((int)&local_1014 + 3),0,0x31);
-                    pbVar13 = FUN_0003dfd4();
-                    FUN_00023ee8(0x5a,extraout_r1_01,uVar10);
-                    iVar8 = f_exists(&local_1020);
+                    pbVar13 = FUN_0003f6c8();
+                    FUN_00024c84(0x5a,extraout_r1_01,uVar10);
+                    iVar8 = f_exists(ppcVar19);
                     if ((iVar8 == 0) && (sVar14 = strlen((char *)pbVar13), 5 < sVar14)) {
-                      puVar5 = FUN_0003dfd4();
-                      snprintf((char *)&local_1020,0x40,"/tmp/%s_%c.%c.%c.%c_%s.trx",puVar5,
+                      puVar5 = FUN_0003f6c8();
+                      snprintf((char *)ppcVar19,0x40,"/tmp/%s_%c.%c.%c.%c_%s.trx",puVar5,
                                (uint)*pbVar13,(uint)pbVar13[1],(uint)pbVar13[2],(uint)pbVar13[3],
                                pbVar13 + 5);
-                      cprintf("upgrade file : %s \n",&local_1020);
+                      cprintf("upgrade file : %s \n",ppcVar19);
                     }
-                    iVar8 = f_exists(&local_1020);
+                    iVar8 = f_exists(ppcVar19);
                     if (iVar8 == 0) {
                       nvram_set("sys_reboot_reason","rc_upg_fw");
                     }
                     else {
                       nvram_get_int("chk_time");
                       iVar8 = nvram_contains_word("rc_support","nandflash");
                       if (iVar8 == 0) {
-                        local_1220 = (char **)0x16588d;
-                        local_121c[0] = (char **)&DAT_6;
+                        local_1220[0] = (char **)0x16e262;
+                        local_1220[1] = (char **)&DAT_6;
                         local_1214 = &DAT_7;
                         local_1210 = "linux";
                         local_120c = 0;
-                        local_121c[1] = &local_1020;
+                        local_1220[2] = ppcVar19;
                       }
                       else {
-                        local_1220 = (char **)0x15beff;
-                        local_121c[1] = (char **)0x0;
-                        local_121c[0] = &local_1020;
+                        local_1220[0] = (char **)0x164063;
+                        local_1220[2] = (char **)0x0;
+                        local_1220[1] = ppcVar19;
                       }
-                      _eval(&local_1220,0,0);
-                      unlink((char *)&local_1020);
+                      _eval(local_1220,0,0);
+                      unlink((char *)ppcVar19);
                       nvram_set("sys_reboot_reason","rc_upg_noswitch");
                     }
                     cprintf("%s: go reboot.\n","handle_notifications");
                     kill(1,0xf);
                   }
                   if (iVar34 == 0) {
                     nvram_unset("asus_stop_commit");
                   }
                 }
                 else {
                   iVar8 = strcmp(pcVar6,"mfgmode");
                   if (iVar8 == 0) {
                     nvram_set("asus_mfg",&DAT_8);
-                    FUN_000bd0c0();
-                    FUN_0004d1c4();
+                    FUN_000c3160();
+                    FUN_00050394();
                   }
                   else {
                     iVar8 = strcmp(pcVar6,"wltest");
                     if (iVar8 == 0) {
                       nvram_set("asus_mfg",&DAT_9);
-                      FUN_000bd0c0();
-                      FUN_00049728();
-                      FUN_00049718();
-                      FUN_00042950();
-                      FUN_0004d1c4();
+                      FUN_000c3160();
+                      FUN_0004b96c();
+                      FUN_0004b95c();
+                      FUN_000446d8();
+                      FUN_00050394();
                     }
                     else {
                       iVar8 = strcmp(pcVar6,"ethtest");
                       if (iVar8 == 0) {
                         nvram_set("asus_mfg",&DAT_9);
-                        FUN_000bd0c0();
-                        FUN_00049728();
-                        FUN_00049718();
-                        FUN_00042950();
-                        FUN_0004d1c4();
+                        FUN_000c3160();
+                        FUN_0004b96c();
+                        FUN_0004b95c();
+                        FUN_000446d8();
+                        FUN_00050394();
                         modprobe_r("nf_nat_sip");
                         modprobe_r("nf_conntrack_sip");
                         modprobe_r("nf_nat_h323");
                         modprobe_r("nf_conntrack_h323");
                         modprobe_r("nf_nat_rtsp");
                         modprobe_r("nf_conntrack_rtsp");
                         modprobe_r("nf_nat_ftp");
                         modprobe_r("nf_conntrack_ftp");
                         modprobe_r("ip6table_mangle");
                         modprobe_r("ip6t_LOG");
                         modprobe_r("usblp");
                         modprobe_r("thfsplus");
                         modprobe_r("tntfs");
                         modprobe_r(&DAT_10);
                         modprobe_r(&DAT_11);
                         modprobe_r(&DAT_12);
                         modprobe_r("crc16");
                         modprobe_r(&DAT_13);
                         modprobe_r(&DAT_14);
                         modprobe_r("mbcache");
                         modprobe_r("cdc_mbim");
                         modprobe_r("qmi_wwan");
                         modprobe_r("cdc_wdm");
                         modprobe_r("cdc_ncm");
                         modprobe_r("rndis_host");
                         modprobe_r("cdc_ether");
                         modprobe_r(&DAT_15);
                         modprobe_r("cdc_acm");
                         modprobe_r("usbnet");
                         modprobe_r(&DAT_16);
                       }
                       else {
                         iVar8 = strcmp(pcVar6,"allnet");
                         if (iVar8 == 0) {
                           if ((uVar31 & 1) != 0) {
                             sleep(2);
-                            FUN_00042868();
-                            FUN_000427fc();
-                            FUN_00047d68();
-                            FUN_000477bc();
-                            FUN_000c6aa4();
-                            FUN_0003ef20();
-                            FUN_00048b8c();
-                            FUN_00048e98();
-                            FUN_0002ad80();
-                            FUN_0004bf8c();
-                            FUN_00047320();
-                            FUN_00042784();
-                            FUN_0004cdf4();
-                            FUN_0004be94();
-                            FUN_00046448();
-                            FUN_000425ec();
-                            FUN_00042658();
-                            FUN_00042550();
-                            FUN_00032f14();
-                            uVar35 = FUN_00042794();
-                            FUN_0003a864((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),ppcVar16,
+                            FUN_000445f0();
+                            FUN_00044584();
+                            FUN_0004a0dc();
+                            FUN_0004a090();
+                            FUN_000ccb44();
+                            FUN_000406f4();
+                            FUN_0004adb4();
+                            FUN_0004b0c0();
+                            FUN_0002bb10();
+                            FUN_0004f10c();
+                            FUN_00049bf0();
+                            FUN_0004450c();
+                            FUN_0004ffa0();
+                            FUN_0004f014();
+                            FUN_00048d18();
+                            FUN_00044324();
+                            FUN_000443e0();
+                            FUN_00044288();
+                            FUN_00033cb0();
+                            uVar35 = FUN_0004451c();
+                            FUN_0003be70((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),ppcVar16,
                                          pcVar7);
-                            FUN_0002c548();
-                            FUN_000298c0();
-                            FUN_0004cd30();
-                            pcVar6 = FUN_0003dfd4();
+                            FUN_0002d2d8();
+                            FUN_0002a650();
+                            FUN_0004fedc();
+                            pcVar6 = FUN_0003f6c8();
                             pcVar6 = strstr(pcVar6,"start_cfgsync");
                             if (pcVar6 == (char *)0x0) {
-                              FUN_0004ca64();
+                              FUN_0004fbe4();
                             }
                           }
                           if ((uVar31 & 2) != 0) {
-                            FUN_0002db20();
-                            FUN_00042c98();
-                            uVar10 = FUN_000297f0();
-                            FUN_0003bd2c(uVar10,extraout_r1_02,ppcVar16,pcVar7);
+                            FUN_0002e8b4();
+                            FUN_00044a20();
+                            uVar10 = FUN_0002a580();
+                            FUN_0003d41c(uVar10,extraout_r1_02,ppcVar16,pcVar7);
                             iVar34 = nvram_get("sw_mode");
                             if (iVar34 == 0) {
                               pcVar6 = (char *)nvram_default_get("sw_mode");
                               iVar34 = atoi(pcVar6);
                               uVar35 = CONCAT44(extraout_r1_07,iVar34);
                             }
                             else {
                               uVar35 = nvram_get_int();
                             }
                             uVar32 = (uint)((int)uVar35 == 1);
                             uVar35 = CONCAT44((int)((ulonglong)uVar35 >> 0x20),uVar32);
                             if (uVar32 != 0) {
-                              uVar35 = FUN_00046498();
+                              uVar35 = FUN_00048d68();
                             }
-                            FUN_000427a4((undefined *)uVar35,(int)((ulonglong)uVar35 >> 0x20));
-                            FUN_00032f5c();
-                            uVar10 = FUN_0004d360();
-                            uVar10 = FUN_00042668(uVar10);
-                            FUN_000425fc(uVar10);
-                            uVar35 = FUN_000472d0();
-                            uVar10 = FUN_0004bea4((undefined *)uVar35,
+                            FUN_0004452c((undefined *)uVar35,(int)((ulonglong)uVar35 >> 0x20));
+                            FUN_00033cf8();
+                            uVar10 = FUN_0005055c();
+                            uVar10 = FUN_000443f0(uVar10);
+                            FUN_00044334(uVar10);
+                            uVar35 = FUN_00049ba0();
+                            uVar10 = FUN_0004f024((undefined *)uVar35,
                                                   (int)((ulonglong)uVar35 >> 0x20),ppcVar16);
-                            uVar35 = FUN_0004cd98(uVar10,extraout_r1_03);
-                            uVar35 = FUN_00042728((int)uVar35,(int)((ulonglong)uVar35 >> 0x20));
-                            uVar10 = FUN_00047380((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),
+                            uVar35 = FUN_0004ff44(uVar10,extraout_r1_03);
+                            uVar35 = FUN_000444b0((int)uVar35,(int)((ulonglong)uVar35 >> 0x20));
+                            uVar10 = FUN_00049c50((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),
                                                   (undefined *)ppcVar16,pcVar7);
-                            FUN_0004bef8(uVar10,extraout_r1_04,ppcVar16,pcVar7);
-                            uVar35 = FUN_0002ad90();
-                            FUN_00048e1c((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),ppcVar16,
+                            FUN_0004f078(uVar10,extraout_r1_04,ppcVar16,pcVar7);
+                            uVar35 = FUN_0002bb20();
+                            FUN_0004b044((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),ppcVar16,
                                          pcVar7);
-                            FUN_00031b44(0);
-                            FUN_00048260();
-                            FUN_00047808();
-                            FUN_000477b4();
-                            uVar10 = FUN_000c6528();
-                            FUN_00042894(uVar10);
-                            FUN_0004280c(0);
-                            FUN_0002af4c();
-                            FUN_00031918();
-                            pcVar6 = FUN_0003dfd4();
+                            FUN_000328dc(0);
+                            FUN_0004a4b8();
+                            FUN_0004cc68();
+                            FUN_0004a088();
+                            uVar10 = FUN_000cc5c8();
+                            FUN_0004461c(uVar10);
+                            FUN_00044594(0);
+                            FUN_0002bcdc();
+                            FUN_000326b0();
+                            pcVar6 = FUN_0003f6c8();
                             pcVar6 = strstr(pcVar6,"start_cfgsync");
                             uVar10 = extraout_r1_05;
                             if (pcVar6 == (char *)0x0) {
-                              pcVar6 = (char *)FUN_0004cac4();
+                              pcVar6 = (char *)FUN_0004fc44();
                               uVar10 = extraout_r1_06;
                             }
-                            uVar35 = FUN_0004cd5c(pcVar6,uVar10);
-                            FUN_000f4a34((int)uVar35,(int)((ulonglong)uVar35 >> 0x20));
-                            FUN_0003252c();
+                            uVar35 = FUN_0004ff08(pcVar6,uVar10);
+                            FUN_000fc448((int)uVar35,(int)((ulonglong)uVar35 >> 0x20));
+                            FUN_000332c4();
                           }
                         }
                         else {
                           iVar8 = strcmp(pcVar6,"net");
                           if (iVar8 == 0) {
                             if ((uVar31 & 1) != 0) {
                               sleep(2);
-                              FUN_00042868();
-                              FUN_000427fc();
-                              FUN_00047d68();
-                              FUN_000477bc();
-                              FUN_000c6aa4();
-                              FUN_0003ef20();
-                              FUN_00048b8c();
-                              FUN_00048e98();
-                              FUN_0002ad80();
-                              FUN_0004bf8c();
-                              FUN_00047320();
-                              FUN_00042784();
-                              FUN_0004cdf4();
-                              FUN_0004be94();
-                              FUN_00046448();
-                              FUN_000425ec();
-                              FUN_00042658();
-                              FUN_00042550();
-                              FUN_00032f14();
-                              FUN_00042794();
-                              FUN_0004cd30();
-                              pcVar6 = FUN_0003dfd4();
+                              FUN_000445f0();
+                              FUN_00044584();
+                              FUN_0004a0dc();
+                              FUN_0004a090();
+                              FUN_000ccb44();
+                              FUN_000406f4();
+                              FUN_0004adb4();
+                              FUN_0004b0c0();
+                              FUN_0002bb10();
+                              FUN_0004f10c();
+                              FUN_00049bf0();
+                              FUN_0004450c();
+                              FUN_0004ffa0();
+                              FUN_0004f014();
+                              FUN_00048d18();
+                              FUN_00044324();
+                              FUN_000443e0();
+                              FUN_00044288();
+                              FUN_00033cb0();
+                              FUN_0004451c();
+                              FUN_0004fedc();
+                              pcVar6 = FUN_0003f6c8();
                               pcVar6 = strstr(pcVar6,"start_cfgsync");
                               uVar35 = CONCAT44(extraout_r1_08,pcVar6);
                               if (pcVar6 == (char *)0x0) {
-                                uVar35 = FUN_0004ca64();
+                                uVar35 = FUN_0004fbe4();
                               }
-                              FUN_0003a864((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),ppcVar16,
+                              FUN_0003be70((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),ppcVar16,
                                            pcVar7);
-                              FUN_0002c548();
+                              FUN_0002d2d8();
                             }
                             if ((uVar31 & 2) != 0) {
-                              FUN_0002db20();
-                              uVar35 = FUN_00042c98();
-                              FUN_0003bd2c((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),ppcVar16,
+                              FUN_0002e8b4();
+                              update_srv_cert_if_lan_ip_changed();
+                              uVar35 = FUN_00044a20();
+                              FUN_0003d41c((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),ppcVar16,
                                            pcVar7);
                               iVar34 = nvram_get("sw_mode");
                               if (iVar34 == 0) {
                                 pcVar6 = (char *)nvram_default_get("sw_mode");
                                 iVar34 = atoi(pcVar6);
                                 uVar35 = CONCAT44(extraout_r1_13,iVar34);
                               }
                               else {
                                 uVar35 = nvram_get_int();
                               }
                               uVar32 = (uint)((int)uVar35 == 1);
                               uVar35 = CONCAT44((int)((ulonglong)uVar35 >> 0x20),uVar32);
                               if (uVar32 != 0) {
-                                uVar35 = FUN_00046498();
+                                uVar35 = FUN_00048d68();
                               }
-                              FUN_000427a4((undefined *)uVar35,(int)((ulonglong)uVar35 >> 0x20));
-                              FUN_00032f5c();
-                              uVar10 = FUN_0004d360();
-                              uVar10 = FUN_00042668(uVar10);
-                              FUN_000425fc(uVar10);
-                              uVar35 = FUN_000472d0();
-                              uVar10 = FUN_0004bea4((undefined *)uVar35,
+                              FUN_0004452c((undefined *)uVar35,(int)((ulonglong)uVar35 >> 0x20));
+                              FUN_00033cf8();
+                              uVar10 = FUN_0005055c();
+                              uVar10 = FUN_000443f0(uVar10);
+                              FUN_00044334(uVar10);
+                              uVar35 = FUN_00049ba0();
+                              uVar10 = FUN_0004f024((undefined *)uVar35,
                                                     (int)((ulonglong)uVar35 >> 0x20),ppcVar16);
-                              uVar35 = FUN_0004cd98(uVar10,extraout_r1_09);
-                              uVar35 = FUN_00042728((int)uVar35,(int)((ulonglong)uVar35 >> 0x20));
-                              uVar10 = FUN_00047380((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),
+                              uVar35 = FUN_0004ff44(uVar10,extraout_r1_09);
+                              uVar35 = FUN_000444b0((int)uVar35,(int)((ulonglong)uVar35 >> 0x20));
+                              uVar10 = FUN_00049c50((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),
                                                     (undefined *)ppcVar16,pcVar7);
-                              FUN_0004bef8(uVar10,extraout_r1_10,ppcVar16,pcVar7);
-                              uVar35 = FUN_0002ad90();
-                              FUN_00048e1c((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),ppcVar16,
+                              FUN_0004f078(uVar10,extraout_r1_10,ppcVar16,pcVar7);
+                              uVar35 = FUN_0002bb20();
+                              FUN_0004b044((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),ppcVar16,
                                            pcVar7);
-                              FUN_00031b44(0);
-                              FUN_00048260();
-                              FUN_00047808();
-                              FUN_000477b4();
-                              uVar10 = FUN_000c6528();
-                              FUN_00042894(uVar10);
-                              FUN_0004280c(0);
-                              FUN_0002af4c();
-                              FUN_00031918();
-                              pcVar6 = FUN_0003dfd4();
+                              FUN_000328dc(0);
+                              FUN_0004a4b8();
+                              FUN_0004cc68();
+                              FUN_0004a088();
+                              uVar10 = FUN_000cc5c8();
+                              FUN_0004461c(uVar10);
+                              FUN_00044594(0);
+                              FUN_0002bcdc();
+                              FUN_000326b0();
+                              pcVar6 = FUN_0003f6c8();
                               pcVar6 = strstr(pcVar6,"start_cfgsync");
                               uVar10 = extraout_r1_11;
                               if (pcVar6 == (char *)0x0) {
-                                pcVar6 = (char *)FUN_0004cac4();
+                                pcVar6 = (char *)FUN_0004fc44();
                                 uVar10 = extraout_r1_12;
                               }
-                              uVar35 = FUN_0004cd5c(pcVar6,uVar10);
-                              FUN_000f4a34((int)uVar35,(int)((ulonglong)uVar35 >> 0x20));
-                              FUN_0003252c();
+                              uVar35 = FUN_0004ff08(pcVar6,uVar10);
+                              FUN_000fc448((int)uVar35,(int)((ulonglong)uVar35 >> 0x20));
+                              FUN_000332c4();
                             }
                           }
                           else {
                             iVar8 = strcmp(pcVar6,"net_and_phy");
                             if (iVar8 == 0) {
 LAB_17:
                               if ((uVar31 & 1) != 0) {
                                 sleep(2);
-                                FUN_00042868();
-                                FUN_000427fc();
-                                FUN_00047d68();
-                                FUN_000477bc();
-                                FUN_000c6aa4();
-                                FUN_0003ef20();
-                                FUN_00048b8c();
-                                FUN_00048e98();
-                                FUN_0002ad80();
-                                FUN_0004bf8c();
-                                FUN_00047320();
-                                FUN_00042784();
-                                FUN_0004cdf4();
-                                FUN_0004be94();
-                                FUN_00046448();
-                                FUN_000425ec();
-                                FUN_00042658();
-                                FUN_00042550();
-                                FUN_00032f14();
-                                FUN_00042794();
-                                FUN_0004cd30();
-                                pcVar6 = FUN_0003dfd4();
+                                FUN_000445f0();
+                                FUN_00044584();
+                                FUN_0004a0dc();
+                                FUN_0004a090();
+                                FUN_000ccb44();
+                                FUN_000406f4();
+                                FUN_0004adb4();
+                                FUN_0004b0c0();
+                                FUN_0002bb10();
+                                FUN_0004f10c();
+                                FUN_00049bf0();
+                                FUN_0004450c();
+                                FUN_0004ffa0();
+                                FUN_0004f014();
+                                FUN_00048d18();
+                                FUN_00044324();
+                                FUN_000443e0();
+                                FUN_00044288();
+                                FUN_00033cb0();
+                                FUN_0004451c();
+                                FUN_0004fedc();
+                                pcVar6 = FUN_0003f6c8();
                                 pcVar6 = strstr(pcVar6,"start_cfgsync");
                                 if (pcVar6 == (char *)0x0) {
-                                  FUN_0004ca64();
+                                  FUN_0004fbe4();
                                 }
-                                uVar35 = FUN_000f4a20();
-                                FUN_0003a864((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),ppcVar16,
+                                uVar35 = FUN_000fc434();
+                                FUN_0003be70((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),ppcVar16,
                                              pcVar7);
-                                FUN_0002c548();
-                                FUN_00031d5c();
+                                FUN_0002d2d8();
+                                FUN_00032af4();
                               }
                               if ((uVar31 & 2) != 0) {
-                                FUN_0002db20();
-                                uVar35 = FUN_00042c98();
-                                FUN_0003bd2c((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),ppcVar16,
+                                FUN_0002e8b4();
+                                update_srv_cert_if_lan_ip_changed();
+                                uVar35 = FUN_00044a20();
+                                FUN_0003d41c((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),ppcVar16,
                                              pcVar7);
                                 iVar34 = nvram_get("sw_mode");
                                 if (iVar34 == 0) {
                                   pcVar6 = (char *)nvram_default_get("sw_mode");
                                   iVar34 = atoi(pcVar6);
                                   uVar35 = CONCAT44(extraout_r1_18,iVar34);
                                 }
                                 else {
                                   uVar35 = nvram_get_int();
                                 }
                                 uVar32 = (uint)((int)uVar35 == 1);
                                 uVar35 = CONCAT44((int)((ulonglong)uVar35 >> 0x20),uVar32);
                                 if (uVar32 != 0) {
-                                  uVar35 = FUN_00046498();
+                                  uVar35 = FUN_00048d68();
                                 }
-                                FUN_000427a4((undefined *)uVar35,(int)((ulonglong)uVar35 >> 0x20));
-                                FUN_00032f5c();
-                                uVar10 = FUN_0004d360();
-                                uVar10 = FUN_00042668(uVar10);
-                                FUN_000425fc(uVar10);
-                                uVar35 = FUN_000472d0();
-                                uVar10 = FUN_0004bea4((undefined *)uVar35,
+                                FUN_0004452c((undefined *)uVar35,(int)((ulonglong)uVar35 >> 0x20));
+                                FUN_00033cf8();
+                                uVar10 = FUN_0005055c();
+                                uVar10 = FUN_000443f0(uVar10);
+                                FUN_00044334(uVar10);
+                                uVar35 = FUN_00049ba0();
+                                uVar10 = FUN_0004f024((undefined *)uVar35,
                                                       (int)((ulonglong)uVar35 >> 0x20),ppcVar16);
-                                uVar35 = FUN_0004cd98(uVar10,extraout_r1_14);
-                                uVar35 = FUN_00042728((int)uVar35,(int)((ulonglong)uVar35 >> 0x20));
-                                uVar10 = FUN_00047380((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),
+                                uVar35 = FUN_0004ff44(uVar10,extraout_r1_14);
+                                uVar35 = FUN_000444b0((int)uVar35,(int)((ulonglong)uVar35 >> 0x20));
+                                uVar10 = FUN_00049c50((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),
                                                       (undefined *)ppcVar16,pcVar7);
-                                FUN_0004bef8(uVar10,extraout_r1_15,ppcVar16,pcVar7);
-                                uVar35 = FUN_0002ad90();
-                                FUN_00048e1c((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),ppcVar16,
+                                FUN_0004f078(uVar10,extraout_r1_15,ppcVar16,pcVar7);
+                                uVar35 = FUN_0002bb20();
+                                FUN_0004b044((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),ppcVar16,
                                              pcVar7);
-                                FUN_00031b44(6);
-                                FUN_00048260();
-                                FUN_00047808();
-                                FUN_000477b4();
-                                uVar10 = FUN_000c6528();
-                                FUN_00042894(uVar10);
-                                FUN_0004280c(0);
-                                FUN_0002af4c();
-                                FUN_00031918();
-                                pcVar6 = FUN_0003dfd4();
+                                FUN_000328dc(6);
+                                FUN_0004a4b8();
+                                FUN_0004cc68();
+                                FUN_0004a088();
+                                uVar10 = FUN_000cc5c8();
+                                FUN_0004461c(uVar10);
+                                FUN_00044594(0);
+                                FUN_0002bcdc();
+                                FUN_000326b0();
+                                pcVar6 = FUN_0003f6c8();
                                 pcVar6 = strstr(pcVar6,"start_cfgsync");
                                 uVar10 = extraout_r1_16;
                                 if (pcVar6 == (char *)0x0) {
-                                  pcVar6 = (char *)FUN_0004cac4();
+                                  pcVar6 = (char *)FUN_0004fc44();
                                   uVar10 = extraout_r1_17;
                                 }
-                                uVar35 = FUN_0004cd5c(pcVar6,uVar10);
-                                FUN_000f4a34((int)uVar35,(int)((ulonglong)uVar35 >> 0x20));
-                                FUN_0003252c();
+                                uVar35 = FUN_0004ff08(pcVar6,uVar10);
+                                FUN_000fc448((int)uVar35,(int)((ulonglong)uVar35 >> 0x20));
+                                FUN_000332c4();
                               }
                             }
                             else {
                               iVar8 = strcmp(pcVar6,"subnet");
                               if (iVar8 == 0) {
-                                ppcVar15 = (char **)FUN_0003dfd4();
-                                pcVar6 = FUN_0003dfd4();
-                                bVar4 = FUN_0003dff4("wans_mode","lb");
+                                ppcVar15 = (char **)FUN_0003f6c8();
+                                pcVar6 = FUN_0003f6c8();
+                                bVar4 = FUN_0003f6e8("wans_mode","lb");
                                 if (bVar4) {
                                   iVar34 = 0;
                                   while( true ) {
-                                    bVar4 = FUN_0003e17c();
+                                    bVar4 = FUN_0003f870();
                                     pcVar7 = pcVar6;
                                     ppcVar16 = ppcVar15;
                                     if (!bVar4) {
-                                      snprintf((char *)&local_1220,0xf,"wan%d_",iVar34);
-                                      FUN_0003e15c((char *)&local_1220,"ipaddr",(char *)&local_1020)
-                                      ;
-                                      ppcVar16 = (char **)FUN_0003dfd4();
-                                      FUN_0003e15c((char *)&local_1220,"netmask",(char *)&local_1020
-                                                  );
-                                      pcVar7 = FUN_0003dfd4();
+                                      snprintf((char *)local_1220,0xf,"wan%d_",iVar34);
+                                      FUN_0003f850((char *)local_1220,"ipaddr",(char *)ppcVar19);
+                                      ppcVar16 = (char **)FUN_0003f6c8();
+                                      FUN_0003f850((char *)local_1220,"netmask",(char *)ppcVar19);
+                                      pcVar7 = FUN_0003f6c8();
                                     }
                                     iVar8 = inet_deconflict(ppcVar15,pcVar6);
                                     if (iVar8 != 0) {
                                       ppcVar15 = (char **)inet_ntoa(local_1420);
                                     }
                                     if (iVar34 == 1) break;
                                     iVar34 = 1;
                                   }
-                                  pcVar12 = FUN_0003dfd4();
+                                  pcVar12 = FUN_0003f6c8();
                                   iVar34 = strcmp((char *)ppcVar15,pcVar12);
                                 }
                                 else {
                                   iVar34 = get_primaryif_dualwan_unit();
                                   if (iVar34 < 0) goto LAB_5;
-                                  bVar4 = FUN_0003e17c();
+                                  bVar4 = FUN_0003f870();
                                   pcVar7 = pcVar6;
                                   ppcVar16 = ppcVar15;
                                   if (!bVar4) {
-                                    snprintf((char *)&local_1220,0xf,"wan%d_",iVar34);
-                                    FUN_0003e15c((char *)&local_1220,"ipaddr",(char *)&local_1020);
-                                    ppcVar16 = (char **)FUN_0003dfd4();
-                                    FUN_0003e15c((char *)&local_1220,"netmask",(char *)&local_1020);
-                                    pcVar7 = FUN_0003dfd4();
+                                    snprintf((char *)local_1220,0xf,"wan%d_",iVar34);
+                                    FUN_0003f850((char *)local_1220,"ipaddr",(char *)ppcVar19);
+                                    ppcVar16 = (char **)FUN_0003f6c8();
+                                    FUN_0003f850((char *)local_1220,"netmask",(char *)ppcVar19);
+                                    pcVar7 = FUN_0003f6c8();
                                   }
                                   iVar34 = inet_deconflict(ppcVar15,pcVar6);
                                 }
                                 if (iVar34 != 0) {
                                   pcVar12 = inet_ntoa(local_1420);
                                   nvram_set("lan_ipaddr",pcVar12);
                                   pcVar12 = inet_ntoa(local_1420);
                                   nvram_set("lan_ipaddr_rt",pcVar12);
                                   uVar32 = local_1420.s_addr << 0x18 |
                                            (local_1420.s_addr >> 8 & 0xff) << 0x10 |
                                            (local_1420.s_addr >> 0x10 & 0xff) << 8 |
                                            local_1420.s_addr >> 0x18;
                                   uVar31 = uVar32 + 1;
                                   local_1420.s_addr =
                                        uVar31 * 0x1000000 | (uVar31 >> 8 & 0xff) << 0x10 |
                                        (uVar31 >> 0x10 & 0xff) << 8 | uVar31 >> 0x18;
                                   pcVar12 = inet_ntoa(local_1420);
                                   nvram_set("dhcp_start",pcVar12);
                                   iVar17 = inet_network(pcVar6);
                                   uVar32 = ~iVar17 | uVar32;
                                   uVar31 = 3;
                                   local_1420.s_addr =
                                        (uVar32 & 0xfe) << 0x18 | (uVar32 >> 8 & 0xff) << 0x10 |
                                        (uVar32 >> 0x10 & 0xff) << 8 | uVar32 >> 0x18;
                                   pcVar6 = inet_ntoa(local_1420);
                                   nvram_set("dhcp_end",pcVar6);
                                   nvram_commit();
                                   nvram_set("freeze_duck",&DAT_18);
                                   goto LAB_17;
                                 }
                               }
                               else {
                                 iVar8 = strcmp(pcVar6,"multipath");
                                 if (iVar8 == 0) {
                                   iVar34 = wan_primary_ifunit();
-                                  uVar24 = iVar34 + 1;
-                                  uVar25 = uVar24 & 1;
-                                  uVar32 = uVar25;
-                                  if ((int)uVar24 < 0) {
-                                    uVar32 = -uVar25;
+                                  uVar25 = iVar34 + 1;
+                                  uVar26 = uVar25 & 1;
+                                  uVar32 = uVar26;
+                                  if ((int)uVar25 < 0) {
+                                    uVar32 = -uVar26;
                                   }
                                   iVar8 = is_wan_connect();
                                   iVar33 = is_wan_connect(uVar32);
-                                  puVar5 = FUN_0003dfd4();
+                                  puVar5 = FUN_0003f6c8();
                                   snprintf((char *)&local_1420,4,"%s",puVar5);
                                   uVar10 = get_wan_ifname(iVar34);
-                                  snprintf((char *)&local_1220,0x10,"%s",uVar10);
+                                  snprintf((char *)local_1220,0x10,"%s",uVar10);
                                   uVar10 = get_wan_ifname(uVar32);
                                   snprintf((char *)&local_1020,0x10,"%s",uVar10);
                                   cprintf("multipath(%s): unit_now: (%d, %d, %s), unit_next: (%d, %d, %s).\n"
-                                          ,&local_1420,iVar34,iVar8,&local_1220,uVar32,iVar33,
+                                          ,&local_1420,iVar34,iVar8,local_1220,uVar32,iVar33,
                                           &local_1020);
                                   iVar18 = strcmp((char *)&local_1420,"lb");
                                   if (iVar18 == 0) {
                                     if (iVar8 != 1 || iVar33 != 1) {
                                       if (iVar33 != 0 || iVar8 != 1) {
                                         if (iVar8 == 0 && iVar33 == 1) {
-                                          FUN_000394a0(&local_1020);
-                                          FUN_00038078(iVar34);
-                                          FUN_0003acc0(iVar34);
+                                          FUN_0003aac8(&local_1020);
+                                          FUN_00039be8(iVar34);
+                                          FUN_0003c2cc(iVar34);
                                         }
                                         else {
-                                          FUN_00038078(0);
-                                          FUN_0003acc0(0);
-                                          FUN_00038078(1);
-                                          FUN_0003acc0(1);
+                                          FUN_00039be8(0);
+                                          FUN_0003c2cc(0);
+                                          FUN_00039be8(1);
+                                          FUN_0003c2cc(1);
                                         }
                                       }
                                       else {
-                                        FUN_00038078(uVar32);
-                                        FUN_0003acc0(uVar32);
+                                        FUN_00039be8(uVar32);
+                                        FUN_0003c2cc(uVar32);
                                       }
                                     }
                                     else {
 LAB_19:
-                                      FUN_000394a0(&local_1220);
+                                      FUN_0003aac8(local_1220);
                                     }
                                   }
                                   else {
                                     iVar18 = strcmp((char *)&local_1420,"fb");
                                     if (iVar18 == 0) {
                                       if (iVar8 != 1 || iVar33 != 1) {
                                         if (iVar33 != 0 || iVar8 != 1) {
                                           if (iVar8 != 0 || iVar33 != 1) {
-                                            if (uVar25 == 0) {
+                                            if (uVar26 == 0) {
                                               set_wan_primary_ifunit(uVar32);
-                                              FUN_00038078(uVar32);
-                                              FUN_0003acc0(uVar32);
+                                              FUN_00039be8(uVar32);
+                                              FUN_0003c2cc(uVar32);
                                             }
                                             else {
-                                              FUN_00038078(iVar34);
-                                              FUN_0003acc0(iVar34);
+                                              FUN_00039be8(iVar34);
+                                              FUN_0003c2cc(iVar34);
                                             }
                                           }
                                           else {
                                             set_wan_primary_ifunit(uVar32);
-                                            FUN_000394a0(&local_1020);
+                                            FUN_0003aac8(&local_1020);
                                             if (iVar34 == 0) {
-                                              FUN_00038078(0);
-                                              FUN_0003acc0(0);
+                                              FUN_00039be8(0);
+                                              FUN_0003c2cc(0);
                                             }
                                           }
                                         }
                                         else {
-                                          FUN_000394a0(&local_1220);
-                                          if ((uVar24 & 1) == 0) {
-                                            FUN_00038078(uVar32);
-                                            FUN_0003acc0(uVar32);
+                                          FUN_0003aac8(local_1220);
+                                          if ((uVar25 & 1) == 0) {
+                                            FUN_00039be8(uVar32);
+                                            FUN_0003c2cc(uVar32);
                                           }
                                         }
                                       }
-                                      else if (uVar25 == 0) {
+                                      else if (uVar26 == 0) {
                                         set_wan_primary_ifunit(uVar32);
-                                        FUN_000394a0(&local_1020);
-                                        FUN_00038078(iVar34);
+                                        FUN_0003aac8(&local_1020);
+                                        FUN_00039be8(iVar34);
                                       }
                                       else {
-                                        FUN_000394a0(&local_1220);
-                                        FUN_00038078(uVar32);
+                                        FUN_0003aac8(local_1220);
+                                        FUN_00039be8(uVar32);
                                       }
                                     }
                                     else {
                                       iVar18 = strcmp((char *)&local_1420,"fo");
                                       if (iVar18 == 0) {
                                         if (iVar8 != 1 || iVar33 != 1) {
                                           if (iVar33 == 0 && iVar8 == 1) goto LAB_19;
                                           if (iVar8 != 0 || iVar33 != 1) {
-                                            FUN_00038078(iVar34);
-                                            FUN_0003acc0(iVar34);
+                                            FUN_00039be8(iVar34);
+                                            FUN_0003c2cc(iVar34);
                                           }
                                           else {
                                             set_wan_primary_ifunit(uVar32);
-                                            FUN_000394a0(&local_1020);
+                                            FUN_0003aac8(&local_1020);
                                           }
                                         }
                                         else {
-                                          FUN_000394a0(&local_1220);
-                                          FUN_00038078(uVar32);
+                                          FUN_0003aac8(local_1220);
+                                          FUN_00039be8(uVar32);
                                         }
                                       }
                                     }
                                   }
                                 }
                                 else {
                                   iVar8 = strcmp(pcVar6,"wireless");
                                   if (iVar8 == 0) {
                                     uVar35 = nvram_set("restart_wifi","1");
                                     if ((uVar31 & 1) != 0) {
-                                      FUN_0004a2b8();
+                                      FUN_0004d47c();
                                       kill_pidfile_s("/var/run/wanduck.pid",10);
-                                      uVar35 = FUN_000427fc();
+                                      uVar35 = FUN_00044584();
                                     }
                                     if (uVar31 == 3) {
-                                      FUN_000326e4((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),
+                                      FUN_0003347c((int)uVar35,(int)((ulonglong)uVar35 >> 0x20),
                                                    (undefined *)ppcVar16,pcVar7);
 LAB_20:
-                                      FUN_0004280c(0);
-                                      uVar35 = FUN_0004c7e8();
-                                      FUN_0004a1f8((int)uVar35,(int)((ulonglong)uVar35 >> 0x20));
+                                      FUN_00044594(0);
+                                      uVar35 = FUN_0004f968();
+                                      FUN_0004d3bc((int)uVar35,(int)((ulonglong)uVar35 >> 0x20));
                                     }
                                     else if ((uVar31 & 2) != 0) goto LAB_20;
                                     nvram_set("restart_wifi","0");
                                   }
                                   else {
                                     iVar8 = strcmp(pcVar6,"clkfreq");
                                     if (iVar8 == 0) {
-                                      puVar5 = FUN_0003dfd4();
-                                      dbg("%s(0x%04x): clkfreq: %s\n","handle_notifications",0x381e,
+                                      puVar5 = FUN_0003f6c8();
+                                      dbg("%s(0x%04x): clkfreq: %s\n","handle_notifications",0x39d1,
                                           puVar5);
-                                      pcVar6 = FUN_0003dfd4();
+                                      pcVar6 = FUN_0003f6c8();
                                       pcVar7 = strchr(pcVar6,0x2c);
                                       if (pcVar7 == (char *)0x0) {
                                         iVar8 = atoi(pcVar6);
                                         iVar34 = 0;
                                       }
                                       else {
-                                        local_1220 = &local_1020;
-                                        strncpy((char *)&local_1020,pcVar6,100);
-                                        pcVar6 = strsep((char **)&local_1220,",");
+                                        local_1220[0] = ppcVar19;
+                                        strncpy((char *)ppcVar19,pcVar6,100);
+                                        pcVar6 = strsep((char **)local_1220,",");
                                         iVar8 = atoi(pcVar6);
-                                        iVar34 = atoi((char *)local_1220);
+                                        iVar34 = atoi((char *)local_1220[0]);
                                       }
                                       if (((((iVar8 != 600) && (iVar8 != 800)) && (iVar8 != 1000))
                                           && ((iVar8 != 0x4b0 && (iVar8 != 0x578)))) &&
                                          (iVar8 != 0x640)) {
                                         iVar8 = 800;
                                       }
                                       iVar33 = 0;
-                                      piVar26 = &DAT_21;
+                                      piVar27 = &DAT_21;
                                       do {
-                                        if (*piVar26 == iVar34) goto LAB_22;
+                                        if (*piVar27 == iVar34) goto LAB_22;
                                         iVar33 = iVar33 + 1;
-                                        piVar26 = piVar26 + 1;
+                                        piVar27 = piVar27 + 1;
                                       } while (iVar33 != 7);
                                       iVar34 = 0x215;
 LAB_22:
                                       dbg("%s(0x%04x): target CPU clock: %d\n",
-                                          "handle_notifications",0x383f,iVar8);
+                                          "handle_notifications",0x39f2,iVar8);
                                       if (iVar34 != 0) {
                                         dbg("%s(0x%04x): target DDR clock: %d\n",
-                                            "handle_notifications",0x3840,iVar34);
+                                            "handle_notifications",0x39f3,iVar34);
                                       }
                                       nvram_unset("sdram_ncdl");
                                       nvram_commit();
                                     }
                                     else {
                                       iVar8 = strcmp(pcVar6,"set_wltxpower");
                                       if (iVar8 == 0) {
                                         iVar34 = nvram_contains_word("rc_support","pwrctrl");
                                         if (iVar34 == 0) {
                                           dbg("%s(0x%04x): \n\tDon\'t do this!\n\n",
-                                              "handle_notifications",0x3849);
+                                              "handle_notifications",0x39fc);
                                         }
                                         else {
-                                          FUN_0010dd80();
+                                          FUN_00114688();
                                         }
                                       }
                                       else {
                                         iVar8 = strcmp(pcVar6,"wan");
                                         if (iVar8 == 0) {
                                           lVar36 = (ulonglong)extraout_r1_19 << 0x20;
                                           if ((uVar31 & 1) != 0) {
-                                            uVar35 = FUN_00048b8c();
-                                            lVar36 = FUN_0003a864((int)uVar35,
+                                            uVar35 = FUN_0004adb4();
+                                            lVar36 = FUN_0003be70((int)uVar35,
                                                                   (int)((ulonglong)uVar35 >> 0x20),
                                                                   ppcVar16,pcVar7);
                                           }
                                           if ((uVar31 & 2) != 0) {
-                                            FUN_0003bd2c((int)lVar36,
+                                            FUN_0003d41c((int)lVar36,
                                                          (int)((ulonglong)lVar36 >> 0x20),ppcVar16,
                                                          pcVar7);
                                             iVar34 = nvram_get("sw_mode");
                                             if (iVar34 == 0) {
                                               pcVar6 = (char *)nvram_default_get("sw_mode");
                                               iVar34 = atoi(pcVar6);
                                             }
                                             else {
                                               iVar34 = nvram_get_int();
                                             }
                                             if (iVar34 == 1) {
-                                              FUN_00046498();
+                                              FUN_00048d68();
                                             }
-                                            FUN_00048260();
+                                            FUN_0004a4b8();
                                           }
                                         }
                                         else {
-                                          iVar8 = strcmp(pcVar6,"wan_if");
+                                          iVar8 = strcmp(pcVar6,"wan_dns");
                                           if (iVar8 == 0) {
-                                            if (local_1600[1] != (char *)0x0) {
-                                              pcVar6 = local_1600[1];
-                                              cprintf("%s: wan_if: %s.\n","handle_notifications");
-                                              iVar34 = atoi(local_1600[1]);
-                                              uVar35 = wan_primary_ifunit_ipv6();
-                                              iVar8 = (int)uVar35;
-                                              if ((uVar31 & 1) != 0) {
-                                                iVar33 = atoi(local_1600[1]);
-                                                uVar35 = FUN_00038078(iVar33);
-                                                if (iVar34 == iVar8) {
-                                                  uVar35 = FUN_0002bf80((int)uVar35,
-                                                                        (int)((ulonglong)uVar35 >>
-                                                                             0x20),pcVar6,pcVar7);
-                                                }
+                                            if (local_15fc != (char **)0x0) {
+                                              iVar34 = atoi((char *)local_15fc);
+                                              cprintf("%s: wan_dns: %d.\n","handle_notifications",
+                                                      iVar34);
+                                              snprintf((char *)&local_1420,0xf,"wan%d_",iVar34);
+                                              FUN_0003f850((char *)&local_1420,"dnsenable_x",
+                                                           (char *)local_1220);
+                                              iVar34 = nvram_get_int();
+                                              if (iVar34 == 0) {
+                                                get_userdns_r(&local_1420,ppcVar19,0x40);
+                                                uVar10 = FUN_0003f850((char *)&local_1420,"dns",
+                                                                      (char *)local_1220);
                                               }
-                                              if ((uVar31 & 2) != 0) {
-                                                if (iVar34 == iVar8) {
-                                                  FUN_0002be8c((int)uVar35,
-                                                               (int)((ulonglong)uVar35 >> 0x20),
-                                                               pcVar6,pcVar7);
-                                                }
-                                                iVar34 = atoi(local_1600[1]);
-                                                FUN_0003acc0(iVar34);
-                                                FUN_0002bfd0();
+                                              else {
+                                                uVar10 = FUN_0003f850((char *)&local_1420,"dns",
+                                                                      (char *)local_1220);
+                                                FUN_0003f850((char *)&local_1420,"dns_r",
+                                                             (char *)ppcVar19);
+                                                ppcVar19 = (char **)FUN_0003f6c8();
                                               }
+                                              nvram_set(uVar10,ppcVar19);
+                                              FUN_00037f70();
                                             }
                                           }
                                           else {
-                                            iVar8 = strcmp(pcVar6,"dblog");
+                                            iVar8 = strcmp(pcVar6,"wan_if");
                                             if (iVar8 == 0) {
-                                              uVar10 = extraout_r1_20;
-                                              if ((uVar31 & 1) != 0) {
-                                                FUN_000d3ca0(0);
-                                                uVar10 = extraout_r1_21;
-                                              }
-                                              if ((uVar31 & 2) != 0) {
-                                                FUN_000d3c30(1,uVar10,ppcVar16,pcVar7);
+                                              if (local_15fc != (char **)0x0) {
+                                                ppcVar19 = local_15fc;
+                                                cprintf("%s: wan_if: %s.\n","handle_notifications");
+                                                iVar34 = atoi((char *)local_15fc);
+                                                uVar35 = wan_primary_ifunit_ipv6();
+                                                iVar8 = (int)uVar35;
+                                                if ((uVar31 & 1) != 0) {
+                                                  iVar33 = atoi((char *)local_15fc);
+                                                  uVar35 = FUN_00039be8(iVar33);
+                                                  if (iVar34 == iVar8) {
+                                                    uVar35 = FUN_0002cd10((int)uVar35,
+                                                                          (int)((ulonglong)uVar35 >>
+                                                                               0x20),ppcVar19,pcVar7
+                                                                         );
+                                                  }
+                                                }
+                                                if ((uVar31 & 2) != 0) {
+                                                  if (iVar34 == iVar8) {
+                                                    FUN_0002cc1c((int)uVar35,
+                                                                 (int)((ulonglong)uVar35 >> 0x20),
+                                                                 ppcVar19,pcVar7);
+                                                  }
+                                                  iVar34 = atoi((char *)local_15fc);
+                                                  FUN_0003c2cc(iVar34);
+                                                  FUN_0002cd60();
+                                                }
                                               }
                                             }
                                             else {
-                                              iVar8 = strcmp(pcVar6,"ahs");
+                                              iVar8 = strcmp(pcVar6,"dblog");
                                               if (iVar8 == 0) {
-                                                lVar36 = (ulonglong)extraout_r1_22 << 0x20;
+                                                uVar10 = extraout_r1_20;
                                                 if ((uVar31 & 1) != 0) {
-                                                  lVar36 = FUN_000474a0();
+                                                  FUN_000d9d0c(0);
+                                                  uVar10 = extraout_r1_21;
                                                 }
                                                 if ((uVar31 & 2) != 0) {
-                                                  FUN_000474cc((int)lVar36,
-                                                               (int)((ulonglong)lVar36 >> 0x20),
-                                                               ppcVar16,pcVar7);
+                                                  FUN_000d9c9c(1,uVar10,ppcVar16,pcVar7);
                                                 }
                                               }
                                               else {
-                                                iVar8 = strcmp(pcVar6,"wan_line");
+                                                iVar8 = strcmp(pcVar6,"ahs");
                                                 if (iVar8 == 0) {
-                                                  cprintf("%s: restart_wan_line: %s.\n",
-                                                          "handle_notifications",local_1600[1]);
-                                                  if (local_1600[1] != (char *)0x0) {
-                                                    atoi(local_1600[1]);
-                                                    uVar10 = get_wan_ifname();
-                                                    FUN_000394a0(uVar10);
-                                                    FUN_00048b8c();
-                                                    FUN_00048260();
+                                                  lVar36 = (ulonglong)extraout_r1_22 << 0x20;
+                                                  if ((uVar31 & 1) != 0) {
+                                                    lVar36 = FUN_00049d74();
+                                                  }
+                                                  if ((uVar31 & 2) != 0) {
+                                                    FUN_00049da0((int)lVar36,
+                                                                 (int)((ulonglong)lVar36 >> 0x20),
+                                                                 ppcVar16,pcVar7);
                                                   }
                                                 }
                                                 else {
-                                                  iVar8 = strcmp(pcVar6,"nas");
+                                                  iVar8 = strcmp(pcVar6,"wan_line");
                                                   if (iVar8 == 0) {
-                                                    lVar36 = (ulonglong)extraout_r1_23 << 0x20;
-                                                    if ((uVar31 & 1) != 0) {
-                                                      lVar36 = FUN_00032f14();
-                                                    }
-                                                    if ((uVar31 & 2) != 0) {
-                                                      FUN_000427a4((undefined *)lVar36,
-                                                                   (int)((ulonglong)lVar36 >> 0x20))
-                                                      ;
-                                                      FUN_00032f5c();
-                                                      uVar10 = FUN_0004d360();
-                                                      uVar10 = FUN_00042668(uVar10);
-                                                      FUN_000425fc(uVar10);
-                                                      uVar35 = FUN_000472d0();
-                                                      uVar10 = FUN_0004bea4((undefined *)uVar35,
-                                                                            (int)((ulonglong)uVar35
-                                                                                 >> 0x20),ppcVar16);
-                                                      uVar35 = FUN_0004cd98(uVar10,extraout_r1_24);
-                                                      uVar35 = FUN_00042728((int)uVar35,
-                                                                            (int)((ulonglong)uVar35
-                                                                                 >> 0x20));
-                                                      uVar10 = FUN_00047380((int)uVar35,
-                                                                            (int)((ulonglong)uVar35
-                                                                                 >> 0x20),
-                                                                            (undefined *)ppcVar16,
-                                                                            pcVar7);
-                                                      FUN_0004bef8(uVar10,extraout_r1_25,ppcVar16,
-                                                                   pcVar7);
-                                                      FUN_0002af4c();
-                                                      FUN_00031918();
-                                                      FUN_0003252c();
-                                                    }
-                                                  }
-                                                  else {
-                                                    iVar8 = strcmp(pcVar6,"aae");
-                                                    if ((iVar8 == 0) ||
-                                                       (iVar8 = strcmp(pcVar6,"mastiff"), iVar8 == 0
-                                                       )) {
+                                                    cprintf("%s: restart_wan_line: %s.\n",
+                                                            "handle_notifications",local_15fc);
+                                                    if (local_15fc != (char **)0x0) {
+                                                      atoi((char *)local_15fc);
+                                                      uVar10 = get_wan_ifname();
+                                                      FUN_0003aac8(uVar10);
+                                                      FUN_0004adb4();
+                                                      FUN_0004a4b8();
+                                                    }
+                                                  }
+                                                  else {
+                                                    iVar8 = strcmp(pcVar6,"nas");
+                                                    if (iVar8 == 0) {
+                                                      lVar36 = (ulonglong)extraout_r1_23 << 0x20;
                                                       if ((uVar31 & 1) != 0) {
-                                                        FUN_001178b8();
+                                                        lVar36 = FUN_00033cb0();
                                                       }
                                                       if ((uVar31 & 2) != 0) {
-                                                        FUN_00117828();
+                                                        FUN_0004452c((undefined *)lVar36,
+                                                                     (int)((ulonglong)lVar36 >> 0x20
+                                                                          ));
+                                                        FUN_00033cf8();
+                                                        uVar10 = FUN_0005055c();
+                                                        uVar10 = FUN_000443f0(uVar10);
+                                                        FUN_00044334(uVar10);
+                                                        uVar35 = FUN_00049ba0();
+                                                        uVar10 = FUN_0004f024((undefined *)uVar35,
+                                                                              (int)((ulonglong)
+                                                                                    uVar35 >> 0x20),
+                                                                              ppcVar16);
+                                                        uVar35 = FUN_0004ff44(uVar10,extraout_r1_24)
+                                                        ;
+                                                        uVar35 = FUN_000444b0((int)uVar35,
+                                                                              (int)((ulonglong)
+                                                                                    uVar35 >> 0x20))
+                                                        ;
+                                                        uVar10 = FUN_00049c50((int)uVar35,
+                                                                              (int)((ulonglong)
+                                                                                    uVar35 >> 0x20),
+                                                                              (undefined *)ppcVar16,
+                                                                              pcVar7);
+                                                        FUN_0004f078(uVar10,extraout_r1_25,ppcVar16,
+                                                                     pcVar7);
+                                                        FUN_0002bcdc();
+                                                        FUN_000326b0();
+                                                        FUN_000332c4();
                                                       }
                                                     }
                                                     else {
-                                                      iVar8 = strncmp(pcVar6,"webs_",5);
-                                                      if (iVar8 != 0) {
-                                                        puVar5 = (undefined *)0x5;
-                                                        iVar8 = strncmp(pcVar6,"gobi_",5);
+                                                      iVar8 = strcmp(pcVar6,"aae");
+                                                      if ((iVar8 == 0) ||
+                                                         (iVar8 = strcmp(pcVar6,"mastiff"),
+                                                         iVar8 == 0)) {
+                                                        if ((uVar31 & 1) != 0) {
+                                                          FUN_0011e2e0();
+                                                        }
+                                                        if ((uVar31 & 2) != 0) {
+                                                          FUN_0011e250();
+                                                        }
+                                                      }
+                                                      else {
+                                                        iVar8 = strncmp(pcVar6,"webs_",5);
                                                         if (iVar8 != 0) {
-                                                          iVar8 = strcmp(pcVar6,"ddns_le");
-                                                          if (iVar8 == 0) {
-                                                            nvram_set("le_rc_notify","1");
-                                                            iVar34 = system(
+                                                          puVar5 = (undefined *)0x5;
+                                                          iVar8 = strncmp(pcVar6,"gobi_",5);
+                                                          if (iVar8 != 0) {
+                                                            iVar8 = strcmp(pcVar6,"ddns_le");
+                                                            if (iVar8 == 0) {
+                                                              nvram_set("le_rc_notify","1");
+                                                              iVar34 = system(
                                                   "rm -f /var/cache/inadyn/*.cache");
                                                   if ((uVar31 & 1) != 0) {
-                                                    FUN_00045174(iVar34,extraout_r1_26,puVar5,pcVar7
+                                                    FUN_00047474(iVar34,extraout_r1_26,puVar5,pcVar7
                                                                 );
                                                   }
                                                   if ((uVar31 & 2) != 0) {
-                                                    FUN_000441f0(0);
+                                                    FUN_00046194(0);
                                                   }
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"ddns");
                                                     if (iVar8 == 0) {
                                                       if ((uVar31 & 1) != 0) {
-                                                        FUN_00045174(0,extraout_r1_27,puVar5,pcVar7)
+                                                        FUN_00047474(0,extraout_r1_27,puVar5,pcVar7)
                                                         ;
                                                       }
                                                       if ((uVar31 & 2) != 0) {
-                                                        FUN_000441f0((int)local_1600[1]);
+                                                        FUN_00046194((int)local_15fc);
+                                                        update_srv_cert_if_ddns_changed();
                                                       }
                                                     }
                                                     else {
-                                                      iVar8 = strcmp(pcVar6,
+                                                      iVar8 = strcmp(pcVar6,"prepare_cert");
+                                                      if (iVar8 == 0) {
+                                                        iVar34 = FUN_0004c3b8();
+                                                        if (0 < iVar34) {
+                                                          nvram_set("httpds_reload_cert",
+                                                                    &DAT_8);
+                                                          iVar34 = get_ipv6_service();
+                                                          if ((iVar34 != 0) &&
+                                                             (bVar4 = FUN_0003f6e8("misc_http_x","1"
+                                                                                  ), bVar4)) {
+                                                            nvram_set("httpds6_reload_cert",
+                                                                      &DAT_8);
+                                                          }
+                                                        }
+                                                      }
+                                                      else {
+                                                        iVar8 = strcmp(pcVar6,
                                                   "aidisk_asusddns_register");
                                                   if (iVar8 == 0) {
-                                                    FUN_00045254(0);
+                                                    FUN_00047554(0);
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"adm_asusddns_register");
                                                     if (iVar8 == 0) {
-                                                      FUN_00045254(1);
+                                                      FUN_00047554(1);
                                                     }
                                                     else {
                                                       iVar8 = strcmp(pcVar6,"asusddns_unregister");
                                                       if (iVar8 == 0) {
-                                                        FUN_00045b4c();
+                                                        FUN_00048190();
                                                       }
                                                       else {
                                                         iVar8 = strcmp(pcVar6,"clean_ddns");
                                                         if (iVar8 == 0) {
-                                                          FUN_00047dec(0,extraout_r1_28,puVar5,
+                                                          FUN_0004d21c(0,extraout_r1_28,puVar5,
                                                                        pcVar7);
                                                         }
                                                         else {
                                                           iVar8 = strcmp(pcVar6,"httpd");
                                                           if (iVar8 == 0) {
                                                             if ((uVar31 & 1) != 0) {
-                                                              FUN_00047d68();
+                                                              FUN_0004a0dc();
                                                             }
                                                             if ((uVar31 & 2) != 0) {
-                                                              FUN_00047808();
+                                                              FUN_0004cc68();
                                                               setup_wrs_conf();
                                                             }
                                                           }
                                                           else {
                                                             iVar8 = strcmp(pcVar6,"telnetd");
                                                             if (iVar8 == 0) {
                                                               if ((uVar31 & 1) != 0) {
-                                                                FUN_000477bc();
+                                                                FUN_0004a090();
                                                               }
                                                               if ((uVar31 & 2) != 0) {
-                                                                FUN_000477b4();
+                                                                FUN_0004a088();
                                                               }
                                                             }
                                                             else {
                                                               iVar8 = strcmp(pcVar6,"sshd");
                                                               if (iVar8 == 0) {
                                                                 if ((uVar31 & 1) != 0) {
-                                                                  FUN_000c6aa4();
+                                                                  FUN_000ccb44();
                                                                 }
                                                                 if ((uVar31 & 2) != 0) {
-                                                                  FUN_000c6528();
+                                                                  FUN_000cc5c8();
                                                                 }
                                                               }
                                                               else {
                                                                 iVar8 = strcmp(pcVar6,"ipv6");
                                                                 if (iVar8 == 0) {
                                                                   if ((uVar31 & 1) != 0) {
-                                                                    FUN_00041384();
+                                                                    FUN_000430bc();
                                                                   }
                                                                   if ((uVar31 & 2) != 0) {
-                                                                    FUN_00041068();
+                                                                    FUN_00042da0();
                                                                   }
                                                                 }
                                                                 else {
                                                                   iVar8 = strcmp(pcVar6,"rdisc6");
                                                                   if (iVar8 == 0) {
                                                                     if ((uVar31 & 1) != 0) {
-                                                                      FUN_00040fa8();
+                                                                      FUN_00042ce0();
                                                                     }
                                                                     if ((uVar31 & 2) != 0) {
-                                                                      FUN_00040fb8();
+                                                                      FUN_00042cf0();
                                                                     }
                                                                   }
                                                                   else {
                                                                     iVar8 = strcmp(pcVar6,"dhcp6c");
                                                                     if (iVar8 == 0) {
                                                                       if ((uVar31 & 1) != 0) {
-                                                                        FUN_00075298();
+                                                                        FUN_0007895c();
                                                                       }
                                                                       if ((uVar31 & 2) != 0) {
-                                                                        FUN_000752a8();
+                                                                        FUN_0007896c();
                                                                       }
                                                                     }
                                                                     else {
                                                                       iVar8 = strcmp(pcVar6,"wan6");
                                                                       if (iVar8 == 0) {
                                                                         if ((uVar31 & 1) != 0) {
-                                                                          FUN_000384d4();
-                                                                          FUN_00041384();
+                                                                          FUN_0003a078();
+                                                                          FUN_000430bc();
                                                                         }
                                                                         if ((uVar31 & 2) != 0) {
-                                                                          FUN_00041068();
+                                                                          FUN_00042da0();
                                                                           iVar34 = update_6rd_info()
                                                                           ;
                                                                           if (iVar34 == 0) {
                                                                             iVar34 = 
                                                   wan_primary_ifunit_ipv6();
-                                                  FUN_00038078(iVar34);
+                                                  FUN_00039be8(iVar34);
                                                   iVar34 = wan_primary_ifunit_ipv6();
-                                                  FUN_0003acc0(iVar34);
+                                                  FUN_0003c2cc(iVar34);
                                                   }
                                                   else {
                                                     wan_primary_ifunit_ipv6();
-                                                    bVar4 = FUN_0003e17c();
+                                                    bVar4 = FUN_0003f870();
                                                     if (bVar4) {
-                                                      uVar35 = FUN_000384d4();
-                                                      FUN_00038448((int)uVar35,
+                                                      uVar35 = FUN_0003a078();
+                                                      FUN_00039fec((int)uVar35,
                                                                    (int)((ulonglong)uVar35 >> 0x20),
                                                                    puVar5,pcVar7);
                                                     }
                                                     else {
-                                                      FUN_00038448(0,extraout_r1_29,puVar5,pcVar7);
+                                                      FUN_00039fec(0,extraout_r1_29,puVar5,pcVar7);
                                                     }
                                                   }
                                                   }
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"dns");
                                                     if (iVar8 == 0) {
                                                       if ((uVar31 & 2) != 0) {
-                                                        FUN_0003ee00();
+                                                        FUN_000405d4();
                                                       }
                                                     }
                                                     else {
                                                       iVar8 = strcmp(pcVar6,"dnsmasq");
                                                       if (iVar8 == 0) {
                                                         if ((uVar31 & 1) != 0) {
-                                                          FUN_0003ef20();
+                                                          FUN_000406f4();
                                                         }
                                                         if ((uVar31 & 2) != 0) {
-                                                          FUN_00042c98();
+                                                          FUN_00044a20();
                                                         }
                                                       }
                                                       else {
                                                         iVar8 = strcmp(pcVar6,"stubby");
                                                         if (iVar8 == 0) {
                                                           if ((uVar31 & 1) != 0) {
-                                                            FUN_0003ee38();
+                                                            FUN_0004060c();
                                                           }
                                                           if ((uVar31 & 2) != 0) {
-                                                            FUN_0003efe4();
+                                                            FUN_000407b8();
                                                           }
                                                         }
                                                         else {
                                                           iVar8 = strcmp(pcVar6,"upnp");
                                                           if (iVar8 == 0) {
                                                             if ((uVar31 & 1) != 0) {
-                                                              FUN_00048b8c();
+                                                              FUN_0004adb4();
                                                             }
                                                             if ((uVar31 & 2) != 0) {
-                                                              FUN_00048260();
+                                                              FUN_0004a4b8();
                                                             }
                                                           }
                                                           else {
                                                             iVar8 = strcmp(pcVar6,"qos");
                                                             if (iVar8 == 0) {
                                                               uVar35 = nvram_set("restart_qo","1");
                                                               uVar10 = (undefined4)
                                                                        ((ulonglong)uVar35 >> 0x20);
                                                               if ((uVar31 & 1) != 0) {
-                                                                FUN_0006fa68((int)uVar35);
+                                                                FUN_00072f3c((int)uVar35);
                                                                 stop_dpi_engine_service(0);
-                                                                FUN_0006d8c4();
+                                                                FUN_00070d98();
                                                                 uVar10 = extraout_r1_30;
                                                               }
                                                               if ((uVar31 & 2) != 0) {
-                                                                FUN_00099d04(0,uVar10,puVar5,pcVar7)
+                                                                FUN_0009f8d8(0,uVar10,puVar5,pcVar7)
                                                                 ;
-                                                                bVar4 = FUN_0003dff4("qos_enable",
+                                                                bVar4 = FUN_0003f6e8("qos_enable",
                                                                                      "1");
                                                                 if (((bVar4) &&
-                                                                    (bVar4 = FUN_0003dff4("qos_type"
+                                                                    (bVar4 = FUN_0003f6e8("qos_type"
                                                                                           ,"2"),
                                                                     !bVar4)) ||
-                                                                   (bVar4 = FUN_0003dff4(
+                                                                   (bVar4 = FUN_0003f6e8(
                                                   "qos_enable","0"), bVar4)) {
-                                                    FUN_0006ff84();
+                                                    FUN_00073458();
                                                   }
                                                   wan_primary_ifunit();
                                                   pcVar6 = (char *)get_wan_ifname();
-                                                  FUN_0006fab0(pcVar6);
+                                                  FUN_00072f84(pcVar6);
                                                   start_dpi_engine_service();
-                                                  FUN_0006fbcc();
+                                                  FUN_000730a0();
                                                   }
                                                   nvram_set("restart_qo","0");
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"wrs");
                                                     if (iVar8 == 0) {
                                                       if ((uVar31 & 1) != 0) {
                                                         stop_dpi_engine_service();
                                                       }
                                                       if ((uVar31 & 2) != 0) {
                                                         start_dpi_engine_service();
                                                       }
                                                     }
                                                     else {
                                                       iVar8 = strcmp(pcVar6,"wrs_force");
                                                       if (iVar8 == 0) {
                                                         if ((uVar31 & 1) != 0) {
                                                           stop_dpi_engine_service(3);
                                                         }
                                                       }
                                                       else {
-                                                        iVar8 = strcmp(pcVar6,"sig_check");
+                                                        ppcVar19 = (char **)strcmp(pcVar6,
+                                                  "sig_check");
+                                                  if (ppcVar19 == (char **)0x0) {
+                                                    if ((uVar31 & 2) != 0) {
+                                                      local_1220[0] = (char **)0x16e5ba;
+                                                      local_1220[1] = ppcVar19;
+                                                      _eval(local_1220,0,0,0);
+                                                      iVar34 = nvram_get_int("sig_state_flag");
+                                                      if (iVar34 != 0) {
+                                                        local_1020 = "sig_upgrade.sh";
+                                                        local_101c = ppcVar19;
+                                                        _eval(&local_1020,0,0,0);
+                                                      }
+                                                      stop_dpi_engine_service(0);
+                                                      start_dpi_engine_service();
+                                                    }
+                                                  }
+                                                  else {
+                                                    iVar8 = strcmp(pcVar6,"dpi_disable");
+                                                    if (iVar8 == 0) {
+                                                      disable_dpi_engine_setting();
+                                                    }
+                                                    else {
+                                                      iVar8 = strcmp(pcVar6,"reset_cc_db");
+                                                      if (iVar8 == 0) {
+                                                        local_1020 = DAT_23;
+                                                        local_101c = DAT_24;
+                                                        local_1018 = DAT_25;
+                                                        local_1014 = DAT_26;
+                                                        local_1010 = DAT_27;
+                                                        _eval(&local_1020,0,0,0);
+                                                      }
+                                                      else {
+                                                        iVar8 = strcmp(pcVar6,"reset_mals_db");
                                                         if (iVar8 == 0) {
-                                                          if ((uVar31 & 2) != 0) {
-                                                            local_1220 = (char **)0x165bcf;
-                                                            local_121c[0] = (char **)0x0;
-                                                            _eval(&local_1220,0,0,0);
-                                                            iVar34 = nvram_get_int("sig_state_flag")
-                                                            ;
-                                                            if (iVar34 != 0) {
-                                                              local_1020 = "sig_upgrade.sh";
-                                                              local_101c[0] = (char *)0x0;
-                                                              _eval(&local_1020,0,0,0);
-                                                            }
-                                                            stop_dpi_engine_service(0);
-                                                            start_dpi_engine_service();
-                                                          }
+                                                          local_1020 = DAT_28;
+                                                          local_101c = DAT_29;
+                                                          local_1018 = DAT_30;
+                                                          local_1014 = DAT_31;
+                                                          local_1010 = DAT_32;
+                                                          _eval(&local_1020,0,0,0);
                                                         }
                                                         else {
-                                                          iVar8 = strcmp(pcVar6,"dpi_disable");
+                                                          iVar8 = strcmp(pcVar6,"reset_vp_db");
                                                           if (iVar8 == 0) {
-                                                            disable_dpi_engine_setting();
+                                                            local_1020 = DAT_33;
+                                                            local_101c = DAT_34;
+                                                            local_1018 = DAT_35;
+                                                            local_1014 = DAT_36;
+                                                            local_1010 = DAT_37;
+                                                            _eval(&local_1020,0,0,0);
                                                           }
                                                           else {
-                                                            iVar8 = strcmp(pcVar6,"reset_cc_db");
+                                                            iVar8 = strcmp(pcVar6,"traffic_analyzer"
+                                                                          );
                                                             if (iVar8 == 0) {
-                                                              local_1020 = DAT_23;
-                                                              local_101c[0] = DAT_24;
-                                                              local_101c[1] = DAT_25;
-                                                              local_1014 = DAT_26;
-                                                              local_1010 = DAT_27;
-                                                              _eval(&local_1020,0,0,0);
+                                                              if ((uVar31 & 1) != 0) {
+                                                                FUN_000f2ef8();
+                                                              }
                                                             }
                                                             else {
-                                                              iVar8 = strcmp(pcVar6,"reset_mals_db")
-                                                              ;
+                                                              iVar8 = strcmp(pcVar6,"wrs_wbl");
                                                               if (iVar8 == 0) {
-                                                                local_1020 = DAT_28;
-                                                                local_101c[0] = DAT_29;
-                                                                local_101c[1] = DAT_30;
-                                                                local_1014 = DAT_31;
-                                                                local_1010 = DAT_32;
-                                                                _eval(&local_1020,0,0,0);
+                                                                start_wrs_wbl_service();
                                                               }
                                                               else {
-                                                                iVar8 = strcmp(pcVar6,"reset_vp_db")
+                                                                iVar8 = strcmp(pcVar6,"mobile_game")
                                                                 ;
                                                                 if (iVar8 == 0) {
-                                                                  local_1020 = DAT_33;
-                                                                  local_101c[0] = DAT_34;
-                                                                  local_101c[1] = DAT_35;
-                                                                  local_1014 = DAT_36;
-                                                                  local_1010 = DAT_37;
-                                                                  _eval(&local_1020,0,0,0);
+                                                                  MobileDevMode_restart();
                                                                 }
                                                                 else {
                                                                   iVar8 = strcmp(pcVar6,
-                                                  "traffic_analyzer");
+                                                  "send_confirm_mail");
                                                   if (iVar8 == 0) {
-                                                    if ((uVar31 & 1) != 0) {
-                                                      FUN_000eb508();
-                                                    }
-                                                  }
-                                                  else {
-                                                    iVar8 = strcmp(pcVar6,"wrs_wbl");
+                                                    snprintf((char *)&local_1020,0x20,"0x%x",0xf002)
+                                                    ;
+                                                    local_1220[0] = (char **)0x16e636;
+                                                    local_1220[2] = (char **)0x17dc2e;
+                                                    local_1214 = (undefined *)0x0;
+                                                    local_1220[1] = &local_1020;
+                                                    _eval(local_1220,0,0);
+                                                  }
+                                                  else {
+                                                    iVar8 = strcmp(pcVar6,"email_conf");
                                                     if (iVar8 == 0) {
-                                                      start_wrs_wbl_service();
+                                                      FUN_000fcc74();
                                                     }
                                                     else {
-                                                      iVar8 = strcmp(pcVar6,"mobile_game");
+                                                      iVar8 = strcmp(pcVar6,"email_info");
                                                       if (iVar8 == 0) {
-                                                        MobileDevMode_restart();
-                                                      }
-                                                      else {
-                                                        puVar19 = (undefined *)
-                                                                  strcmp(pcVar6,"send_confirm_mail")
-                                                        ;
-                                                        if (puVar19 == (undefined *)0x0) {
-                                                          snprintf((char *)&local_1020,0x20,"0x%x",
-                                                                   0xf002);
-                                                          local_1220 = (char **)0x165c4b;
-                                                          local_121c[1] = (char **)0x174ff9;
-                                                          local_121c[0] = &local_1020;
-                                                          local_1214 = puVar19;
-                                                          _eval(&local_1220,0,0,0);
-                                                        }
-                                                        else {
-                                                          iVar8 = strcmp(pcVar6,"email_conf");
-                                                          if (iVar8 == 0) {
-                                                            FUN_000f5260();
-                                                          }
-                                                          else {
-                                                            iVar8 = strcmp(pcVar6,"email_info");
-                                                            if (iVar8 == 0) {
-                                                              FUN_000f5434();
-                                                              iVar34 = f_read_string(
+                                                        FUN_000fce48();
+                                                        iVar34 = f_read_string(
                                                   "/var/run/nt_actMail.pid",&local_1020,8);
                                                   if (0 < iVar34) {
                                                     iVar34 = atoi((char *)&local_1020);
                                                     kill(iVar34,0xc);
                                                   }
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"update_nc_setting_conf");
                                                     if (iVar8 == 0) {
-                                                      FUN_0004955c();
+                                                      FUN_0004b7a0();
                                                     }
                                                     else {
                                                       iVar8 = strcmp(pcVar6,
                                                   "oauth_google_gen_token_email");
                                                   if (iVar8 == 0) {
-                                                    FUN_000bc540(0,extraout_r1_31,puVar5);
-                                                    memcpy(&local_1220,
+                                                    FUN_000c2530(0,extraout_r1_31,puVar5);
+                                                    memcpy(local_1220,
                                                                                                                       
                                                   "{\"oauth_google_refresh_token\":\"\",\"oauth_google_user_email\":\"\",\"fb_email_provider\":\"\"}"
                                                   ,0x57);
                                                   memset(&local_1020,0,0x85);
                                                   snprintf((char *)&local_1020,0x84,
                                                            "{\"rc\":{\"eid\":\"%d\",\"config\":%s}}"
-                                                           ,6,&local_1220);
+                                                           ,6,local_1220);
                                                   send_cfgmnt_event(&local_1020);
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,
                                                   "oauth_google_drive_gen_token");
                                                   if (iVar8 == 0) {
-                                                    FUN_000bc5c4(0,extraout_r1_32,puVar5);
-                                                    memcpy(&local_1220,
+                                                    FUN_000c25b4(0,extraout_r1_32,puVar5);
+                                                    memcpy(local_1220,
                                                                                                                       
                                                   "{\"oauth_google_drive_refresh_token\":\"\",\"oauth_google_user_email\":\"\",\"fb_email_provider\":\"\"}"
                                                   ,0x5d);
                                                   memset(&local_1020,0,0x85);
                                                   snprintf((char *)&local_1020,0x84,
                                                            "{\"rc\":{\"eid\":\"%d\",\"config\":%s}}"
-                                                           ,6,&local_1220);
+                                                           ,6,local_1220);
                                                   send_cfgmnt_event(&local_1020);
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,
                                                   "oauth_google_drive_check_token_status");
                                                   if (iVar8 == 0) {
-                                                    FUN_000bc864();
+                                                    FUN_000c28ac();
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,
                                                   "oauth_google_check_token_status");
                                                   if (iVar8 == 0) {
-                                                    FUN_000bc648();
+                                                    FUN_000c2638();
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"logger");
                                                     if (iVar8 == 0) {
                                                       if ((uVar31 & 1) != 0) {
-                                                        FUN_0004640c();
+                                                        FUN_00048cdc();
                                                       }
                                                       if ((uVar31 & 2) != 0) {
-                                                        FUN_00046310();
+                                                        FUN_00048be0();
                                                       }
                                                     }
                                                     else {
                                                       iVar8 = strcmp(pcVar6,"crond");
                                                       if (iVar8 == 0) {
                                                         lVar36 = (ulonglong)extraout_r1_33 << 0x20;
                                                         if ((uVar31 & 1) != 0) {
-                                                          lVar36 = FUN_00049b20();
+                                                          lVar36 = FUN_0004bd64();
                                                         }
                                                         if ((uVar31 & 2) != 0) {
-                                                          FUN_00049b30((char *)lVar36,
+                                                          FUN_0004bd74((char *)lVar36,
                                                                        (int)((ulonglong)lVar36 >>
                                                                             0x20),puVar5);
                                                         }
                                                       }
                                                       else {
                                                         iVar8 = strcmp(pcVar6,"firewall");
                                                         if (iVar8 == 0) {
                                                           iVar8 = 0;
                                                           if (iVar34 == 1) {
                                                             iVar33 = wan_primary_ifunit();
                                                           }
                                                           else {
-                                                            iVar33 = atoi(local_1600[1]);
+                                                            iVar33 = atoi((char *)local_15fc);
                                                             if (iVar34 != 2) {
-                                                              iVar8 = atoi(local_1600[2]);
+                                                              iVar8 = atoi(local_15f8);
                                                             }
                                                           }
                                                           nvram_set("restart_fwl","1");
                                                           if ((uVar31 & 2) != 0) {
-                                                            uVar35 = FUN_00058ff4();
-                                                            FUN_0004c6ac((int)uVar35,
+                                                            uVar35 = FUN_0005c394();
+                                                            FUN_0004f82c((int)uVar35,
                                                                          (int)((ulonglong)uVar35 >>
                                                                               0x20),puVar5);
-                                                            FUN_0005ef4c(iVar33,iVar8);
+                                                            FUN_000622f8(iVar33,iVar8);
                                                             killall("pctime",10);
                                                             killall("pctime",0xc);
                                                           }
                                                           nvram_set("restart_fwl","0");
                                                         }
                                                         else {
-                                                          iVar8 = strcmp(pcVar6,"iptrestore");
-                                                          if (iVar8 == 0) {
-                                                            cprintf("%s: restart_iptrestore: %s.\n",
-                                                                    "handle_notifications",
-                                                                    local_1600[1]);
-                                                            if ((local_1600[1] != (char *)0x0) &&
-                                                               ((uVar31 & 2) != 0)) {
-                                                              local_1020 = "iptables-restore";
-                                                              local_101c[0] = local_1600[1];
-                                                              local_101c[1] = (char *)0x0;
-                                                              iVar34 = _eval(&local_1020,0,0);
-                                                              FUN_00058f28("services",0x3dc6,
-                                                                           local_1600[1],iVar34);
-                                                            }
-                                                          }
-                                                          else {
-                                                            iVar8 = strcmp(pcVar6,"pppoe_relay");
-                                                            if (iVar8 == 0) {
-                                                              uVar32 = wan_primary_ifunit();
-                                                              uVar24 = nvram_get_int(
-                                                  "pppoerelay_unit");
-                                                  bVar4 = FUN_0003dff4("wans_mode","lb");
-                                                  if (((bVar4) &&
-                                                      (iVar34 = get_nr_wan_unit(), 1 < iVar34)) &&
-                                                     (uVar24 < 2)) {
-                                                    uVar32 = uVar24;
-                                                  }
-                                                  if ((uVar31 & 1) != 0) {
-                                                    FUN_0003d998();
-                                                  }
-                                                  if ((uVar31 & 2) != 0) {
-                                                    uVar10 = get_wanx_ifname(uVar32);
-                                                    FUN_0003d8ac(uVar10);
-                                                  }
-                                                  }
-                                                  else {
-                                                    iVar8 = strcmp(pcVar6,"ntpc");
+                                                          pcVar12 = (char *)strcmp(pcVar6,
+                                                  "iptrestore");
+                                                  if (pcVar12 == (char *)0x0) {
+                                                    cprintf("%s: restart_iptrestore: %s.\n",
+                                                            "handle_notifications",local_15fc);
+                                                    if ((local_15fc != (char **)0x0) &&
+                                                       ((uVar31 & 2) != 0)) {
+                                                      local_1020 = "iptables-restore";
+                                                      local_101c = local_15fc;
+                                                      local_1018 = pcVar12;
+                                                      iVar34 = _eval(&local_1020,0,0,0);
+                                                      FUN_0005c2c8("services",0x3f9a,
+                                                                   (char *)local_15fc,iVar34);
+                                                    }
+                                                  }
+                                                  else {
+                                                    iVar8 = strcmp(pcVar6,"pppoe_relay");
                                                     if (iVar8 == 0) {
-                                                      lVar36 = (ulonglong)extraout_r1_34 << 0x20;
+                                                      uVar32 = wan_primary_ifunit();
+                                                      uVar25 = nvram_get_int("pppoerelay_unit");
+                                                      bVar4 = FUN_0003f6e8("wans_mode","lb");
+                                                      if (((bVar4) &&
+                                                          (iVar34 = get_nr_wan_unit(), 1 < iVar34))
+                                                         && (uVar25 < 2)) {
+                                                        uVar32 = uVar25;
+                                                      }
                                                       if ((uVar31 & 1) != 0) {
-                                                        lVar36 = FUN_00048d38();
+                                                        FUN_0003f08c();
                                                       }
                                                       if ((uVar31 & 2) != 0) {
-                                                        FUN_00048cbc((int)lVar36,
-                                                                     (int)((ulonglong)lVar36 >> 0x20
-                                                                          ));
+                                                        uVar10 = get_wanx_ifname(uVar32);
+                                                        FUN_0003efa0(uVar10);
                                                       }
                                                     }
                                                     else {
-                                                      iVar8 = strcmp(pcVar6,
+                                                      iVar8 = strcmp(pcVar6,"ntpc");
+                                                      if (iVar8 == 0) {
+                                                        lVar36 = (ulonglong)extraout_r1_34 << 0x20;
+                                                        if ((uVar31 & 1) != 0) {
+                                                          lVar36 = FUN_0004af60();
+                                                        }
+                                                        if ((uVar31 & 2) != 0) {
+                                                          FUN_0004aee4((int)lVar36,
+                                                                       (int)((ulonglong)lVar36 >>
+                                                                            0x20));
+                                                        }
+                                                      }
+                                                      else {
+                                                        iVar8 = strcmp(pcVar6,
                                                   "rebuild_cifs_config_and_password");
                                                   if (iVar8 == 0) {
                                                     fputs(
                                                   "rc rebuilding CIFS config and password databases.\n"
                                                   ,stderr);
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"time");
                                                     if (iVar8 == 0) {
                                                       if ((uVar31 & 1) != 0) {
-                                                        FUN_0004c04c();
-                                                        FUN_000477bc();
-                                                        FUN_000c6aa4();
-                                                        FUN_0004640c();
+                                                        FUN_0004f1cc();
+                                                        FUN_0004a090();
+                                                        FUN_000ccb44();
+                                                        FUN_00048cdc();
                                                       }
                                                       if ((uVar31 & 2) != 0) {
-                                                        FUN_000625b0();
+                                                        FUN_000659b4();
                                                         nvram_set("reload_svc_radio","1");
-                                                        FUN_00048d64();
-                                                        FUN_00046310();
-                                                        FUN_000477b4();
-                                                        FUN_000c6528();
+                                                        FUN_0004af8c();
+                                                        FUN_00048be0();
+                                                        FUN_0004a088();
+                                                        FUN_000cc5c8();
                                                         iVar34 = wan_primary_ifunit();
-                                                        uVar10 = FUN_0005ef4c(iVar34,0);
-                                                        FUN_0004c060(uVar10,extraout_r1_35);
+                                                        uVar10 = FUN_000622f8(iVar34,0);
+                                                        FUN_0004f1e0(uVar10,extraout_r1_35);
                                                       }
                                                     }
                                                     else {
                                                       iVar8 = strcmp(pcVar6,"wps_method");
                                                       if (iVar8 == 0) {
                                                         if ((uVar31 & 1) != 0) {
-                                                          FUN_000a0ed0();
-                                                          bVar4 = FUN_0003dff4("wps_ign_btn","1");
+                                                          FUN_000a6a68();
+                                                          bVar4 = FUN_0003f6e8("wps_ign_btn","1");
                                                           if (!bVar4) {
                                                             kill_pidfile_s("/var/run/watchdog.pid",
                                                                            0xc);
                                                           }
                                                         }
                                                         if ((uVar31 & 2) != 0) {
                                                           uVar32 = nvram_get_int("wps_band_x");
-                                                          iVar34 = FUN_00041c20(uVar32);
+                                                          iVar34 = FUN_00043958(uVar32);
                                                           if (iVar34 == 0) {
                                                             uVar32 = nvram_get_int("wps_band_x");
-                                                            iVar34 = FUN_00041e38(uVar32);
+                                                            iVar34 = FUN_00043b70(uVar32);
                                                             if (iVar34 == 0) {
-                                                              FUN_000a1b98();
-                                                              bVar4 = FUN_0003dff4("wps_ign_btn","1"
+                                                              FUN_000a7730();
+                                                              bVar4 = FUN_0003f6e8("wps_ign_btn","1"
                                                                                   );
                                                               if (bVar4) {
                                                                 uVar10 = 0x14;
                                                               }
                                                               else {
                                                                 uVar10 = 10;
                                                               }
                                                               kill_pidfile_s("/var/run/watchdog.pid"
                                                                              ,uVar10);
                                                             }
                                                           }
                                                           nvram_unset("wps_ign_btn");
                                                         }
                                                       }
                                                       else {
                                                         iVar8 = strcmp(pcVar6,"wps_method_ob");
                                                         if (iVar8 == 0) {
                                                           if ((uVar31 & 1) != 0) {
-                                                            FUN_000a12e8();
-                                                            bVar4 = FUN_0003dff4("wps_ign_btn","1");
+                                                            FUN_000a6e80();
+                                                            bVar4 = FUN_0003f6e8("wps_ign_btn","1");
                                                             if (!bVar4) {
                                                               kill_pidfile_s("/var/run/watchdog.pid"
                                                                              ,0xc);
                                                             }
                                                           }
                                                           if ((uVar31 & 2) != 0) {
                                                             uVar32 = nvram_get_int("wps_band_x");
-                                                            iVar34 = FUN_00041c20(uVar32);
+                                                            iVar34 = FUN_00043958(uVar32);
                                                             if (iVar34 == 0) {
                                                               uVar32 = nvram_get_int("wps_band_x");
-                                                              iVar34 = FUN_00041e38(uVar32);
+                                                              iVar34 = FUN_00043b70(uVar32);
                                                               if (iVar34 == 0) {
                                                                 nvram_set("wps_sta_pin","00000000");
-                                                                FUN_000a245c();
-                                                                bVar4 = FUN_0003dff4("wps_ign_btn",
+                                                                FUN_000a802c();
+                                                                bVar4 = FUN_0003f6e8("wps_ign_btn",
                                                                                      "1");
                                                                 if (bVar4) {
                                                                   uVar10 = 0x14;
                                                                 }
                                                                 else {
                                                                   uVar10 = 10;
                                                                 }
                                                                 kill_pidfile_s(
                                                   "/var/run/watchdog.pid",uVar10);
                                                   }
                                                   }
                                                   nvram_unset("wps_ign_btn");
                                                   }
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"wps_enr");
                                                     if (iVar8 == 0) {
                                                       iVar34 = nvram_get("sw_mode");
                                                       if (iVar34 == 0) {
                                                         pcVar6 = (char *)nvram_default_get("sw_mode"
                                                                                           );
                                                         iVar34 = atoi(pcVar6);
                                                       }
                                                       else {
                                                         iVar34 = nvram_get_int();
                                                       }
                                                       if (iVar34 == 1) {
                                                         uVar10 = nvram_get_int("wps_band_x");
-                                                        pppcVar21 = &local_1220;
+                                                        pppcVar22 = local_1220;
                                                         puVar3 = &DAT_38;
                                                         do {
                                                           puVar29 = puVar3;
-                                                          pppcVar30 = pppcVar21;
-                                                          ppcVar16 = (char **)puVar29[1];
+                                                          pppcVar30 = pppcVar22;
+                                                          ppcVar19 = (char **)puVar29[1];
                                                           *pppcVar30 = (char **)*puVar29;
-                                                          pppcVar30[1] = ppcVar16;
-                                                          pppcVar21 = pppcVar30 + 2;
+                                                          pppcVar30[1] = ppcVar19;
+                                                          pppcVar22 = pppcVar30 + 2;
                                                           puVar3 = puVar29 + 2;
                                                         } while (puVar29 + 2 != &DAT_39);
                                                         uVar2 = *(undefined2 *)(puVar29 + 3);
                                                         pppcVar30[2] = (char **)0x58585858;
                                                         *(undefined2 *)(pppcVar30 + 3) = uVar2;
                                                         iVar34 = nvram_get("sw_mode");
                                                         if (iVar34 == 0) {
                                                           pcVar6 = (char *)nvram_default_get(
                                                   "sw_mode");
                                                   iVar34 = atoi(pcVar6);
                                                   }
                                                   else {
                                                     iVar34 = nvram_get_int();
                                                   }
                                                   if (iVar34 == 1) {
                                                     nvram_set_int("amesh_wps_enr",1);
-                                                    snprintf((char *)&local_1220,0xe,"wl%d_",uVar10)
-                                                    ;
-                                                    uVar22 = FUN_0003e15c((char *)&local_1220,"mfp",
+                                                    snprintf((char *)local_1220,0xe,"wl%d_",uVar10);
+                                                    uVar23 = FUN_0003f850((char *)local_1220,"mfp",
                                                                           (char *)&local_1020);
-                                                    nvram_set(uVar22,"1");
-                                                    FUN_00047320();
-                                                    FUN_00042550();
-                                                    FUN_00032f14();
-                                                    FUN_0002f614();
-                                                    FUN_0002fa54();
-                                                    FUN_00030ae4();
-                                                    FUN_00031918();
-                                                    FUN_00032f5c();
-                                                    FUN_0004d360();
-                                                    FUN_0003252c();
-                                                  }
-                                                  FUN_000a0ed0();
-                                                  snprintf((char *)&local_1220,0xe,"wl%d_",uVar10);
-                                                  bVar4 = FUN_0003dff4("SG_mode","1");
+                                                    nvram_set(uVar23,"1");
+                                                    FUN_00049bf0();
+                                                    FUN_00044288();
+                                                    FUN_00033cb0();
+                                                    FUN_000303ac();
+                                                    FUN_000307ec();
+                                                    FUN_0003187c();
+                                                    FUN_000326b0();
+                                                    FUN_00033cf8();
+                                                    FUN_0005055c();
+                                                    FUN_000332c4();
+                                                  }
+                                                  FUN_000a6a68();
+                                                  snprintf((char *)local_1220,0xe,"wl%d_",uVar10);
+                                                  bVar4 = FUN_0003f6e8("SG_mode","1");
                                                   if (!bVar4) {
-                                                    uVar10 = FUN_0003e15c((char *)&local_1220,
+                                                    uVar10 = FUN_0003f850((char *)local_1220,
                                                                           "wps_mode",
                                                                           (char *)&local_1020);
-                                                    bVar4 = FUN_0003dff4(uVar10,"enabled");
+                                                    bVar4 = FUN_0003f6e8(uVar10,"enabled");
                                                     if (!bVar4) {
                                                       nvram_set_int("wps_proc_status",99);
                                                       goto LAB_5;
                                                     }
                                                   }
                                                   iVar34 = 4;
                                                   do {
-                                                    FUN_000a1660();
+                                                    FUN_000a71f8();
                                                     sleep(1);
                                                     iVar8 = nvram_get_int("wps_proc_status");
                                                     if (iVar8 != 0) break;
                                                     iVar34 = iVar34 + -1;
                                                   } while (iVar34 != 0);
                                                   kill_pidfile_s("/var/run/watchdog.pid",0x14);
                                                   nvram_unset("wps_ign_btn");
                                                   }
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"reset_wps");
                                                     if (iVar8 == 0) {
-                                                      FUN_000425a0(0,extraout_r1_36,puVar5,pcVar7);
+                                                      FUN_000442d8(0,extraout_r1_36,puVar5,pcVar7);
                                                       kill_pidfile_s("/var/run/watchdog.pid",0xc);
                                                     }
                                                     else {
                                                       iVar8 = strcmp(pcVar6,"wps");
                                                       if (iVar8 == 0) {
                                                         if ((uVar31 & 1) != 0) {
-                                                          FUN_00042550();
+                                                          FUN_00044288();
                                                         }
                                                         if ((uVar31 & 2) != 0) {
-                                                          FUN_0004d360();
+                                                          FUN_0005055c();
                                                         }
                                                         kill_pidfile_s("/var/run/watchdog.pid",0xc);
                                                       }
                                                       else {
                                                         iVar8 = strcmp(pcVar6,"autodet");
                                                         if (iVar8 == 0) {
                                                           lVar36 = (ulonglong)extraout_r1_37 << 0x20
                                                           ;
                                                           if ((uVar31 & 1) != 0) {
-                                                            lVar36 = FUN_0004bb4c();
+                                                            lVar36 = FUN_0004eccc();
                                                           }
                                                           if ((uVar31 & 2) != 0) {
-                                                            FUN_0004bad0((int)lVar36,
+                                                            FUN_0004ec50((int)lVar36,
                                                                          (int)((ulonglong)lVar36 >>
                                                                               0x20));
                                                           }
                                                         }
                                                         else {
                                                           iVar8 = strcmp(pcVar6,"wlcscan");
                                                           if (iVar8 == 0) {
                                                             if ((uVar31 & 1) != 0) {
-                                                              FUN_0004a1bc();
+                                                              FUN_0004d380();
                                                             }
                                                             if ((uVar31 & 2) != 0) {
-                                                              FUN_0004a174();
+                                                              FUN_0004d338();
                                                             }
                                                           }
                                                           else {
                                                             iVar8 = strcmp(pcVar6,"wlcconnect");
                                                             if (iVar8 == 0) {
                                                               if ((uVar31 & 1) != 0) {
-                                                                FUN_0004a2b8();
+                                                                FUN_0004d47c();
                                                               }
                                                               puVar5 = (undefined *)
                                                                        nvram_get_int("wlc_state");
                                                               cprintf(
                                                   "%s: notify wanduck: wlc_state=%d.\n",
                                                   "handle_notifications");
                                                   uVar35 = kill_pidfile_s("/var/run/wanduck.pid",10)
                                                   ;
                                                   if ((uVar31 & 2) != 0) {
-                                                    FUN_000326e4((int)uVar35,
+                                                    FUN_0003347c((int)uVar35,
                                                                  (int)((ulonglong)uVar35 >> 0x20),
                                                                  puVar5,pcVar7);
                                                     uVar32 = sleep(1);
-                                                    uVar35 = FUN_0004a400(uVar32,extraout_r1_38);
-                                                    uVar35 = FUN_0004a50c((int)uVar35,
+                                                    uVar35 = FUN_0004d5c4(uVar32,extraout_r1_38);
+                                                    uVar35 = FUN_0004d6d0((int)uVar35,
                                                                           (int)((ulonglong)uVar35 >>
                                                                                0x20));
-                                                    uVar35 = FUN_0004a618((int)uVar35,
+                                                    uVar35 = FUN_0004d7dc((int)uVar35,
                                                                           (int)((ulonglong)uVar35 >>
                                                                                0x20));
-                                                    uVar35 = FUN_0004a2f4((int)uVar35,
+                                                    uVar35 = FUN_0004d4b8((int)uVar35,
                                                                           (int)((ulonglong)uVar35 >>
                                                                                0x20));
-                                                    uVar35 = FUN_0004a744((int)uVar35,
+                                                    uVar35 = FUN_0004d908((int)uVar35,
                                                                           (int)((ulonglong)uVar35 >>
                                                                                0x20));
-                                                    FUN_0004a1f8((int)uVar35,
+                                                    FUN_0004d3bc((int)uVar35,
                                                                  (int)((ulonglong)uVar35 >> 0x20));
                                                   }
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"hapd");
                                                     if (iVar8 == 0) {
                                                       if ((uVar31 & 1) != 0) {
-                                                        FUN_0014df80();
+                                                        FUN_00156000();
                                                       }
                                                       if ((uVar31 & 2) != 0) {
-                                                        FUN_0014f3c8(1);
+                                                        FUN_00157574(1);
                                                       }
                                                     }
                                                     else {
                                                       iVar8 = strcmp(pcVar6,"wpasupp_qis");
                                                       if (iVar8 == 0) {
                                                         iVar34 = nvram_get_int("reload_wait");
                                                         if (iVar34 == 0) {
                                                           iVar34 = 5;
                                                         }
-                                                        bVar4 = FUN_0003dff4("x_Setting","0");
+                                                        bVar4 = FUN_0003f6e8("x_Setting","0");
                                                         uVar32 = (uint)bVar4;
                                                         if (uVar32 != 0) {
-                                                          bVar4 = FUN_0003dff4("stop_preauth","1");
+                                                          bVar4 = FUN_0003f6e8("stop_preauth","1");
                                                           uVar32 = (uint)!bVar4;
                                                         }
-                                                        if (local_1600[1] == (char *)0x0) {
+                                                        if (local_15fc == (char **)0x0) {
                                                           iVar8 = -1;
                                                         }
                                                         else {
-                                                          iVar8 = atoi(local_1600[1]);
-                                                        }
-                                                        bVar4 = FUN_0003e29c();
+                                                          iVar8 = atoi((char *)local_15fc);
+                                                        }
+                                                        bVar4 = FUN_0003fa9c();
                                                         cprintf(
                                                   "%s wpasupp_qis..pre_auth:%d, wl%d, cli:%d(%d/%d), reload_wait:%d\n"
                                                   ,"handle_notifications",uVar32,iVar8,1,0,bVar4,
                                                   iVar34);
                                                   if (uVar32 == 0) {
                                                     cprintf(
                                                   "%s wlc%d stop_preauth due not initial settings\n"
                                                   ,"handle_notifications",iVar8);
                                                   nvram_set("wpas0_reason","completed");
                                                   nvram_set("wpas1_reason","completed");
                                                   nvram_set("wpas2_reason","completed");
                                                   killall("psta_monitor",0xf);
                                                   }
                                                   else {
                                                     nvram_set("wpas0_reason","");
                                                     nvram_set("wpas1_reason","");
                                                     nvram_set("wpas2_reason","");
                                                   }
                                                   if ((uVar32 & uVar31) != 0) {
-                                                    FUN_0014f130(iVar8);
+                                                    FUN_001572dc(iVar8);
                                                   }
                                                   if ((uVar32 & uVar31 >> 1) != 0) {
-                                                    FUN_0014f228(iVar8,1);
+                                                    FUN_001573d4(iVar8,1);
                                                     if (iVar8 < 0) {
                                                       for (iVar34 = 0; iVar33 = num_of_wl_if(),
                                                           iVar34 < iVar33; iVar34 = iVar34 + 1) {
                                                         snprintf((char *)&local_1420,0x10,"wlc%d_",
                                                                  iVar34);
-                                                        FUN_0003e15c((char *)&local_1420,"ssid",
+                                                        FUN_0003f850((char *)&local_1420,"ssid",
                                                                      (char *)&local_1020);
-                                                        pcVar6 = FUN_0003dfd4();
+                                                        pcVar6 = FUN_0003f6c8();
                                                         if (*pcVar6 != '\0') {
-                                                          FUN_000b15b0(iVar34,0,0);
-                                                          FUN_0014f228(iVar8,2);
+                                                          FUN_000b733c(iVar34,0,0);
+                                                          FUN_001573d4(iVar8,2);
                                                         }
                                                       }
                                                     }
                                                     else {
                                                       snprintf((char *)&local_1420,0x10,"wlc%d_",
                                                                iVar8);
-                                                      FUN_0003e15c((char *)&local_1420,"ssid",
+                                                      FUN_0003f850((char *)&local_1420,"ssid",
                                                                    (char *)&local_1020);
-                                                      pcVar6 = FUN_0003dfd4();
+                                                      pcVar6 = FUN_0003f6c8();
                                                       if (*pcVar6 == '\0') {
                                                         cprintf(
                                                   "skip wpasupp (%d) due invalid ssid\n",iVar8);
                                                   }
                                                   else {
-                                                    bVar4 = FUN_0003dff4("x_Setting","1");
+                                                    bVar4 = FUN_0003f6e8("x_Setting","1");
                                                     if (bVar4) {
                                                       cprintf("backup current wlc%d settings\n",
                                                               iVar8);
                                                       snprintf((char *)&local_1420,0x10,"wlr%d_",
                                                                iVar8);
-                                                      snprintf((char *)&local_1220,0x10,"wl%d_",
-                                                               iVar8);
-                                                      FUN_0003e15c((char *)&local_1220,"akm",
+                                                      snprintf((char *)local_1220,0x10,"wl%d_",iVar8
+                                                              );
+                                                      FUN_0003f850((char *)local_1220,"akm",
                                                                    (char *)&local_1020);
-                                                      puVar5 = FUN_0003dfd4();
-                                                      uVar10 = FUN_0003e15c((char *)&local_1420,
+                                                      puVar5 = FUN_0003f6c8();
+                                                      uVar10 = FUN_0003f850((char *)&local_1420,
                                                                             "akm",(char *)&
                                                   local_1020);
                                                   nvram_set(uVar10,puVar5);
-                                                  FUN_0003e15c((char *)&local_1220,"wpa_psk",
+                                                  FUN_0003f850((char *)local_1220,"wpa_psk",
                                                                (char *)&local_1020);
-                                                  puVar5 = FUN_0003dfd4();
-                                                  uVar10 = FUN_0003e15c((char *)&local_1420,
+                                                  puVar5 = FUN_0003f6c8();
+                                                  uVar10 = FUN_0003f850((char *)&local_1420,
                                                                         "wpa_psk",
                                                                         (char *)&local_1020);
                                                   nvram_set(uVar10,puVar5);
-                                                  FUN_0003e15c((char *)&local_1220,"ssid",
+                                                  FUN_0003f850((char *)local_1220,"ssid",
                                                                (char *)&local_1020);
-                                                  puVar5 = FUN_0003dfd4();
-                                                  uVar10 = FUN_0003e15c((char *)&local_1420,"ssid",
+                                                  puVar5 = FUN_0003f6c8();
+                                                  uVar10 = FUN_0003f850((char *)&local_1420,"ssid",
                                                                         (char *)&local_1020);
                                                   nvram_set(uVar10,puVar5);
-                                                  FUN_0003e15c((char *)&local_1220,"crypto",
+                                                  FUN_0003f850((char *)local_1220,"crypto",
                                                                (char *)&local_1020);
-                                                  puVar5 = FUN_0003dfd4();
-                                                  uVar10 = FUN_0003e15c((char *)&local_1420,"crypto"
+                                                  puVar5 = FUN_0003f6c8();
+                                                  uVar10 = FUN_0003f850((char *)&local_1420,"crypto"
                                                                         ,(char *)&local_1020);
                                                   nvram_set(uVar10,puVar5);
-                                                  FUN_0003e15c((char *)&local_1220,"wep",
+                                                  FUN_0003f850((char *)local_1220,"wep",
                                                                (char *)&local_1020);
-                                                  puVar5 = FUN_0003dfd4();
-                                                  uVar10 = FUN_0003e15c((char *)&local_1420,"wep",
+                                                  puVar5 = FUN_0003f6c8();
+                                                  uVar10 = FUN_0003f850((char *)&local_1420,"wep",
                                                                         (char *)&local_1020);
                                                   nvram_set(uVar10,puVar5);
-                                                  FUN_0003e15c((char *)&local_1220,"wep_key",
+                                                  FUN_0003f850((char *)local_1220,"wep_key",
                                                                (char *)&local_1020);
-                                                  puVar5 = FUN_0003dfd4();
-                                                  uVar10 = FUN_0003e15c((char *)&local_1420,
+                                                  puVar5 = FUN_0003f6c8();
+                                                  uVar10 = FUN_0003f850((char *)&local_1420,
                                                                         "wep_key",
                                                                         (char *)&local_1020);
                                                   nvram_set(uVar10,puVar5);
                                                   }
-                                                  FUN_000b15b0(iVar8,0,0);
-                                                  FUN_0014f228(iVar8,2);
+                                                  FUN_000b733c(iVar8,0,0);
+                                                  FUN_001573d4(iVar8,2);
                                                   }
                                                   }
                                                   }
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"wpasupp");
                                                     if (iVar8 == 0) {
-                                                      bVar4 = FUN_0003e29c();
-                                                      ppcVar16 = (char **)(uint)bVar4;
-                                                      ppcVar15 = &local_1020;
+                                                      bVar4 = FUN_0003fa9c();
+                                                      ppcVar19 = (char **)(uint)bVar4;
+                                                      ppcVar16 = &local_1020;
                                                       uVar32 = nvram_get_int("reload_wait");
                                                       if (uVar32 == 0) {
                                                         uVar32 = 5;
                                                       }
-                                                      if (local_1600[1] == (char *)0x0) {
+                                                      if (local_15fc == (char **)0x0) {
                                                         puVar5 = (undefined *)0xffffffff;
                                                       }
                                                       else {
-                                                        puVar5 = (undefined *)atoi(local_1600[1]);
-                                                      }
-                                                      ppcVar27 = ppcVar16;
-                                                      if (ppcVar16 != (char **)0x0) {
-                                                        ppcVar27 = (char **)0x1;
+                                                        puVar5 = (undefined *)
+                                                                 atoi((char *)local_15fc);
+                                                      }
+                                                      ppcVar15 = ppcVar19;
+                                                      if (ppcVar19 != (char **)0x0) {
+                                                        ppcVar15 = (char **)0x1;
                                                       }
                                                       cprintf(
                                                   "%s wpasupp.. wl%d, cli:%d, reload_wait:%d\n",
-                                                  "handle_notifications",puVar5,ppcVar27,uVar32);
+                                                  "handle_notifications",puVar5,ppcVar15,uVar32);
                                                   nvram_set("wpas0_reason","");
                                                   nvram_set("wpas1_reason","");
                                                   nvram_set("wpas2_reason","");
                                                   if ((uVar31 & 1) != 0) {
-                                                    if (ppcVar16 == (char **)0x0) {
-                                                      FUN_0014f084();
+                                                    if (ppcVar19 == (char **)0x0) {
+                                                      FUN_00157230();
                                                     }
                                                     else {
-                                                      FUN_0014f130((int)puVar5);
+                                                      FUN_001572dc((int)puVar5);
                                                     }
                                                   }
                                                   if ((uVar31 & 2) != 0) {
-                                                    if (ppcVar16 == (char **)0x0) {
-                                                      bVar4 = FUN_0003dff4("preauth","1");
+                                                    if (ppcVar19 == (char **)0x0) {
+                                                      bVar4 = FUN_0003f6e8("preauth","1");
                                                       if (bVar4) {
                                                         cprintf("Go preauth in ap mode.\n");
                                                         local_1020 = DAT_40;
-                                                        local_101c[0] = (char *)DAT_41;
-                                                        local_101c[1] = (char *)DAT_42;
-                                                        _eval(ppcVar15,0,0,0);
+                                                        local_101c = DAT_41;
+                                                        local_1018 = (char *)DAT_42;
+                                                        _eval(ppcVar16,0,0,0);
                                                         local_1020 = DAT_43;
-                                                        local_101c[0] = DAT_44;
-                                                        local_101c[1] = DAT_45;
+                                                        local_101c = DAT_44;
+                                                        local_1018 = DAT_45;
                                                         local_1014 = DAT_46;
-                                                        _eval(ppcVar15,0,0,0);
+                                                        _eval(ppcVar16,0,0,0);
                                                         if ((int)puVar5 < 0) {
                                                           for (iVar34 = 0; iVar8 = num_of_wl_if(),
                                                               iVar34 < iVar8; iVar34 = iVar34 + 1) {
-                                                            ppcVar16 = (char **)"wl%d_mode";
-                                                            snprintf((char *)ppcVar15,0x80,
+                                                            ppcVar19 = (char **)"wl%d_mode";
+                                                            snprintf((char *)ppcVar16,0x80,
                                                                      "wl%d_mode",iVar34);
-                                                            nvram_set(ppcVar15,&DAT_47);
+                                                            nvram_set(ppcVar16,&DAT_47);
                                                           }
                                                           pcVar6 = "wlc%d_";
                                                           for (pcVar7 = (char *)0x0;
                                                               uVar35 = num_of_wl_if(),
                                                               (int)pcVar7 < (int)uVar35;
                                                               pcVar7 = pcVar7 + 1) {
                                                             pcVar6 = pcVar7;
                                                             snprintf((char *)&local_1420,0x10,
                                                                      "wlc%d_");
-                                                            FUN_0003e15c((char *)&local_1420,"ssid",
-                                                                         (char *)ppcVar15);
-                                                            pbVar13 = FUN_0003dfd4();
-                                                            ppcVar16 = (char **)(uint)*pbVar13;
-                                                            if (ppcVar16 != (char **)0x0) {
-                                                              ppcVar16 = (char **)0x1;
-                                                              FUN_000b15b0((int)pcVar7,1,1);
+                                                            FUN_0003f850((char *)&local_1420,"ssid",
+                                                                         (char *)ppcVar16);
+                                                            pbVar13 = FUN_0003f6c8();
+                                                            ppcVar19 = (char **)(uint)*pbVar13;
+                                                            if (ppcVar19 != (char **)0x0) {
+                                                              ppcVar19 = (char **)0x1;
+                                                              FUN_000b733c((int)pcVar7,1,1);
                                                             }
                                                           }
                                                         }
                                                         else {
-                                                          snprintf((char *)ppcVar15,0x80,"wl%d_mode"
+                                                          snprintf((char *)ppcVar16,0x80,"wl%d_mode"
                                                                    ,puVar5);
-                                                          nvram_set(ppcVar15,&DAT_47);
+                                                          nvram_set(ppcVar16,&DAT_47);
                                                           snprintf((char *)&local_1420,0x10,"wlc%d_"
                                                                    ,puVar5);
-                                                          ppcVar16 = ppcVar15;
-                                                          FUN_0003e15c((char *)&local_1420,"ssid",
-                                                                       (char *)ppcVar15);
-                                                          pbVar13 = FUN_0003dfd4();
+                                                          ppcVar19 = ppcVar16;
+                                                          FUN_0003f850((char *)&local_1420,"ssid",
+                                                                       (char *)ppcVar16);
+                                                          pbVar13 = FUN_0003f6c8();
                                                           pcVar6 = (char *)(uint)*pbVar13;
                                                           if (pcVar6 == (char *)0x0) {
                                                             uVar35 = cprintf(
                                                   "skip wpasupp (%d) due invalid ssid\n",puVar5);
                                                   }
                                                   else {
-                                                    ppcVar16 = (char **)0x1;
-                                                    uVar35 = FUN_000b15b0((int)puVar5,1,1);
-                                                  }
-                                                  }
-                                                  FUN_0007be08((int)uVar35,
+                                                    ppcVar19 = (char **)0x1;
+                                                    uVar35 = FUN_000b733c((int)puVar5,1,1);
+                                                  }
+                                                  }
+                                                  FUN_0007f508((int)uVar35,
                                                                (int)((ulonglong)uVar35 >> 0x20),
-                                                               ppcVar16,pcVar6);
+                                                               ppcVar19,pcVar6);
                                                   iVar34 = 0;
-                                                  local_1220 = DAT_48;
-                                                  local_121c[0] = DAT_49;
-                                                  local_121c[1] = DAT_50;
-                                                  _eval(&local_1220,0,0);
+                                                  local_1220[0] = DAT_48;
+                                                  local_1220[1] = DAT_49;
+                                                  local_1220[2] = DAT_50;
+                                                  _eval(local_1220,0,0);
                                                   sleep(uVar32);
-                                                  FUN_0014f3c8(2);
+                                                  FUN_00157574(2);
                                                   do {
                                                     if ((int)puVar5 < 0) {
                                                       puVar28 = (undefined *)0x0;
                                                       pcVar6 = (char *)apcStack_15a0;
-                                                      puVar19 = puVar28;
+                                                      puVar20 = puVar28;
                                                       while (iVar8 = num_of_wl_if(),
                                                             (int)puVar28 < iVar8) {
                                                         snprintf((char *)apcStack_15a0,0x10,
                                                                  "wpas%d_reason");
-                                                        pbVar13 = FUN_0003dfd4();
+                                                        pbVar13 = FUN_0003f6c8();
                                                         puVar28 = puVar28 + 1;
                                                         pcVar6 = (char *)(uint)*pbVar13;
                                                         if ((char **)pcVar6 != (char **)0x0) {
-                                                          puVar19 = puVar19 + 1;
-                                                        }
-                                                      }
-                                                      puVar20 = (undefined *)num_of_wl_if();
-                                                      if (puVar20 == puVar19) break;
+                                                          puVar20 = puVar20 + 1;
+                                                        }
+                                                      }
+                                                      puVar21 = (undefined *)num_of_wl_if();
+                                                      if (puVar21 == puVar20) break;
                                                     }
                                                     else {
                                                       pcVar6 = "wpas%d_reason";
                                                       snprintf((char *)apcStack_15a0,0x10,
                                                                "wpas%d_reason",puVar5);
-                                                      pbVar13 = FUN_0003dfd4();
+                                                      pbVar13 = FUN_0003f6c8();
                                                       puVar28 = (undefined *)(uint)*pbVar13;
                                                       if (puVar28 != (undefined *)0x0) break;
                                                     }
                                                     iVar34 = iVar34 + 1;
                                                   } while (iVar34 != 10);
                                                   cprintf("\n..%ds elapsed.\n",iVar34);
-                                                  puVar19 = FUN_0003dfd4();
-                                                  cprintf("chk wpas0 reason=%s\n",puVar19);
-                                                  puVar19 = FUN_0003dfd4();
-                                                  cprintf("chk wpas1 reason=%s\n",puVar19);
-                                                  puVar19 = FUN_0003dfd4();
-                                                  cprintf("chk wpas2 reason=%s\n",puVar19);
+                                                  puVar20 = FUN_0003f6c8();
+                                                  cprintf("chk wpas0 reason=%s\n",puVar20);
+                                                  puVar20 = FUN_0003f6c8();
+                                                  cprintf("chk wpas1 reason=%s\n",puVar20);
+                                                  puVar20 = FUN_0003f6c8();
+                                                  cprintf("chk wpas2 reason=%s\n",puVar20);
                                                   if ((int)puVar5 < 0) {
                                                     for (iVar34 = 0; uVar35 = num_of_wl_if(),
                                                         puVar5 = puVar28, iVar34 < (int)uVar35;
                                                         iVar34 = iVar34 + 1) {
                                                       snprintf((char *)&local_1420,0x10,"wl%d_",
                                                                iVar34);
-                                                      snprintf((char *)&local_1220,0x10,"wlb%d_",
+                                                      snprintf((char *)local_1220,0x10,"wlb%d_",
                                                                iVar34);
-                                                      uVar10 = FUN_0003e15c((char *)&local_1420,
-                                                                            "mode",(char *)ppcVar15)
+                                                      uVar10 = FUN_0003f850((char *)&local_1420,
+                                                                            "mode",(char *)ppcVar16)
                                                       ;
                                                       nvram_set(uVar10,"ap");
-                                                      FUN_0003e15c((char *)&local_1220,"akm",
-                                                                   (char *)ppcVar15);
-                                                      puVar5 = FUN_0003dfd4();
-                                                      uVar10 = FUN_0003e15c((char *)&local_1420,
-                                                                            "akm",(char *)ppcVar15);
+                                                      FUN_0003f850((char *)local_1220,"akm",
+                                                                   (char *)ppcVar16);
+                                                      puVar5 = FUN_0003f6c8();
+                                                      uVar10 = FUN_0003f850((char *)&local_1420,
+                                                                            "akm",(char *)ppcVar16);
                                                       nvram_set(uVar10,puVar5);
-                                                      FUN_0003e15c((char *)&local_1220,"wpa_psk",
-                                                                   (char *)ppcVar15);
-                                                      puVar5 = FUN_0003dfd4();
-                                                      uVar10 = FUN_0003e15c((char *)&local_1420,
+                                                      FUN_0003f850((char *)local_1220,"wpa_psk",
+                                                                   (char *)ppcVar16);
+                                                      puVar5 = FUN_0003f6c8();
+                                                      uVar10 = FUN_0003f850((char *)&local_1420,
                                                                             "wpa_psk",
-                                                                            (char *)ppcVar15);
+                                                                            (char *)ppcVar16);
                                                       nvram_set(uVar10,puVar5);
-                                                      FUN_0003e15c((char *)&local_1220,"ssid",
-                                                                   (char *)ppcVar15);
-                                                      puVar5 = FUN_0003dfd4();
-                                                      uVar10 = FUN_0003e15c((char *)&local_1420,
-                                                                            "ssid",(char *)ppcVar15)
+                                                      FUN_0003f850((char *)local_1220,"ssid",
+                                                                   (char *)ppcVar16);
+                                                      puVar5 = FUN_0003f6c8();
+                                                      uVar10 = FUN_0003f850((char *)&local_1420,
+                                                                            "ssid",(char *)ppcVar16)
                                                       ;
                                                       nvram_set(uVar10,puVar5);
-                                                      FUN_0003e15c((char *)&local_1220,"crypto",
-                                                                   (char *)ppcVar15);
-                                                      puVar5 = FUN_0003dfd4();
-                                                      uVar10 = FUN_0003e15c((char *)&local_1420,
+                                                      FUN_0003f850((char *)local_1220,"crypto",
+                                                                   (char *)ppcVar16);
+                                                      puVar5 = FUN_0003f6c8();
+                                                      uVar10 = FUN_0003f850((char *)&local_1420,
                                                                             "crypto",(char *)
-                                                  ppcVar15);
+                                                  ppcVar16);
                                                   nvram_set(uVar10,puVar5);
-                                                  FUN_0003e15c((char *)&local_1220,"wep",
-                                                               (char *)ppcVar15);
-                                                  puVar5 = FUN_0003dfd4();
-                                                  uVar10 = FUN_0003e15c((char *)&local_1420,"wep",
-                                                                        (char *)ppcVar15);
+                                                  FUN_0003f850((char *)local_1220,"wep",
+                                                               (char *)ppcVar16);
+                                                  puVar5 = FUN_0003f6c8();
+                                                  uVar10 = FUN_0003f850((char *)&local_1420,"wep",
+                                                                        (char *)ppcVar16);
                                                   nvram_set(uVar10,puVar5);
-                                                  FUN_0003e15c((char *)&local_1220,"wep_key",
-                                                               (char *)ppcVar15);
-                                                  puVar28 = FUN_0003dfd4();
-                                                  pcVar6 = (char *)ppcVar15;
-                                                  uVar10 = FUN_0003e15c((char *)&local_1420,
-                                                                        "wep_key",(char *)ppcVar15);
+                                                  FUN_0003f850((char *)local_1220,"wep_key",
+                                                               (char *)ppcVar16);
+                                                  puVar28 = FUN_0003f6c8();
+                                                  pcVar6 = (char *)ppcVar16;
+                                                  uVar10 = FUN_0003f850((char *)&local_1420,
+                                                                        "wep_key",(char *)ppcVar16);
                                                   nvram_set(uVar10,puVar28);
                                                   }
                                                   }
                                                   else {
                                                     snprintf((char *)&local_1420,0x10,"wl%d_",puVar5
                                                             );
-                                                    snprintf((char *)&local_1220,0x10,"wlb%d_");
-                                                    uVar10 = FUN_0003e15c((char *)&local_1420,"mode"
-                                                                          ,(char *)ppcVar15);
+                                                    snprintf((char *)local_1220,0x10,"wlb%d_");
+                                                    uVar10 = FUN_0003f850((char *)&local_1420,"mode"
+                                                                          ,(char *)ppcVar16);
                                                     nvram_set(uVar10,"ap");
-                                                    FUN_0003e15c((char *)&local_1220,"akm",
-                                                                 (char *)ppcVar15);
-                                                    puVar19 = FUN_0003dfd4();
-                                                    uVar10 = FUN_0003e15c((char *)&local_1420,"akm",
-                                                                          (char *)ppcVar15);
-                                                    nvram_set(uVar10,puVar19);
-                                                    FUN_0003e15c((char *)&local_1220,"wpa_psk",
-                                                                 (char *)ppcVar15);
-                                                    puVar19 = FUN_0003dfd4();
-                                                    uVar10 = FUN_0003e15c((char *)&local_1420,
-                                                                          "wpa_psk",(char *)ppcVar15
+                                                    FUN_0003f850((char *)local_1220,"akm",
+                                                                 (char *)ppcVar16);
+                                                    puVar20 = FUN_0003f6c8();
+                                                    uVar10 = FUN_0003f850((char *)&local_1420,"akm",
+                                                                          (char *)ppcVar16);
+                                                    nvram_set(uVar10,puVar20);
+                                                    FUN_0003f850((char *)local_1220,"wpa_psk",
+                                                                 (char *)ppcVar16);
+                                                    puVar20 = FUN_0003f6c8();
+                                                    uVar10 = FUN_0003f850((char *)&local_1420,
+                                                                          "wpa_psk",(char *)ppcVar16
                                                                          );
-                                                    nvram_set(uVar10,puVar19);
-                                                    FUN_0003e15c((char *)&local_1220,"ssid",
-                                                                 (char *)ppcVar15);
-                                                    puVar19 = FUN_0003dfd4();
-                                                    uVar10 = FUN_0003e15c((char *)&local_1420,"ssid"
-                                                                          ,(char *)ppcVar15);
-                                                    nvram_set(uVar10,puVar19);
-                                                    FUN_0003e15c((char *)&local_1220,"crypto",
-                                                                 (char *)ppcVar15);
-                                                    puVar19 = FUN_0003dfd4();
-                                                    uVar10 = FUN_0003e15c((char *)&local_1420,
-                                                                          "crypto",(char *)ppcVar15)
+                                                    nvram_set(uVar10,puVar20);
+                                                    FUN_0003f850((char *)local_1220,"ssid",
+                                                                 (char *)ppcVar16);
+                                                    puVar20 = FUN_0003f6c8();
+                                                    uVar10 = FUN_0003f850((char *)&local_1420,"ssid"
+                                                                          ,(char *)ppcVar16);
+                                                    nvram_set(uVar10,puVar20);
+                                                    FUN_0003f850((char *)local_1220,"crypto",
+                                                                 (char *)ppcVar16);
+                                                    puVar20 = FUN_0003f6c8();
+                                                    uVar10 = FUN_0003f850((char *)&local_1420,
+                                                                          "crypto",(char *)ppcVar16)
                                                     ;
-                                                    nvram_set(uVar10,puVar19);
-                                                    FUN_0003e15c((char *)&local_1220,"wep",
-                                                                 (char *)ppcVar15);
-                                                    puVar19 = FUN_0003dfd4();
-                                                    uVar10 = FUN_0003e15c((char *)&local_1420,"wep",
-                                                                          (char *)ppcVar15);
-                                                    nvram_set(uVar10,puVar19);
-                                                    FUN_0003e15c((char *)&local_1220,"wep_key",
-                                                                 (char *)ppcVar15);
-                                                    puVar19 = FUN_0003dfd4();
-                                                    uVar10 = FUN_0003e15c((char *)&local_1420,
-                                                                          "wep_key",(char *)ppcVar15
+                                                    nvram_set(uVar10,puVar20);
+                                                    FUN_0003f850((char *)local_1220,"wep",
+                                                                 (char *)ppcVar16);
+                                                    puVar20 = FUN_0003f6c8();
+                                                    uVar10 = FUN_0003f850((char *)&local_1420,"wep",
+                                                                          (char *)ppcVar16);
+                                                    nvram_set(uVar10,puVar20);
+                                                    FUN_0003f850((char *)local_1220,"wep_key",
+                                                                 (char *)ppcVar16);
+                                                    puVar20 = FUN_0003f6c8();
+                                                    uVar10 = FUN_0003f850((char *)&local_1420,
+                                                                          "wep_key",(char *)ppcVar16
                                                                          );
-                                                    uVar35 = nvram_set(uVar10,puVar19);
-                                                    pcVar6 = (char *)ppcVar15;
-                                                  }
-                                                  FUN_0007be08((int)uVar35,
+                                                    uVar35 = nvram_set(uVar10,puVar20);
+                                                    pcVar6 = (char *)ppcVar16;
+                                                  }
+                                                  FUN_0007f508((int)uVar35,
                                                                (int)((ulonglong)uVar35 >> 0x20),
                                                                pcVar6,puVar5);
                                                   ppcStack_15e0 = DAT_48;
                                                   ppcStack_15dc = DAT_49;
                                                   ppcStack_15d8 = DAT_50;
-                                                  uVar22 = 0;
+                                                  uVar23 = 0;
                                                   uVar10 = 0;
                                                   _eval(&ppcStack_15e0,0);
                                                   sleep(uVar32);
-                                                  FUN_0014f084();
-                                                  iVar34 = FUN_0014f3c8(1);
-                                                  FUN_0004bef8(iVar34,extraout_r1_39,uVar10,uVar22);
+                                                  FUN_00157230();
+                                                  iVar34 = FUN_00157574(1);
+                                                  FUN_0004f078(iVar34,extraout_r1_39,uVar10,uVar23);
                                                   }
                                                   else {
                                                     cprintf("Don\'t preauth in ap mode.\n");
                                                   }
                                                   }
                                                   else {
-                                                    FUN_0014f228((int)puVar5,1);
+                                                    FUN_001573d4((int)puVar5,1);
                                                     if ((int)puVar5 < 0) {
                                                       for (iVar34 = 0; iVar8 = num_of_wl_if(),
                                                           iVar34 < iVar8; iVar34 = iVar34 + 1) {
                                                         snprintf((char *)&local_1420,0x10,"wlc%d_",
                                                                  iVar34);
-                                                        FUN_0003e15c((char *)&local_1420,"ssid",
-                                                                     (char *)ppcVar15);
-                                                        pcVar6 = FUN_0003dfd4();
+                                                        FUN_0003f850((char *)&local_1420,"ssid",
+                                                                     (char *)ppcVar16);
+                                                        pcVar6 = FUN_0003f6c8();
                                                         if (*pcVar6 != '\0') {
-                                                          FUN_000b15b0(iVar34,0,0);
-                                                          FUN_0014f228((int)puVar5,2);
+                                                          FUN_000b733c(iVar34,0,0);
+                                                          FUN_001573d4((int)puVar5,2);
                                                         }
                                                       }
                                                     }
                                                     else {
                                                       snprintf((char *)&local_1420,0x10,"wlc%d_",
                                                                puVar5);
-                                                      FUN_0003e15c((char *)&local_1420,"ssid",
-                                                                   (char *)ppcVar15);
-                                                      pcVar6 = FUN_0003dfd4();
+                                                      FUN_0003f850((char *)&local_1420,"ssid",
+                                                                   (char *)ppcVar16);
+                                                      pcVar6 = FUN_0003f6c8();
                                                       if (*pcVar6 == '\0') {
                                                         cprintf(
                                                   "skip wpasupp (%d) due invalid ssid\n",puVar5);
                                                   }
                                                   else {
-                                                    FUN_000b15b0((int)puVar5,0,0);
-                                                    FUN_0014f228((int)puVar5,2);
+                                                    FUN_000b733c((int)puVar5,0,0);
+                                                    FUN_001573d4((int)puVar5,2);
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"wlcmode");
                                                     if (iVar8 == 0) {
-                                                      if (local_1600[1] != (char *)0x0) {
-                                                        iVar34 = atoi(local_1600[1]);
+                                                      if (local_15fc != (char **)0x0) {
+                                                        iVar34 = atoi((char *)local_15fc);
                                                         iVar8 = nvram_get_int("wlc_mode");
                                                         if (iVar34 != iVar8) {
-                                                          iVar34 = atoi(local_1600[1]);
+                                                          iVar34 = atoi((char *)local_15fc);
                                                           nvram_set_int("wlc_mode",iVar34);
-                                                          bVar4 = FUN_0003dff4("lan_proto","dhcp");
+                                                          bVar4 = FUN_0003f6e8("lan_proto","dhcp");
                                                           if ((bVar4) &&
-                                                             (iVar34 = atoi(local_1600[1]),
+                                                             (iVar34 = atoi((char *)local_15fc),
                                                              iVar34 == 0)) {
                                                             uVar10 = nvram_default_get("lan_ipaddr")
                                                             ;
                                                             nvram_set("lan_ipaddr",uVar10);
                                                           }
-                                                          FUN_00042868();
-                                                          FUN_000427fc();
-                                                          FUN_00047d68();
-                                                          FUN_000477bc();
-                                                          FUN_000c6aa4();
-                                                          FUN_0004c778();
-                                                          FUN_0004cd30();
-                                                          FUN_0004ca64();
-                                                          FUN_000f4a20();
-                                                          FUN_0003ef20();
-                                                          FUN_00032474();
-                                                          FUN_00031d5c();
-                                                          FUN_0003203c();
-                                                          FUN_00031da0();
-                                                          FUN_00031b44(8);
-                                                          FUN_000322d4();
-                                                          FUN_00042c98();
-                                                          FUN_00047808();
-                                                          uVar35 = FUN_000477b4();
-                                                          FUN_0004c7a4((int)uVar35,
+                                                          FUN_000445f0();
+                                                          FUN_00044584();
+                                                          FUN_0004a0dc();
+                                                          FUN_0004a090();
+                                                          FUN_000ccb44();
+                                                          FUN_0004f8f8();
+                                                          FUN_0004fedc();
+                                                          FUN_0004fbe4();
+                                                          FUN_000fc434();
+                                                          FUN_000406f4();
+                                                          FUN_0003320c();
+                                                          FUN_00032af4();
+                                                          FUN_00032dd4();
+                                                          FUN_00032b38();
+                                                          FUN_000328dc(8);
+                                                          FUN_0003306c();
+                                                          FUN_00044a20();
+                                                          FUN_0004cc68();
+                                                          uVar35 = FUN_0004a088();
+                                                          FUN_0004f924((int)uVar35,
                                                                        (int)((ulonglong)uVar35 >>
                                                                             0x20));
-                                                          uVar10 = FUN_000c6528();
-                                                          FUN_00042894(uVar10);
-                                                          FUN_0004280c(0);
+                                                          uVar10 = FUN_000cc5c8();
+                                                          FUN_0004461c(uVar10);
+                                                          FUN_00044594(0);
                                                         }
                                                       }
                                                     }
                                                     else {
                                                       iVar8 = strcmp(pcVar6,"restore");
                                                       if (iVar8 == 0) {
-                                                        if (local_1600[1] != (char *)0x0) {
-                                                          FUN_00025c5c(local_1600[1]);
+                                                        if (local_15fc != (char **)0x0) {
+                                                          FUN_0002699c((char *)local_15fc);
                                                         }
                                                       }
                                                       else {
                                                         iVar8 = strcmp(pcVar6,"chpass");
                                                         if (iVar8 == 0) {
-                                                          thunk_FUN_0003e6cc();
+                                                          thunk_FUN_0003fea0();
                                                         }
                                                         else {
                                                           iVar8 = strcmp(pcVar6,"wan_disconnect");
                                                           if (iVar8 == 0) {
                                                             logmessage_normal("wan",
                                                   "disconnected manually");
-                                                  uVar35 = FUN_00048b8c();
-                                                  FUN_0003a864((int)uVar35,
+                                                  uVar35 = FUN_0004adb4();
+                                                  FUN_0003be70((int)uVar35,
                                                                (int)((ulonglong)uVar35 >> 0x20),
                                                                puVar5,pcVar7);
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"wan_connect");
                                                     if (iVar8 == 0) {
                                                       logmessage_normal("wan","connected manually");
                                                       iVar34 = rename("/tmp/ppp/log",
                                                                       "/tmp/ppp/log.~");
-                                                      FUN_0003bd2c(iVar34,extraout_r1_40,puVar5,
+                                                      FUN_0003d41c(iVar34,extraout_r1_40,puVar5,
                                                                    pcVar7);
                                                       iVar34 = nvram_get("sw_mode");
                                                       if (iVar34 == 0) {
                                                         pcVar6 = (char *)nvram_default_get("sw_mode"
                                                                                           );
                                                         iVar34 = atoi(pcVar6);
                                                       }
                                                       else {
-                                                        iVar34 = nvram_get_int("sw_mode");
+                                                        iVar34 = nvram_get_int();
                                                       }
                                                       if (iVar34 == 1) {
-                                                        FUN_00046498();
-                                                      }
-                                                      FUN_00048260();
+                                                        FUN_00048d68();
+                                                      }
+                                                      FUN_0004a4b8();
                                                     }
                                                     else {
                                                       iVar8 = strncmp(pcVar6,"vpnclient",9);
                                                       if (iVar8 == 0) {
                                                         if ((uVar31 & 1) != 0) {
                                                           atoi(pcVar6 + 9);
                                                           stop_ovpn_client();
                                                         }
                                                         if ((uVar31 & 2) != 0) {
                                                           atoi(pcVar6 + 9);
                                                           start_ovpn_client();
                                                         }
                                                       }
                                                       else {
                                                         uVar10 = 9;
                                                         iVar8 = strncmp(pcVar6,"vpnserver",9);
                                                         if (iVar8 == 0) {
                                                           if ((uVar31 & 1) != 0) {
                                                             atoi(pcVar6 + 9);
                                                             stop_ovpn_server();
                                                           }
                                                           if ((uVar31 & 2) != 0) {
                                                             atoi(pcVar6 + 9);
                                                             start_ovpn_server();
                                                           }
                                                         }
                                                         else {
                                                           iVar8 = strcmp(pcVar6,"vpnd");
-                                                          uVar22 = extraout_r1_41;
+                                                          uVar23 = extraout_r1_41;
                                                           if ((iVar8 == 0) ||
                                                              (iVar8 = strcmp(pcVar6,"pptpd"),
-                                                             uVar22 = extraout_r1_42, iVar8 == 0)) {
+                                                             uVar23 = extraout_r1_42, iVar8 == 0)) {
                                                             if ((uVar31 & 1) != 0) {
-                                                              FUN_000c7af4(iVar8,uVar22,uVar10,
+                                                              FUN_000cdb04(iVar8,uVar23,uVar10,
                                                                            pcVar7);
                                                             }
                                                             if ((uVar31 & 2) != 0) {
-                                                              FUN_000c6d34();
+                                                              FUN_000ccdd4();
                                                               iVar34 = wan_primary_ifunit();
-                                                              FUN_0005ef4c(iVar34,0);
+                                                              FUN_000622f8(iVar34,0);
                                                             }
                                                           }
                                                           else {
                                                             iVar8 = strcmp(pcVar6,"openvpnd");
                                                             if (iVar8 == 0) {
                                                               uVar10 = nvram_get_int(
                                                   "vpn_server_unit");
                                                   if ((uVar31 & 1) != 0) {
                                                     stop_ovpn_server();
                                                   }
                                                   if ((uVar31 & 2) != 0) {
                                                     start_ovpn_server(uVar10);
                                                   }
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"dnsfilter");
                                                     if (iVar8 == 0) {
                                                       if ((uVar31 & 2) != 0) {
-                                                        FUN_00042c98();
+                                                        FUN_00044a20();
                                                         iVar34 = wan_primary_ifunit();
-                                                        FUN_0005ef4c(iVar34,0);
+                                                        FUN_000622f8(iVar34,0);
                                                       }
                                                     }
                                                     else {
                                                       iVar8 = strcmp(pcVar6,"sendfeedback");
                                                       if (iVar8 == 0) {
-                                                        FUN_000d3f9c();
+                                                        FUN_000da008();
                                                       }
                                                       else {
                                                         iVar8 = strcmp(pcVar6,"senddblog");
                                                         if (iVar8 == 0) {
-                                                          if (local_1600[1] == (char *)0x0) {
+                                                          if (local_15fc == (char **)0x0) {
                                                             puts(
                                                   "Usage: rc rc_service start_senddblog log_file");
                                                   }
                                                   else {
-                                                    FUN_000d23d4(local_1600[1]);
-                                                  }
-                                                  }
-                                                  else {
-                                                    pcVar12 = (char *)strcmp(pcVar6,"vpncall");
-                                                    if (pcVar12 == (char *)0x0) {
-                                                      local_1020 = pcVar12;
-                                                      memset(local_101c,0,0x1c);
+                                                    FUN_000d8438((char *)local_15fc);
+                                                  }
+                                                  }
+                                                  else {
+                                                    iVar8 = strcmp(pcVar6,"vpncall");
+                                                    if (iVar8 == 0) {
+                                                      local_1020 = (char *)0x0;
+                                                      memset(&local_101c,0,0x1c);
                                                       uVar10 = nvram_get_int("vpn_client_unit");
                                                       uVar32 = uVar31 & 1;
                                                       if (uVar32 != 0) {
-                                                        FUN_00117774(1);
-                                                        FUN_000e8548();
+                                                        FUN_0011e17c(1);
+                                                        FUN_000eff48();
                                                         do {
                                                           sprintf((char *)&local_1020,"vpnclient%d",
                                                                   uVar32);
                                                           iVar34 = pidof(&local_1020);
                                                           if (-1 < iVar34) {
                                                             stop_ovpn_client(uVar32);
                                                           }
                                                           uVar32 = uVar32 + 1;
                                                         } while (uVar32 != 6);
                                                       }
                                                       if ((uVar31 & 2) != 0) {
-                                                        FUN_000b9c10();
-                                                        bVar4 = FUN_0003dff4("vpnc_proto","openvpn")
+                                                        FUN_000bfbc8();
+                                                        bVar4 = FUN_0003f6e8("vpnc_proto","openvpn")
                                                         ;
                                                         if (bVar4) {
                                                           start_ovpn_client(uVar10);
-                                                          FUN_000e8548();
+                                                          FUN_000eff48();
                                                         }
                                                         else {
                                                           iVar34 = 1;
                                                           do {
                                                             sprintf((char *)&local_1020,
                                                                     "vpnclient%d",iVar34);
                                                             iVar8 = pidof(&local_1020);
                                                             if (-1 < iVar8) {
                                                               stop_ovpn_client(iVar34);
                                                             }
                                                             iVar34 = iVar34 + 1;
                                                           } while (iVar34 != 6);
-                                                          FUN_000e87d8();
+                                                          FUN_000f01d8();
                                                         }
                                                       }
                                                     }
                                                     else {
-                                                      iVar8 = strcmp(pcVar6,"sh");
-                                                      if (iVar8 == 0) {
-                                                        cprintf("%s: shell: %s\n",
-                                                                "handle_notifications",local_1600[1]
-                                                               );
-                                                        if (local_1600[1] != (char *)0x0) {
-                                                          system(local_1600[1]);
-                                                        }
-                                                      }
-                                                      else {
-                                                        iVar8 = strcmp(pcVar6,"app");
-                                                        if (iVar8 != 0) {
-                                                          iVar8 = strcmp(pcVar6,"lltd");
+                                                      iVar8 = strcmp(pcVar6,"app");
+                                                      if (iVar8 != 0) {
+                                                        iVar8 = strcmp(pcVar6,"lltd");
+                                                        if (iVar8 == 0) {
+                                                          lVar36 = (ulonglong)extraout_r1_43 << 0x20
+                                                          ;
+                                                          if ((uVar31 & 1) != 0) {
+                                                            lVar36 = FUN_0004b0c0();
+                                                          }
+                                                          if ((uVar31 & 2) != 0) {
+                                                            FUN_0004b044((int)lVar36,
+                                                                         (int)((ulonglong)lVar36 >>
+                                                                              0x20),uVar10,pcVar7);
+                                                          }
+                                                        }
+                                                        else {
+                                                          iVar8 = strcmp(pcVar6,"lltdc");
                                                           if (iVar8 == 0) {
-                                                            lVar36 = (ulonglong)extraout_r1_43 <<
-                                                                     0x20;
-                                                            if ((uVar31 & 1) != 0) {
-                                                              lVar36 = FUN_00048e98();
+                                                            if ((uVar31 & 2) != 0) {
+                                                              FUN_0004461c(0);
                                                             }
-                                                            if ((uVar31 & 2) != 0) {
-                                                              FUN_00048e1c((int)lVar36,
-                                                                           (int)((ulonglong)lVar36
-                                                                                >> 0x20),uVar10,
-                                                                           pcVar7);
-                                                            }
                                                           }
                                                           else {
-                                                            iVar8 = strcmp(pcVar6,"lltdc");
+                                                            iVar8 = strcmp(pcVar6,"getrealip");
                                                             if (iVar8 == 0) {
-                                                              if ((uVar31 & 2) != 0) {
-                                                                FUN_00042894(0);
-                                                              }
-                                                            }
-                                                            else {
-                                                              iVar8 = strcmp(pcVar6,"getrealip");
-                                                              if (iVar8 == 0) {
-                                                                pppcVar21 = &local_1220;
-                                                                puVar3 = &DAT_38;
-                                                                do {
-                                                                  puVar29 = puVar3;
-                                                                  pppcVar30 = pppcVar21;
-                                                                  ppcVar16 = (char **)puVar29[1];
-                                                                  *pppcVar30 = (char **)*puVar29;
-                                                                  pppcVar30[1] = ppcVar16;
-                                                                  pppcVar21 = pppcVar30 + 2;
-                                                                  puVar3 = puVar29 + 2;
-                                                                } while (puVar29 + 2 !=
-                                                                         &DAT_39);
-                                                                uVar2 = *(undefined2 *)(puVar29 + 3)
-                                                                ;
-                                                                pppcVar30[2] = (char **)0x58585858;
-                                                                *(undefined2 *)(pppcVar30 + 3) =
-                                                                     uVar2;
-                                                                iVar34 = atoi(local_1600[1]);
-                                                                local_1420.s_addr = 0x160778;
-                                                                local_141c = 0;
-                                                                snprintf((char *)&local_1220,0xe,
-                                                                         "wan%d_",iVar34);
-                                                                if ((uVar31 & 1) != 0) {
-                                                                  uVar10 = FUN_0003e15c((char *)&
+                                                              pppcVar22 = local_1220;
+                                                              puVar3 = &DAT_38;
+                                                              do {
+                                                                puVar29 = puVar3;
+                                                                pppcVar30 = pppcVar22;
+                                                                ppcVar19 = (char **)puVar29[1];
+                                                                *pppcVar30 = (char **)*puVar29;
+                                                                pppcVar30[1] = ppcVar19;
+                                                                pppcVar22 = pppcVar30 + 2;
+                                                                puVar3 = puVar29 + 2;
+                                                              } while (puVar29 + 2 != &DAT_39)
+                                                              ;
+                                                              uVar2 = *(undefined2 *)(puVar29 + 3);
+                                                              pppcVar30[2] = (char **)0x58585858;
+                                                              *(undefined2 *)(pppcVar30 + 3) = uVar2
+                                                              ;
+                                                              iVar34 = atoi((char *)local_15fc);
+                                                              local_1420.s_addr = 0x168c2e;
+                                                              local_141c = 0;
+                                                              snprintf((char *)local_1220,0xe,
+                                                                       "wan%d_",iVar34);
+                                                              if ((uVar31 & 1) != 0) {
+                                                                uVar10 = FUN_0003f850((char *)
                                                   local_1220,"realip_state",(char *)&local_1020);
                                                   nvram_set(uVar10,"0");
-                                                  uVar10 = FUN_0003e15c((char *)&local_1220,
+                                                  uVar10 = FUN_0003f850((char *)local_1220,
                                                                         "realip_ip",
                                                                         (char *)&local_1020);
                                                   nvram_set(uVar10,"");
                                                   }
                                                   if ((uVar31 & 2) != 0) {
                                                     _eval(&local_1420,">>/dev/null",0,apcStack_15a0)
                                                     ;
                                                   }
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"eco_guard");
                                                     if (iVar8 == 0) {
-                                                      FUN_0004c7e8();
+                                                      FUN_0004f968();
                                                     }
                                                     else {
                                                       iVar8 = strcmp(pcVar6,"ipsec_set");
                                                       if (iVar8 == 0) {
-                                                        FUN_000cb6e4(0);
+                                                        FUN_000d16f4(0);
                                                         iVar34 = wan_primary_ifunit();
-                                                        FUN_0005ef4c(iVar34,0);
-                                                        FUN_00042c98();
+                                                        FUN_000622f8(iVar34,0);
+                                                        FUN_00044a20();
                                                       }
                                                       else {
                                                         iVar8 = strcmp(pcVar6,"ipsec_start");
                                                         if (iVar8 == 0) {
-                                                          FUN_000cb6e4(2);
+                                                          FUN_000d16f4(2);
                                                           iVar34 = wan_primary_ifunit();
-                                                          FUN_0005ef4c(iVar34,0);
-                                                          FUN_00042c98();
+                                                          FUN_000622f8(iVar34,0);
+                                                          FUN_00044a20();
                                                         }
                                                         else {
                                                           iVar8 = strcmp(pcVar6,"ipsec_stop");
                                                           if (iVar8 == 0) {
-                                                            FUN_000cb6e4(1);
+                                                            FUN_000d16f4(1);
                                                           }
                                                           else {
                                                             iVar8 = strcmp(pcVar6,"ipsec_restart");
                                                             if (iVar8 == 0) {
-                                                              if ((local_1600[1] != (char *)0x0) &&
-                                                                 (iVar34 = strcmp(local_1600[1],
-                                                                                  "clearCAfiles"),
+                                                              if ((local_15fc != (char **)0x0) &&
+                                                                 (iVar34 = strcmp((char *)local_15fc
+                                                                                  ,"clearCAfiles"),
                                                                  iVar34 == 0)) {
                                                                 cprintf("clear CA files\n");
                                                                 unlink("/jffs/ca_files/asusCert.pem"
                                                                       );
                                                                 unlink("/jffs/ca_files/svrCert.pem")
                                                                 ;
                                                               }
-                                                              FUN_000cb6e4(0);
+                                                              FUN_000d16f4(0);
                                                               iVar34 = wan_primary_ifunit();
-                                                              FUN_0005ef4c(iVar34,0);
-                                                              FUN_00042c98();
+                                                              FUN_000622f8(iVar34,0);
+                                                              FUN_00044a20();
                                                             }
                                                             else {
                                                               iVar8 = strcmp(pcVar6,"ipsec_set_cli")
                                                               ;
                                                               if (iVar8 == 0) {
-                                                                FUN_000cb6e4(0);
+                                                                FUN_000d16f4(0);
                                                               }
                                                               else {
                                                                 iVar8 = strcmp(pcVar6,
                                                   "ipsec_start_cli");
                                                   if (iVar8 == 0) {
-                                                    FUN_000cb6e4(2);
+                                                    FUN_000d16f4(2);
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"ipsec_stop_cli");
                                                     if (iVar8 == 0) {
-                                                      FUN_000cb6e4(1);
+                                                      FUN_000d16f4(1);
                                                     }
                                                     else {
                                                       iVar8 = strcmp(pcVar6,"ipsec_gen_cert");
                                                       if (iVar8 == 0) {
-                                                        FUN_000c937c(0);
+                                                        FUN_000cf38c(0);
                                                       }
                                                       else {
                                                         iVar8 = strcmp(pcVar6,"ipsec_force_gen_cert"
                                                                       );
                                                         if (iVar8 == 0) {
-                                                          FUN_000c937c(1);
+                                                          FUN_000cf38c(1);
                                                         }
                                                         else {
                                                           iVar8 = strcmp(pcVar6,"generate_ca");
                                                           if (iVar8 == 0) {
                                                             local_1624[0] = '\0';
                                                             local_1624[1] = '\0';
                                                             local_1624[2] = '\0';
                                                             local_1624[3] = '\0';
                                                             memset(&local_1420,0,0x200);
-                                                            memset(&local_1220,0,0x200);
+                                                            memset(local_1220,0,0x200);
                                                             memset(&local_1020,0,0x1000);
                                                             memset(&ppcStack_15e0,0,0x40);
                                                             memset(apcStack_15a0,0,0x80);
-                                                            pcVar6 = FUN_0003dfd4();
+                                                            pcVar6 = FUN_0003f6c8();
                                                             strcpy(local_1624,pcVar6);
                                                             uVar32 = atoi(local_1624);
                                                             if (uVar32 == 2) {
-                                                              pcVar6 = FUN_0003dfd4();
-                                                              strcpy((char *)&local_1220,pcVar6);
-                                                              iVar34 = atoi((char *)&local_1220);
+                                                              pcVar6 = FUN_0003f6c8();
+                                                              strcpy((char *)local_1220,pcVar6);
+                                                              iVar34 = atoi((char *)local_1220);
                                                               if (iVar34 == 1) {
-                                                                pcVar6 = FUN_0003dfd4();
+                                                                pcVar6 = FUN_0003f6c8();
                                                                 strcpy((char *)&ppcStack_15e0,pcVar6
                                                                       );
                                                                 sprintf((char *)apcStack_15a0,
                                                                         "/jffs/ca_files/%s",
                                                                         &ppcStack_15e0);
-                                                                pcVar6 = FUN_0003dfd4();
+                                                                pcVar6 = FUN_0003f6c8();
                                                                 strcpy((char *)&local_1020,pcVar6);
                                                                 pFVar11 = fopen((char *)
                                                   apcStack_15a0,"w");
                                                   if (pFVar11 != (FILE *)0x0) {
                                                     fputs((char *)&local_1020,pFVar11);
                                                     fclose(pFVar11);
                                                   }
-                                                  FUN_000c9128((int)&ppcStack_15e0,
+                                                  FUN_000cf138((int)&ppcStack_15e0,
                                                                (int)&ppcStack_15e0,0,(char *)0x0);
                                                   memset(&ppcStack_15e0,0,0x40);
                                                   memset(apcStack_15a0,0,0x80);
                                                   memset(&local_1020,0,0x1000);
-                                                  pcVar6 = FUN_0003dfd4();
+                                                  pcVar6 = FUN_0003f6c8();
                                                   strcpy((char *)&ppcStack_15e0,pcVar6);
                                                   sprintf((char *)apcStack_15a0,"/jffs/ca_files/%s",
                                                           &ppcStack_15e0);
-                                                  pcVar6 = FUN_0003dfd4();
+                                                  pcVar6 = FUN_0003f6c8();
                                                   strcpy((char *)&local_1020,pcVar6);
                                                   pFVar11 = fopen((char *)apcStack_15a0,"w");
                                                   if (pFVar11 != (FILE *)0x0) {
                                                     fputs((char *)&local_1020,pFVar11);
                                                     fclose(pFVar11);
                                                   }
                                                   pppcVar30 = (char ***)0x0;
-                                                  pppcVar21 = &ppcStack_15e0;
+                                                  pppcVar22 = &ppcStack_15e0;
                                                   }
                                                   else {
                                                     if (iVar34 != 2) goto LAB_51;
-                                                    pcVar6 = FUN_0003dfd4();
+                                                    pcVar6 = FUN_0003f6c8();
                                                     strcpy((char *)&ppcStack_15e0,pcVar6);
                                                     sprintf((char *)apcStack_15a0,
                                                             "/jffs/ca_files/%s",&ppcStack_15e0);
-                                                    puVar5 = FUN_0003dfd4();
+                                                    puVar5 = FUN_0003f6c8();
                                                     memcpy(&local_1020,puVar5,0x1000);
                                                     pFVar11 = fopen((char *)apcStack_15a0,"w");
                                                     if (pFVar11 != (FILE *)0x0) {
                                                       fwrite(&local_1020,1,0x1000,pFVar11);
                                                       fclose(pFVar11);
                                                     }
-                                                    pppcVar21 = (char ***)0x0;
+                                                    pppcVar22 = (char ***)0x0;
                                                     pppcVar30 = &ppcStack_15e0;
                                                   }
-                                                  FUN_000c9128(0,0,(int)pppcVar21,(char *)pppcVar30)
+                                                  FUN_000cf138(0,0,(int)pppcVar22,(char *)pppcVar30)
                                                   ;
                                                   }
                                                   else if ((uVar32 & 0xfffffffd) == 1) {
-                                                    uVar32 = FUN_000c9010();
-                                                    FUN_000c8b88(uVar32);
+                                                    uVar32 = FUN_000cf020();
+                                                    FUN_000ceb98(uVar32);
                                                   }
 LAB_51:
                                                   nvram_set("ca_manage_mode","");
                                                   nvram_set("ca_manage_profile","");
                                                   nvram_unset("ca_manage_file_name_ca");
                                                   nvram_unset("ca_manage_file_name_private_key");
                                                   nvram_unset("ca_manage_file_name_p12");
                                                   nvram_unset("ca_manage_upload_ca");
                                                   nvram_unset("ca_manage_upload_private_key");
                                                   nvram_unset("ca_manage_upload_p12");
                                                   nvram_commit();
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"quagga");
                                                     if (iVar8 == 0) {
                                                       if ((uVar31 & 1) != 0) {
-                                                        FUN_00049b68();
+                                                        FUN_0004bdac();
                                                       }
                                                       if ((uVar31 & 2) != 0) {
-                                                        FUN_00049bc0();
+                                                        FUN_0004be04();
                                                       }
                                                     }
                                                     else {
                                                       iVar8 = strcmp(pcVar6,"letsencrypt");
                                                       if (iVar8 == 0) {
                                                         if ((uVar31 & 1) != 0) {
                                                           stop_letsencrypt();
                                                         }
                                                         if ((uVar31 & 2) != 0) {
                                                           start_letsencrypt();
                                                         }
                                                       }
                                                       else {
                                                         iVar8 = strcmp(pcVar6,"auto46det");
                                                         if (iVar8 == 0) {
                                                           uVar10 = 0;
                                                           if ((uVar31 & 1) != 0) {
-                                                            uVar10 = FUN_0004ba7c();
+                                                            uVar10 = FUN_0004ebfc();
                                                           }
                                                           if ((uVar31 & 2) != 0) {
-                                                            FUN_0004b9f4(uVar10);
+                                                            FUN_0004eb74(uVar10);
                                                           }
                                                         }
                                                         else {
                                                           iVar8 = strcmp(pcVar6,"v6plusd");
                                                           if (iVar8 == 0) {
-                                                            if (local_1600[1] == (char *)0x0) {
+                                                            if (local_15fc == (char **)0x0) {
                                                               iVar34 = wan_primary_ifunit();
                                                             }
                                                             else {
-                                                              iVar34 = atoi(local_1600[1]);
+                                                              iVar34 = atoi((char *)local_15fc);
                                                             }
                                                             if ((uVar31 & 1) != 0) {
-                                                              FUN_000409d0(iVar34);
+                                                              FUN_000425b0(iVar34);
                                                             }
                                                             if ((uVar31 & 2) != 0) {
-                                                              FUN_00040900(iVar34);
+                                                              FUN_000424e0(iVar34);
                                                             }
                                                           }
                                                           else {
                                                             iVar8 = strcmp(pcVar6,"ocnvcd");
                                                             if (iVar8 == 0) {
-                                                              if (local_1600[1] == (char *)0x0) {
+                                                              if (local_15fc == (char **)0x0) {
                                                                 iVar34 = wan_primary_ifunit();
                                                               }
                                                               else {
-                                                                iVar34 = atoi(local_1600[1]);
+                                                                iVar34 = atoi((char *)local_15fc);
                                                               }
                                                               if ((uVar31 & 1) != 0) {
-                                                                FUN_00040b28(iVar34);
+                                                                FUN_00042708(iVar34);
                                                               }
                                                               if ((uVar31 & 2) != 0) {
-                                                                FUN_00040a58(iVar34);
+                                                                FUN_00042638(iVar34);
                                                               }
                                                             }
                                                             else {
                                                               iVar8 = strcmp(pcVar6,"s46reset");
                                                               if (iVar8 == 0) {
-                                                                if (local_1600[1] == (char *)0x0) {
+                                                                if (local_15fc == (char **)0x0) {
                                                                   iVar34 = wan_primary_ifunit();
                                                                 }
                                                                 else {
-                                                                  iVar34 = atoi(local_1600[1]);
+                                                                  iVar34 = atoi((char *)local_15fc);
                                                                 }
-                                                                FUN_00040bb0(iVar34);
+                                                                FUN_000428e8(iVar34);
                                                               }
                                                               else {
                                                                 iVar8 = strcmp(pcVar6,"cfgsync");
                                                                 if (iVar8 == 0) {
                                                                   if ((uVar31 & 1) != 0) {
-                                                                    FUN_0004ca64();
+                                                                    FUN_0004fbe4();
                                                                   }
                                                                   if ((uVar31 & 2) != 0) {
-                                                                    FUN_0004cac4();
+                                                                    FUN_0004fc44();
                                                                   }
                                                                 }
                                                                 else {
                                                                   iVar8 = strcmp(pcVar6,
                                                   "release_note");
                                                   if (iVar8 == 0) {
                                                     strcpy(__dest,"webs_note.sh");
-                                                    local_1600[0] = __dest;
-                                                    FUN_0004a030(iVar34,(int)local_1600,uVar10);
+                                                    local_1600 = __dest;
+                                                    FUN_0004c274(iVar34,(int)&local_1600,uVar10);
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"amas_status");
                                                     if (iVar8 == 0) {
                                                       lVar36 = (ulonglong)extraout_r1_44 << 0x20;
                                                       if ((uVar31 & 1) != 0) {
-                                                        lVar36 = FUN_0004a5cc();
+                                                        lVar36 = FUN_0004d790();
                                                       }
                                                       if ((uVar31 & 2) != 0) {
-                                                        FUN_0004a50c((int)lVar36,
+                                                        FUN_0004d6d0((int)lVar36,
                                                                      (int)((ulonglong)lVar36 >> 0x20
                                                                           ));
                                                       }
                                                     }
                                                     else {
                                                       iVar8 = strcmp(pcVar6,"amas_misc");
                                                       if (iVar8 == 0) {
                                                         lVar36 = (ulonglong)extraout_r1_45 << 0x20;
                                                         if ((uVar31 & 1) != 0) {
-                                                          lVar36 = FUN_0004a6f8();
+                                                          lVar36 = FUN_0004d8bc();
                                                         }
                                                         if ((uVar31 & 2) != 0) {
-                                                          FUN_0004a618((int)lVar36,
+                                                          FUN_0004d7dc((int)lVar36,
                                                                        (int)((ulonglong)lVar36 >>
                                                                             0x20));
                                                         }
                                                       }
                                                       else {
                                                         iVar8 = strcmp(pcVar6,"amas_ssd");
                                                         if (iVar8 == 0) {
                                                           lVar36 = (ulonglong)extraout_r1_46 << 0x20
                                                           ;
                                                           if ((uVar31 & 1) != 0) {
-                                                            lVar36 = FUN_0004a4c0();
+                                                            lVar36 = FUN_0004d684();
                                                           }
                                                           if ((uVar31 & 2) != 0) {
-                                                            FUN_0004a400((int)lVar36,
+                                                            FUN_0004d5c4((int)lVar36,
                                                                          (int)((ulonglong)lVar36 >>
                                                                               0x20));
                                                           }
                                                         }
                                                         else {
                                                           iVar8 = strcmp(pcVar6,"trigger_opt");
                                                           if (iVar8 == 0) {
                                                             trigger_opt();
                                                           }
                                                           else {
                                                             iVar8 = strcmp(pcVar6,"amas_bhctrl");
                                                             if (iVar8 == 0) {
                                                               lVar36 = (ulonglong)extraout_r1_47 <<
                                                                        0x20;
                                                               if ((uVar31 & 1) != 0) {
-                                                                FUN_0004a5cc();
-                                                                lVar36 = FUN_0004a804();
+                                                                FUN_0004d790();
+                                                                lVar36 = FUN_0004d9c8();
                                                               }
                                                               if ((uVar31 & 2) != 0) {
-                                                                uVar35 = FUN_0004a50c((int)lVar36,
+                                                                uVar35 = FUN_0004d6d0((int)lVar36,
                                                                                       (int)((
                                                   ulonglong)lVar36 >> 0x20));
-                                                  FUN_0004a744((int)uVar35,
+                                                  FUN_0004d908((int)uVar35,
                                                                (int)((ulonglong)uVar35 >> 0x20));
                                                   }
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"amas_wlcconnect");
                                                     if (iVar8 == 0) {
                                                       lVar36 = (ulonglong)extraout_r1_48 << 0x20;
                                                       if ((uVar31 & 1) != 0) {
-                                                        lVar36 = FUN_0004a3b4();
+                                                        lVar36 = FUN_0004d578();
                                                       }
                                                       if ((uVar31 & 2) != 0) {
-                                                        FUN_0004a2f4((int)lVar36,
+                                                        FUN_0004d4b8((int)lVar36,
                                                                      (int)((ulonglong)lVar36 >> 0x20
                                                                           ));
                                                       }
                                                     }
                                                     else {
                                                       iVar8 = strcmp(pcVar6,"amas_lanctrl");
                                                       if (iVar8 == 0) {
                                                         lVar36 = (ulonglong)extraout_r1_49 << 0x20;
                                                         if ((uVar31 & 1) != 0) {
-                                                          lVar36 = FUN_0004a90c();
+                                                          lVar36 = FUN_0004dad0();
                                                         }
                                                         if ((uVar31 & 2) != 0) {
-                                                          FUN_0004a850((int)lVar36,
+                                                          FUN_0004da14((int)lVar36,
                                                                        (int)((ulonglong)lVar36 >>
                                                                             0x20));
                                                         }
                                                       }
                                                       else {
                                                         iVar8 = strcmp(pcVar6,"amas_lldpd");
                                                         if (iVar8 == 0) {
                                                           if ((uVar31 & 1) != 0) {
-                                                            FUN_0004affc();
+                                                            FUN_0004e17c();
                                                           }
                                                           if ((uVar31 & 2) != 0) {
-                                                            FUN_0004b06c();
+                                                            FUN_0004e1ec();
                                                           }
                                                         }
                                                         else {
                                                           iVar8 = strcmp(pcVar6,"obd");
                                                           if (iVar8 == 0) {
                                                             lVar36 = (ulonglong)extraout_r1_50 <<
                                                                      0x20;
                                                             if ((uVar31 & 1) != 0) {
-                                                              lVar36 = FUN_00049914();
+                                                              lVar36 = FUN_0004bb58();
                                                             }
                                                             if ((uVar31 & 2) != 0) {
-                                                              FUN_00049960((int)lVar36,
+                                                              FUN_0004bba4((int)lVar36,
                                                                            (int)((ulonglong)lVar36
                                                                                 >> 0x20));
                                                             }
                                                           }
                                                           else {
-                                                            iVar8 = strcmp(pcVar6,"obd_monitor");
+                                                            iVar8 = strcmp(pcVar6,"awsiot");
                                                             if (iVar8 == 0) {
+                                                              uVar10 = 0;
                                                               if ((uVar31 & 1) != 0) {
-                                                                FUN_00049a50();
+                                                                uVar10 = FUN_00044390();
                                                               }
                                                               if ((uVar31 & 2) != 0) {
-                                                                FUN_000499e8();
+                                                                FUN_000443a0(uVar10);
                                                               }
                                                             }
                                                             else {
-                                                              iVar8 = strcmp(pcVar6,"roamast");
+                                                              iVar8 = strcmp(pcVar6,"obd_monitor");
                                                               if (iVar8 == 0) {
-                                                                lVar36 = (ulonglong)extraout_r1_51
-                                                                         << 0x20;
                                                                 if ((uVar31 & 1) != 0) {
-                                                                  lVar36 = FUN_0004c778();
+                                                                  FUN_0004bc94();
                                                                 }
                                                                 if ((uVar31 & 2) != 0) {
-                                                                  FUN_0004c7a4((int)lVar36,
-                                                                               (int)((ulonglong)
-                                                                                     lVar36 >> 0x20)
-                                                                              );
+                                                                  FUN_0004bc2c();
                                                                 }
                                                               }
                                                               else {
-                                                                iVar8 = strcmp(pcVar6,"conn_diag");
+                                                                iVar8 = strcmp(pcVar6,"roamast");
                                                                 if (iVar8 == 0) {
-                                                                  lVar36 = (ulonglong)extraout_r1_52
+                                                                  lVar36 = (ulonglong)extraout_r1_51
                                                                            << 0x20;
                                                                   if ((uVar31 & 1) != 0) {
-                                                                    lVar36 = FUN_0004cd30();
+                                                                    lVar36 = FUN_0004f8f8();
                                                                   }
                                                                   if ((uVar31 & 2) != 0) {
-                                                                    FUN_0004cd5c((int)lVar36,
+                                                                    FUN_0004f924((int)lVar36,
                                                                                  (int)((ulonglong)
                                                                                        lVar36 >>
                                                                                       0x20));
                                                                   }
                                                                 }
                                                                 else {
-                                                                  iVar8 = strcmp(pcVar6,
+                                                                  iVar8 = strcmp(pcVar6,"conn_diag")
+                                                                  ;
+                                                                  if (iVar8 == 0) {
+                                                                    lVar36 = (ulonglong)
+                                                                             extraout_r1_52 << 0x20;
+                                                                    if ((uVar31 & 1) != 0) {
+                                                                      lVar36 = FUN_0004fedc();
+                                                                    }
+                                                                    if ((uVar31 & 2) != 0) {
+                                                                      FUN_0004ff08((int)lVar36,
+                                                                                   (int)((ulonglong)
+                                                                                         lVar36 >>
+                                                                                        0x20));
+                                                                    }
+                                                                  }
+                                                                  else {
+                                                                    iVar8 = strcmp(pcVar6,
                                                   "apply_amaslib");
                                                   if (iVar8 == 0) {
-                                                    FUN_000f2c94((undefined4 *)0x0,(undefined4 *)0x0
+                                                    FUN_000fa694((undefined4 *)0x0,(undefined4 *)0x0
                                                                  ,0);
                                                   }
                                                   else {
                                                     iVar33 = strcmp(pcVar6,"update_sta_binding");
                                                     if (iVar33 == 0) {
                                                       update_sta_binding_list();
                                                     }
                                                     else {
                                                       iVar33 = strcmp(pcVar6,"reset_led");
                                                       if (iVar33 != 0) {
                                                         iVar33 = strcmp(pcVar6,"bsd");
                                                         if (iVar33 == 0) {
                                                           lVar36 = (ulonglong)extraout_r1_53 << 0x20
                                                           ;
                                                           if ((uVar31 & 1) != 0) {
-                                                            lVar36 = FUN_0004be94();
+                                                            lVar36 = FUN_0004f014();
                                                           }
                                                           if ((uVar31 & 2) != 0) {
-                                                            FUN_0004bea4((undefined *)lVar36,
+                                                            FUN_0004f024((undefined *)lVar36,
                                                                          (int)((ulonglong)lVar36 >>
                                                                               0x20),iVar8);
                                                           }
                                                         }
                                                         else {
                                                           iVar8 = strcmp(pcVar6,"clean_web_history")
                                                           ;
                                                           if (iVar8 == 0) {
                                                             remove(
                                                   "/jffs/.sys/WebHistory/WebHistory.db");
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"clean_traffic_analyzer");
                                                     if (iVar8 == 0) {
                                                       remove(
                                                   "/jffs/.sys/TrafficAnalyzer/TrafficAnalyzer.db");
                                                   }
                                                   else {
                                                     iVar8 = strcmp(pcVar6,"clean_backup_log");
                                                     if (iVar8 != 0) {
                                                       iVar8 = strcmp(pcVar6,"cable_media");
                                                       if (iVar8 == 0) {
                                                         local_1020 = "ethctl";
-                                                        local_101c[0] = local_1600[1];
-                                                        local_101c[1] = "media-type";
-                                                        local_1014 = local_1600[2];
+                                                        local_101c = local_15fc;
+                                                        local_1018 = "media-type";
+                                                        local_1014 = local_15f8;
                                                         local_1010 = iVar8;
                                                         _eval(&local_1020,0,0);
                                                       }
                                                       else {
                                                         iVar8 = strcmp(pcVar6,"iperf3_server");
                                                         if (iVar8 == 0) {
                                                           if ((uVar31 & 1) != 0) {
-                                                            FUN_00048ea8();
+                                                            FUN_0004b0d0();
                                                             nvram_set("iperf3_svr_enable","0");
                                                           }
                                                           if ((uVar31 & 2) != 0) {
-                                                            FUN_00048ed4();
+                                                            FUN_0004b0fc();
                                                             nvram_set("iperf3_svr_enable","1");
                                                           }
                                                         }
                                                         else {
                                                           iVar8 = strcmp(pcVar6,"iperf3_client");
                                                           if (iVar8 == 0) {
                                                             if ((uVar31 & 1) != 0) {
-                                                              FUN_00048ea8();
+                                                              FUN_0004b0d0();
                                                               nvram_set("iperf3_cli_enable","0");
                                                             }
                                                             if ((uVar31 & 2) != 0) {
-                                                              FUN_00048f54();
+                                                              FUN_0004b198();
                                                               nvram_set("iperf3_cli_enable","1");
                                                             }
                                                           }
                                                           else {
                                                             iVar8 = strcmp(pcVar6,"ctrl_led");
                                                             if (iVar8 == 0) {
                                                               iVar34 = nvram_get_int("led_val");
                                                               iVar8 = nvram_get_int("AllLED");
                                                               if (iVar34 == 0) {
                                                                 nvram_set("AllLED","0");
-                                                                FUN_000a5cc4();
+                                                                FUN_000ab984();
                                                               }
                                                               else {
                                                                 if (iVar8 == 0) {
                                                                   nvram_set("AllLED","1");
-                                                                  FUN_000a68dc();
+                                                                  FUN_000ac5e0();
                                                                 }
                                                                 if (1 < iVar34) {
                                                                   nvram_set_int("AllLED_brightness",
                                                                                 iVar34);
-                                                                  FUN_000a6a30();
+                                                                  FUN_000ac734();
                                                                 }
                                                               }
                                                               nvram_commit();
                                                             }
                                                             else {
                                                               iVar8 = strcmp(pcVar6,"watchdog");
                                                               if (iVar8 == 0) {
                                                                 lVar36 = (ulonglong)extraout_r1_54
                                                                          << 0x20;
                                                                 if ((uVar31 & 1) != 0) {
-                                                                  lVar36 = FUN_00049718();
+                                                                  lVar36 = FUN_0004b95c();
                                                                 }
                                                                 if ((uVar31 & 2) != 0) {
-                                                                  FUN_00049748((int)lVar36,
+                                                                  FUN_0004b98c((int)lVar36,
                                                                                (int)((ulonglong)
                                                                                      lVar36 >> 0x20)
                                                                               );
                                                                 }
                                                               }
                                                               else {
                                                                 iVar8 = strcmp(pcVar6,"jffs2");
                                                                 if (iVar8 == 0) {
                                                                   if (iVar34 != 1) {
-                                                                    iVar34 = atoi(local_1600[1]);
+                                                                    iVar34 = atoi((char *)local_15fc
+                                                                                 );
                                                                   }
                                                                   dbg("stop: %d\n",iVar34);
                                                                   if ((uVar31 & 1) != 0) {
-                                                                    FUN_000c6434(iVar34);
+                                                                    FUN_000cc4d4(iVar34);
                                                                   }
                                                                 }
                                                                 else {
-                                                                  ppcVar16 = (char **)strcmp(pcVar6,
+                                                                  iVar34 = strcmp(pcVar6,
                                                   "firmware_webs_update");
-                                                  if (ppcVar16 == (char **)0x0) {
+                                                  if (iVar34 == 0) {
                                                     snprintf((char *)&local_1020,0x400,
                                                                                                                           
                                                   "echo \"[FWUPDATE][%s:(%d)]rc triger firmware_webs_update\" >> /tmp/webs_upgrade.log"
-                                                  ,"handle_notifications",0x4464);
+                                                  ,"handle_notifications",0x463d);
                                                   system((char *)&local_1020);
                                                   nvram_set("webs_update_trigger",&DAT_52);
                                                   nvram_unset("cfg_check");
-                                                  local_1220 = ppcVar16;
-                                                  memset(local_121c,0,0x3c);
-                                                  snprintf((char *)&local_1220,0x40,
+                                                  local_1220[0] = (char **)0x0;
+                                                  memset(local_1220 + 1,0,0x3c);
+                                                  snprintf((char *)local_1220,0x40,
                                                            "{\"httpd\":{\"eid\":\"%d\"}}",1);
-                                                  if (((uint)local_1220 & 0xff) != 0) {
-                                                    send_cfgmnt_event(&local_1220);
+                                                  if (((uint)local_1220[0] & 0xff) != 0) {
+                                                    send_cfgmnt_event(local_1220);
                                                   }
                                                   iVar34 = 0;
                                                   do {
                                                     iVar18 = nvram_get_int("cfg_check");
-                                                    uVar10 = 0x446f;
+                                                    uVar10 = 0x4648;
                                                     iVar8 = iVar34;
                                                     iVar33 = iVar18;
                                                     snprintf((char *)&local_1020,0x400,
                                                                                                                           
                                                   "echo \"[FWUPDATE][%s:(%d)]webs_cfg_check(retry %d): %d\" >> /tmp/webs_upgrade.log"
-                                                  ,"handle_notifications",0x446f,iVar34,iVar18);
+                                                  ,"handle_notifications",0x4648,iVar34,iVar18);
                                                   system((char *)&local_1020);
                                                   if (iVar18 == 7) {
-                                                    snprintf((char *)&local_1220,0x40,
+                                                    snprintf((char *)local_1220,0x40,
                                                              "{\"httpd\":{\"eid\":\"%d\"}}",2,uVar10
                                                              ,iVar8,iVar33);
-                                                    if (((uint)local_1220 & 0xff) != 0) {
-                                                      send_cfgmnt_event(&local_1220);
+                                                    if (((uint)local_1220[0] & 0xff) != 0) {
+                                                      send_cfgmnt_event(local_1220);
                                                     }
                                                     break;
                                                   }
                                                   if (iVar18 - 2U < 2) {
                                                     snprintf((char *)&local_1020,0x400,
                                                                                                                           
                                                   "echo \"[FWUPDATE][%s:(%d)]can not link frs\" >> /tmp/webs_upgrade.log"
-                                                  ,"handle_notifications",0x4477,iVar8,iVar33);
+                                                  ,"handle_notifications",18000,iVar8,iVar33);
                                                   system((char *)&local_1020);
                                                   break;
                                                   }
                                                   iVar34 = iVar34 + 1;
                                                   sleep(1);
                                                   } while (iVar34 != 0x1e);
                                                   }
                                                   else {
                                                     iVar34 = strcmp(pcVar6,"wlc_nt");
                                                     if (iVar34 == 0) {
                                                       uVar10 = 0;
                                                       if ((uVar31 & 1) != 0) {
-                                                        FUN_000426c4();
-                                                        uVar10 = FUN_00042658();
+                                                        FUN_0004444c();
+                                                        uVar10 = FUN_000443e0();
                                                       }
                                                       if ((uVar31 & 2) != 0) {
-                                                        FUN_00042668(uVar10);
-                                                        FUN_000426d4();
+                                                        FUN_000443f0(uVar10);
+                                                        FUN_0004445c();
                                                       }
                                                     }
                                                     else {
                                                       fprintf(stderr,
                                                   "WARNING: rc notified of unrecognized event `%s\'.\n"
                                                   ,pcVar6);
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
                                                   }
+                                                  }
                                                   goto LAB_5;
                                                   }
                                                   }
                                                   if ((uVar31 & 2) != 0) {
-                                                    pcVar7 = FUN_0003dfd4();
-                                                    if (*pcVar7 == '\0') {
-                                                      sprintf(__dest,"%s.sh",pcVar6);
-                                                    }
-                                                    else {
-                                                      sprintf(__dest,"%s/%s.sh",pcVar7,pcVar6);
-                                                    }
-                                                    local_1600[0] = __dest;
-                                                    FUN_0004a030(iVar34,(int)local_1600,__dest);
+                                                    sprintf(__dest,"%s.sh",pcVar6);
+                                                    local_1600 = __dest;
+                                                    FUN_0004c274(iVar34,(int)&local_1600,__dest);
+                                                  }
                                                   }
                                                   }
                                                   }
                                                 }
                                               }
                                             }
                                           }
                                         }
                                       }
                                     }
                                   }
                                 }
                               }
                             }
                           }
                         }
                       }
                     }
                   }
                 }
               }
             }
           }
         }
       }
     }
 LAB_5:
     if ((local_1628 == (char *)0x0) || (*local_1628 == '\0')) {
       nvram_set("rc_service","");
       nvram_set("rc_service_pid","");
       cprintf("handle_notifications() end\n");
       return;
     }
     _Var9 = getpid();
     cprintf("goto again(%d)...\n",_Var9);
   } while( true );
 }
 

FUN_00076120

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.77
i_ratio 0.13
m_ratio 0.73
b_ratio 0.68
match_types BSIM

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_00076120 FUN_000798d0
fullname FUN_00076120 FUN_000798d0
refcount 1 1
length 4780 4844
called
Expand for full list:
::ATE_FACTORY_MODE_STR
::__ctype_toupper_loc
::_eval
::atoi
::get_label_mac
::get_radio
::is_valid_group_id
::memset
::nvram_default_get
::nvram_get
::nvram_set
::puts
::set_radio
::snprintf
::strcmp
::strlen
FUN_00049704
FUN_00061bf0
FUN_00075648
FUN_000757e8
FUN_00075808
FUN_00075c48
FUN_00075cb0
FUN_00075f30
FUN_00076038
FUN_000a3768
FUN_000a38a4
FUN_000a3a38
FUN_000a3aec
FUN_000a4130
FUN_000a5c9c
FUN_000a5cc4
FUN_000a6a34
FUN_000a70b8
FUN_000a7250
FUN_000a73e8
FUN_000a7484
FUN_000a7758
FUN_000a7760
FUN_000b3354
FUN_000b3438
FUN_000b38a4
FUN_000b3bd4
FUN_000b3bf8
FUN_000b3eec
FUN_000b3f7c
FUN_000b3f9c
FUN_000b41f4
FUN_000b4438
FUN_000b472c
FUN_000b4a20
FUN_000b4cb4
FUN_000b50a8
FUN_000b53d8
FUN_000b57cc
FUN_000b582c
FUN_000b5884
FUN_000b5914
FUN_000b5934
FUN_000b5954
FUN_000b59e4
FUN_000b5a3c
FUN_000b5a5c
FUN_000b5a7c
FUN_000b5b30
FUN_000b5c5c
FUN_000b5cd8
FUN_000b5cf4
FUN_000b5d10
FUN_000b5dd4
FUN_000b5df4
FUN_000b5e4c
FUN_000b5e7c
FUN_000b5e9c
FUN_000b5ed8
FUN_000b5f08
FUN_000b5f64
FUN_000b5fc0
FUN_000b601c
FUN_000b60a4
FUN_000b60c4
FUN_000b60e4
FUN_000b6104
FUN_000b632c
FUN_000b63a4
FUN_000b63fc
FUN_000b6474
FUN_000b6500
FUN_000b6520
FUN_000b6578
FUN_000b6700
FUN_000b677c
Expand for full list:
::ATE_FACTORY_MODE_STR
::__ctype_toupper_loc
::_eval
::atoi
::get_label_mac
::get_radio
::is_valid_group_id
::memset
::nvram_default_get
::nvram_get
::nvram_set
::puts
::set_radio
::snprintf
::strcmp
::strlen
FUN_0004b948
FUN_00064fcc
FUN_00078df8
FUN_00078f98
FUN_00078fb8
FUN_000793f8
FUN_00079460
FUN_000796e0
FUN_000797e8
FUN_000a9338
FUN_000a9474
FUN_000a9608
FUN_000a96bc
FUN_000a9d00
FUN_000ab95c
FUN_000ab984
FUN_000ac738
FUN_000acddc
FUN_000acf7c
FUN_000ad11c
FUN_000ad1b8
FUN_000ad488
FUN_000ad490
FUN_000b9224
FUN_000b9308
FUN_000b9790
FUN_000b9a4c
FUN_000b9a70
FUN_000b9cf0
FUN_000b9d80
FUN_000b9da0
FUN_000ba028
FUN_000ba29c
FUN_000ba5c0
FUN_000ba840
FUN_000bab04
FUN_000bae78
FUN_000bb1d8
FUN_000bb558
FUN_000bb5b8
FUN_000bb610
FUN_000bb6a0
FUN_000bb6c0
FUN_000bb6e0
FUN_000bb770
FUN_000bb7c8
FUN_000bb7e8
FUN_000bb808
FUN_000bb8bc
FUN_000bb9e8
FUN_000bba54
FUN_000bba70
FUN_000bba8c
FUN_000bbb50
FUN_000bbb70
FUN_000bbbc8
FUN_000bbbf8
FUN_000bbc18
FUN_000bbc54
FUN_000bbc84
FUN_000bbce0
FUN_000bbd3c
FUN_000bbd98
FUN_000bbe20
FUN_000bbe40
FUN_000bbe60
FUN_000bbe80
FUN_000bc0e0
FUN_000bc158
FUN_000bc1b0
FUN_000bc228
FUN_000bc2b4
FUN_000bc2d4
FUN_000bc32c
FUN_000bc4b4
FUN_000bc564
calling FUN_0001ca70 FUN_0001d490
paramcount 3 3
address 00076120 000798d0
sig undefined4 __stdcall FUN_00076120(char * param_1, char * param_2, undefined4 param_3) undefined4 __stdcall FUN_000798d0(char * param_1, char * param_2, undefined4 param_3)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_00076120 Called Diff

--- FUN_00076120 called
+++ FUN_000798d0 called
@@ -17,76 +17,76 @@
-FUN_00049704
-FUN_00061bf0
-FUN_00075648
-FUN_000757e8
-FUN_00075808
-FUN_00075c48
-FUN_00075cb0
-FUN_00075f30
-FUN_00076038
-FUN_000a3768
-FUN_000a38a4
-FUN_000a3a38
-FUN_000a3aec
-FUN_000a4130
-FUN_000a5c9c
-FUN_000a5cc4
-FUN_000a6a34
-FUN_000a70b8
-FUN_000a7250
-FUN_000a73e8
-FUN_000a7484
-FUN_000a7758
-FUN_000a7760
-FUN_000b3354
-FUN_000b3438
-FUN_000b38a4
-FUN_000b3bd4
-FUN_000b3bf8
-FUN_000b3eec
-FUN_000b3f7c
-FUN_000b3f9c
-FUN_000b41f4
-FUN_000b4438
-FUN_000b472c
-FUN_000b4a20
-FUN_000b4cb4
-FUN_000b50a8
-FUN_000b53d8
-FUN_000b57cc
-FUN_000b582c
-FUN_000b5884
-FUN_000b5914
-FUN_000b5934
-FUN_000b5954
-FUN_000b59e4
-FUN_000b5a3c
-FUN_000b5a5c
-FUN_000b5a7c
-FUN_000b5b30
-FUN_000b5c5c
-FUN_000b5cd8
-FUN_000b5cf4
-FUN_000b5d10
-FUN_000b5dd4
-FUN_000b5df4
-FUN_000b5e4c
-FUN_000b5e7c
-FUN_000b5e9c
-FUN_000b5ed8
-FUN_000b5f08
-FUN_000b5f64
-FUN_000b5fc0
-FUN_000b601c
-FUN_000b60a4
-FUN_000b60c4
-FUN_000b60e4
-FUN_000b6104
-FUN_000b632c
-FUN_000b63a4
-FUN_000b63fc
-FUN_000b6474
-FUN_000b6500
-FUN_000b6520
-FUN_000b6578
-FUN_000b6700
-FUN_000b677c
+FUN_0004b948
+FUN_00064fcc
+FUN_00078df8
+FUN_00078f98
+FUN_00078fb8
+FUN_000793f8
+FUN_00079460
+FUN_000796e0
+FUN_000797e8
+FUN_000a9338
+FUN_000a9474
+FUN_000a9608
+FUN_000a96bc
+FUN_000a9d00
+FUN_000ab95c
+FUN_000ab984
+FUN_000ac738
+FUN_000acddc
+FUN_000acf7c
+FUN_000ad11c
+FUN_000ad1b8
+FUN_000ad488
+FUN_000ad490
+FUN_000b9224
+FUN_000b9308
+FUN_000b9790
+FUN_000b9a4c
+FUN_000b9a70
+FUN_000b9cf0
+FUN_000b9d80
+FUN_000b9da0
+FUN_000ba028
+FUN_000ba29c
+FUN_000ba5c0
+FUN_000ba840
+FUN_000bab04
+FUN_000bae78
+FUN_000bb1d8
+FUN_000bb558
+FUN_000bb5b8
+FUN_000bb610
+FUN_000bb6a0
+FUN_000bb6c0
+FUN_000bb6e0
+FUN_000bb770
+FUN_000bb7c8
+FUN_000bb7e8
+FUN_000bb808
+FUN_000bb8bc
+FUN_000bb9e8
+FUN_000bba54
+FUN_000bba70
+FUN_000bba8c
+FUN_000bbb50
+FUN_000bbb70
+FUN_000bbbc8
+FUN_000bbbf8
+FUN_000bbc18
+FUN_000bbc54
+FUN_000bbc84
+FUN_000bbce0
+FUN_000bbd3c
+FUN_000bbd98
+FUN_000bbe20
+FUN_000bbe40
+FUN_000bbe60
+FUN_000bbe80
+FUN_000bc0e0
+FUN_000bc158
+FUN_000bc1b0
+FUN_000bc228
+FUN_000bc2b4
+FUN_000bc2d4
+FUN_000bc32c
+FUN_000bc4b4
+FUN_000bc564

FUN_00076120 Calling Diff

--- FUN_00076120 calling
+++ FUN_000798d0 calling
@@ -1 +1 @@
-FUN_0001ca70
+FUN_0001d490

FUN_00076120 Diff

--- FUN_00076120
+++ FUN_000798d0
@@ -1,749 +1,760 @@
 
 /* WARNING: Type propagation algorithm not settling */
 
-undefined4 FUN_00076120(char *param_1,char *param_2,undefined4 param_3)
+undefined4 FUN_000798d0(char *param_1,char *param_2,undefined4 param_3)
 
 {
   byte bVar1;
   bool bVar2;
   int iVar3;
   undefined4 uVar4;
   char *__s;
   __int32_t **pp_Var5;
   int iVar6;
   int *piVar7;
   undefined *puVar8;
   undefined *puVar9;
   uint uVar10;
   size_t sVar11;
   undefined4 extraout_r1;
   undefined4 extraout_r1_00;
   undefined4 extraout_r1_01;
   undefined4 extraout_r1_02;
   byte *pbVar12;
   undefined8 uVar13;
   undefined auStack_a8 [4];
   undefined auStack_a4 [4];
   char *local_a0;
   int local_9c;
   int local_98;
   undefined4 uStack_94;
   undefined4 uStack_90;
   
   iVar3 = strcmp(param_1,"Set_StartATEMode");
   if (iVar3 == 0) {
-    bVar2 = FUN_00075808("noconsole","0");
+    bVar2 = FUN_00078fb8("noconsole","0");
     if (!bVar2) {
       local_a0 = "console";
       local_98 = DAT_0;
       uStack_94 = DAT_1;
       uStack_90 = DAT_2;
       local_9c = iVar3;
       nvram_set("noconsole","0");
       _eval(&local_98,0,0,auStack_a8);
-      FUN_00061bf0("console");
+      FUN_00064fcc("console");
       _eval(&local_a0,0,0,auStack_a4);
     }
-    FUN_00075cb0();
-    FUN_00049704();
-    piVar7 = (int *)0x171bbd;
+    FUN_00079460();
+    FUN_0004b948();
+    piVar7 = (int *)0x17a68f;
     goto LAB_3;
   }
   iVar3 = strcmp(param_1,"Set_AllLedOn");
   if (iVar3 == 0) {
-    uVar4 = FUN_000a4130();
+    uVar4 = FUN_000a9d00();
     return uVar4;
   }
   iVar3 = strcmp(param_1,"Set_NetLed");
   if (iVar3 == 0) {
-    uVar4 = FUN_000a5c9c();
+    uVar4 = FUN_000ab95c();
     return uVar4;
   }
   iVar3 = strcmp(param_1,"Set_AllLedOn2");
   if (iVar3 == 0) {
 LAB_4:
     param_2 = "0";
     goto LAB_5;
   }
   iVar3 = strcmp(param_1,"Set_AllLedOff");
   if (iVar3 == 0) {
-    uVar4 = FUN_000a5cc4();
+    uVar4 = FUN_000ab984();
     return uVar4;
   }
   iVar3 = strcmp(param_1,"Set_AllLedOn_Half");
   if (iVar3 == 0) {
     __s = "ATE_ERROR";
     goto LAB_6;
   }
   iVar3 = strcmp(param_1,"Set_AllWhiteLedOn");
   if (iVar3 == 0) {
 LAB_7:
-    uVar4 = FUN_00075648(iVar3);
+    uVar4 = FUN_00078df8(iVar3);
     return uVar4;
   }
   iVar3 = strcmp(param_1,"Set_AllBlueLedOn");
   if (iVar3 == 0) {
     iVar3 = 1;
     goto LAB_7;
   }
   iVar3 = strcmp(param_1,"Set_AllRedLedOn");
   if (iVar3 == 0) {
     iVar3 = 2;
     goto LAB_7;
   }
   iVar3 = strcmp(param_1,"Set_AllGreenLedOn");
   if (iVar3 == 0) {
     iVar3 = 3;
     goto LAB_7;
   }
   iVar3 = strcmp(param_1,"Set_AllOrangeLedOn");
   if (iVar3 == 0) {
     iVar3 = 4;
     goto LAB_7;
   }
   iVar3 = strcmp(param_1,"Set_WanLedMode1");
   if (iVar3 == 0) {
-    uVar4 = FUN_000a70b8();
+    uVar4 = FUN_000acddc();
     return uVar4;
   }
   iVar3 = strcmp(param_1,"Set_WanLedMode2");
   if (iVar3 == 0) {
-    uVar4 = FUN_000a7250();
+    uVar4 = FUN_000acf7c();
     return uVar4;
   }
   iVar3 = strcmp(param_1,"Set_AteModeLedOn");
   if (iVar3 == 0) {
-    uVar4 = FUN_000a6a34();
+    uVar4 = FUN_000ac738();
     return uVar4;
   }
   iVar3 = strcmp(param_1,"Set_MacAddr_2G");
   if ((iVar3 == 0) || (iVar3 = strcmp(param_1,"Set_MacAddr"), iVar3 == 0)) {
-    bVar2 = FUN_00075f30();
-    if (!bVar2) {
-      return 0x16;
-    }
-    local_98 = 0;
-    memset(&uStack_94,0,0x10);
-    pbVar12 = (byte *)(param_2 + -1);
-    piVar7 = &local_98;
-    while( true ) {
-      pbVar12 = pbVar12 + 1;
-      bVar1 = *pbVar12;
-      if (bVar1 == 0) break;
-      pp_Var5 = __ctype_toupper_loc();
-      *(char *)piVar7 = (char)(*pp_Var5)[bVar1];
-      piVar7 = (int *)((int)piVar7 + 1);
-    }
-    iVar3 = FUN_000b3438((int)&local_98);
-    if (iVar3 != 0) {
-      return 0;
-    }
-    __s = "ATE_ERROR_INCORRECT_PARAMETER";
+    iVar3 = FUN_000bc4b4("");
+    if (iVar3 < 0) {
+      __s = "ATE_ERROR_CLEAR_PASS_FIRST";
+    }
+    else {
+      bVar2 = FUN_000796e0();
+      if (!bVar2) {
+        return 0x16;
+      }
+      local_98 = 0;
+      memset(&uStack_94,0,0x10);
+      pbVar12 = (byte *)(param_2 + -1);
+      piVar7 = &local_98;
+      while( true ) {
+        pbVar12 = pbVar12 + 1;
+        bVar1 = *pbVar12;
+        if (bVar1 == 0) break;
+        pp_Var5 = __ctype_toupper_loc();
+        *(char *)piVar7 = (char)(*pp_Var5)[bVar1];
+        piVar7 = (int *)((int)piVar7 + 1);
+      }
+      iVar3 = FUN_000b9308((int)&local_98);
+      if (iVar3 != 0) {
+        return 0;
+      }
+      __s = "ATE_ERROR_INCORRECT_PARAMETER";
+    }
     goto LAB_6;
   }
   iVar3 = strcmp(param_1,"Set_MacAddr_5G");
   if (iVar3 == 0) {
-    bVar2 = FUN_00075f30();
+    bVar2 = FUN_000796e0();
     if (!bVar2) {
       return 0x16;
     }
     local_98 = iVar3;
     memset(&uStack_94,0,0x10);
     pbVar12 = (byte *)(param_2 + -1);
     piVar7 = &local_98;
     while( true ) {
       pbVar12 = pbVar12 + 1;
       bVar1 = *pbVar12;
       if (bVar1 == 0) break;
       pp_Var5 = __ctype_toupper_loc();
       *(char *)piVar7 = (char)(*pp_Var5)[bVar1];
       piVar7 = (int *)((int)piVar7 + 1);
     }
-    iVar3 = FUN_000b38a4((int)&local_98);
+    iVar3 = FUN_000b9790((int)&local_98);
     if (iVar3 != 0) {
       return 0;
     }
     __s = "ATE_ERROR_INCORRECT_PARAMETER";
     goto LAB_6;
   }
   iVar3 = strcmp(param_1,"Set_RegulationDomain_2G");
   if (iVar3 == 0) {
-    bVar2 = FUN_00075f30();
+    bVar2 = FUN_000796e0();
     if (!bVar2) {
       return 0x16;
     }
-    pbVar12 = (byte *)FUN_000b4a20((byte *)param_2);
+    pbVar12 = (byte *)FUN_000ba840((byte *)param_2);
 LAB_8:
     if (pbVar12 != (byte *)0x0) {
       return 0;
     }
   }
   else {
     iVar3 = strcmp(param_1,"Set_RegulationDomain_5G");
     if (iVar3 == 0) {
-      bVar2 = FUN_00075f30();
-      if (!bVar2) {
-        return 0x16;
-      }
-      pbVar12 = (byte *)FUN_000b4cb4((byte *)param_2);
+      bVar2 = FUN_000796e0();
+      if (!bVar2) {
+        return 0x16;
+      }
+      pbVar12 = (byte *)FUN_000bab04((byte *)param_2);
       goto LAB_8;
     }
     iVar3 = strcmp(param_1,"Set_Regrev_2G");
     if (iVar3 == 0) {
-      bVar2 = FUN_00075f30();
-      if (!bVar2) {
-        return 0x16;
-      }
-      pbVar12 = (byte *)FUN_000b50a8((byte *)param_2);
+      bVar2 = FUN_000796e0();
+      if (!bVar2) {
+        return 0x16;
+      }
+      pbVar12 = (byte *)FUN_000bae78((byte *)param_2);
       goto LAB_8;
     }
     iVar3 = strcmp(param_1,"Set_Regrev_5G");
     if (iVar3 == 0) {
-      bVar2 = FUN_00075f30();
-      if (!bVar2) {
-        return 0x16;
-      }
-      pbVar12 = (byte *)FUN_000b53d8((byte *)param_2);
+      bVar2 = FUN_000796e0();
+      if (!bVar2) {
+        return 0x16;
+      }
+      pbVar12 = (byte *)FUN_000bb1d8((byte *)param_2);
       goto LAB_8;
     }
     iVar3 = strcmp(param_1,"Set_Commit");
     if (iVar3 == 0) {
-      bVar2 = FUN_00075f30();
-      if (!bVar2) {
-        return 0x16;
-      }
-      FUN_000b3354();
+      bVar2 = FUN_000796e0();
+      if (!bVar2) {
+        return 0x16;
+      }
+      FUN_000b9224();
       return 0;
     }
     iVar3 = strcmp(param_1,"Set_SerialNumber");
     if (iVar3 == 0) {
-      bVar2 = FUN_00075f30();
-      if (!bVar2) {
-        return 0x16;
-      }
-      pbVar12 = (byte *)FUN_000b5884((byte *)param_2);
+      bVar2 = FUN_000796e0();
+      if (!bVar2) {
+        return 0x16;
+      }
+      pbVar12 = (byte *)FUN_000bb610((byte *)param_2);
       goto LAB_8;
     }
     iVar3 = strcmp(param_1,"Set_EmsInternalSerialNumber");
     if (iVar3 == 0) {
-      pbVar12 = (byte *)FUN_000b5954((byte *)param_2);
+      pbVar12 = (byte *)FUN_000bb6e0((byte *)param_2);
       goto LAB_8;
     }
     iVar3 = strcmp(param_1,"Set_ModelName");
     if (iVar3 == 0) {
-      bVar2 = FUN_00075f30();
-      if (!bVar2) {
-        return 0x16;
-      }
-      pbVar12 = (byte *)FUN_000b59e4((int)param_2);
+      bVar2 = FUN_000796e0();
+      if (!bVar2) {
+        return 0x16;
+      }
+      pbVar12 = (byte *)FUN_000bb770((int)param_2);
       goto LAB_8;
     }
     iVar3 = strcmp(param_1,"Set_PINCode");
     if (iVar3 == 0) {
-      bVar2 = FUN_00075f30();
-      if (!bVar2) {
-        return 0x16;
-      }
-      pbVar12 = (byte *)FUN_000b57cc(param_2);
+      bVar2 = FUN_000796e0();
+      if (!bVar2) {
+        return 0x16;
+      }
+      pbVar12 = (byte *)FUN_000bb558(param_2);
       goto LAB_8;
     }
     iVar3 = strcmp(param_1,"Set_40M_Channel_2G");
     if (iVar3 == 0) {
-      pbVar12 = (byte *)FUN_000a3768(param_2);
+      pbVar12 = (byte *)FUN_000a9338(param_2);
       goto LAB_8;
     }
     iVar3 = strcmp(param_1,"Set_40M_Channel_5G");
     if (iVar3 == 0) {
-      pbVar12 = (byte *)FUN_000a38a4(param_2);
+      pbVar12 = (byte *)FUN_000a9474(param_2);
       goto LAB_8;
     }
     iVar3 = strcmp(param_1,"Set_RestoreDefault");
     if (iVar3 == 0) {
       local_98 = DAT_9;
       uStack_94 = DAT_10;
       uStack_90 = DAT_11;
       iVar6 = iVar3;
       uVar13 = _eval(&local_98,0);
-      uVar4 = FUN_000a3a38((int)uVar13,(int)((ulonglong)uVar13 >> 0x20),iVar3,iVar6);
+      uVar4 = FUN_000a9608((int)uVar13,(int)((ulonglong)uVar13 >> 0x20),iVar3,iVar6);
       return uVar4;
     }
     iVar6 = strcmp(param_1,"Set_Eject");
     if (iVar6 == 0) {
-      pbVar12 = FUN_00075c48((byte *)param_2);
+      pbVar12 = FUN_000793f8((byte *)param_2);
       goto LAB_8;
     }
     iVar6 = strcmp(param_1,"Set_WaitTime");
     if (iVar6 == 0) {
-      bVar2 = FUN_00075f30();
-      if (!bVar2) {
-        return 0x16;
-      }
-      pbVar12 = (byte *)FUN_000b582c(param_2);
+      bVar2 = FUN_000796e0();
+      if (!bVar2) {
+        return 0x16;
+      }
+      pbVar12 = (byte *)FUN_000bb5b8(param_2);
       goto LAB_8;
     }
     iVar6 = strcmp(param_1,"Set_WiFi_2G");
     if (iVar6 == 0) {
-      pbVar12 = (byte *)FUN_000a73e8(param_2,extraout_r1,param_3,iVar3);
+      pbVar12 = (byte *)FUN_000ad11c(param_2,extraout_r1,param_3,iVar3);
       goto LAB_8;
     }
     iVar3 = strcmp(param_1,"Set_WiFi_5G");
     if (iVar3 == 0) {
-      pbVar12 = (byte *)FUN_000a7484(param_2);
+      pbVar12 = (byte *)FUN_000ad1b8(param_2);
       goto LAB_8;
     }
     iVar3 = strcmp(param_1,"Set_XSetting");
     if (iVar3 == 0) {
       if ((param_2 != (char *)0x0) && (iVar3 = strcmp(param_2,"1"), iVar3 == 0)) {
         nvram_set("x_Setting","1");
         piVar7 = (int *)nvram_get("x_Setting");
         goto LAB_3;
       }
     }
     else {
       iVar3 = strcmp(param_1,"Set_HwId");
       if (iVar3 == 0) {
-        bVar2 = FUN_00075f30();
+        bVar2 = FUN_000796e0();
         if (!bVar2) {
           return 0x16;
         }
-        iVar3 = FUN_000b5f08((int)param_2);
+        iVar3 = FUN_000bbc84((int)param_2);
       }
       else {
         iVar3 = strcmp(param_1,"Set_HwVersion");
         if (iVar3 == 0) {
-          bVar2 = FUN_00075f30();
+          bVar2 = FUN_000796e0();
           if (!bVar2) {
             return 0x16;
           }
-          iVar3 = FUN_000b5f64((int)param_2);
+          iVar3 = FUN_000bbce0((int)param_2);
         }
         else {
           iVar3 = strcmp(param_1,"Set_HwBom");
           if (iVar3 == 0) {
-            bVar2 = FUN_00075f30();
+            bVar2 = FUN_000796e0();
             if (!bVar2) {
               return 0x16;
             }
-            iVar3 = FUN_000b5fc0((int)param_2);
+            iVar3 = FUN_000bbd3c((int)param_2);
           }
           else {
             iVar3 = strcmp(param_1,"Set_DateCode");
             if (iVar3 != 0) {
               iVar3 = strcmp(param_1,"Get_FWVersion");
               if (iVar3 == 0) {
-                puVar8 = FUN_000757e8();
-                puVar9 = FUN_000757e8();
+                puVar8 = FUN_00078f98();
+                puVar9 = FUN_00078f98();
                 snprintf((char *)&local_98,0x10,"%s.%s",puVar8,puVar9);
 LAB_12:
                 piVar7 = &local_98;
                 goto LAB_3;
               }
               iVar3 = strcmp(param_1,"Get_BootLoaderVersion");
               if (iVar3 == 0) {
-                FUN_000b3eec();
+                FUN_000b9cf0();
                 return 0;
               }
               iVar3 = strcmp(param_1,"Get_ResetButtonStatus");
               if (iVar3 == 0) {
 LAB_13:
-                piVar7 = (int *)FUN_000757e8();
+                piVar7 = (int *)FUN_00078f98();
 LAB_3:
                 puts((char *)piVar7);
                 return 0;
               }
               iVar3 = strcmp(param_1,"Get_WpsButtonStatus");
               if ((iVar3 == 0) || (iVar3 = strcmp(param_1,"Get_PairingButtonStatus"), iVar3 == 0)) {
-                param_2 = FUN_000757e8();
+                param_2 = FUN_00078f98();
                 goto LAB_5;
               }
               iVar3 = strcmp(param_1,"Get_SSID_2G");
               if ((((iVar3 == 0) || (iVar3 = strcmp(param_1,"Get_SSID_5G"), iVar3 == 0)) ||
                   (iVar3 = strcmp(param_1,"Get_SSID_5G_2"), iVar3 == 0)) ||
                  (iVar3 = strcmp(param_1,"Get_SWMode"), iVar3 == 0)) goto LAB_13;
               iVar3 = strcmp(param_1,"Get_MacAddr_2G");
               if ((iVar3 == 0) || (iVar3 = strcmp(param_1,"Get_MacAddr"), iVar3 == 0)) {
-                FUN_000b3bd4();
+                FUN_000b9a4c();
                 return 0;
               }
               iVar3 = strcmp(param_1,"Get_MacAddr_5G");
               if (iVar3 == 0) {
-                FUN_000b3bf8();
+                FUN_000b9a70();
                 return 0;
               }
               iVar3 = strcmp(param_1,"Get_RegulationDomain_2G");
               if (iVar3 == 0) {
-                FUN_000b3f9c();
+                FUN_000b9da0();
                 return 0;
               }
               iVar3 = strcmp(param_1,"Get_RegulationDomain_5G");
               if (iVar3 == 0) {
-                FUN_000b41f4();
+                FUN_000ba028();
                 return 0;
               }
               iVar3 = strcmp(param_1,"Get_Regrev_2G");
               if (iVar3 == 0) {
-                FUN_000b4438();
+                FUN_000ba29c();
                 return 0;
               }
               iVar3 = strcmp(param_1,"Get_Regrev_5G");
               if (iVar3 == 0) {
-                FUN_000b472c();
+                FUN_000ba5c0();
                 return 0;
               }
               iVar3 = strcmp(param_1,"Get_SerialNumber");
               if (iVar3 == 0) {
-                FUN_000b5914();
+                FUN_000bb6a0();
                 return 0;
               }
               iVar3 = strcmp(param_1,"Get_EmsInternalSerialNumber");
               if (iVar3 == 0) {
-                FUN_000b5934();
+                FUN_000bb6c0();
                 return 0;
               }
               iVar3 = strcmp(param_1,"Get_ModelName");
               if (iVar3 == 0) {
-                FUN_000b5a3c();
+                FUN_000bb7c8();
                 return 0;
               }
               iVar3 = strcmp(param_1,"Get_PINCode");
               if (iVar3 == 0) {
-                FUN_000b3f7c();
+                FUN_000b9d80();
                 return 0;
               }
               iVar3 = strcmp(param_1,"Get_WanLanStatus");
               if (iVar3 == 0) {
-                uVar10 = FUN_000a3aec(1,(int *)0x0);
+                uVar10 = FUN_000a96bc(1,(int *)0x0);
                 if (uVar10 != 0) {
                   return 0;
                 }
                 uVar4 = ATE_FACTORY_MODE_STR();
-                bVar2 = FUN_00075808(uVar4,"1");
+                bVar2 = FUN_00078fb8(uVar4,"1");
                 if (!bVar2) {
                   return 0;
                 }
                 goto LAB_14;
               }
               iVar3 = strcmp(param_1,"Get_FwReadyStatus");
               if ((iVar3 == 0) || (iVar3 = strcmp(param_1,"Get_Build_Info"), iVar3 == 0))
               goto LAB_13;
               iVar3 = strcmp(param_1,"Get_ChannelList_2G");
               if (iVar3 == 0) {
-                iVar3 = FUN_000a7758();
+                iVar3 = FUN_000ad488();
 LAB_15:
                 if (iVar3 != 0) {
                   return 0;
                 }
               }
               else {
                 iVar3 = strcmp(param_1,"Get_ChannelList_5G");
                 if (iVar3 == 0) {
-                  iVar3 = FUN_000a7760();
+                  iVar3 = FUN_000ad490();
                   goto LAB_15;
                 }
                 iVar3 = strcmp(param_1,"Get_fail_ret");
                 if (iVar3 == 0) {
-                  FUN_000b5cd8();
+                  FUN_000bba54();
                   return 0;
                 }
                 iVar3 = strcmp(param_1,"Get_fail_reboot_log");
                 if (iVar3 == 0) {
-                  FUN_000b5cf4();
+                  FUN_000bba70();
                   return 0;
                 }
                 iVar3 = strcmp(param_1,"Get_fail_dev_log");
                 if (iVar3 == 0) {
-                  FUN_000b5d10();
+                  FUN_000bba8c();
                   return 0;
                 }
                 iVar3 = strcmp(param_1,"Get_WiFiStatus_2G");
                 if (iVar3 == 0) {
 LAB_16:
                   iVar3 = get_radio(iVar3);
                   if (iVar3 == 0) goto LAB_4;
 LAB_17:
                   param_2 = "1";
                   goto LAB_5;
                 }
                 iVar3 = strcmp(param_1,"Get_WiFiStatus_5G");
                 if (iVar3 == 0) {
                   iVar3 = 1;
                   goto LAB_16;
                 }
                 iVar3 = strcmp(param_1,"Set_WiFiStatus_2G");
                 if (iVar3 == 0) {
                   iVar3 = strcmp(param_2,"on");
                   if (iVar3 == 0) {
                     uVar4 = 1;
                     iVar6 = strcmp(param_2,"off");
                     if (iVar6 == 0) {
                       puts("ATE_UNSUPPORT");
                     }
                   }
                   else {
                     uVar4 = 0;
                   }
                   set_radio(uVar4,0);
                   uVar4 = 0;
 LAB_18:
                   iVar6 = get_radio(uVar4,0);
                   if (iVar6 == 0) {
                     if (iVar3 != 0) {
                       param_2 = "success=off";
                       goto LAB_5;
                     }
                   }
                   else if (iVar3 == 0) {
                     param_2 = "success=on";
                     goto LAB_5;
                   }
+LAB_19:
                   param_2 = "ATE_ERROR_INCORRECT_PARAMETER";
                   goto LAB_5;
                 }
                 iVar3 = strcmp(param_1,"Set_WiFiStatus_5G");
                 if (iVar3 == 0) {
                   iVar3 = strcmp(param_2,"on");
                   if ((iVar3 == 0) && (iVar6 = strcmp(param_2,"off"), iVar6 == 0)) {
                     puts("ATE_UNSUPPORT");
                   }
                   set_radio(iVar3 == 0,1,0);
                   uVar4 = 1;
                   goto LAB_18;
                 }
                 iVar3 = strcmp(param_1,"Get_ATEVersion");
                 if ((((iVar3 == 0) || (iVar3 = strcmp(param_1,"Get_XSetting"), iVar3 == 0)) ||
                     (iVar3 = strcmp(param_1,"Get_WaitTime"), iVar3 == 0)) ||
                    (iVar3 = strcmp(param_1,"Get_ExtendNo"), iVar3 == 0)) goto LAB_13;
                 iVar3 = strcmp(param_1,"Set_TerritoryCode");
                 if (iVar3 == 0) {
-                  bVar2 = FUN_00075f30();
+                  bVar2 = FUN_000796e0();
                   if (!bVar2) {
                     return 0x16;
                   }
-                  iVar3 = FUN_000b5a7c((byte *)param_2);
-                  goto LAB_19;
+                  iVar3 = FUN_000bb808((byte *)param_2);
+                  goto LAB_20;
                 }
                 iVar3 = strcmp(param_1,"Get_TerritoryCode");
                 if (iVar3 == 0) {
-                  FUN_000b5a5c();
+                  FUN_000bb7e8();
                   return 0;
                 }
                 iVar3 = strcmp(param_1,"Set_PSK");
                 if (iVar3 == 0) {
-                  bVar2 = FUN_00075f30();
+                  bVar2 = FUN_000796e0();
                   if (!bVar2) {
                     return 0x16;
                   }
-                  iVar3 = FUN_000b5b30(param_2);
-LAB_20:
+                  iVar3 = FUN_000bb8bc(param_2);
+LAB_21:
                   if (-1 < iVar3) goto LAB_5;
-                  goto LAB_21;
+                  goto LAB_22;
                 }
                 iVar3 = strcmp(param_1,"Check_PSK");
                 if (iVar3 == 0) {
-                  iVar3 = FUN_000b5c5c(param_2);
-                  goto LAB_19;
+                  iVar3 = FUN_000bb9e8(param_2);
+LAB_23:
+                  if (-1 < iVar3) {
+                    param_2 = "ATE_OK";
+                    goto LAB_5;
+                  }
+                  goto LAB_22;
                 }
                 iVar3 = strcmp(param_1,"Set_PASS");
                 if (iVar3 == 0) {
-                  bVar2 = FUN_00075f30();
+                  bVar2 = FUN_000796e0();
                   if (!bVar2) {
                     return 0x16;
                   }
-                  iVar3 = FUN_000b677c(param_2);
-                  goto LAB_20;
+                  iVar3 = FUN_000bc564(param_2);
+                  goto LAB_21;
                 }
                 iVar3 = strcmp(param_1,"Check_PASS");
                 if (iVar3 == 0) {
-                  iVar3 = FUN_000b6700(param_2);
-                  goto LAB_19;
+                  iVar3 = FUN_000bc4b4(param_2);
+                  goto LAB_23;
                 }
                 iVar3 = strcmp(param_1,"Set_AB");
                 if (iVar3 != 0) {
                   iVar3 = strcmp(param_1,"Unset_AB");
                   if (iVar3 == 0) {
-                    FUN_000b5e4c();
+                    FUN_000bbbc8();
                     return 0;
                   }
                   iVar3 = strcmp(param_1,"Get_AB");
                   if (iVar3 == 0) {
-                    FUN_000b5dd4();
+                    FUN_000bbb50();
                     return 0;
                   }
                   iVar3 = strcmp(param_1,"Set_ABK");
                   if (iVar3 == 0) {
                     if (((param_2 != (char *)0x0) && (sVar11 = strlen(param_2), sVar11 == 0x20)) &&
                        (iVar3 = is_valid_group_id(param_2), iVar3 != 0)) {
-                      FUN_000b5e9c((int)param_2);
+                      FUN_000bbc18((int)param_2);
                       return 0;
                     }
                     goto LAB_14;
                   }
                   iVar3 = strcmp(param_1,"Unset_ABK");
                   if (iVar3 == 0) {
-                    FUN_000b5ed8();
+                    FUN_000bbc54();
                     return 0;
                   }
                   iVar3 = strcmp(param_1,"Get_ABK");
                   if (iVar3 == 0) {
-                    FUN_000b5e7c();
+                    FUN_000bbbf8();
                     return 0;
                   }
                   iVar3 = strcmp(param_1,"Get_FwUpgradeState");
                   if (iVar3 == 0) {
-                    FUN_00076038();
+                    FUN_000797e8();
                     return 0;
                   }
                   iVar3 = strcmp(param_1,"Get_LabelMacAddr");
                   if (iVar3 == 0) {
                     piVar7 = (int *)get_label_mac();
                     goto LAB_3;
                   }
                   iVar3 = strcmp(param_1,"Set_IpAddr_Lan");
                   if (iVar3 == 0) {
                     if ((param_2 != (char *)0x0) && (*param_2 != '\0')) {
-                      FUN_000b632c(param_2);
-                      return 0;
-                    }
-LAB_22:
+                      FUN_000bc0e0(param_2);
+                      return 0;
+                    }
+LAB_24:
                     __s = "ATE_ERROR_INCORRECT_PARAMETER";
                     goto LAB_6;
                   }
                   iVar3 = strcmp(param_1,"Get_IpAddr_Lan");
                   if (iVar3 == 0) {
-                    FUN_000b63a4();
+                    FUN_000bc158();
                     return 0;
                   }
                   iVar3 = strcmp(param_1,"Set_MRFLAG");
                   if (iVar3 == 0) {
                     if ((param_2 != (char *)0x0) && (*param_2 != '\0')) {
-                      FUN_000b63fc(param_2);
-                      return 0;
-                    }
-                    goto LAB_22;
+                      FUN_000bc1b0(param_2);
+                      return 0;
+                    }
+                    goto LAB_24;
                   }
                   iVar3 = strcmp(param_1,"Get_MRFLAG");
                   if (iVar3 == 0) {
-                    FUN_000b6474();
+                    FUN_000bc228();
                     return 0;
                   }
                   iVar3 = strcmp(param_1,"Get_Default");
                   if (iVar3 == 0) {
                     if (param_2 == (char *)0x0) {
                       return 0;
                     }
                     piVar7 = (int *)nvram_default_get(param_2);
                     if (piVar7 == (int *)0x0) {
-                      piVar7 = (int *)0x187578;
+                      piVar7 = (int *)0x1909df;
                     }
                     goto LAB_3;
                   }
                   iVar3 = strcmp(param_1,"Get_txBurst");
                   if (iVar3 != 0) {
                     iVar3 = strcmp(param_1,"Get_HwId");
                     if (iVar3 == 0) {
-                      FUN_000b60a4();
+                      FUN_000bbe20();
                       return 0;
                     }
                     iVar3 = strcmp(param_1,"Get_HwVersion");
                     if (iVar3 == 0) {
-                      FUN_000b60c4();
+                      FUN_000bbe40();
                       return 0;
                     }
                     iVar3 = strcmp(param_1,"Get_HwBom");
                     if (iVar3 == 0) {
-                      FUN_000b60e4();
+                      FUN_000bbe60();
                       return 0;
                     }
                     iVar3 = strcmp(param_1,"Get_DateCode");
                     if (iVar3 == 0) {
-                      FUN_000b6104();
+                      FUN_000bbe80();
                       return 0;
                     }
                     iVar3 = strcmp(param_1,"Get_RDG");
                     if (iVar3 == 0) {
-                      piVar7 = (int *)&UNK_23;
+                      piVar7 = (int *)&UNK_25;
                       goto LAB_3;
                     }
                     iVar3 = strcmp(param_1,"Set_CoBrand");
                     if (iVar3 != 0) {
                       iVar3 = strcmp(param_1,"Unset_CoBrand");
                       if (iVar3 == 0) {
-                        FUN_000b6578();
+                        FUN_000bc32c();
                         return 0;
                       }
                       iVar3 = strcmp(param_1,"Get_CoBrand");
                       if (iVar3 == 0) {
-                        FUN_000b6500();
+                        FUN_000bc2b4();
                         return 0;
                       }
                       iVar3 = strcmp(param_1,"Get_ModelDesc");
                       if (iVar3 != 0) {
                         __s = "ATE_UNSUPPORT";
                         goto LAB_6;
                       }
-                      puVar8 = FUN_000757e8();
+                      puVar8 = FUN_00078f98();
                       snprintf((char *)&local_98,0x80,"%s",puVar8);
                       if ((char)local_98 == '\0') {
                         if ((rt_modeldesc == (int *)0x0) ||
                            (piVar7 = rt_modeldesc, *(char *)rt_modeldesc == '\0')) {
-                          piVar7 = (int *)0x16268b;
+                          piVar7 = (int *)0x16ac16;
                         }
                         goto LAB_3;
                       }
                       goto LAB_12;
                     }
-                    uVar10 = atoi(param_2);
-                    if (uVar10 < 0x65) {
-                      FUN_000b6520(uVar10,extraout_r1_02);
-                      return 0;
-                    }
-                    goto LAB_14;
-                  }
-                  bVar2 = FUN_00075808("wl1_frameburst","on");
+                    if (((param_2 != (char *)0x0) && (iVar3 = atoi(param_2), iVar3 - 1U < 100)) &&
+                       (iVar3 = FUN_000bc2d4(iVar3,extraout_r1_02), -1 < iVar3)) {
+                      return 0;
+                    }
+                    goto LAB_19;
+                  }
+                  bVar2 = FUN_00078fb8("wl1_frameburst","on");
                   if (!bVar2) {
-                    bVar2 = FUN_00075808("wl1_frameburst","off");
+                    bVar2 = FUN_00078fb8("wl1_frameburst","off");
                     if (!bVar2) {
                       return 0;
                     }
                     goto LAB_4;
                   }
                   goto LAB_17;
                 }
                 if (param_2 == (char *)0x0) {
                   iVar3 = 1;
                   uVar4 = extraout_r1_00;
-LAB_24:
-                  FUN_000b5df4(iVar3,uVar4);
+LAB_26:
+                  FUN_000bbb70(iVar3,uVar4);
                   return 0;
                 }
                 iVar3 = atoi(param_2);
                 uVar4 = extraout_r1_01;
-                if (iVar3 - 1U < 3) goto LAB_24;
+                if (iVar3 - 1U < 3) goto LAB_26;
               }
 LAB_14:
               param_2 = "ATE_ERROR";
 LAB_5:
               puts(param_2);
               return 0;
             }
-            bVar2 = FUN_00075f30();
+            bVar2 = FUN_000796e0();
             if (!bVar2) {
               return 0x16;
             }
-            iVar3 = FUN_000b601c(param_2);
+            iVar3 = FUN_000bbd98(param_2);
           }
         }
       }
-LAB_19:
+LAB_20:
       if (-1 < iVar3) {
         return 0;
       }
     }
   }
-LAB_21:
+LAB_22:
   __s = "ATE_ERROR_INCORRECT_PARAMETER";
 LAB_6:
   puts(__s);
   return 0x16;
 }
 

FUN_00021ea0

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.94
i_ratio 0.17
m_ratio 1.0
b_ratio 0.98
match_types BSIM

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_00021ea0 FUN_00022bc0
fullname FUN_00021ea0 FUN_00022bc0
refcount 4 4
length 5604 5628
called
Expand for full list:
::add_lan_phy
::add_led_ctrl_capability
::add_rc_support
::add_wan_phy
::add_wanscap_support
::amas_stop_acsd_config_init
::atoi
::cprintf
::get_cf_id
::get_dualwan_by_unit
::get_model
::get_wans_dualwan
::getpid
::memset
::nvram_default_get
::nvram_get
::nvram_get_int
::nvram_is_empty
::nvram_set
::nvram_set_int
::nvram_unset
::ovpn_defaults
::psname
::set_lan_phy
::set_wan_phy
::set_wanscap_support
::snprintf
::strchr
::strcpy
::strcspn
::strncpy
::strspn
::unset_selected_channel_info
::uptime
FUN_0001f9c0
FUN_0001fa40
FUN_0001fa70
FUN_00021d30
FUN_00021e10
FUN_000adfdc
FUN_000ae804
FUN_000b28bc
FUN_0010d154
FUN_0010ec38
Expand for full list:
::add_lan_phy
::add_led_ctrl_capability
::add_rc_support
::add_wan_phy
::add_wanscap_support
::amas_stop_acsd_config_init
::atoi
::cprintf
::get_cf_id
::get_dualwan_by_unit
::get_model
::get_wans_dualwan
::getpid
::memset
::nvram_default_get
::nvram_get
::nvram_get_int
::nvram_is_empty
::nvram_set
::nvram_set_int
::nvram_unset
::ovpn_defaults
::psname
::set_lan_phy
::set_wan_phy
::set_wanscap_support
::snprintf
::strchr
::strcpy
::strcspn
::strncpy
::strspn
::unset_selected_channel_info
::uptime
FUN_00020680
FUN_00020700
FUN_00020730
FUN_00022a4c
FUN_00022b2c
FUN_000b4540
FUN_000b878c
FUN_00113a5c
FUN_0011555c
thunk_FUN_000b3d18
calling FUN_00025d04
FUN_0002c548
FUN_000326e4
FUN_00026a44
FUN_0002d2d8
FUN_0003347c
paramcount 0 0
address 00021ea0 00022bc0
sig undefined4 __stdcall FUN_00021ea0(void) undefined4 __stdcall FUN_00022bc0(void)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_00021ea0 Called Diff

--- FUN_00021ea0 called
+++ FUN_00022bc0 called
@@ -35,10 +35,10 @@
-FUN_0001f9c0
-FUN_0001fa40
-FUN_0001fa70
-FUN_00021d30
-FUN_00021e10
-FUN_000adfdc
-FUN_000ae804
-FUN_000b28bc
-FUN_0010d154
-FUN_0010ec38
+FUN_00020680
+FUN_00020700
+FUN_00020730
+FUN_00022a4c
+FUN_00022b2c
+FUN_000b4540
+FUN_000b878c
+FUN_00113a5c
+FUN_0011555c
+thunk_FUN_000b3d18

FUN_00021ea0 Calling Diff

--- FUN_00021ea0 calling
+++ FUN_00022bc0 calling
@@ -1,3 +1,3 @@
-FUN_00025d04
-FUN_0002c548
-FUN_000326e4
+FUN_00026a44
+FUN_0002d2d8
+FUN_0003347c

FUN_00021ea0 Diff

--- FUN_00021ea0
+++ FUN_00022bc0
@@ -1,605 +1,607 @@
 
-undefined4 FUN_00021ea0(void)
+undefined4 FUN_00022bc0(void)
 
 {
   bool bVar1;
   int iVar2;
   __pid_t _Var3;
   undefined4 uVar4;
   int iVar5;
   undefined *puVar6;
   char *pcVar7;
   uint uVar8;
   int iVar9;
   size_t sVar10;
   size_t sVar11;
   char *pcVar12;
   undefined auStack_170 [16];
   char acStack_160 [16];
   char acStack_150 [48];
   char local_120 [255];
   undefined local_21;
   
   iVar2 = nvram_get("sw_mode");
   if (iVar2 == 0) {
     nvram_default_get("sw_mode");
   }
   else {
     nvram_get_int();
   }
   iVar2 = get_model();
   nvram_get_int("x_Setting");
-  FUN_000b28bc();
-  FUN_0010ec38();
+  FUN_000b878c();
+  FUN_0011555c();
   _Var3 = getpid();
   psname(_Var3,local_120,0x10);
   uVar4 = uptime();
   cprintf("[%d %s:%s +%ld] init_nvram for model(%d)\n",_Var3,local_120,"init_nvram",uVar4,iVar2);
   memset(auStack_170,0,0x10);
   nvram_set("rc_support","");
   if (DAT_0 != 0) {
     nvram_set_int("btn_rst_gpio",0xff);
     nvram_set_int("btn_wps_gpio",0xff);
     nvram_set_int("btn_radio_gpio",0xff);
     nvram_set_int("led_pwr_gpio",0xff);
     nvram_set_int("led_wps_gpio",0xff);
     nvram_set_int("pwr_usb_gpio",0xff);
     nvram_set_int("pwr_usb_gpio2",0xff);
     nvram_set_int("led_usb_gpio",0xff);
     nvram_set_int("led_lan_gpio",0xff);
     nvram_set_int("led_lan1_gpio",0xff);
     nvram_set_int("led_lan2_gpio",0xff);
     nvram_set_int("led_lan3_gpio",0xff);
     nvram_set_int("led_lan4_gpio",0xff);
     nvram_set_int("led_wan_gpio",0xff);
     nvram_set_int("led_wan_normal_gpio",0xff);
     nvram_set_int("led_2g_gpio",0xff);
     nvram_set_int("led_5g_gpio",0xff);
     nvram_set_int("led_all_gpio",0xff);
     nvram_set_int("led_logo_gpio",0xff);
     nvram_set_int("led_usb3_gpio",0xff);
     nvram_set_int("fan_gpio",0xff);
     nvram_set_int("have_fan_gpio",0xff);
     nvram_unset("btn_wltog_gpio");
     nvram_unset("btn_led_gpio");
     DAT_0 = 0;
   }
   nvram_set("ehci_ports","");
   nvram_set("ohci_ports","");
   nvram_unset("xhci_ports");
   nvram_set("vpn_upload_state","");
   iVar5 = nvram_is_empty("vpn_server_clientlist");
   if (iVar5 == 0) {
-    puVar6 = FUN_0001f9c0();
+    puVar6 = FUN_00020680();
     nvram_set("vpn_serverx_clientlist",puVar6);
     nvram_unset("vpn_server_clientlist");
   }
   ovpn_defaults();
   iVar5 = nvram_get_int("sshd_port");
   if ((0 < iVar5) && (iVar5 = nvram_get_int("sshd_port_x"), iVar5 < 1)) {
-    puVar6 = FUN_0001f9c0();
+    puVar6 = FUN_00020680();
     nvram_set("sshd_port_x",puVar6);
   }
   nvram_set("fb_state","");
   nvram_set("PM_state","");
   nvram_unset("usb_buildin");
   iVar5 = nvram_get("sw_mode");
   if (iVar5 == 0) {
     pcVar7 = (char *)nvram_default_get("sw_mode");
     iVar5 = atoi(pcVar7);
   }
   else {
     iVar5 = nvram_get_int();
   }
   if (iVar5 == 2) {
 LAB_1:
     iVar5 = 0;
   }
   else {
     iVar5 = nvram_get("sw_mode");
     if (iVar5 == 0) {
       pcVar7 = (char *)nvram_default_get("sw_mode");
       iVar5 = atoi(pcVar7);
     }
     else {
       iVar5 = nvram_get_int();
     }
     if ((iVar5 == 3) && (iVar5 = nvram_get_int("wlc_psta"), iVar5 == 1)) goto LAB_1;
     iVar5 = nvram_get("sw_mode");
     if (iVar5 == 0) {
       pcVar7 = (char *)nvram_default_get("sw_mode");
       iVar5 = atoi(pcVar7);
     }
     else {
       iVar5 = nvram_get_int("sw_mode");
     }
     if ((iVar5 == 3) && (iVar5 = nvram_get_int("wlc_psta"), iVar5 == 2)) {
       iVar5 = nvram_get_int("wlc_dpsta");
       if (iVar5 != 0) {
         iVar5 = 1;
       }
     }
     else {
       iVar5 = 1;
     }
   }
   nvram_set_int("ure_disable",iVar5);
   nvram_set_int("upgrade_fw_status",0);
   nvram_unset("wanduck_start_detect");
   iVar5 = nvram_get_int("re_mode");
   if (iVar5 == 1) {
     nvram_unset("led_ctrl_cap");
   }
   iVar5 = nvram_get_int("re_mode");
   if ((iVar5 == 0) && (iVar5 = nvram_get("wgn_wloff_vifs"), iVar5 != 0)) {
     nvram_unset("wgn_wloff_vifs");
   }
   if (iVar2 == 0x8f) {
     nvram_set("lan_ifname",&DAT_2);
     iVar5 = nvram_get("sw_mode");
     if (iVar5 == 0) {
       pcVar7 = (char *)nvram_default_get("sw_mode");
       iVar5 = atoi(pcVar7);
     }
     else {
       iVar5 = nvram_get_int();
     }
     if (iVar5 == 1) {
       nvram_set("lan_ifnames","eth1 eth2 eth3");
       pcVar12 = "eth0";
       nvram_set("wan_ifname",&DAT_3);
       pcVar7 = "wan_ifnames";
     }
     else {
       nvram_set("lan_ifnames","eth0 eth1 eth2 eth3");
       pcVar12 = "";
       nvram_set("wan_ifnames","");
       pcVar7 = "wan_ifname";
     }
     nvram_set(pcVar7,pcVar12);
     nvram_set("wl_ifnames","eth2 eth3");
     nvram_set("wl0_vifnames","wl0.1 wl0.2 wl0.3");
     nvram_set("wl1_vifnames","wl1.1 wl1.2 wl1.3");
     nvram_set("sta_phy_ifnames","eth2 eth3");
     nvram_set("eth_ifnames",&DAT_3);
     nvram_set("sta_ifnames","eth2 eth3");
     nvram_set("wired_ifnames",&DAT_4);
     nvram_unset("sb/0/ed_thresh2g");
     nvram_unset("sb/0/eu_edthresh2g");
     nvram_unset("sb/1/ed_thresh5g");
     nvram_unset("sb/1/eu_edthresh5g");
     nvram_set_int("btn_wps_gpio",0x1004);
     nvram_set_int("btn_rst_gpio",0x1009);
     nvram_set_int("led_pwr_gpio",0x1005);
     nvram_set_int("led_wps_gpio",0x1005);
     nvram_set_int("led_wan_gpio",0x100b);
     nvram_set_int("led_wan_normal_gpio",0x1007);
     nvram_set_int("led_lan_gpio",0x100c);
     iVar5 = nvram_get("sw_mode");
     if (iVar5 == 0) {
       pcVar7 = (char *)nvram_default_get("sw_mode");
       iVar5 = atoi(pcVar7);
     }
     else {
       iVar5 = nvram_get_int();
     }
     if (iVar5 == 1) {
       set_lan_phy(&DAT_4);
       uVar8 = get_wans_dualwan();
       if ((uVar8 & 8) == 0) {
         add_lan_phy(&DAT_5);
       }
       uVar8 = get_wans_dualwan();
       if ((uVar8 & 0x10) == 0) {
         add_lan_phy(&DAT_6);
       }
       iVar5 = nvram_get("wans_dualwan");
       if (iVar5 != 0) {
         iVar5 = 0;
         set_wan_phy("");
         do {
           iVar9 = get_dualwan_by_unit(iVar5);
           if (iVar9 == 3) {
             pcVar7 = strcpy(acStack_150,"vlan2");
 LAB_7:
             add_wan_phy(pcVar7);
           }
           else {
             iVar9 = get_dualwan_by_unit(iVar5);
             if (iVar9 == 5) {
               pcVar7 = "eth2";
               goto LAB_7;
             }
             iVar9 = get_dualwan_by_unit(iVar5);
             if (iVar9 == 6) {
               pcVar7 = "eth3";
               goto LAB_7;
             }
             iVar9 = get_dualwan_by_unit(iVar5);
             if (iVar9 == 2) {
               iVar9 = nvram_get("switch_wantag");
-              if ((((iVar9 == 0) || (bVar1 = FUN_0001fa40("switch_wantag",""), bVar1)) ||
-                  (bVar1 = FUN_0001fa40("switch_wantag","none"), bVar1)) ||
+              if ((((iVar9 == 0) || (bVar1 = FUN_00020700("switch_wantag",""), bVar1)) ||
+                  (bVar1 = FUN_00020700("switch_wantag","none"), bVar1)) ||
                  (iVar9 = nvram_get_int("switch_wan0tagid"), iVar9 == 0)) {
-                pcVar7 = FUN_00021d30();
+                pcVar7 = FUN_00022a4c();
               }
               else {
                 pcVar7 = "eth0.v0";
               }
               goto LAB_7;
             }
           }
           if (iVar5 == 1) goto LAB_8;
           iVar5 = 1;
         } while( true );
       }
       nvram_set("wan_ifnames",&DAT_9);
     }
     else {
       nvram_unset("wan1_ifname");
     }
 LAB_8:
     iVar5 = nvram_get("ct_max");
     if (iVar5 == 0) {
       nvram_set("ct_max","30000");
     }
     add_rc_support("mssid 2.4G 5G update");
     add_rc_support("switchctrl");
     add_rc_support("manual_stb");
     add_rc_support(&DAT_10);
     add_rc_support("pwrctrl");
     add_rc_support("WIFI_LOGO");
     add_rc_support("nandflash");
     add_rc_support("movistarTriple");
     add_rc_support("wifi2017");
     add_rc_support("app");
     add_rc_support("ofdma");
     pcVar7 = "wpa3";
   }
   else {
     if (iVar2 != 0x9f) {
       cprintf(
              "############################ unknown model(init.c:8512) #################################\n"
              );
       goto LAB_11;
     }
     nvram_set("fast_restart","1");
     nvram_set("lan_ifname",&DAT_2);
     iVar5 = nvram_get("sw_mode");
     if (iVar5 == 0) {
       pcVar7 = (char *)nvram_default_get("sw_mode");
       iVar5 = atoi(pcVar7);
     }
     else {
       iVar5 = nvram_get_int();
     }
     if (iVar5 == 1) {
       nvram_set("lan_ifnames","eth1 eth2 eth3 eth4 eth5");
       pcVar12 = "eth0";
       nvram_set("wan_ifname",&DAT_3);
       pcVar7 = "wan_ifnames";
     }
     else {
       nvram_set("lan_ifnames","eth0 eth1 eth2 eth3 eth4 eth5");
       pcVar12 = "";
       nvram_set("wan_ifnames","");
       pcVar7 = "wan_ifname";
     }
     nvram_set(pcVar7,pcVar12);
     nvram_set("wl_ifnames","");
     nvram_set("sta_phy_ifnames","");
     iVar5 = nvram_get_int("re_mode");
     if (iVar5 == 1) {
       nvram_set("wait_band","0");
       nvram_set("wait_wifi","0");
     }
     nvram_set("eth_ifnames",&DAT_3);
     nvram_set("sta_ifnames","");
     nvram_set("wired_ifnames","eth1 eth2 eth3 eth4 eth5");
     nvram_set_int("led_usb_gpio",0x100c);
     nvram_set_int("led_ar3012_dis_gpio",0x100f);
     nvram_set_int("led_pwr_gpio",0x1016);
     nvram_set_int("led_ethall_gpio",0x1018);
     nvram_set_int("led_ar3012_rst_gpio",0x1019);
     nvram_set_int("btn_wps_gpio",0x1004);
     nvram_set_int("btn_rst_gpio",0x1017);
     nvram_set_int("btn_led_gpio",0xff);
     nvram_unset("xhci_ports");
     nvram_set("ehci_ports",&DAT_12);
     nvram_set("ohci_ports","2-1 2-2");
     iVar5 = nvram_get("sw_mode");
     if (iVar5 == 0) {
       pcVar7 = (char *)nvram_default_get("sw_mode");
       iVar5 = atoi(pcVar7);
     }
     else {
       iVar5 = nvram_get_int();
     }
     if (iVar5 == 1) {
       uVar8 = get_wans_dualwan();
       if ((uVar8 & 4) == 0) {
         pcVar7 = "eth1 eth2 eth3";
 LAB_13:
         set_lan_phy(pcVar7);
       }
       else {
-        bVar1 = FUN_0001fa40("wans_lanport","1");
+        bVar1 = FUN_00020700("wans_lanport","1");
         if (bVar1) {
           pcVar7 = "eth2 eth3";
           goto LAB_13;
         }
-        bVar1 = FUN_0001fa40("wans_lanport","2");
+        bVar1 = FUN_00020700("wans_lanport","2");
         if (bVar1) {
           pcVar7 = "eth1 eth3";
           goto LAB_13;
         }
-        bVar1 = FUN_0001fa40("wans_lanport","3");
+        bVar1 = FUN_00020700("wans_lanport","3");
         if (bVar1) {
           pcVar7 = "eth1 eth2";
           goto LAB_13;
         }
       }
       uVar8 = get_wans_dualwan();
       if ((uVar8 & 8) == 0) {
         add_lan_phy(&DAT_14);
       }
       uVar8 = get_wans_dualwan();
       if ((uVar8 & 0x10) == 0) {
         add_lan_phy("eth5");
       }
       iVar5 = nvram_get("wans_dualwan");
       if (iVar5 != 0) {
         iVar5 = 0;
         set_wan_phy("");
         do {
           iVar9 = get_dualwan_by_unit(iVar5);
           if (iVar9 == 3) {
             pcVar7 = acStack_150;
-            bVar1 = FUN_0001fa40("wans_lanport","1");
+            bVar1 = FUN_00020700("wans_lanport","1");
             if (bVar1) {
               pcVar12 = "eth1";
             }
             else {
-              bVar1 = FUN_0001fa40("wans_lanport","2");
+              bVar1 = FUN_00020700("wans_lanport","2");
               if (bVar1) {
                 pcVar12 = "eth2";
               }
               else {
-                bVar1 = FUN_0001fa40("wans_lanport","3");
+                bVar1 = FUN_00020700("wans_lanport","3");
                 if (!bVar1) goto LAB_15;
                 pcVar12 = "eth3";
               }
             }
             strcpy(pcVar7,pcVar12);
 LAB_15:
             add_wan_phy(pcVar7);
           }
           else {
             iVar9 = get_dualwan_by_unit(iVar5);
             if (iVar9 == 5) {
               pcVar7 = "eth4";
               goto LAB_15;
             }
             iVar9 = get_dualwan_by_unit(iVar5);
             if (iVar9 == 6) {
               pcVar7 = "eth5";
               goto LAB_15;
             }
             iVar9 = get_dualwan_by_unit(iVar5);
             if (iVar9 == 2) {
               iVar9 = nvram_get("switch_wantag");
-              if (((iVar9 == 0) || (bVar1 = FUN_0001fa40("switch_wantag",""), bVar1)) ||
-                 ((bVar1 = FUN_0001fa40("switch_wantag","none"), bVar1 ||
+              if (((iVar9 == 0) || (bVar1 = FUN_00020700("switch_wantag",""), bVar1)) ||
+                 ((bVar1 = FUN_00020700("switch_wantag","none"), bVar1 ||
                   (iVar9 = nvram_get_int("switch_wan0tagid"), iVar9 == 0)))) {
-                pcVar7 = FUN_00021d30();
+                pcVar7 = FUN_00022a4c();
               }
               else {
                 pcVar7 = "eth0.v0";
               }
               goto LAB_15;
             }
             iVar9 = get_dualwan_by_unit(iVar5);
             pcVar7 = "usb";
             if (iVar9 == 4) goto LAB_15;
           }
           if (iVar5 == 1) goto LAB_16;
           iVar5 = 1;
         } while( true );
       }
       nvram_set("wan_ifnames",&DAT_9);
     }
     else {
       nvram_unset("wan1_ifname");
     }
 LAB_16:
     iVar5 = nvram_get("ct_max");
     if (iVar5 == 0) {
       nvram_set("ct_max","300000");
     }
     add_rc_support("mssid 2.4G 5G update usbX1");
     add_rc_support("switchctrl");
     add_rc_support("manual_stb");
     add_rc_support("pwrctrl");
     add_rc_support("nandflash");
     add_rc_support("movistarTriple");
     pcVar7 = "app";
   }
   add_rc_support(pcVar7);
 LAB_11:
   iVar5 = nvram_get_int("ct_expect_max");
   if (iVar5 == 0) {
     nvram_set_int("ct_expect_max",0x96);
   }
-  FUN_000adfdc();
+  thunk_FUN_000b3d18();
   unset_selected_channel_info();
   iVar5 = nvram_get_int("re_mode");
   if (iVar5 == 1) {
     amas_stop_acsd_config_init(iVar2);
   }
-  bVar1 = FUN_0001fa40("wifison_ready","1");
+  bVar1 = FUN_00020700("wifison_ready","1");
   if (bVar1) {
     cprintf("no wifison feature\n");
   }
   iVar5 = nvram_get_int("switch_stb_x");
-  if ((6 < iVar5) && (bVar1 = FUN_0001fa40("switch_wantag","movistar"), bVar1)) {
+  if ((6 < iVar5) && (bVar1 = FUN_00020700("switch_wantag","movistar"), bVar1)) {
     nvram_set("iptv_wan_ifnames","eth0.v1 eth0.v2");
     nvram_set("iptv_ifname","eth0.v1");
   }
-  puVar6 = FUN_0001f9c0();
-  pcVar7 = FUN_0001f9c0();
+  puVar6 = FUN_00020680();
+  pcVar7 = FUN_00020680();
   sVar10 = strspn(pcVar7," ");
   iVar5 = 0;
   strncpy(local_120,puVar6 + sVar10,0x100);
   local_21 = 0;
   sVar11 = strcspn(local_120," ");
   local_120[sVar11] = '\0';
   pcVar7 = strchr(puVar6 + sVar10,0x20);
   while (local_120[0] != '\0') {
-    bVar1 = FUN_0001fa40("re_mode","1");
+    bVar1 = FUN_00020700("re_mode","1");
     if (bVar1) {
       pcVar12 = "wl%d.1_rrm";
     }
     else {
       pcVar12 = "wl%d_rrm";
     }
     snprintf(acStack_160,0x10,pcVar12,iVar5);
     iVar5 = iVar5 + 1;
     nvram_set(acStack_160,&DAT_17);
     if (pcVar7 == (char *)0x0) {
       pcVar7 = "";
     }
     else {
       sVar10 = strspn(pcVar7," ");
       pcVar7 = pcVar7 + sVar10;
     }
     strncpy(local_120,pcVar7,0x100);
     local_21 = 0;
     sVar10 = strcspn(local_120," ");
     local_120[sVar10] = '\0';
     pcVar7 = strchr(pcVar7,0x20);
   }
   add_led_ctrl_capability(4);
   add_rc_support("reboot_schedule");
-  bVar1 = FUN_0001fa40("reboot_schedule_enable","");
+  bVar1 = FUN_00020700("reboot_schedule_enable","");
   if (bVar1) {
     nvram_set("reboot_schedule_enable","0");
   }
-  bVar1 = FUN_0001fa40("reboot_schedule","");
+  bVar1 = FUN_00020700("reboot_schedule","");
   if (bVar1) {
     nvram_set("reboot_schedule","00000000000");
   }
   add_rc_support("ipv6");
   add_rc_support("ipv6pt");
   add_rc_support(&DAT_18);
+  add_rc_support("ocnvc");
+  add_rc_support("dslite");
   add_rc_support("PARENTAL2");
-  FUN_0010d154(0);
-  FUN_000ae804();
-  FUN_00021e10();
+  FUN_00113a5c(0);
+  FUN_000b4540();
+  FUN_00022b2c();
   add_rc_support("dnsfilter");
   add_rc_support("dnspriv");
   set_wanscap_support("wan");
   add_rc_support("dualwan");
   add_wanscap_support("lan");
   add_rc_support("pptpd");
   add_rc_support(&DAT_19);
   add_rc_support("utf8_ssid");
   add_rc_support("frs_feedback");
   add_rc_support("dblog");
   add_rc_support("email");
   iVar5 = nvram_get("wl2_nband");
   if (iVar5 != 0) {
     add_rc_support(&DAT_20);
   }
   add_rc_support("bwdpi");
-  pcVar7 = FUN_0001f9c0();
+  pcVar7 = FUN_00020680();
   if (*pcVar7 == '\0') {
     iVar5 = nvram_get_int("wrs_mals_enable");
     if (((iVar5 == 0) && (iVar5 = nvram_get_int("wrs_cc_enable"), iVar5 == 0)) &&
        (iVar5 = nvram_get_int("wrs_vp_enable"), iVar5 == 0)) {
       pcVar7 = "0";
     }
     else {
       pcVar7 = "1";
     }
     nvram_set("wrs_protect_enable",pcVar7);
   }
   add_rc_support("wrs_wbl");
   add_rc_support("ookla");
   add_rc_support("HTTPS");
   iVar5 = nvram_get_int("https_crt_save");
   if (iVar5 == 0) {
     nvram_set_int("https_crt_save",1);
   }
-  puVar6 = FUN_0001f9c0();
+  puVar6 = FUN_00020680();
   if (puVar6 != (undefined *)0x0) {
     nvram_unset("https_crt_file");
   }
   add_rc_support("letsencrypt");
   add_rc_support(&DAT_21);
   add_rc_support("vpnc");
   add_rc_support("repeater");
   add_rc_support("psta");
   add_rc_support(&DAT_22);
   add_rc_support("user_low_rssi");
   add_rc_support("tcode");
   add_rc_support("usericon");
   add_rc_support("cfg_wps_btn");
   add_rc_support("stainfo");
   add_rc_support("realip");
-  pcVar7 = FUN_0001f9c0();
+  pcVar7 = FUN_00020680();
   if (*pcVar7 != '\0') {
     add_rc_support("defpsk");
   }
   add_rc_support("alexa");
   add_rc_support("ipsec_srv");
   add_rc_support("mumimo");
   add_rc_support("netool");
   add_rc_support("cfg_sync");
   add_rc_support("no_finiwl");
   add_rc_support("fupgrade");
   add_rc_support("afwupg");
   add_rc_support(&DAT_23);
   iVar5 = nvram_get_int("amas_bdl");
   if (iVar5 != 0) {
     add_rc_support("amas_bdl");
   }
   add_rc_support("bcmwifi");
-  FUN_0010d154(2);
-  FUN_0010d154(3);
+  FUN_00113a5c(2);
+  FUN_00113a5c(3);
   add_rc_support("bcmhnd");
   add_rc_support(&DAT_24);
   add_rc_support("conndiag");
-  iVar5 = FUN_0001fa70("enable_diag","2");
+  iVar5 = FUN_00020730("enable_diag","2");
   if (iVar5 != 0) {
     nvram_set("enable_diag",&DAT_25);
   }
-  iVar5 = FUN_0001fa70("diag_local_data","1");
+  iVar5 = FUN_00020730("diag_local_data","1");
   if (iVar5 != 0) {
     nvram_set("diag_local_data","1");
   }
-  iVar5 = FUN_0001fa70("diag_interval","60");
+  iVar5 = FUN_00020730("diag_interval","60");
   if (iVar5 != 0) {
     nvram_set("diag_interval",&DAT_26);
   }
   add_rc_support("eula");
   add_rc_support("proxysta");
   add_rc_support("iperf3");
   add_rc_support("account_binding");
   add_rc_support("acl96");
   add_rc_support("dhdlog");
   iVar5 = nvram_get_int("SG_mode");
   if (iVar5 == 1) {
     add_rc_support("noFwManual");
   }
   add_rc_support(&DAT_27);
   uVar4 = get_cf_id(iVar2,"RT-AX3000N");
   nvram_set_int("comfw_type",uVar4);
   nvram_set("build_name","RT-AX3000N");
   add_rc_support("smart_connect");
-  bVar1 = FUN_0001fa40("forget_it","");
+  bVar1 = FUN_00020700("forget_it","");
   if (!bVar1) {
     add_rc_support("defpass");
   }
   return 0;
 }
 

FUN_000a6a34

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.98
i_ratio 0.49
m_ratio 0.34
b_ratio 0.34
match_types BSIM

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_000a6a34 FUN_000ac738
fullname FUN_000a6a34 FUN_000ac738
refcount 1 1
length 1624 1656
called ::_eval
::get_model
::led_control
FUN_000a3f30
FUN_000a4118
::_eval
::get_model
::led_control
FUN_000a9b00
FUN_000a9ce8
calling FUN_00076120 FUN_000798d0
paramcount 0 0
address 000a6a34 000ac738
sig undefined4 __stdcall FUN_000a6a34(void) undefined4 __stdcall FUN_000ac738(void)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_000a6a34 Called Diff

--- FUN_000a6a34 called
+++ FUN_000ac738 called
@@ -4,2 +4,2 @@
-FUN_000a3f30
-FUN_000a4118
+FUN_000a9b00
+FUN_000a9ce8

FUN_000a6a34 Calling Diff

--- FUN_000a6a34 calling
+++ FUN_000ac738 calling
@@ -1 +1 @@
-FUN_00076120
+FUN_000798d0

FUN_000a6a34 Diff

--- FUN_000a6a34
+++ FUN_000ac738
@@ -1,411 +1,427 @@
 
-undefined4 FUN_000a6a34(void)
+undefined4 FUN_000ac738(void)
 
 {
   int iVar1;
   undefined4 uVar2;
   undefined4 uStack_2c;
   undefined4 uStack_28;
   undefined4 uStack_24;
   undefined4 uStack_20;
   undefined4 uStack_1c;
   undefined4 uStack_18;
   undefined4 uStack_14;
   
   led_control(0,1);
   iVar1 = get_model();
   if (iVar1 == 2) {
     led_control(0xb,1);
     led_control(5,1);
     uStack_2c = DAT_0;
     uStack_28 = DAT_1;
     uStack_24 = DAT_2;
     uStack_20 = DAT_3;
     uStack_1c = DAT_4;
     uStack_18 = DAT_5;
     _eval(&uStack_2c,0,0);
     uStack_2c = DAT_6;
     uStack_28 = DAT_7;
     uStack_24 = DAT_8;
     uStack_20 = DAT_9;
     uStack_1c = DAT_10;
     uStack_18 = DAT_11;
     _eval(&uStack_2c,0,0);
     uStack_2c = DAT_12;
     uStack_28 = DAT_13;
     uStack_24 = DAT_14;
     uStack_20 = DAT_15;
     goto LAB_16;
   }
   switch(iVar1) {
   case 0x24:
     goto LAB_17;
   case 0x25:
     goto LAB_17;
   case 0x26:
     goto LAB_17;
   case 0x27:
     goto LAB_17;
   case 0x28:
     goto LAB_17;
   case 0x29:
     goto LAB_17;
   case 0x2a:
     break;
   case 0x2b:
     led_control(0,1);
     goto LAB_18;
   case 0x2c:
     goto LAB_19;
   case 0x2d:
     led_control(1);
     led_control(0,1);
     goto LAB_20;
   case 0x2e:
     break;
   case 0x2f:
 LAB_18:
     uVar2 = 5;
     goto LAB_21;
   case 0x30:
     goto LAB_19;
   case 0x31:
 LAB_19:
     uStack_2c = DAT_0;
     uStack_28 = DAT_1;
     uStack_24 = DAT_2;
     uStack_20 = DAT_3;
     uStack_1c = DAT_4;
     uStack_18 = DAT_5;
     _eval(&uStack_2c,0,0);
     uStack_2c = DAT_6;
     uStack_28 = DAT_7;
     uStack_24 = DAT_8;
     uStack_20 = DAT_9;
     uStack_1c = DAT_10;
     uStack_18 = DAT_11;
     _eval(&uStack_2c,0,0);
 LAB_22:
     uVar2 = 1;
     goto LAB_21;
   case 0x32:
     goto LAB_23;
   case 0x33:
     break;
   case 0x34:
     uStack_2c = DAT_0;
     uStack_28 = DAT_1;
     uStack_24 = DAT_2;
     uStack_20 = DAT_3;
     uStack_1c = DAT_4;
     uStack_18 = DAT_5;
     _eval(&uStack_2c,0,0);
     uStack_2c = DAT_6;
     uStack_28 = DAT_7;
     uStack_24 = DAT_8;
     uStack_20 = DAT_9;
     uStack_1c = DAT_10;
     uStack_18 = DAT_11;
     _eval(&uStack_2c,0,0);
     goto LAB_24;
   case 0x35:
     goto LAB_25;
   case 0x36:
 LAB_25:
     led_control(1);
     led_control(0xb,1);
     led_control(5,1);
     goto LAB_20;
   case 0x37:
     led_control(0,1);
     uVar2 = 5;
     goto LAB_26;
   case 0x38:
 LAB_23:
     led_control(2,1);
     led_control(1);
     led_control(0xb,1);
 LAB_20:
     uStack_2c = DAT_0;
     uStack_28 = DAT_1;
     uStack_24 = DAT_2;
     uStack_20 = DAT_3;
     uStack_1c = DAT_4;
     uStack_18 = DAT_5;
     _eval(&uStack_2c,0,0);
     uStack_2c = DAT_6;
     uStack_28 = DAT_7;
     uStack_24 = DAT_8;
     uStack_20 = DAT_9;
     uStack_1c = DAT_10;
     uStack_18 = DAT_11;
     goto LAB_16;
   case 0x39:
     goto LAB_27;
   case 0x3a:
     goto LAB_27;
   case 0x3b:
     goto LAB_27;
   case 0x3c:
     goto LAB_27;
   case 0x3d:
     break;
   case 0x3e:
     led_control(2,1);
     led_control(1);
 LAB_17:
     uStack_2c = DAT_28;
     uStack_28 = DAT_29;
     uStack_24 = DAT_30;
     uStack_20 = DAT_31;
     uStack_1c = DAT_32;
     uStack_18 = DAT_33;
     goto LAB_16;
   case 0x3f:
     goto LAB_24;
   case 0x40:
     goto LAB_24;
   case 0x41:
 LAB_24:
     uVar2 = 2;
 LAB_21:
     led_control(uVar2,1);
     break;
   case 0x42:
     break;
   case 0x43:
     goto LAB_34;
   case 0x44:
 LAB_34:
     uStack_2c = DAT_0;
     uStack_28 = DAT_1;
     uStack_24 = DAT_2;
     uStack_20 = DAT_3;
     uStack_1c = DAT_4;
     uStack_18 = DAT_5;
     _eval(&uStack_2c,0,0);
     uStack_2c = DAT_6;
     uStack_28 = DAT_7;
     uStack_24 = DAT_8;
     uStack_20 = DAT_9;
     uStack_1c = DAT_10;
     uStack_18 = DAT_11;
     _eval(&uStack_2c,0,0);
     uVar2 = 2;
 LAB_26:
     led_control(uVar2,1);
     goto LAB_22;
   case 0x45:
     break;
   case 0x46:
     break;
   case 0x47:
     break;
   case 0x48:
     break;
   case 0x49:
     break;
   case 0x4a:
     break;
   case 0x4b:
     break;
   case 0x4c:
     break;
   case 0x4d:
     break;
   case 0x4e:
     break;
   case 0x4f:
     break;
   case 0x50:
     break;
   case 0x51:
     break;
   case 0x52:
     break;
   case 0x53:
     break;
   case 0x54:
     break;
   case 0x55:
     break;
   case 0x56:
     break;
   case 0x57:
     goto LAB_27;
   case 0x58:
     break;
   case 0x59:
     break;
   case 0x5a:
     break;
   case 0x5b:
     break;
   case 0x5c:
     break;
   case 0x5d:
     break;
   case 0x5e:
     break;
   case 0x5f:
     break;
   case 0x60:
     break;
   case 0x61:
     goto LAB_27;
   case 0x62:
     goto LAB_27;
   case 99:
     goto LAB_27;
   case 100:
     break;
   case 0x65:
     break;
   case 0x66:
     break;
   case 0x67:
     goto LAB_27;
   case 0x68:
     goto LAB_27;
   case 0x69:
     goto LAB_27;
   case 0x6a:
     break;
   case 0x6b:
     break;
   case 0x6c:
     break;
   case 0x6d:
     break;
   case 0x6e:
     goto LAB_27;
   case 0x6f:
     goto LAB_27;
   case 0x70:
     break;
   case 0x71:
     break;
   case 0x72:
     goto LAB_27;
   case 0x73:
     goto LAB_27;
   case 0x74:
     break;
   case 0x75:
     break;
   case 0x76:
     break;
   case 0x77:
     goto LAB_27;
   case 0x78:
     goto LAB_27;
   case 0x79:
     break;
   case 0x7a:
     break;
   case 0x7b:
     break;
   case 0x7c:
     break;
   case 0x7d:
     break;
   case 0x7e:
     break;
   case 0x7f:
     break;
   case 0x80:
     goto LAB_27;
   case 0x81:
     goto LAB_27;
   case 0x82:
     break;
   case 0x83:
     break;
   case 0x84:
     goto LAB_27;
   case 0x85:
     goto LAB_27;
   case 0x86:
     break;
   case 0x87:
     break;
   case 0x88:
     goto LAB_27;
   case 0x89:
     goto LAB_27;
   case 0x8a:
     break;
   case 0x8b:
     break;
   case 0x8c:
     break;
   case 0x8d:
     break;
   case 0x8e:
     break;
   case 0x8f:
     goto LAB_27;
   case 0x90:
     goto LAB_27;
   case 0x91:
     break;
   case 0x92:
     break;
   case 0x93:
     break;
   case 0x94:
     break;
   case 0x95:
     goto LAB_27;
   case 0x96:
     break;
   case 0x97:
     goto LAB_27;
   case 0x98:
     break;
   case 0x99:
     break;
   case 0x9a:
     goto LAB_27;
   case 0x9b:
     break;
   case 0x9c:
     break;
   case 0x9d:
     goto LAB_27;
   case 0x9e:
     goto LAB_27;
   case 0x9f:
     goto LAB_27;
   case 0xa0:
     goto LAB_27;
   case 0xa1:
+    goto LAB_27;
+  case 0xa2:
+    break;
+  case 0xa3:
+    break;
+  case 0xa4:
+    break;
+  case 0xa5:
+    break;
+  case 0xa6:
+    break;
+  case 0xa7:
+    break;
+  case 0xa8:
+    break;
+  case 0xa9:
 LAB_27:
     led_control(2,1);
     led_control(5,1);
     led_control(1);
     led_control(0xb,1);
-    FUN_000a3f30(1);
+    FUN_000a9b00(1);
     led_control(6,1);
-    FUN_000a4118();
+    FUN_000a9ce8();
     uStack_2c = DAT_35;
     uStack_28 = DAT_36;
     uStack_24 = DAT_37;
     uStack_20 = DAT_38;
     uStack_1c = DAT_39;
     uStack_18 = DAT_40;
     uStack_14 = DAT_41;
     _eval(&uStack_2c,0,0);
     uStack_2c = DAT_42;
     uStack_28 = DAT_43;
     uStack_24 = DAT_44;
     uStack_20 = DAT_45;
     uStack_1c = DAT_46;
     uStack_18 = DAT_47;
     uStack_14 = DAT_48;
 LAB_16:
     _eval(&uStack_2c,0,0);
   }
   return 0;
 }
 

FUN_000d3f9c

Match Info

Key old_FW_RT_AX55_300438651598_sbin_rc - new_FW_RT_AX55_300438652332_sbin_rc
diff_type code,name,fullname,length,sig,address,calling,called
ratio 0.14
i_ratio 0.07
m_ratio 0.32
b_ratio 0.4
match_types BSIM

Function Meta Diff

Key old_FW_RT_AX55_300438651598_sbin_rc new_FW_RT_AX55_300438652332_sbin_rc
name FUN_000d3f9c FUN_000da008
fullname FUN_000d3f9c FUN_000da008
refcount 2 2
length 24048 26788
called
Expand for full list:
::__aeabi_ddiv
::__aeabi_dmul
::__aeabi_i2d
::__aeabi_idiv
::__aeabi_idivmod
::_eval
::atoi
::check_bwdpi_nvram_setting
::check_if_dir_empty
::check_if_dir_exist
::check_if_file_exist
::closedir
::cprintf
::d_exists
::dbg
::doSystem
::fclose
::fgets
::fopen
::fprintf
::fputc
::fputs
::free
::get_ipv6_service
::get_label_mac
::get_productid
::kill_pidfile_s
::killall
::localtime
::logmessage_normal
::malloc
::memset
::nvram_commit
::nvram_default_get
::nvram_get
::nvram_get_int
::nvram_getall
::nvram_set
::nvram_set_int
::nvram_unset
::opendir
::pclose
::popen
::pw_dec
::readdir
::rewinddir
::sleep
::snprintf
::sprintf
::strcat
::strchr
::strcmp
::strcpy
::strcspn
::strlcat
::strlcpy
::strlen
::strncpy
::strspn
::strstr
::sysinfo
::system
::time
::trimNL
::unlink
::wl_max_no_vifs
FUN_00062df4
FUN_000aea18
FUN_000aef5c
FUN_000be010
FUN_000d0a8c
FUN_000d0aac
FUN_000d0adc
FUN_000d0b0c
FUN_000d0d0c
FUN_000d1890
FUN_000d1960
FUN_000d1a98
FUN_000d1f4c
FUN_000d2138
FUN_000d2c84
FUN_000d3540
FUN_000d38fc
FUN_000d3a2c
FUN_000d3c30
FUN_000d3cd8
FUN_000d3d4c
FUN_0015bbf4
Expand for full list:
::__aeabi_ddiv
::__aeabi_dmul
::__aeabi_i2d
::__aeabi_idiv
::__aeabi_idivmod
::_eval
::atoi
::check_bwdpi_nvram_setting
::check_if_dir_empty
::check_if_dir_exist
::check_if_file_exist
::closedir
::cprintf
::d_exists
::dbg
::doSystem
::fclose
::fgets
::fopen
::fprintf
::fputc
::fputs
::free
::get_ipv6_service
::get_label_mac
::get_productid
::kill_pidfile_s
::killall
::localtime
::logmessage_normal
::malloc
::memset
::nvram_commit
::nvram_default_get
::nvram_get
::nvram_get_int
::nvram_getall
::nvram_set
::nvram_set_int
::nvram_unset
::opendir
::pclose
::popen
::pw_dec
::readdir
::rewinddir
::sleep
::snprintf
::sprintf
::strcat
::strchr
::strcmp
::strcpy
::strcspn
::strlcat
::strlcpy
::strlen
::strncpy
::strspn
::strstr
::sysinfo
::system
::time
::trimNL
::unlink
::wl_max_no_vifs
FUN_0003445c
FUN_000661f8
FUN_000b4754
FUN_000b4c98
FUN_000c40b0
FUN_000d6a9c
FUN_000d6abc
FUN_000d6aec
FUN_000d6b1c
FUN_000d6d1c
FUN_000d78f4
FUN_000d79c4
FUN_000d7afc
FUN_000d7fb0
FUN_000d819c
FUN_000d8cf0
FUN_000d95ac
FUN_000d9968
FUN_000d9a98
FUN_000d9c9c
FUN_000d9d44
FUN_000d9db8
FUN_00163d58
calling FUN_0001e168
FUN_0004d76c
FUN_0001eb88
FUN_0005096c
paramcount 0 0
address 000d3f9c 000da008
sig undefined __stdcall FUN_000d3f9c(void) undefined __stdcall FUN_000da008(void)
sym_type Function Function
sym_source DEFAULT DEFAULT
external False False

FUN_000d3f9c Called Diff

--- FUN_000d3f9c called
+++ FUN_000da008 called
@@ -67,22 +67,23 @@
-FUN_00062df4
-FUN_000aea18
-FUN_000aef5c
-FUN_000be010
-FUN_000d0a8c
-FUN_000d0aac
-FUN_000d0adc
-FUN_000d0b0c
-FUN_000d0d0c
-FUN_000d1890
-FUN_000d1960
-FUN_000d1a98
-FUN_000d1f4c
-FUN_000d2138
-FUN_000d2c84
-FUN_000d3540
-FUN_000d38fc
-FUN_000d3a2c
-FUN_000d3c30
-FUN_000d3cd8
-FUN_000d3d4c
-FUN_0015bbf4
+FUN_0003445c
+FUN_000661f8
+FUN_000b4754
+FUN_000b4c98
+FUN_000c40b0
+FUN_000d6a9c
+FUN_000d6abc
+FUN_000d6aec
+FUN_000d6b1c
+FUN_000d6d1c
+FUN_000d78f4
+FUN_000d79c4
+FUN_000d7afc
+FUN_000d7fb0
+FUN_000d819c
+FUN_000d8cf0
+FUN_000d95ac
+FUN_000d9968
+FUN_000d9a98
+FUN_000d9c9c
+FUN_000d9d44
+FUN_000d9db8
+FUN_00163d58

FUN_000d3f9c Calling Diff

--- FUN_000d3f9c calling
+++ FUN_000da008 calling
@@ -1,2 +1,2 @@
-FUN_0001e168
-FUN_0004d76c
+FUN_0001eb88
+FUN_0005096c

FUN_000d3f9c Diff

--- FUN_000d3f9c
+++ FUN_000da008
@@ -1,2215 +1,2392 @@
 
-void FUN_000d3f9c(void)
+/* WARNING: Restarted to delay deadcode elimination for space: stack */
+
+void FUN_000da008(void)
 
 {
   undefined uVar1;
   char cVar2;
   int *piVar3;
-  undefined4 *puVar4;
-  bool bVar5;
-  uint uVar6;
-  char *pcVar7;
-  undefined *puVar8;
-  tm *ptVar9;
-  int iVar10;
-  size_t sVar11;
-  int iVar12;
+  bool bVar4;
+  uint uVar5;
+  char *pcVar6;
+  undefined *puVar7;
+  tm *ptVar8;
+  int iVar9;
+  size_t sVar10;
+  int iVar11;
+  FILE *pFVar12;
   FILE *pFVar13;
-  FILE *pFVar14;
-  char *pcVar15;
-  size_t sVar16;
-  undefined *puVar17;
-  undefined *puVar18;
+  size_t sVar14;
+  undefined *puVar15;
+  undefined *puVar16;
   DIR *__dirp;
-  int iVar19;
-  int iVar20;
-  dirent *pdVar21;
-  uint uVar22;
+  int iVar17;
+  int iVar18;
+  char **__dest;
+  dirent *pdVar19;
+  uint uVar20;
+  stat *psVar21;
   int extraout_r1;
   int extraout_r1_00;
   int extraout_r1_01;
   undefined4 extraout_r1_02;
-  __off_t _Var23;
+  __off_t _Var22;
   undefined4 extraout_r1_03;
   undefined4 extraout_r1_04;
+  int *piVar23;
   int *piVar24;
-  int *piVar25;
+  undefined4 uVar25;
   int *piVar26;
   undefined4 *puVar27;
   undefined4 *puVar28;
-  undefined4 *puVar29;
-  undefined4 uVar30;
-  int iVar31;
+  int iVar29;
+  char *pcVar30;
+  undefined4 uVar31;
   undefined4 uVar32;
-  undefined4 uVar33;
-  undefined4 *__ptr;
+  undefined8 uVar33;
   undefined8 uVar34;
-  undefined8 uVar35;
-  char *pcVar36;
-  char *pcVar37;
-  char *pcVar38;
-  char *pcVar39;
-  char *pcVar40;
-  char *pcVar41;
-  char *pcStack_32eb0;
-  int iStack_32eac;
-  time_t tStack_32e94;
-  char acStack_32e90 [16];
-  undefined4 auStack_32e80 [3];
-  undefined auStack_32e74 [4];
-  undefined4 uStack_32e70;
-  undefined4 uStack_32e6c;
-  undefined4 uStack_32e68;
-  undefined4 uStack_32e64;
-  undefined4 uStack_32e60;
-  undefined4 uStack_32e5c;
-  sysinfo sStack_32e58;
-  undefined4 uStack_32e18;
-  undefined auStack_32e14 [60];
-  stat sStack_32dd8;
-  int aiStack_32d80 [3];
-  undefined auStack_32d74 [4];
-  undefined auStack_32d70 [8];
-  undefined auStack_32d68 [8];
-  undefined auStack_32d60 [8];
-  undefined auStack_32d58 [8];
-  undefined auStack_32d50 [8];
-  undefined auStack_32d48 [8];
-  undefined auStack_32d40 [8];
-  undefined auStack_32d38 [8];
-  undefined auStack_32d30 [8];
-  undefined auStack_32d28 [8];
-  char acStack_32d20 [128];
-  int aiStack_32ca0 [31];
-  char cStack_32c21;
-  char acStack_32c20 [256];
-  char acStack_32b20 [256];
-  char acStack_32a20 [256];
-  char acStack_32920 [256];
-  char acStack_32820 [2048];
-  char acStack_32020 [2048];
-  char acStack_31820 [2047];
+  undefined4 *puStack_334b4;
+  char *pcStack_334b0;
+  time_t tStack_33494;
+  char *pcStack_33490;
+  undefined4 uStack_3348c;
+  char *pcStack_33488;
+  undefined4 uStack_33484;
+  char acStack_33480 [4];
+  undefined4 auStack_3347c [2];
+  char acStack_33474 [4];
+  undefined4 uStack_33470;
+  undefined4 uStack_3346c;
+  undefined4 uStack_33468;
+  undefined4 uStack_33464;
+  undefined4 uStack_33460;
+  undefined4 uStack_3345c;
+  sysinfo sStack_33458;
+  undefined4 uStack_33418;
+  undefined auStack_33414 [60];
+  stat sStack_333d8;
+  int iStack_33380;
+  int iStack_3337c;
+  undefined auStack_33378 [8];
+  undefined auStack_33370 [8];
+  undefined auStack_33368 [8];
+  undefined auStack_33360 [8];
+  undefined auStack_33358 [8];
+  undefined auStack_33350 [8];
+  undefined auStack_33348 [8];
+  undefined auStack_33340 [8];
+  undefined auStack_33338 [8];
+  undefined auStack_33330 [8];
+  undefined auStack_33328 [8];
+  char acStack_33320 [128];
+  int aiStack_332a0 [31];
+  undefined uStack_33221;
+  char acStack_33220 [256];
+  char acStack_33120 [256];
+  char acStack_33020 [256];
+  char acStack_32f20 [256];
+  char acStack_32e20 [2048];
+  char acStack_32620 [2816];
+  char acStack_31b20 [2815];
   char cStack_31021;
   char *pcStack_31020;
   undefined4 uStack_3101c;
   undefined4 uStack_31018;
   undefined4 uStack_31014;
   char acStack_30020 [4];
   char acStack_3001c [196604];
   
-  pcVar36 = acStack_32c20;
-  pcVar37 = acStack_32c20;
-  pcVar15 = acStack_32c20;
-  pcVar38 = acStack_32c20;
-  pcVar39 = acStack_32c20;
-  pcVar40 = acStack_32c20;
-  pcVar41 = acStack_32c20;
-  acStack_32820[0] = '\0';
-  acStack_32820[1] = '\0';
-  acStack_32820[2] = '\0';
-  acStack_32820[3] = '\0';
-  memset(acStack_32820 + 4,0,0x7fc);
-  acStack_32020[0] = '\0';
-  acStack_32020[1] = '\0';
-  acStack_32020[2] = '\0';
-  acStack_32020[3] = '\0';
-  memset(acStack_32020 + 4,0,0x7fc);
-  acStack_32e90[0] = '\0';
-  acStack_32e90[1] = '\0';
-  acStack_32e90[2] = '\0';
-  acStack_32e90[3] = '\0';
-  acStack_32e90[4] = '\0';
-  acStack_32e90[5] = '\0';
-  acStack_32e90[6] = '\0';
-  acStack_32e90[7] = '\0';
-  acStack_32e90[8] = '\0';
-  acStack_32e90[9] = '\0';
-  acStack_32e90[10] = '\0';
-  acStack_32e90[0xb] = '\0';
-  acStack_32e90[0xc] = '\0';
-  acStack_32e90[0xd] = '\0';
-  acStack_32e90[0xe] = '\0';
-  acStack_32e90[0xf] = '\0';
-  uStack_32e18 = 0;
-  memset(auStack_32e14,0,0x3c);
+  acStack_32620[0] = '\0';
+  acStack_32620[1] = '\0';
+  acStack_32620[2] = '\0';
+  acStack_32620[3] = '\0';
+  memset(acStack_32620 + 4,0,0xafc);
+  acStack_31b20[0] = '\0';
+  acStack_31b20[1] = '\0';
+  acStack_31b20[2] = '\0';
+  acStack_31b20[3] = '\0';
+  memset(acStack_31b20 + 4,0,0xafc);
+  pcStack_33490 = (char *)0x0;
+  uStack_3348c = 0;
+  pcStack_33488 = (char *)0x0;
+  uStack_33484 = 0;
+  uStack_33418 = 0;
+  memset(auStack_33414,0,0x3c);
   memset(acStack_30020 + 4,0,0x2fffc);
-  acStack_32d20[0] = '\0';
-  acStack_32d20[1] = '\0';
-  acStack_32d20[2] = '\0';
-  acStack_32d20[3] = '\0';
-  memset(acStack_32d20 + 4,0,0x7c);
-  acStack_32c20[0] = '\0';
-  acStack_32c20[1] = '\0';
-  acStack_32c20[2] = '\0';
-  acStack_32c20[3] = '\0';
-  memset(acStack_32c20 + 4,0,0xfc);
-  acStack_32b20[0] = '\0';
-  acStack_32b20[1] = '\0';
-  acStack_32b20[2] = '\0';
-  acStack_32b20[3] = '\0';
-  memset(acStack_32b20 + 4,0,0xfc);
-  acStack_32a20[0] = '\0';
-  acStack_32a20[1] = '\0';
-  acStack_32a20[2] = '\0';
-  acStack_32a20[3] = '\0';
-  memset(acStack_32a20 + 4,0,0xfc);
-  acStack_32920[0] = '\0';
-  acStack_32920[1] = '\0';
-  acStack_32920[2] = '\0';
-  acStack_32920[3] = '\0';
-  memset(acStack_32920 + 4,0,0xfc);
+  acStack_33320[0] = '\0';
+  acStack_33320[1] = '\0';
+  acStack_33320[2] = '\0';
+  acStack_33320[3] = '\0';
+  memset(acStack_33320 + 4,0,0x7c);
+  acStack_33220[0] = '\0';
+  acStack_33220[1] = '\0';
+  acStack_33220[2] = '\0';
+  acStack_33220[3] = '\0';
+  memset(acStack_33220 + 4,0,0xfc);
+  acStack_33120[0] = '\0';
+  acStack_33120[1] = '\0';
+  acStack_33120[2] = '\0';
+  acStack_33120[3] = '\0';
+  memset(acStack_33120 + 4,0,0xfc);
+  acStack_33020[0] = '\0';
+  acStack_33020[1] = '\0';
+  acStack_33020[2] = '\0';
+  acStack_33020[3] = '\0';
+  memset(acStack_33020 + 4,0,0xfc);
+  acStack_32f20[0] = '\0';
+  acStack_32f20[1] = '\0';
+  acStack_32f20[2] = '\0';
+  acStack_32f20[3] = '\0';
+  memset(acStack_32f20 + 4,0,0xfc);
   cprintf("Start [%s]\n","start_sendfeedback");
   logmessage_normal("frs_feedback","start_sendfeedback() start...\n");
-  uVar6 = nvram_get_int("dblog_service");
-  pcVar7 = FUN_000d0a8c();
-  pcVar7 = strchr(pcVar7,0x60);
-  if (pcVar7 == (char *)0x0) {
-    puVar8 = FUN_000d0a8c();
-    strlcpy(&uStack_32e18,puVar8,0x40);
+  uVar5 = nvram_get_int("dblog_service");
+  pcVar6 = FUN_000d6a9c();
+  pcVar6 = strchr(pcVar6,0x60);
+  if (pcVar6 == (char *)0x0) {
+    puVar7 = FUN_000d6a9c();
+    strlcpy(&uStack_33418,puVar7,0x40);
   }
   nvram_set_int("fb_split_files",1);
   nvram_set_int("fb_total_size",0);
-  time(&tStack_32e94);
-  ptVar9 = localtime(&tStack_32e94);
-  if (ptVar9 == (tm *)0x0) {
+  time(&tStack_33494);
+  ptVar8 = localtime(&tStack_33494);
+  if (ptVar8 == (tm *)0x0) {
     logmessage_normal("frs_feedback","Failed to get time before sending mail!\n");
     return;
   }
-  DAT_0 = ptVar9->tm_mon;
-  DAT_1 = ptVar9->tm_mday;
-  bVar5 = FUN_000d0aac("fb_email_dbg","");
-  if (bVar5) {
-    if ((DAT_0 == DAT_001d3b04) && (DAT_001d3b08 == DAT_001d3b00)) {
+  DAT_0 = ptVar8->tm_mon;
+  DAT_1 = ptVar8->tm_mday;
+  bVar4 = FUN_000d6abc("fb_email_dbg","");
+  if (bVar4) {
+    if ((DAT_0 == DAT_001ddc64) && (DAT_001ddc68 == DAT_001ddc60)) {
       if (9 < DAT_2) {
         logmessage_normal("frs_feedback","You had sent Feedback more than %d times.\n");
         nvram_set("fb_state",&DAT_3);
         return;
       }
       DAT_2 = DAT_2 + 1;
     }
     else {
-      DAT_4 = DAT_001d3afc;
-      DAT_5 = DAT_001d3b00;
+      DAT_4 = DAT_001ddc5c;
+      DAT_5 = DAT_001ddc60;
       DAT_2 = 1;
     }
   }
   nvram_set_int("fb_feedbackcount",DAT_2);
   nvram_set("fb_state","0");
-  snprintf(acStack_32820,0x800,"mkdir -p %s","/tmp/asusfbsvcs/duplicate_log");
-  system(acStack_32820);
-  iVar10 = check_if_dir_exist("/tmp/asusfbsvcs/duplicate_log");
-  if (iVar10 == 0) {
+  snprintf(acStack_32620,0xb00,"mkdir -p %s","/tmp/asusfbsvcs/duplicate_log");
+  system(acStack_32620);
+  iVar9 = check_if_dir_exist("/tmp/asusfbsvcs/duplicate_log");
+  if (iVar9 == 0) {
     dbg("send_feedback_curl_retry() failed to create folder [%s]\n","/tmp/asusfbsvcs/duplicate_log")
     ;
     return;
   }
-  FUN_000d1a98();
-  bVar5 = FUN_000d0aac("fb_conntrack_debug","1");
-  if (bVar5) {
-    FUN_00062df4(2);
-  }
-  pcVar7 = "brcmsysinfo.txt";
-  snprintf(acStack_32820,0x800,"brcmsysinfo.sh &> %s/%s","/tmp/asusfbsvcs/duplicate_log",
+  FUN_000d7afc();
+  bVar4 = FUN_000d6abc("fb_conntrack_debug","1");
+  if (bVar4) {
+    FUN_000661f8(2);
+  }
+  pcVar6 = "brcmsysinfo.txt";
+  snprintf(acStack_32620,0xb00,"brcmsysinfo.sh &> %s/%s","/tmp/asusfbsvcs/duplicate_log",
            "brcmsysinfo.txt");
-  system(acStack_32820);
-  snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","brcmsysinfo.txt");
-  iVar10 = check_if_file_exist(acStack_32c20);
-  if (iVar10 != 0) {
-    sVar11 = strlen(acStack_32020);
-    snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20,pcVar7);
-  }
-  pcVar7 = "dmesg.txt";
-  snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","dmesg.txt");
-  iVar10 = check_if_file_exist(acStack_32c20);
-  if (iVar10 != 0) {
-    sVar11 = strlen(acStack_32020);
-    snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20,pcVar7);
-  }
-  pcVar7 = "nf_conntrack.tgz";
-  snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","nf_conntrack.tgz");
-  iVar10 = check_if_file_exist(acStack_32c20);
-  if (iVar10 != 0) {
-    sVar11 = strlen(acStack_32020);
-    snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20,pcVar7);
-  }
-  FUN_000be010();
-  pcVar7 = "mactable.txt";
-  snprintf(acStack_32820,0x800,"mv /tmp/%s %s","mactable.txt","/tmp/asusfbsvcs/duplicate_log");
-  system(acStack_32820);
-  snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","mactable.txt");
-  iVar10 = check_if_file_exist(acStack_32c20);
-  if (iVar10 != 0) {
-    sVar11 = strlen(acStack_32020);
-    snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20,pcVar7);
-  }
-  bVar5 = FUN_000d0aac("fb_attach_syslog","1");
-  if (!bVar5) {
-    FUN_000d0aac("fb_attach_wlanlog","1");
-  }
-  bVar5 = FUN_000d0aac("fb_attach_syslog","1");
-  if (bVar5) {
+  system(acStack_32620);
+  snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","brcmsysinfo.txt");
+  iVar9 = check_if_file_exist(acStack_33220);
+  if (iVar9 != 0) {
+    sVar10 = strlen(acStack_31b20);
+    snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar6);
+  }
+  pcVar6 = "dmesg.txt";
+  snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","dmesg.txt");
+  iVar9 = check_if_file_exist(acStack_33220);
+  if (iVar9 != 0) {
+    sVar10 = strlen(acStack_31b20);
+    snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar6);
+  }
+  pcVar6 = "nf_conntrack.tgz";
+  snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","nf_conntrack.tgz");
+  iVar9 = check_if_file_exist(acStack_33220);
+  if (iVar9 != 0) {
+    sVar10 = strlen(acStack_31b20);
+    snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar6);
+  }
+  FUN_000c40b0();
+  pcVar6 = "mactable.txt";
+  snprintf(acStack_32620,0xb00,"mv /tmp/%s %s","mactable.txt","/tmp/asusfbsvcs/duplicate_log");
+  system(acStack_32620);
+  snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","mactable.txt");
+  iVar9 = check_if_file_exist(acStack_33220);
+  if (iVar9 != 0) {
+    sVar10 = strlen(acStack_31b20);
+    snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar6);
+  }
+  bVar4 = FUN_000d6abc("fb_attach_syslog","1");
+  if (!bVar4) {
+    FUN_000d6abc("fb_attach_wlanlog","1");
+  }
+  bVar4 = FUN_000d6abc("fb_attach_syslog","1");
+  if (bVar4) {
     cprintf("---Collect Syslog...\n");
-    snprintf(acStack_32d20,0x80,"%s.tgz","/tmp/netfilter_conntrack.log");
-    snprintf(acStack_32820,0x800,"tar -zcf %s %s*",acStack_32d20,"/tmp/netfilter_conntrack.log");
-    cprintf("cmd=[%s]\n",acStack_32820);
-    system(acStack_32820);
-    iVar10 = check_if_file_exist(acStack_32d20);
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32d20);
-    }
-    iVar10 = check_if_file_exist("/tmp/asusfbsvcs/duplicate_log/syslog.log");
-    if (iVar10 != 0) {
+    snprintf(acStack_33320,0x80,"%s.tgz","/tmp/netfilter_conntrack.log");
+    snprintf(acStack_32620,0xb00,"tar -zcf %s %s*",acStack_33320,"/tmp/netfilter_conntrack.log");
+    cprintf("cmd=[%s]\n",acStack_32620);
+    system(acStack_32620);
+    iVar9 = check_if_file_exist(acStack_33320);
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33320);
+    }
+    iVar9 = check_if_file_exist("/tmp/asusfbsvcs/duplicate_log/syslog.log");
+    if (iVar9 != 0) {
       unlink("/tmp/asusfbsvcs/duplicate_log/syslog.log");
     }
-    iVar10 = check_if_file_exist("/tmp/syslog.log-1");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cp -f %s %s","/tmp/syslog.log-1",
+    iVar9 = check_if_file_exist("/tmp/syslog.log-1");
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cp -f %s %s","/tmp/syslog.log-1",
                "/tmp/asusfbsvcs/duplicate_log/syslog.log");
-      system(acStack_32820);
-    }
-    iVar10 = check_if_file_exist("/tmp/syslog.log");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cat %s >> %s","/tmp/syslog.log",
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist("/tmp/syslog.log");
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cat %s >> %s","/tmp/syslog.log",
                "/tmp/asusfbsvcs/duplicate_log/syslog.log");
-      system(acStack_32820);
-    }
-    iVar10 = check_if_file_exist("/tmp/asusfbsvcs/duplicate_log/syslog.log");
-    if (iVar10 != 0) {
-      strlcat(acStack_32020,"-a /tmp/asusfbsvcs/duplicate_log/syslog.log ",0x800);
-    }
-    pcVar7 = "/tmp/free.txt";
-    sprintf(acStack_32820,"free > %s;echo >> %s;cat /proc/meminfo >> %s","/tmp/free.txt",
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist("/tmp/asusfbsvcs/duplicate_log/syslog.log");
+    if (iVar9 != 0) {
+      strlcat(acStack_31b20,"-a /tmp/asusfbsvcs/duplicate_log/syslog.log ",0xb00);
+    }
+    pcVar6 = "/tmp/free.txt";
+    sprintf(acStack_32620,"free > %s;echo >> %s;cat /proc/meminfo >> %s","/tmp/free.txt",
             "/tmp/free.txt","/tmp/free.txt");
-    system(acStack_32820);
-    iVar10 = check_if_file_exist("/tmp/free.txt");
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ","/tmp/free.txt");
-    }
-    sprintf(acStack_32820,"top -n 1 > %s","/tmp/top.txt");
-    system(acStack_32820);
-    iVar10 = check_if_file_exist("/tmp/top.txt");
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ","/tmp/top.txt");
-    }
-    iVar10 = check_if_file_exist("/jffs/webs_upgrade.log-1");
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ","/jffs/webs_upgrade.log-1");
-    }
-    iVar10 = check_if_file_exist("/jffs/webs_upgrade.log");
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ","/jffs/webs_upgrade.log");
-    }
-    iVar10 = check_if_file_exist("/jffs/HTTPD_FB_DEBUG.log-1");
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ","/jffs/HTTPD_FB_DEBUG.log-1");
-    }
-    iVar10 = check_if_file_exist("/jffs/HTTPD_FB_DEBUG.log");
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ","/jffs/HTTPD_FB_DEBUG.log");
+    system(acStack_32620);
+    iVar9 = check_if_file_exist("/tmp/free.txt");
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ","/tmp/free.txt");
+    }
+    sprintf(acStack_32620,"top -n 1 > %s","/tmp/top.txt");
+    system(acStack_32620);
+    iVar9 = check_if_file_exist("/tmp/top.txt");
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ","/tmp/top.txt");
+    }
+    iVar9 = check_if_file_exist("/jffs/webs_upgrade.log-1");
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ","/jffs/webs_upgrade.log-1");
+    }
+    iVar9 = check_if_file_exist("/jffs/webs_upgrade.log");
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ","/jffs/webs_upgrade.log");
+    }
+    iVar9 = check_if_file_exist("/jffs/HTTPD_FB_DEBUG.log-1");
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ","/jffs/HTTPD_FB_DEBUG.log-1");
+    }
+    iVar9 = check_if_file_exist("/jffs/HTTPD_FB_DEBUG.log");
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ","/jffs/HTTPD_FB_DEBUG.log");
     }
     system("ls /proc >/tmp/proc.tmp");
     system("echo \"#!/bin/sh\" > /tmp/preScript.sh ; chmod +x /tmp/preScript.sh");
     system("ps > /tmp/psInfo.txt");
     system(
           "cat /tmp/proc.tmp | sed -n \"/^[0-9]\\+$/p\" | awk \'{printf \"echo [PID:%d] `cat /proc/%d/cmdline`  >> /tmp/psInfo.txt\\n\", $0,$0}\' >> /tmp/preScript.sh"
           );
     system("/tmp/preScript.sh");
     system("echo \"\" >> /tmp/psInfo.txt");
     system("echo \"==========ps -wT==========\" >> /tmp/psInfo.txt");
     system("ps -wT >> /tmp/psInfo.txt");
-    sVar11 = strlen(acStack_32020);
-    snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a /tmp/psInfo.txt ");
+    sVar10 = strlen(acStack_31b20);
+    snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a /tmp/psInfo.txt ");
     system("netstat -na >> /tmp/netstat.txt");
-    sVar11 = strlen(acStack_32020);
-    snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a /tmp/netstat.txt ");
+    sVar10 = strlen(acStack_31b20);
+    snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a /tmp/netstat.txt ");
     system("ls -al /var/lock >> /tmp/var_lock.txt");
-    sVar11 = strlen(acStack_32020);
-    snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a /tmp/var_lock.txt ");
-    snprintf(acStack_32820,0x800,"echo \"# ls -al /jffs\" >> /tmp/%s","jffs_log.txt");
-    system(acStack_32820);
-    snprintf(acStack_32820,0x800,"ls -al /jffs > /tmp/%s 2>&1","jffs_log.txt");
-    system(acStack_32820);
-    snprintf(acStack_32820,0x800,"echo \"\" >> /tmp/%s","jffs_log.txt");
-    system(acStack_32820);
-    snprintf(acStack_32820,0x800,"echo \"# du -sh /jffs\" >> /tmp/%s","jffs_log.txt");
-    system(acStack_32820);
-    snprintf(acStack_32820,0x800,"du -sh /jffs >> /tmp/%s 2>&1","jffs_log.txt");
-    system(acStack_32820);
-    snprintf(acStack_32820,0x800,"echo \"\" >> /tmp/%s","jffs_log.txt");
-    system(acStack_32820);
-    snprintf(acStack_32820,0x800,"echo \"# du -h /jffs\" >> /tmp/%s","jffs_log.txt");
-    system(acStack_32820);
-    snprintf(acStack_32820,0x800,"du -h /jffs >> /tmp/%s 2>&1","jffs_log.txt");
-    system(acStack_32820);
-    snprintf(acStack_32820,0x800,"echo \"\" >> /tmp/%s","jffs_log.txt");
-    system(acStack_32820);
-    snprintf(acStack_32820,0x800,"echo \"# ls -alR /jffs\" >> /tmp/%s","jffs_log.txt");
-    system(acStack_32820);
-    snprintf(acStack_32820,0x800,"ls -alR /jffs >> /tmp/%s 2>&1","jffs_log.txt");
-    system(acStack_32820);
-    snprintf(acStack_32820,0x800,"echo \"\" >> /tmp/%s","jffs_log.txt");
-    system(acStack_32820);
-    snprintf(acStack_32820,0x800,"echo \"# df /jffs\" >> /tmp/%s","jffs_log.txt");
-    system(acStack_32820);
-    snprintf(acStack_32820,0x800,"df /jffs >> /tmp/%s 2>&1","jffs_log.txt");
-    system(acStack_32820);
-    sVar11 = strlen(acStack_32020);
-    snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a /tmp/%s ","jffs_log.txt");
-    snprintf(acStack_32820,0x800,"ls -al /tmp > /tmp/%s 2>&1","tmp_log.txt");
-    system(acStack_32820);
-    snprintf(acStack_32820,0x800,"echo \"\" >> /tmp/%s","tmp_log.txt");
-    system(acStack_32820);
-    snprintf(acStack_32820,0x800,"du -sh /tmp >> /tmp/%s 2>&1","tmp_log.txt");
-    system(acStack_32820);
-    snprintf(acStack_32820,0x800,"echo \"\" >> /tmp/%s","tmp_log.txt");
-    system(acStack_32820);
-    snprintf(acStack_32820,0x800,"du -sh /tmp/* >> /tmp/%s 2>&1","tmp_log.txt");
-    system(acStack_32820);
-    snprintf(acStack_32820,0x800,"echo \"\" >> /tmp/%s","tmp_log.txt");
-    system(acStack_32820);
-    snprintf(acStack_32820,0x800,"df /tmp >> /tmp/%s 2>&1","tmp_log.txt");
-    system(acStack_32820);
-    sVar11 = strlen(acStack_32020);
-    snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a /tmp/%s ","tmp_log.txt");
-    snprintf(acStack_32c20,0x100,"/root/%s",".ash_history");
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      pcVar7 = "cmd_history.txt";
-      snprintf(acStack_32820,0x800,"cp %s %s/%s",acStack_32c20,"/tmp/asusfbsvcs/duplicate_log",
+    sVar10 = strlen(acStack_31b20);
+    snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a /tmp/var_lock.txt ");
+    snprintf(acStack_32620,0xb00,"echo \"# ls -al /jffs\" >> /tmp/%s","jffs_log.txt");
+    system(acStack_32620);
+    snprintf(acStack_32620,0xb00,"ls -al /jffs > /tmp/%s 2>&1","jffs_log.txt");
+    system(acStack_32620);
+    snprintf(acStack_32620,0xb00,"echo \"\" >> /tmp/%s","jffs_log.txt");
+    system(acStack_32620);
+    snprintf(acStack_32620,0xb00,"echo \"# du -sh /jffs\" >> /tmp/%s","jffs_log.txt");
+    system(acStack_32620);
+    snprintf(acStack_32620,0xb00,"du -sh /jffs >> /tmp/%s 2>&1","jffs_log.txt");
+    system(acStack_32620);
+    snprintf(acStack_32620,0xb00,"echo \"\" >> /tmp/%s","jffs_log.txt");
+    system(acStack_32620);
+    snprintf(acStack_32620,0xb00,"echo \"# du -h /jffs\" >> /tmp/%s","jffs_log.txt");
+    system(acStack_32620);
+    snprintf(acStack_32620,0xb00,"du -h /jffs >> /tmp/%s 2>&1","jffs_log.txt");
+    system(acStack_32620);
+    snprintf(acStack_32620,0xb00,"echo \"\" >> /tmp/%s","jffs_log.txt");
+    system(acStack_32620);
+    snprintf(acStack_32620,0xb00,"echo \"# ls -alR /jffs\" >> /tmp/%s","jffs_log.txt");
+    system(acStack_32620);
+    snprintf(acStack_32620,0xb00,"ls -alR /jffs >> /tmp/%s 2>&1","jffs_log.txt");
+    system(acStack_32620);
+    snprintf(acStack_32620,0xb00,"echo \"\" >> /tmp/%s","jffs_log.txt");
+    system(acStack_32620);
+    snprintf(acStack_32620,0xb00,"echo \"# df /jffs\" >> /tmp/%s","jffs_log.txt");
+    system(acStack_32620);
+    snprintf(acStack_32620,0xb00,"df /jffs >> /tmp/%s 2>&1","jffs_log.txt");
+    system(acStack_32620);
+    sVar10 = strlen(acStack_31b20);
+    snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a /tmp/%s ","jffs_log.txt");
+    snprintf(acStack_32620,0xb00,"ls -al /tmp > /tmp/%s 2>&1","tmp_log.txt");
+    system(acStack_32620);
+    snprintf(acStack_32620,0xb00,"echo \"\" >> /tmp/%s","tmp_log.txt");
+    system(acStack_32620);
+    snprintf(acStack_32620,0xb00,"du -sh /tmp >> /tmp/%s 2>&1","tmp_log.txt");
+    system(acStack_32620);
+    snprintf(acStack_32620,0xb00,"echo \"\" >> /tmp/%s","tmp_log.txt");
+    system(acStack_32620);
+    snprintf(acStack_32620,0xb00,"du -sh /tmp/* >> /tmp/%s 2>&1","tmp_log.txt");
+    system(acStack_32620);
+    snprintf(acStack_32620,0xb00,"echo \"\" >> /tmp/%s","tmp_log.txt");
+    system(acStack_32620);
+    snprintf(acStack_32620,0xb00,"df /tmp >> /tmp/%s 2>&1","tmp_log.txt");
+    system(acStack_32620);
+    sVar10 = strlen(acStack_31b20);
+    snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a /tmp/%s ","tmp_log.txt");
+    snprintf(acStack_33220,0x100,"/root/%s",".ash_history");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      pcVar6 = "cmd_history.txt";
+      snprintf(acStack_32620,0xb00,"cp %s %s/%s",acStack_33220,"/tmp/asusfbsvcs/duplicate_log",
                "cmd_history.txt");
-      system(acStack_32820);
-      snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","cmd_history.txt");
-      iVar10 = check_if_file_exist(acStack_32c20);
-      if (iVar10 != 0) {
-        sVar11 = strlen(acStack_32020);
-        snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20,pcVar7);
-      }
-    }
-    snprintf(acStack_32820,0x800,"cd /tmp/; tar zcf %s wan*.env","/tmp/wan.env.tgz",pcVar7);
-    system(acStack_32820);
-    iVar10 = check_if_file_exist("/tmp/wan.env.tgz");
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ","/tmp/wan.env.tgz");
-    }
-    snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","fc_status.txt");
-    snprintf(acStack_32820,0x800,"fc status > %s",acStack_32c20);
-    system(acStack_32820);
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20);
-    }
-    iVar10 = get_ipv6_service();
-    if (iVar10 != 0) {
-      iVar10 = nvram_get("sw_mode");
-      if (iVar10 == 0) {
-        pcVar7 = (char *)nvram_default_get("sw_mode");
-        iVar10 = atoi(pcVar7);
+      system(acStack_32620);
+      snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","cmd_history.txt");
+      iVar9 = check_if_file_exist(acStack_33220);
+      if (iVar9 != 0) {
+        sVar10 = strlen(acStack_31b20);
+        snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar6);
+      }
+    }
+    snprintf(acStack_32620,0xb00,"cd /tmp/; tar zcf %s wan*.env","/tmp/wan.env.tgz",pcVar6);
+    system(acStack_32620);
+    iVar9 = check_if_file_exist("/tmp/wan.env.tgz");
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ","/tmp/wan.env.tgz");
+    }
+    snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","fc_status.txt");
+    snprintf(acStack_32620,0xb00,"fc status > %s",acStack_33220);
+    system(acStack_32620);
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220);
+    }
+    iVar9 = get_ipv6_service();
+    if (iVar9 != 0) {
+      iVar9 = nvram_get("sw_mode");
+      if (iVar9 == 0) {
+        pcVar6 = (char *)nvram_default_get("sw_mode");
+        iVar9 = atoi(pcVar6);
       }
       else {
-        iVar10 = nvram_get_int();
-      }
-      if (iVar10 != 1) {
-        iVar10 = nvram_get("sw_mode");
-        if (iVar10 == 0) {
-          pcVar7 = (char *)nvram_default_get("sw_mode");
-          iVar10 = atoi(pcVar7);
+        iVar9 = nvram_get_int();
+      }
+      if (iVar9 != 1) {
+        iVar9 = nvram_get("sw_mode");
+        if (iVar9 == 0) {
+          pcVar6 = (char *)nvram_default_get("sw_mode");
+          iVar9 = atoi(pcVar6);
         }
         else {
-          iVar10 = nvram_get_int("sw_mode");
+          iVar9 = nvram_get_int("sw_mode");
         }
-        if (iVar10 != 4) goto LAB_6;
+        if (iVar9 != 4) goto LAB_6;
       }
       unlink("/tmp/ipv6.txt");
       doSystem("printf \"# nvram show |grep ipv6_\n\" >> %s","/tmp/ipv6.txt");
       doSystem("nvram show|grep ipv6_ >> %s","/tmp/ipv6.txt");
       doSystem("printf \"\n# ip -6 route\n\" >> %s","/tmp/ipv6.txt");
       doSystem("ip -6 route >> %s","/tmp/ipv6.txt");
       doSystem("printf \"\n# ip -6 tunnel\n\" >> %s","/tmp/ipv6.txt");
       doSystem("ip -6 tunnel  >> %s","/tmp/ipv6.txt");
       doSystem("printf \"\n# ip -6 neigh show dev br0\n\" >> %s","/tmp/ipv6.txt");
       doSystem("ip -6 neigh show dev br0 >> %s","/tmp/ipv6.txt");
       doSystem("printf \"\n# ifconfig\n\" >> %s","/tmp/ipv6.txt");
       doSystem("ifconfig >> %s","/tmp/ipv6.txt");
       doSystem("printf \"\n# ip addr show\n\" >> %s","/tmp/ipv6.txt");
       doSystem("ip a s >> %s","/tmp/ipv6.txt");
-      iVar10 = check_if_file_exist("/tmp/ipv6.txt");
-      if (iVar10 != 0) {
-        sVar11 = strlen(acStack_32020);
-        snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ","/tmp/ipv6.txt");
+      iVar9 = check_if_file_exist("/tmp/ipv6.txt");
+      if (iVar9 != 0) {
+        sVar10 = strlen(acStack_31b20);
+        snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ","/tmp/ipv6.txt");
       }
     }
 LAB_6:
     cprintf("---Collect MTD bad_blocks...\n");
-    FUN_000d0b0c();
-    iVar10 = check_if_file_exist("/tmp/mtd_bad_blocks.txt");
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ","/tmp/mtd_bad_blocks.txt");
-    }
-    FUN_000d0d0c();
-    sVar11 = strlen(acStack_32020);
-    snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ","/tmp/asusfbsvcs/cpuusage_log.txt");
-    sVar11 = strlen(acStack_32020);
-    snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ","/tmp/asusfbsvcs/ramusage_log.txt");
-    sVar11 = strlen(acStack_32020);
-    snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ","/tmp/asusfbsvcs/cputemp_log.txt");
-    sVar11 = strlen(acStack_32020);
-    snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ","/tmp/asusfbsvcs/psstate_log.txt");
-    sVar11 = strlen(acStack_32020);
-    snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ","/tmp/asusfbsvcs/tmpsize_log.txt");
-    snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","ahs.log");
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      unlink(acStack_32c20);
-    }
-    iVar10 = check_if_file_exist("/tmp/ahs.log.1");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cp -f %s %s","/tmp/ahs.log.1",acStack_32c20);
-      system(acStack_32820);
-    }
-    iVar10 = check_if_file_exist("/tmp/ahs.log");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cat %s >> %s","/tmp/ahs.log",acStack_32c20);
-      system(acStack_32820);
-    }
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20);
-    }
-    iVar10 = check_if_file_exist("/tmp/decjsonfile.txt");
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ","/tmp/decjsonfile.txt");
-    }
-    iVar10 = check_if_file_exist("/tmp/decjsonobj.txt");
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ","/tmp/decjsonobj.txt");
-    }
-    iVar10 = 6;
+    FUN_000d6b1c();
+    iVar9 = check_if_file_exist("/tmp/mtd_bad_blocks.txt");
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ","/tmp/mtd_bad_blocks.txt");
+    }
+    FUN_000d6d1c();
+    sVar10 = strlen(acStack_31b20);
+    snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ","/tmp/asusfbsvcs/cpuusage_log.txt");
+    sVar10 = strlen(acStack_31b20);
+    snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ","/tmp/asusfbsvcs/ramusage_log.txt");
+    sVar10 = strlen(acStack_31b20);
+    snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ","/tmp/asusfbsvcs/cputemp_log.txt");
+    sVar10 = strlen(acStack_31b20);
+    snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ","/tmp/asusfbsvcs/psstate_log.txt");
+    sVar10 = strlen(acStack_31b20);
+    snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ","/tmp/asusfbsvcs/tmpsize_log.txt");
+    snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","ahs.log");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      unlink(acStack_33220);
+    }
+    iVar9 = check_if_file_exist("/tmp/ahs.log.1");
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cp -f %s %s","/tmp/ahs.log.1",acStack_33220);
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist("/tmp/ahs.log");
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cat %s >> %s","/tmp/ahs.log",acStack_33220);
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220);
+    }
+    iVar9 = check_if_file_exist("/tmp/decjsonfile.txt");
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ","/tmp/decjsonfile.txt");
+    }
+    iVar9 = check_if_file_exist("/tmp/decjsonobj.txt");
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ","/tmp/decjsonobj.txt");
+    }
+    iVar9 = 6;
     kill_pidfile_s("/var/run/ahs.pid",0xc);
-    while (bVar5 = iVar10 != 0, iVar10 = iVar10 + -1, bVar5) {
-      iVar12 = check_if_file_exist("/tmp/ahs_dump.txt");
-      if (iVar12 != 0) {
-        sVar11 = strlen(acStack_32020);
-        snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ","/tmp/ahs_dump.txt");
+    while (bVar4 = iVar9 != 0, iVar9 = iVar9 + -1, bVar4) {
+      iVar11 = check_if_file_exist("/tmp/ahs_dump.txt");
+      if (iVar11 != 0) {
+        sVar10 = strlen(acStack_31b20);
+        snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ","/tmp/ahs_dump.txt");
         break;
       }
-      cprintf("[ahs_dump.txt] does not exist, retry = %d\n",iVar10);
+      cprintf("[ahs_dump.txt] does not exist, retry = %d\n",iVar9);
       sleep(1);
     }
-    snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","ahs_jffs.log");
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      unlink(acStack_32c20);
-    }
-    iVar10 = check_if_file_exist("/jffs/ahs/ahs_jffs.log.1");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cp -f %s %s","/jffs/ahs/ahs_jffs.log.1",acStack_32c20);
-      system(acStack_32820);
-    }
-    iVar10 = check_if_file_exist("/jffs/ahs/ahs_jffs.log");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cat %s >> %s","/jffs/ahs/ahs_jffs.log",acStack_32c20);
-      system(acStack_32820);
-    }
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20);
-    }
-    pcVar7 = "ahs_hwsw_status.txt";
-    snprintf(acStack_32c20,0x100,"/jffs/ahs/%s","ahs_hwsw_status.txt");
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cp /jffs/ahs/%s %s","ahs_hwsw_status.txt",
+    snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","ahs_jffs.log");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      unlink(acStack_33220);
+    }
+    iVar9 = check_if_file_exist("/jffs/ahs/ahs_jffs.log.1");
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cp -f %s %s","/jffs/ahs/ahs_jffs.log.1",acStack_33220);
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist("/jffs/ahs/ahs_jffs.log");
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cat %s >> %s","/jffs/ahs/ahs_jffs.log",acStack_33220);
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220);
+    }
+    pcVar6 = "ahs_hwsw_status.txt";
+    snprintf(acStack_33220,0x100,"/jffs/ahs/%s");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cp /jffs/ahs/%s %s","ahs_hwsw_status.txt",
                "/tmp/asusfbsvcs/duplicate_log");
-      system(acStack_32820);
-      snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","ahs_hwsw_status.txt");
-      iVar10 = check_if_file_exist(acStack_32c20);
-      if (iVar10 != 0) {
-        sVar11 = strlen(acStack_32020);
-        snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20,pcVar7);
-      }
-      snprintf(acStack_32c20,0x100,"/jffs/ahs/%s","ahs_hwsw_status.txt",pcVar7);
-      unlink(acStack_32c20);
-    }
-    pcVar7 = "asd.log";
-    snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","asd.log");
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      unlink(acStack_32c20);
-    }
-    iVar10 = check_if_file_exist("/jffs/asd.log.1");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cp -f %s %s","/jffs/asd.log.1",acStack_32c20);
-      system(acStack_32820);
-      pcVar7 = pcVar36;
-    }
-    iVar10 = check_if_file_exist("/jffs/asd.log");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cat %s >> %s","/jffs/asd.log",acStack_32c20);
-      system(acStack_32820);
-      pcVar7 = pcVar37;
-    }
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      snprintf(acStack_32b20,0x100,"%s.dec",acStack_32c20,pcVar7);
-      pFVar13 = fopen(acStack_32c20,"r");
-      pFVar14 = fopen(acStack_32b20,"w");
-      if (pFVar13 == (FILE *)0x0 || pFVar14 == (FILE *)0x0) {
-        if ((pFVar13 != (FILE *)0x0) || (pFVar13 = pFVar14, pFVar14 != (FILE *)0x0)) {
-          fclose(pFVar13);
+      system(acStack_32620);
+      snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","ahs_hwsw_status.txt");
+      iVar9 = check_if_file_exist(acStack_33220);
+      if (iVar9 != 0) {
+        sVar10 = strlen(acStack_31b20);
+        snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar6);
+      }
+      snprintf(acStack_33220,0x100,"/jffs/ahs/%s","ahs_hwsw_status.txt",pcVar6);
+      unlink(acStack_33220);
+    }
+    pcVar6 = "asd.log";
+    snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","asd.log");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      unlink(acStack_33220);
+    }
+    iVar9 = check_if_file_exist("/jffs/asd.log.1");
+    if (iVar9 != 0) {
+      pcVar6 = acStack_33220;
+      snprintf(acStack_32620,0xb00,"cp -f %s %s","/jffs/asd.log.1",acStack_33220);
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist("/jffs/asd.log");
+    if (iVar9 != 0) {
+      pcVar6 = acStack_33220;
+      snprintf(acStack_32620,0xb00,"cat %s >> %s","/jffs/asd.log",acStack_33220);
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      snprintf(acStack_33120,0x100,"%s.dec",acStack_33220,pcVar6);
+      pFVar12 = fopen(acStack_33220,"r");
+      pFVar13 = fopen(acStack_33120,"w");
+      if (pFVar12 == (FILE *)0x0 || pFVar13 == (FILE *)0x0) {
+        if ((pFVar12 != (FILE *)0x0) || (pFVar12 = pFVar13, pFVar13 != (FILE *)0x0)) {
+          fclose(pFVar12);
         }
-        sVar11 = strlen(acStack_32020);
-        pcVar7 = acStack_32020 + sVar11;
+        sVar10 = strlen(acStack_31b20);
+        pcVar6 = acStack_33220;
       }
       else {
         memset(&pcStack_31020,0,0x1000);
-        while (pcVar15 = fgets((char *)&pcStack_31020,0x1000,pFVar13), pcVar15 != (char *)0x0) {
-          sVar11 = strlen((char *)&pcStack_31020);
-          (&cStack_31021)[sVar11] = '0';
-          memset(acStack_31820,0,0x800);
-          iVar10 = pw_dec(&pcStack_31020,acStack_31820,0x800,0);
-          if (iVar10 == 0) {
-            fprintf(pFVar14,"%s\n",&pcStack_31020);
+        while (pcVar6 = fgets((char *)&pcStack_31020,0x1000,pFVar12), pcVar6 != (char *)0x0) {
+          sVar10 = strlen((char *)&pcStack_31020);
+          (&cStack_31021)[sVar10] = '0';
+          memset(acStack_32e20,0,0x800);
+          iVar9 = pw_dec(&pcStack_31020,acStack_32e20,0x800,0);
+          if (iVar9 == 0) {
+            fprintf(pFVar13,"%s\n",&pcStack_31020);
           }
           else {
-            fputs(acStack_31820,pFVar14);
+            fputs(acStack_32e20,pFVar13);
           }
         }
+        fclose(pFVar12);
         fclose(pFVar13);
-        fclose(pFVar14);
-        sVar11 = strlen(acStack_32020);
-        pcVar7 = acStack_32020 + sVar11;
-        pcVar15 = acStack_32b20;
-      }
-      snprintf(pcVar7,0x800 - sVar11,"-a %s ",pcVar15);
-    }
-    iVar10 = check_if_dir_empty("/jffs/.asdbk");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"tar -zcf %s/%s %s","/tmp/asusfbsvcs/duplicate_log",
+        sVar10 = strlen(acStack_31b20);
+        pcVar6 = acStack_33120;
+      }
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",pcVar6);
+    }
+    iVar9 = check_if_dir_empty("/jffs/.asdbk");
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"tar -zcf %s/%s %s","/tmp/asusfbsvcs/duplicate_log",
                "asdbk.tar.gz","/jffs/.asdbk");
-      system(acStack_32820);
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s/%s ","/tmp/asusfbsvcs/duplicate_log",
+      system(acStack_32620);
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s/%s ","/tmp/asusfbsvcs/duplicate_log",
                "asdbk.tar.gz");
     }
-    snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","s46.log");
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      unlink(acStack_32c20);
-    }
-    iVar10 = check_if_file_exist("/jffs/s46.log.1");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cp -f %s %s","/jffs/s46.log.1",acStack_32c20);
-      system(acStack_32820);
-    }
-    iVar10 = check_if_file_exist(&DAT_7);
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cat %s >> %s",&DAT_7,acStack_32c20);
-      system(acStack_32820);
-    }
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20);
-    }
-    snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","wglst");
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      unlink(acStack_32c20);
-    }
-    iVar10 = check_if_file_exist(&DAT_8);
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cp -f %s %s",&DAT_8,acStack_32c20);
-      system(acStack_32820);
-    }
-    iVar10 = check_if_file_exist(&DAT_9);
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cat %s >> %s",&DAT_9,acStack_32c20);
-      system(acStack_32820);
-    }
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20);
-    }
-    pcVar15 = "sig_upgrade.log";
-    snprintf(acStack_32c20,0x100,"/tmp/%s","sig_upgrade.log");
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cp /tmp/%s %s","sig_upgrade.log","/tmp/asusfbsvcs/duplicate_log"
+    snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","s46.log");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      unlink(acStack_33220);
+    }
+    iVar9 = check_if_file_exist("/jffs/s46.log.1");
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cp -f %s %s","/jffs/s46.log.1",acStack_33220);
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist(&DAT_7);
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cat %s >> %s",&DAT_7,acStack_33220);
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220);
+    }
+    snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","wglst");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      unlink(acStack_33220);
+    }
+    iVar9 = check_if_file_exist(&DAT_8);
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cp -f %s %s",&DAT_8,acStack_33220);
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist(&DAT_9);
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cat %s >> %s",&DAT_9,acStack_33220);
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220);
+    }
+    pcVar6 = "sig_upgrade.log";
+    snprintf(acStack_33220,0x100,"/tmp/%s","sig_upgrade.log");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cp /tmp/%s %s","sig_upgrade.log","/tmp/asusfbsvcs/duplicate_log"
               );
-      system(acStack_32820);
-      snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","sig_upgrade.log");
-      iVar10 = check_if_file_exist(acStack_32c20);
-      if (iVar10 != 0) {
-        sVar11 = strlen(acStack_32020);
-        snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20,pcVar15);
-      }
-    }
-    FUN_000d38fc();
-    sVar11 = strlen(acStack_32020);
-    sprintf(acStack_32020 + sVar11,"-a %s ","/tmp/cfe.gz");
-    sprintf(acStack_32820,"pwr show  > %s","/tmp/pwr_mgnt.txt");
-    system(acStack_32820);
-    sVar11 = strlen(acStack_32020);
-    sprintf(acStack_32020 + sVar11,"-a %s ","/tmp/pwr_mgnt.txt");
+      system(acStack_32620);
+      snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","sig_upgrade.log");
+      iVar9 = check_if_file_exist(acStack_33220);
+      if (iVar9 != 0) {
+        sVar10 = strlen(acStack_31b20);
+        snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar6);
+      }
+    }
+    FUN_000d9968();
+    sVar10 = strlen(acStack_31b20);
+    sprintf(acStack_31b20 + sVar10,"-a %s ","/tmp/cfe.gz");
+    sprintf(acStack_32620,"pwr show  > %s","/tmp/pwr_mgnt.txt");
+    system(acStack_32620);
+    sVar10 = strlen(acStack_31b20);
+    sprintf(acStack_31b20 + sVar10,"-a %s ","/tmp/pwr_mgnt.txt");
     pcStack_31020 = "cfg_reportstatus";
     uStack_3101c = 0;
     _eval(&pcStack_31020,0,0);
-    iVar10 = check_if_file_exist("/tmp/cfgmnt_log.txt");
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ","/tmp/cfgmnt_log.txt");
-    }
-    snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","cfg_dbg.log");
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      unlink(acStack_32c20);
-    }
-    iVar10 = check_if_file_exist("/jffs/.sys/cfg_mnt/cfg_dbg.log-1");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cp -f %s %s","/jffs/.sys/cfg_mnt/cfg_dbg.log-1",acStack_32c20);
-      system(acStack_32820);
-    }
-    iVar10 = check_if_file_exist("/jffs/.sys/cfg_mnt/cfg_dbg.log");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cat %s >> %s","/jffs/.sys/cfg_mnt/cfg_dbg.log",acStack_32c20);
-      system(acStack_32820);
-    }
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20);
-    }
-    pcVar15 = "strongswan.charon.log";
-    snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","strongswan.charon.log");
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      unlink(acStack_32c20);
-    }
-    iVar10 = check_if_file_exist("/var/log/strongswan.charon.log-1");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cp -f %s %s","/var/log/strongswan.charon.log-1",acStack_32c20);
-      system(acStack_32820);
-      pcVar15 = pcVar38;
-    }
-    iVar10 = check_if_file_exist("/var/log/strongswan.charon.log");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cat %s >> %s","/var/log/strongswan.charon.log",acStack_32c20);
-      system(acStack_32820);
-      pcVar15 = pcVar39;
-    }
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20);
+    iVar9 = check_if_file_exist("/tmp/cfgmnt_log.txt");
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ","/tmp/cfgmnt_log.txt");
+    }
+    snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","cfg_dbg.log");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      unlink(acStack_33220);
+    }
+    iVar9 = check_if_file_exist("/jffs/.sys/cfg_mnt/cfg_dbg.log-1");
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cp -f %s %s","/jffs/.sys/cfg_mnt/cfg_dbg.log-1",acStack_33220);
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist("/jffs/.sys/cfg_mnt/cfg_dbg.log");
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cat %s >> %s","/jffs/.sys/cfg_mnt/cfg_dbg.log",acStack_33220);
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220);
+    }
+    pcVar6 = "strongswan.charon.log";
+    snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","strongswan.charon.log");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      unlink(acStack_33220);
+    }
+    iVar9 = check_if_file_exist("/var/log/strongswan.charon.log-1");
+    if (iVar9 != 0) {
+      pcVar6 = acStack_33220;
+      snprintf(acStack_32620,0xb00,"cp -f %s %s","/var/log/strongswan.charon.log-1",acStack_33220);
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist("/var/log/strongswan.charon.log");
+    if (iVar9 != 0) {
+      pcVar6 = acStack_33220;
+      snprintf(acStack_32620,0xb00,"cat %s >> %s","/var/log/strongswan.charon.log",acStack_33220);
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220);
     }
     killall("dnsmasq",0xc);
     sleep(1);
-    pcVar7 = "dnsmasq.leases";
-    snprintf(acStack_32c20,0x100,"/var/lib/misc/%s","dnsmasq.leases");
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cp %s %s/%s.txt",acStack_32c20,"/tmp/asusfbsvcs/duplicate_log",
+    pcVar30 = "dnsmasq.leases";
+    snprintf(acStack_33220,0x100,"/var/lib/misc/%s","dnsmasq.leases");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cp %s %s/%s.txt",acStack_33220,"/tmp/asusfbsvcs/duplicate_log",
                "dnsmasq.leases");
-      system(acStack_32820);
-      snprintf(acStack_32c20,0x100,"%s/%s.txt","/tmp/asusfbsvcs/duplicate_log","dnsmasq.leases");
-      iVar10 = check_if_file_exist(acStack_32c20);
-      pcVar15 = pcVar7;
-      if (iVar10 != 0) {
-        sVar11 = strlen(acStack_32020);
-        snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20,pcVar7);
-        pcVar15 = pcVar7;
-      }
-    }
-    pcVar7 = "arp.txt";
-    snprintf(acStack_32820,0x800,"arp -avn >> /tmp/%s","arp.txt",pcVar15);
-    system(acStack_32820);
-    snprintf(acStack_32c20,0x100,"/tmp/%s","arp.txt");
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"mv %s %s/%s",acStack_32c20,"/tmp/asusfbsvcs/duplicate_log",
+      system(acStack_32620);
+      snprintf(acStack_33220,0x100,"%s/%s.txt","/tmp/asusfbsvcs/duplicate_log","dnsmasq.leases");
+      iVar9 = check_if_file_exist(acStack_33220);
+      pcVar6 = pcVar30;
+      if (iVar9 != 0) {
+        sVar10 = strlen(acStack_31b20);
+        snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar30);
+        pcVar6 = pcVar30;
+      }
+    }
+    pcVar30 = "arp.txt";
+    snprintf(acStack_32620,0xb00,"arp -avn >> /tmp/%s","arp.txt",pcVar6);
+    system(acStack_32620);
+    snprintf(acStack_33220,0x100,"/tmp/%s","arp.txt");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"mv %s %s/%s",acStack_33220,"/tmp/asusfbsvcs/duplicate_log",
                "arp.txt");
-      system(acStack_32820);
-      snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","arp.txt");
-      iVar10 = check_if_file_exist(acStack_32c20);
-      if (iVar10 != 0) {
-        sVar11 = strlen(acStack_32020);
-        snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20,pcVar7);
-      }
-    }
-    pcVar15 = "nmp_vc_json.js";
-    snprintf(acStack_32c20,0x100,"%s/%s","/jffs","nmp_vc_json.js");
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      pcVar15 = "nmp_vc_json.json";
-      snprintf(acStack_32820,0x800,"cp %s %s/%s",acStack_32c20,"/tmp/asusfbsvcs/duplicate_log",
+      system(acStack_32620);
+      snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","arp.txt");
+      iVar9 = check_if_file_exist(acStack_33220);
+      pcVar6 = pcVar30;
+      if (iVar9 != 0) {
+        sVar10 = strlen(acStack_31b20);
+        snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar30);
+        pcVar6 = pcVar30;
+      }
+    }
+    snprintf(acStack_32620,0xb00,"cat /proc/net/arp > /tmp/%s","proc_net_arp.txt",pcVar6);
+    system(acStack_32620);
+    snprintf(acStack_33220,0x100,"/tmp/%s","proc_net_arp.txt");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220);
+    }
+    pcVar30 = "wiredclientlist.json";
+    snprintf(acStack_33220,0x100,"/tmp/%s","wiredclientlist.json");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cp %s %s/%s",acStack_33220,"/tmp/asusfbsvcs/duplicate_log",
+               "wiredclientlist.json");
+      system(acStack_32620);
+      snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","wiredclientlist.json");
+      iVar9 = check_if_file_exist(acStack_33220);
+      pcVar6 = pcVar30;
+      if (iVar9 != 0) {
+        sVar10 = strlen(acStack_31b20);
+        snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar30);
+        pcVar6 = pcVar30;
+      }
+    }
+    pcVar30 = "allwclientlist.json";
+    snprintf(acStack_33220,0x100,"/tmp/%s","allwclientlist.json",pcVar6);
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cp %s %s/%s",acStack_33220,"/tmp/asusfbsvcs/duplicate_log",
+               "allwclientlist.json");
+      system(acStack_32620);
+      snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","allwclientlist.json");
+      iVar9 = check_if_file_exist(acStack_33220);
+      pcVar6 = pcVar30;
+      if (iVar9 != 0) {
+        sVar10 = strlen(acStack_31b20);
+        snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar30);
+        pcVar6 = pcVar30;
+      }
+    }
+    pcVar30 = "clientlist.json";
+    snprintf(acStack_33220,0x100,"/tmp/%s","clientlist.json",pcVar6);
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cp %s %s/%s",acStack_33220,"/tmp/asusfbsvcs/duplicate_log",
+               "clientlist.json");
+      system(acStack_32620);
+      snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","clientlist.json");
+      iVar9 = check_if_file_exist(acStack_33220);
+      pcVar6 = pcVar30;
+      if (iVar9 != 0) {
+        sVar10 = strlen(acStack_31b20);
+        snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar30);
+        pcVar6 = pcVar30;
+      }
+    }
+    pcVar30 = "nmp_cache.js";
+    snprintf(acStack_33220,0x100,"/tmp/%s","nmp_cache.js",pcVar6);
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cp %s %s/%s",acStack_33220,"/tmp/asusfbsvcs/duplicate_log",
+               "nmp_cache.js");
+      system(acStack_32620);
+      snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","nmp_cache.js");
+      iVar9 = check_if_file_exist(acStack_33220);
+      pcVar6 = pcVar30;
+      if (iVar9 != 0) {
+        sVar10 = strlen(acStack_31b20);
+        snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar30);
+        pcVar6 = pcVar30;
+      }
+    }
+    pcVar30 = "nmp_cl_json.js";
+    snprintf(acStack_33220,0x100,"/jffs/%s","nmp_cl_json.js",pcVar6);
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cp %s %s/%s",acStack_33220,"/tmp/asusfbsvcs/duplicate_log",
+               "nmp_cl_json.js");
+      system(acStack_32620);
+      snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","nmp_cl_json.js");
+      iVar9 = check_if_file_exist(acStack_33220);
+      if (iVar9 != 0) {
+        sVar10 = strlen(acStack_31b20);
+        snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar30);
+      }
+    }
+    pcVar6 = "nmp_vc_json.js";
+    snprintf(acStack_33220,0x100,"%s/%s","/jffs","nmp_vc_json.js");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      pcVar6 = "nmp_vc_json.json";
+      snprintf(acStack_32620,0xb00,"cp %s %s/%s",acStack_33220,"/tmp/asusfbsvcs/duplicate_log",
                "nmp_vc_json.json");
-      system(acStack_32820);
-      snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","nmp_vc_json.json");
-      iVar10 = check_if_file_exist(acStack_32c20);
-      if (iVar10 != 0) {
-        sVar11 = strlen(acStack_32020);
-        snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20,pcVar15);
-      }
-    }
-    pcVar7 = "lighttpd_debug.log";
-    snprintf(acStack_32c20,0x100,"/tmp/%s","lighttpd_debug.log",pcVar15);
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"mv %s %s/%s",acStack_32c20,"/tmp/asusfbsvcs/duplicate_log",
+      system(acStack_32620);
+      snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","nmp_vc_json.json");
+      iVar9 = check_if_file_exist(acStack_33220);
+      if (iVar9 != 0) {
+        sVar10 = strlen(acStack_31b20);
+        snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar6);
+      }
+    }
+    pcVar30 = "lighttpd_debug.log";
+    snprintf(acStack_33220,0x100,"/tmp/%s","lighttpd_debug.log",pcVar6);
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"mv %s %s/%s",acStack_33220,"/tmp/asusfbsvcs/duplicate_log",
                "lighttpd_debug.log");
-      system(acStack_32820);
-      snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","lighttpd_debug.log");
-      iVar10 = check_if_file_exist(acStack_32c20);
-      if (iVar10 != 0) {
-        sVar11 = strlen(acStack_32020);
-        snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20,pcVar7);
-      }
-    }
-    iVar10 = check_if_file_exist("/tmp/asusfbsvcs/duplicate_log/HTTPD_DEBUG.log");
-    if (iVar10 != 0) {
+      system(acStack_32620);
+      snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","lighttpd_debug.log");
+      iVar9 = check_if_file_exist(acStack_33220);
+      if (iVar9 != 0) {
+        sVar10 = strlen(acStack_31b20);
+        snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar30);
+      }
+    }
+    iVar9 = check_if_file_exist("/tmp/asusfbsvcs/duplicate_log/HTTPD_DEBUG.log");
+    if (iVar9 != 0) {
       unlink("/tmp/asusfbsvcs/duplicate_log/HTTPD_DEBUG.log");
     }
-    iVar10 = check_if_file_exist("/jffs/HTTPD_DEBUG.log-1");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cp -f %s %s","/jffs/HTTPD_DEBUG.log-1",
+    iVar9 = check_if_file_exist("/jffs/HTTPD_DEBUG.log-1");
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cp -f %s %s","/jffs/HTTPD_DEBUG.log-1",
                "/tmp/asusfbsvcs/duplicate_log/HTTPD_DEBUG.log");
-      system(acStack_32820);
-    }
-    iVar10 = check_if_file_exist("/jffs/HTTPD_DEBUG.log");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cat %s >> %s","/jffs/HTTPD_DEBUG.log",
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist("/jffs/HTTPD_DEBUG.log");
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cat %s >> %s","/jffs/HTTPD_DEBUG.log",
                "/tmp/asusfbsvcs/duplicate_log/HTTPD_DEBUG.log");
-      system(acStack_32820);
-    }
-    pcVar15 = "HTTPD_DEBUG.log";
-    snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","HTTPD_DEBUG.log");
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20,pcVar15);
-    }
-  }
-  bVar5 = FUN_000d0aac("fb_attach_cfgfile","1");
-  if (bVar5) {
+      system(acStack_32620);
+    }
+    pcVar6 = "HTTPD_DEBUG.log";
+    snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","HTTPD_DEBUG.log");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar6);
+    }
+  }
+  bVar4 = FUN_000d6abc("fb_attach_cfgfile","1");
+  if (bVar4) {
     cprintf("---Collect cfg...\n");
     nvram_commit();
     pcStack_31020 = DAT_10;
     uStack_3101c = DAT_11;
     uStack_31018 = DAT_12;
     uStack_31014 = DAT_13;
     _eval(&pcStack_31020,0,0);
-    strcat(acStack_32020,"-a /tmp/settings ");
-  }
-  bVar5 = FUN_000d0aac("fb_attach_modemlog","1");
-  if (bVar5) {
+    strcat(acStack_31b20,"-a /tmp/settings ");
+  }
+  bVar4 = FUN_000d6abc("fb_attach_modemlog","1");
+  if (bVar4) {
     cprintf("---Collect modem log...\n");
-    sprintf(acStack_32820,"/usr/sbin/3ginfo.sh > %s","/tmp/modemlog.txt");
-    system(acStack_32820);
-    sVar11 = strlen(acStack_32020);
-    sprintf(acStack_32020 + sVar11,"-a %s ","/tmp/modemlog.txt");
-  }
-  bVar5 = FUN_000d0aac("fb_attach_wlanlog","1");
-  if (bVar5) {
+    sprintf(acStack_32620,"/usr/sbin/3ginfo.sh > %s","/tmp/modemlog.txt");
+    system(acStack_32620);
+    sVar10 = strlen(acStack_31b20);
+    sprintf(acStack_31b20 + sVar10,"-a %s ","/tmp/modemlog.txt");
+  }
+  bVar4 = FUN_000d6abc("fb_attach_wlanlog","1");
+  if (bVar4) {
     cprintf("---Collect wireless log 1...\n");
-    bVar5 = FUN_000d0aac("http_enable","1");
-    if (bVar5) {
-      puVar8 = FUN_000d0a8c();
-      snprintf((char *)&pcStack_31020,0x40,"/var/run/httpd-%s.pid",puVar8);
+    bVar4 = FUN_000d6abc("http_enable","1");
+    if (bVar4) {
+      puVar7 = FUN_000d6a9c();
+      snprintf((char *)&pcStack_31020,0x40,"/var/run/httpd-%s.pid",puVar7);
     }
     else {
       strlcpy(&pcStack_31020,"/var/run/httpd.pid",0x40);
     }
+    iVar9 = 0xf;
     nvram_set("fb_wlanlog_done","0");
     kill_pidfile_s(&pcStack_31020,10);
-    iVar10 = 0xf;
-    while (bVar5 = iVar10 != 0, iVar10 = iVar10 + -1, bVar5) {
-      iVar12 = check_if_file_exist("/tmp/wlanlog.txt");
-      if (iVar12 == 0) {
-        cprintf("wlanlog.txt is not exist, retry = %d\n",iVar10);
+    while (bVar4 = iVar9 != 0, iVar9 = iVar9 + -1, bVar4) {
+      iVar11 = check_if_file_exist("/tmp/wlanlog.txt");
+      if (iVar11 == 0) {
+        cprintf("wlanlog.txt is not exist, retry = %d\n",iVar9);
       }
       else {
-        bVar5 = FUN_000d0aac("fb_wlanlog_done","1");
-        if (bVar5) {
+        bVar4 = FUN_000d6abc("fb_wlanlog_done","1");
+        if (bVar4) {
           cprintf("fb_wlanlog_done=1\n");
-          sVar11 = strlen(acStack_32020);
-          snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ","/tmp/wlanlog.txt");
+          sVar10 = strlen(acStack_31b20);
+          snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ","/tmp/wlanlog.txt");
           break;
         }
         cprintf("fb_wlanlog_done=0\n");
       }
       sleep(1);
     }
-    snprintf(acStack_32820,0x800,
+    snprintf(acStack_32620,0xb00,
              "sed -r -i \'s/([0-9a-zA-Z]{1,2}:)([0-9a-zA-Z]{1,2}:)([0-9a-zA-Z]{1,2}:)([0-9a-zA-Z]{1,2}:)([0-9a-zA-Z]{1,2}:)([0-9a-zA-Z]{1,2})/\\1--:--:--:\\5\\6/\' %s"
              ,"/tmp/wlanlog.txt");
-    system(acStack_32820);
-  }
-  bVar5 = FUN_000d0aac("fb_attach_wlanlog","1");
-  if (bVar5) {
-    piVar26 = aiStack_32d80;
+    system(acStack_32620);
+  }
+  bVar4 = FUN_000d6abc("fb_attach_wlanlog","1");
+  if (bVar4) {
+    piVar26 = &iStack_33380;
     piVar3 = &DAT_14;
     do {
-      piVar25 = piVar3;
-      piVar24 = piVar26;
-      iVar10 = piVar25[1];
-      *piVar24 = *piVar25;
-      piVar24[1] = iVar10;
-      piVar26 = piVar24 + 2;
-      piVar3 = piVar25 + 2;
-    } while (piVar25 + 2 != &DAT_15);
-    uVar1 = *(undefined *)(piVar25 + 3);
-    piVar24[2] = 0x58585858;
-    *(undefined *)(piVar24 + 3) = uVar1;
+      piVar24 = piVar3;
+      piVar23 = piVar26;
+      iVar9 = piVar24[1];
+      *piVar23 = *piVar24;
+      piVar23[1] = iVar9;
+      piVar26 = piVar23 + 2;
+      piVar3 = piVar24 + 2;
+    } while (piVar24 + 2 != &DAT_15);
+    uVar1 = *(undefined *)(piVar24 + 3);
+    piVar23[2] = 0x58585858;
+    *(undefined *)(piVar23 + 3) = uVar1;
     cprintf("---Collect wireless log 2...\n");
-    iVar10 = check_if_file_exist("/tmp/crashlog.log");
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      sprintf(acStack_32020 + sVar11,"-a %s ","/tmp/crashlog.log");
-    }
-    iVar10 = check_if_file_exist("/jffs/.sys/amas/wps_enr.log");
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      sprintf(acStack_32020 + sVar11,"-a %s ","/jffs/.sys/amas/wps_enr.log");
-    }
-    puVar8 = FUN_000d0a8c();
-    pcVar15 = FUN_000d0a8c();
-    sVar11 = strspn(pcVar15," ");
-    strncpy((char *)aiStack_32ca0,puVar8 + sVar11,0x80);
-    cStack_32c21 = 0;
-    sVar16 = strcspn((char *)aiStack_32ca0," ");
-    *(undefined *)((int)aiStack_32ca0 + sVar16) = 0;
-    pcVar15 = strchr(puVar8 + sVar11,0x20);
-    while (cVar2 = (char)aiStack_32ca0[0], (char)aiStack_32ca0[0] != '\0') {
-      snprintf(acStack_31820,0x100,"/jffs/.sys/amas/re_onboarding_%s.log",aiStack_32ca0);
-      iVar10 = check_if_file_exist(acStack_31820);
-      if (iVar10 != 0) {
-        sVar11 = strlen(acStack_32020);
-        sprintf(acStack_32020 + sVar11,"-a %s ",acStack_31820);
-      }
-      if (pcVar15 == (char *)0x0) {
-        pcVar15 = "";
+    iVar9 = check_if_file_exist("/tmp/crashlog.log");
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      sprintf(acStack_31b20 + sVar10,"-a %s ","/tmp/crashlog.log");
+    }
+    iVar9 = check_if_file_exist("/jffs/.sys/amas/wps_enr.log");
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      sprintf(acStack_31b20 + sVar10,"-a %s ","/jffs/.sys/amas/wps_enr.log");
+    }
+    puVar7 = FUN_000d6a9c();
+    pcVar6 = FUN_000d6a9c();
+    sVar10 = strspn(pcVar6," ");
+    strncpy((char *)aiStack_332a0,puVar7 + sVar10,0x80);
+    uStack_33221 = 0;
+    sVar14 = strcspn((char *)aiStack_332a0," ");
+    *(undefined *)((int)aiStack_332a0 + sVar14) = 0;
+    pcVar6 = strchr(puVar7 + sVar10,0x20);
+    while ((char)aiStack_332a0[0] != '\0') {
+      snprintf(acStack_32e20,0x100,"/jffs/.sys/amas/re_onboarding_%s.log",aiStack_332a0);
+      iVar9 = check_if_file_exist(acStack_32e20);
+      if (iVar9 != 0) {
+        sVar10 = strlen(acStack_31b20);
+        sprintf(acStack_31b20 + sVar10,"-a %s ",acStack_32e20);
+      }
+      if (pcVar6 == (char *)0x0) {
+        pcVar6 = "";
       }
       else {
-        sVar11 = strspn(pcVar15," ");
-        pcVar15 = pcVar15 + sVar11;
-      }
-      strncpy((char *)aiStack_32ca0,pcVar15,0x80);
-      cStack_32c21 = 0;
-      sVar11 = strcspn((char *)aiStack_32ca0," ");
-      *(undefined *)((int)aiStack_32ca0 + sVar11) = 0;
-      pcVar15 = strchr(pcVar15,0x20);
-    }
-    FUN_000aef5c();
-    iVar10 = -1;
+        sVar10 = strspn(pcVar6," ");
+        pcVar6 = pcVar6 + sVar10;
+      }
+      strncpy((char *)aiStack_332a0,pcVar6,0x80);
+      uStack_33221 = 0;
+      sVar10 = strcspn((char *)aiStack_332a0," ");
+      *(undefined *)((int)aiStack_332a0 + sVar10) = 0;
+      pcVar6 = strchr(pcVar6,0x20);
+    }
+    FUN_000b4c98();
     sleep(1);
-    puVar8 = FUN_000d0a8c();
-    pcVar15 = FUN_000d0a8c();
-    sVar11 = strspn(pcVar15," ");
-    strncpy((char *)aiStack_32ca0,puVar8 + sVar11,0x80);
-    cStack_32c21 = cVar2;
-    sVar16 = strcspn((char *)aiStack_32ca0," ");
-    *(undefined *)((int)aiStack_32ca0 + sVar16) = 0;
-    pcVar15 = strchr(puVar8 + sVar11,0x20);
-    while (cVar2 = (char)aiStack_32ca0[0], (char)aiStack_32ca0[0] != '\0') {
-      iVar10 = iVar10 + 1;
-      iVar12 = wl_max_no_vifs(iVar10);
-      for (iVar31 = 0; iVar31 < iVar12; iVar31 = iVar31 + 1) {
-        iVar20 = iVar31;
-        snprintf((char *)aiStack_32d80,0xd,"wl%d.%d",iVar10,iVar31);
-        piVar26 = aiStack_32ca0;
-        if (iVar31 == 0) {
+    puVar7 = FUN_000d6a9c();
+    pcVar6 = FUN_000d6a9c();
+    sVar10 = strspn(pcVar6," ");
+    strncpy((char *)aiStack_332a0,puVar7 + sVar10,0x80);
+    uStack_33221 = 0;
+    sVar14 = strcspn((char *)aiStack_332a0," ");
+    *(undefined *)((int)aiStack_332a0 + sVar14) = 0;
+    pcStack_334b0 = strchr(puVar7 + sVar10,0x20);
+    iVar9 = -1;
+    while ((char)aiStack_332a0[0] != '\0') {
+      iVar9 = iVar9 + 1;
+      iVar11 = wl_max_no_vifs(iVar9);
+      for (iVar29 = 0; iVar29 < iVar11; iVar29 = iVar29 + 1) {
+        iVar18 = iVar29;
+        snprintf((char *)&iStack_33380,0xd,"wl%d.%d",iVar9,iVar29);
+        piVar26 = aiStack_332a0;
+        if (iVar29 == 0) {
 LAB_16:
-          snprintf(acStack_31820,0x100,"/tmp/WlGetDriverCfg_%s.log",piVar26,iVar20);
-          iVar20 = 3;
+          iVar17 = 3;
+          snprintf(acStack_32e20,0x100,"/tmp/WlGetDriverCfg_%s.log",piVar26,iVar18);
           do {
-            iVar19 = check_if_file_exist(acStack_31820);
-            if (iVar19 != 0) {
-              sVar11 = strlen(acStack_32020);
-              snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_31820);
+            iVar18 = check_if_file_exist(acStack_32e20);
+            if (iVar18 != 0) {
+              sVar10 = strlen(acStack_31b20);
+              snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_32e20);
               break;
             }
-            iVar20 = iVar20 + -1;
-            cprintf("%s is not exist, retry = %d\n",acStack_31820);
+            iVar17 = iVar17 + -1;
+            cprintf("%s is not exist, retry = %d\n",acStack_32e20,iVar17);
             sleep(1);
-          } while (iVar20 != 0);
+          } while (iVar17 != 0);
         }
         else {
-          pcVar7 = strcpy((char *)&pcStack_31020,(char *)aiStack_32d80);
-          strcat(pcVar7,"_bss_enabled");
-          iVar19 = nvram_get_int();
-          piVar26 = aiStack_32d80;
-          if (iVar19 != 0) goto LAB_16;
+          strcpy((char *)&pcStack_31020,(char *)&iStack_33380);
+          strcat((char *)&pcStack_31020,"_bss_enabled");
+          iVar17 = nvram_get_int(&pcStack_31020);
+          piVar26 = &iStack_33380;
+          if (iVar17 != 0) goto LAB_16;
         }
       }
-      if (pcVar15 == (char *)0x0) {
-        pcVar15 = "";
+      if (pcStack_334b0 == (char *)0x0) {
+        pcStack_334b0 = "";
       }
       else {
-        sVar11 = strspn(pcVar15," ");
-        pcVar15 = pcVar15 + sVar11;
-      }
-      strncpy((char *)aiStack_32ca0,pcVar15,0x80);
-      cStack_32c21 = '\0';
-      sVar11 = strcspn((char *)aiStack_32ca0," ");
-      *(undefined *)((int)aiStack_32ca0 + sVar11) = 0;
-      pcVar15 = strchr(pcVar15,0x20);
-    }
-    FUN_000aea18(1,2);
+        sVar10 = strspn(pcStack_334b0," ");
+        pcStack_334b0 = pcStack_334b0 + sVar10;
+      }
+      strncpy((char *)aiStack_332a0,pcStack_334b0,0x80);
+      uStack_33221 = 0;
+      sVar10 = strcspn((char *)aiStack_332a0," ");
+      *(undefined *)((int)aiStack_332a0 + sVar10) = 0;
+      pcStack_334b0 = strchr(pcStack_334b0,0x20);
+    }
+    FUN_000b4754(1,2);
     sleep(8);
-    puVar8 = FUN_000d0a8c();
-    pcVar15 = FUN_000d0a8c();
-    sVar11 = strspn(pcVar15," ");
-    strncpy((char *)aiStack_32ca0,puVar8 + sVar11,0x80);
-    cStack_32c21 = cVar2;
-    sVar16 = strcspn((char *)aiStack_32ca0," ");
-    *(undefined *)((int)aiStack_32ca0 + sVar16) = 0;
-    pcStack_32eb0 = strchr(puVar8 + sVar11,0x20);
-    iVar10 = -1;
-    while ((char)aiStack_32ca0[0] != '\0') {
-      iVar10 = iVar10 + 1;
-      iVar12 = wl_max_no_vifs(iVar10);
-      for (iVar31 = 0; iVar31 < iVar12; iVar31 = iVar31 + 1) {
-        iVar20 = iVar31;
-        snprintf((char *)aiStack_32d80,0xd,"wl%d.%d",iVar10,iVar31);
-        piVar26 = aiStack_32ca0;
-        if (iVar31 == 0) {
+    puVar7 = FUN_000d6a9c();
+    pcVar6 = FUN_000d6a9c();
+    sVar10 = strspn(pcVar6," ");
+    strncpy((char *)aiStack_332a0,puVar7 + sVar10,0x80);
+    uStack_33221 = 0;
+    sVar14 = strcspn((char *)aiStack_332a0," ");
+    *(undefined *)((int)aiStack_332a0 + sVar14) = 0;
+    pcStack_334b0 = strchr(puVar7 + sVar10,0x20);
+    iVar9 = -1;
+    while ((char)aiStack_332a0[0] != '\0') {
+      iVar9 = iVar9 + 1;
+      iVar11 = wl_max_no_vifs(iVar9);
+      for (iVar29 = 0; iVar29 < iVar11; iVar29 = iVar29 + 1) {
+        iVar18 = iVar29;
+        snprintf((char *)&iStack_33380,0xd,"wl%d.%d",iVar9,iVar29);
+        piVar26 = aiStack_332a0;
+        if (iVar29 == 0) {
 LAB_17:
-          iVar19 = 0xf;
-          snprintf(acStack_31820,0x100,"/tmp/WlGetDriverStats_%s.log",piVar26,iVar20);
-          while (bVar5 = iVar19 != 0, iVar19 = iVar19 + -1, bVar5) {
-            iVar20 = check_if_file_exist(acStack_31820);
-            if (iVar20 != 0) {
-              sVar11 = strlen(acStack_32020);
-              snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_31820);
+          iVar17 = 0xf;
+          snprintf(acStack_32e20,0x100,"/tmp/WlGetDriverStats_%s.log",piVar26,iVar18);
+          while (bVar4 = iVar17 != 0, iVar17 = iVar17 + -1, bVar4) {
+            iVar18 = check_if_file_exist(acStack_32e20);
+            if (iVar18 != 0) {
+              sVar10 = strlen(acStack_31b20);
+              snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_32e20);
               break;
             }
-            cprintf("%s is not exist, retry = %d\n",acStack_31820,iVar19);
+            cprintf("%s is not exist, retry = %d\n",acStack_32e20,iVar17);
             sleep(1);
           }
         }
         else {
-          pcVar15 = strcpy((char *)&pcStack_31020,(char *)aiStack_32d80);
-          strcat(pcVar15,"_bss_enabled");
-          iVar19 = nvram_get_int();
-          piVar26 = aiStack_32d80;
-          if (iVar19 != 0) goto LAB_17;
+          strcpy((char *)&pcStack_31020,(char *)&iStack_33380);
+          strcat((char *)&pcStack_31020,"_bss_enabled");
+          iVar17 = nvram_get_int(&pcStack_31020);
+          piVar26 = &iStack_33380;
+          if (iVar17 != 0) goto LAB_17;
         }
       }
-      if (pcStack_32eb0 == (char *)0x0) {
-        pcStack_32eb0 = "";
+      if (pcStack_334b0 == (char *)0x0) {
+        pcStack_334b0 = "";
       }
       else {
-        sVar11 = strspn(pcStack_32eb0," ");
-        pcStack_32eb0 = pcStack_32eb0 + sVar11;
-      }
-      strncpy((char *)aiStack_32ca0,pcStack_32eb0,0x80);
-      cStack_32c21 = '\0';
-      sVar11 = strcspn((char *)aiStack_32ca0," ");
-      *(undefined *)((int)aiStack_32ca0 + sVar11) = 0;
-      pcStack_32eb0 = strchr(pcStack_32eb0,0x20);
-    }
-  }
-  bVar5 = FUN_000d0aac("fb_attach_wlanlog","1");
-  if (bVar5) {
-    iVar10 = check_if_dir_exist(&DAT_18);
-    if (iVar10 != 0) {
+        sVar10 = strspn(pcStack_334b0," ");
+        pcStack_334b0 = pcStack_334b0 + sVar10;
+      }
+      strncpy((char *)aiStack_332a0,pcStack_334b0,0x80);
+      uStack_33221 = 0;
+      sVar10 = strcspn((char *)aiStack_332a0," ");
+      *(undefined *)((int)aiStack_332a0 + sVar10) = 0;
+      pcStack_334b0 = strchr(pcStack_334b0,0x20);
+    }
+  }
+  bVar4 = FUN_000d6abc("fb_attach_wlanlog","1");
+  if (bVar4) {
+    iVar9 = check_if_dir_exist(&DAT_18);
+    if (iVar9 != 0) {
       cprintf("---Collect wireless log 3...\n");
-      pcVar15 = "conn_diag_log";
-      snprintf(acStack_32820,0x800,"cp -rf /tmp/%s %s/%s",".diag","/tmp/asusfbsvcs/duplicate_log",
+      pcVar6 = "conn_diag_log";
+      snprintf(acStack_32620,0xb00,"cp -rf /tmp/%s %s/%s",".diag","/tmp/asusfbsvcs/duplicate_log",
                "conn_diag_log");
-      system(acStack_32820);
-      snprintf(acStack_32820,0x800,"tar -zcf %s/%s.tar.gz %s/%s","/tmp/asusfbsvcs/duplicate_log",
+      system(acStack_32620);
+      snprintf(acStack_32620,0xb00,"tar -zcf %s/%s.tar.gz %s/%s","/tmp/asusfbsvcs/duplicate_log",
                "conn_diag_log","/tmp/asusfbsvcs/duplicate_log","conn_diag_log");
-      system(acStack_32820);
-      snprintf(acStack_32820,0x800,"rm -rf %s/%s","/tmp/asusfbsvcs/duplicate_log","conn_diag_log");
-      system(acStack_32820);
-      snprintf(acStack_32c20,0x100,"%s/%s.tar.gz","/tmp/asusfbsvcs/duplicate_log","conn_diag_log");
-      iVar10 = check_if_file_exist(acStack_32c20);
-      if (iVar10 != 0) {
-        sVar11 = strlen(acStack_32020);
-        snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20,pcVar15);
-      }
-    }
-    snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","amas_ssd_dbg.log");
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      unlink(acStack_32c20);
-    }
-    iVar10 = check_if_file_exist("/jffs/.sys/amas/amas_ssd_dbg.log-1");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cp -f %s %s","/jffs/.sys/amas/amas_ssd_dbg.log-1",acStack_32c20)
+      system(acStack_32620);
+      snprintf(acStack_32620,0xb00,"rm -rf %s/%s","/tmp/asusfbsvcs/duplicate_log","conn_diag_log");
+      system(acStack_32620);
+      snprintf(acStack_33220,0x100,"%s/%s.tar.gz","/tmp/asusfbsvcs/duplicate_log","conn_diag_log");
+      iVar9 = check_if_file_exist(acStack_33220);
+      if (iVar9 != 0) {
+        sVar10 = strlen(acStack_31b20);
+        snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar6);
+      }
+    }
+    snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","amas_ssd_dbg.log");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      unlink(acStack_33220);
+    }
+    iVar9 = check_if_file_exist("/jffs/.sys/amas/amas_ssd_dbg.log-1");
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cp -f %s %s","/jffs/.sys/amas/amas_ssd_dbg.log-1",acStack_33220)
       ;
-      system(acStack_32820);
-    }
-    iVar10 = check_if_file_exist("/jffs/.sys/amas/amas_ssd_dbg.log");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cat %s >> %s","/jffs/.sys/amas/amas_ssd_dbg.log",acStack_32c20);
-      system(acStack_32820);
-    }
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20);
-    }
-    pcVar15 = "amas_wlcconnect.log";
-    snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","amas_wlcconnect.log");
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      unlink(acStack_32c20);
-    }
-    iVar10 = check_if_file_exist("/jffs/amas_wlcconnect.log-1");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cp -f %s %s","/jffs/amas_wlcconnect.log-1",acStack_32c20);
-      system(acStack_32820);
-      pcVar15 = pcVar40;
-    }
-    iVar10 = check_if_file_exist("/jffs/amas_wlcconnect.log");
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cat %s >> %s","/jffs/amas_wlcconnect.log",acStack_32c20);
-      system(acStack_32820);
-      pcVar15 = pcVar41;
-    }
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      sVar11 = strlen(acStack_32020);
-      snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20);
-    }
-    pcVar7 = "amas_backhaul_2G.log";
-    snprintf(acStack_32c20,0x100,"/jffs/%s","amas_backhaul_2G.log");
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cp %s %s/%s",acStack_32c20,"/tmp/asusfbsvcs/duplicate_log",
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist("/jffs/.sys/amas/amas_ssd_dbg.log");
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cat %s >> %s","/jffs/.sys/amas/amas_ssd_dbg.log",acStack_33220);
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220);
+    }
+    pcVar6 = "amas_wlcconnect.log";
+    snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","amas_wlcconnect.log");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      unlink(acStack_33220);
+    }
+    iVar9 = check_if_file_exist("/jffs/amas_wlcconnect.log-1");
+    if (iVar9 != 0) {
+      pcVar6 = acStack_33220;
+      snprintf(acStack_32620,0xb00,"cp -f %s %s","/jffs/amas_wlcconnect.log-1",acStack_33220);
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist("/jffs/amas_wlcconnect.log");
+    if (iVar9 != 0) {
+      pcVar6 = acStack_33220;
+      snprintf(acStack_32620,0xb00,"cat %s >> %s","/jffs/amas_wlcconnect.log",acStack_33220);
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220);
+    }
+    pcVar30 = "amas_backhaul_2G.log";
+    snprintf(acStack_33220,0x100,"/jffs/%s","amas_backhaul_2G.log");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cp %s %s/%s",acStack_33220,"/tmp/asusfbsvcs/duplicate_log",
                "amas_backhaul_2G.log");
-      system(acStack_32820);
-      snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","amas_backhaul_2G.log");
-      iVar10 = check_if_file_exist(acStack_32c20);
-      pcVar15 = pcVar7;
-      if (iVar10 != 0) {
-        sVar11 = strlen(acStack_32020);
-        snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20,pcVar7);
-        pcVar15 = pcVar7;
-      }
-    }
-    pcVar7 = "cfg_abl.log";
-    snprintf(acStack_32c20,0x100,"/tmp/asusdebuglog/%s","cfg_abl.log",pcVar15);
-    iVar10 = check_if_file_exist(acStack_32c20);
-    if (iVar10 != 0) {
-      snprintf(acStack_32820,0x800,"cp %s %s/%s",acStack_32c20,"/tmp/asusfbsvcs/duplicate_log",
+      system(acStack_32620);
+      snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","amas_backhaul_2G.log");
+      iVar9 = check_if_file_exist(acStack_33220);
+      pcVar6 = pcVar30;
+      if (iVar9 != 0) {
+        sVar10 = strlen(acStack_31b20);
+        snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar30);
+        pcVar6 = pcVar30;
+      }
+    }
+    pcVar30 = "cfg_abl.log";
+    snprintf(acStack_33220,0x100,"/tmp/asusdebuglog/%s","cfg_abl.log",pcVar6);
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cp %s %s/%s",acStack_33220,"/tmp/asusfbsvcs/duplicate_log",
                "cfg_abl.log");
-      system(acStack_32820);
-      snprintf(acStack_32c20,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","cfg_abl.log");
-      iVar10 = check_if_file_exist(acStack_32c20);
-      if (iVar10 != 0) {
-        sVar11 = strlen(acStack_32020);
-        snprintf(acStack_32020 + sVar11,0x800 - sVar11,"-a %s ",acStack_32c20,pcVar7);
-      }
-    }
-  }
-  pcVar15 = FUN_000d0a8c();
-  if (*pcVar15 != '\0') {
-    FUN_000d0a8c();
-    iVar10 = d_exists();
-    if (iVar10 != 0) {
-      puVar8 = FUN_000d0a8c();
-      snprintf(acStack_32820,0x800,"cd /tmp; rm -f log_wlstat.tgz; tar zcf log_wlstat.tgz %s",puVar8
+      system(acStack_32620);
+      snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","cfg_abl.log");
+      iVar9 = check_if_file_exist(acStack_33220);
+      if (iVar9 != 0) {
+        sVar10 = strlen(acStack_31b20);
+        snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220,pcVar30);
+      }
+    }
+    snprintf(acStack_33220,0x100,"%s/%s","/tmp/asusfbsvcs/duplicate_log","amas_bhctrl.log");
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      unlink(acStack_33220);
+    }
+    iVar9 = check_if_file_exist("/jffs/.sys/amas/amas_bhctrl.log-1");
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cp -f %s %s","/jffs/.sys/amas/amas_bhctrl.log-1",acStack_33220);
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist("/jffs/.sys/amas/amas_bhctrl.log");
+    if (iVar9 != 0) {
+      snprintf(acStack_32620,0xb00,"cat %s >> %s","/jffs/.sys/amas/amas_bhctrl.log",acStack_33220);
+      system(acStack_32620);
+    }
+    iVar9 = check_if_file_exist(acStack_33220);
+    if (iVar9 != 0) {
+      sVar10 = strlen(acStack_31b20);
+      snprintf(acStack_31b20 + sVar10,0xb00 - sVar10,"-a %s ",acStack_33220);
+    }
+  }
+  pcVar6 = FUN_000d6a9c();
+  if (*pcVar6 != '\0') {
+    FUN_000d6a9c();
+    iVar9 = d_exists();
+    if (iVar9 != 0) {
+      p
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment