Function at 0x51a7bc0
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x5233104
mov eax, dword fs:[0]
push eax
mov eax, 0x80c0
call fcn.0520b920
mov eax, dword [0x53f3c3c]
xor eax, esp
mov dword [esp + 0x80bc], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x53f3c3c]
xor eax, esp
push eax
lea eax, [esp + 0x80d4]
mov dword fs:[0], eax
mov esi, dword [esp + 0x80e8]
test esi, esi
jne 0x51a7c12
lea eax, [esi - 5]
jmp 0x51a7ece
mov eax, dword [esp + 0x80e4]
push eax
mov ecx, 0x53f4cc8
call fcn.05065960
mov edi, eax
mov ebp, dword [edi + 0xd400]
add edi, 0xd3f0
cmp dword [edi + 0xc], ebp
jbe 0x51a7c3d
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ebx, dword [edi + 0xc]
mov ecx, dword [edi]
mov dword [esp + 0x14], ecx
cmp ebx, dword [edi + 0x10]
jbe 0x51a7c51
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x14]
mov eax, dword [edi]
push ebp
push edx
push ebx
push eax
lea eax, [esp + 0x24]
push eax
mov ecx, edi
call fcn.05070b00
cmp byte [esp + 0x80f0], 0
je 0x51a7f12
push 0x7fff
lea ecx, [esp + 0xd4]
push 0
push ecx
call sub.MSVCR90.dll_memset
mov eax, dword [str.Upload_PC_files_to_Target_List]
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionA]
add esp, 0xc
push esi
push 0x7fff
lea edx, [esp + 0xd8]
push edx
push eax
call ebp
mov ebx, dword [esp + 0x80e4]
mov edi, eax
test edi, edi
jbe 0x51a7d14
cmp edi, 0x7ffd
ja 0x51a7d14
push 3
push edi
lea ecx, [esp + 0xd8]
push ecx
push ebx
call fcn.051a7690
add esp, 0x10
test eax, eax
jne 0x51a7ef6
cmp edi, 0x7ffd
jne 0x51a7d14
push 0x7fff
push eax
lea edx, [esp + 0xd8]
push edx
call sub.MSVCR90.dll_memset
mov ecx, dword [str.Upload_PC_files_to_Target_List]
add esp, 0xc
push esi
push 0x7fff
lea eax, [esp + 0xd8]
push eax
push ecx
call ebp
mov edi, eax
test edi, edi
ja 0x51a7cb5
push 0x7fff
lea edx, [esp + 0xd4]
push 0
push edx
call sub.MSVCR90.dll_memset
mov ecx, dword [str.Upload_PC_folder_to_Target_List]
add esp, 0xc
push esi
push 0x7fff
lea eax, [esp + 0xd8]
push eax
push ecx
call ebp
mov edi, eax
test edi, edi
jbe 0x51a7da7
cmp edi, 0x7ffd
ja 0x51a7da7
push 8
push edi
lea edx, [esp + 0xd8]
push edx
push ebx
call fcn.051a7690
add esp, 0x10
test eax, eax
jne 0x51a7efd
cmp edi, 0x7ffd
jne 0x51a7da7
push 0x7fff
push eax
lea eax, [esp + 0xd8]
push eax
call sub.MSVCR90.dll_memset
mov edx, dword [str.Upload_PC_folder_to_Target_List]
add esp, 0xc
push esi
push 0x7fff
lea ecx, [esp + 0xd8]
push ecx
push edx
call ebp
mov edi, eax
test edi, edi
ja 0x51a7d48
push 0x7fff
lea eax, [esp + 0xd4]
push 0
push eax
call sub.MSVCR90.dll_memset
mov edx, dword [str.IMEI]
add esp, 0xc
push esi
push 0x7fff
lea ecx, [esp + 0xd8]
push ecx
push edx
call ebp
mov edi, eax
test edi, edi
jbe 0x51a7e3e
jmp 0x51a7de0
cmp edi, 0x7ffd
ja 0x51a7e3e
push 4
push edi
lea eax, [esp + 0xd8]
push eax
push ebx
call fcn.051a7690
add esp, 0x10
test eax, eax
jne 0x51a7f04
cmp edi, 0x7ffd
jne 0x51a7e3e
push 0x7fff
push eax
lea ecx, [esp + 0xd8]
push ecx
call sub.MSVCR90.dll_memset
mov eax, dword [str.IMEI]
add esp, 0xc
push esi
push 0x7fff
lea edx, [esp + 0xd8]
push edx
push eax
call ebp
mov edi, eax
test edi, edi
ja 0x51a7de0
push 0x7fff
lea ecx, [esp + 0xd4]
push 0
push ecx
call sub.MSVCR90.dll_memset
mov eax, dword [str.WIFI_MAC_ADDR]
add esp, 0xc
push esi
push 0x7fff
lea edx, [esp + 0xd8]
push edx
push eax
call ebp
mov edi, eax
test edi, edi
jbe 0x51a7ecc
cmp edi, 0x7ffd
ja 0x51a7ecc
push 7
push edi
lea ecx, [esp + 0xd8]
push ecx
push ebx
call fcn.051a7690
add esp, 0x10
test eax, eax
jne 0x51a7f0b
cmp edi, 0x7ffd
jne 0x51a7ecc
push 0x7fff
push eax
lea edx, [esp + 0xd8]
push edx
call sub.MSVCR90.dll_memset
mov ecx, dword [str.WIFI_MAC_ADDR]
add esp, 0xc
push esi
push 0x7fff
lea eax, [esp + 0xd8]
push eax
push ecx
call ebp
mov edi, eax
test edi, edi
ja 0x51a7e71
xor eax, eax
mov ecx, dword [esp + 0x80d4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x80bc]
xor ecx, esp
call fcn.0520b902
add esp, 0x80cc
ret
mov eax, 0xfffffffc
jmp 0x51a7ece
mov eax, 0xfffffff5
jmp 0x51a7ece
mov eax, 0xfffffff9
jmp 0x51a7ece
mov eax, 0xfffffff6
jmp 0x51a7ece
cmp byte [esp + 0x80ec], 0
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionA]
jne 0x51a826a
push 0x7fff
lea edx, [esp + 0xd4]
push 0
push edx
call sub.MSVCR90.dll_memset
mov ecx, dword [str.Z:NVRAMNVD_DATA]
mov edx, dword [str.Backup_NVRAM_folder_path]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
add esp, 0xc
push esi
push 0x7fff
lea eax, [esp + 0xd8]
push eax
mov eax, dword [str.Backup_and_Restore_Calibration_Data_Basic_Settings]
push ecx
push edx
push eax
call edi
dec eax
lea ecx, [esp + 0x38]
cmp eax, 0x7ffd
ja 0x51a8012
call fcn.0519e620
mov dword [esp + 0x80dc], 0
mov ecx, dword [str.Backup_NVRAM_folder_path]
push ecx
lea ecx, [esp + 0x40]
call dword [0x523a2ec]
lea edx, [esp + 0xd0]
push edx
lea ecx, [esp + 0x5c]
call dword [0x523a2ec]
mov eax, dword [sym.imp.MSVCP90.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov eax, dword [eax]
push 1
push eax
push 0x529230c
lea ecx, [esp + 0x64]
call dword [sym.imp.MSVCP90.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::rfind_char_const___unsigned_int__unsigned_int_const]
mov ecx, dword [esp + 0x6c]
dec ecx
cmp eax, ecx
jne 0x51a8003
push ecx
push 0
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x64]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::substr_unsigned_int__unsigned_int_]
mov byte [esp + 0x80dc], 1
push eax
lea ecx, [esp + 0x5c]
call dword [0x523a2b0]
mov byte [esp + 0x80dc], 0
lea ecx, [esp + 0x1c]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, dword [esp + 0x80e4]
lea edx, [esp + 0x38]
push edx
push eax
jmp 0x51a8051
call fcn.0519e620
mov dword [esp + 0x80dc], 2
mov ecx, dword [str.Backup_NVRAM_folder_path]
push ecx
lea ecx, [esp + 0x40]
call dword [0x523a2ec]
mov edx, dword [str.Z:NVRAMNVD_DATA]
push edx
lea ecx, [esp + 0x5c]
call dword [0x523a2ec]
mov ecx, dword [esp + 0x80e4]
lea eax, [esp + 0x38]
push eax
push ecx
mov ecx, 0x53f4cc8
mov byte [esp + 0x40], 0
call fcn.05065960
mov ecx, eax
add ecx, 0xd3f0
call fcn.051a75e0
or ebx, 0xffffffff
mov dword [esp + 0x80dc], ebx
lea ecx, [esp + 0x38]
call fcn.0506e470
push 0x7fff
lea edx, [esp + 0xd4]
push 0
push edx
call sub.MSVCR90.dll_memset
mov ecx, dword [str.Z:NVRAMNVD_DATA]
mov edx, dword [str.Restore_NVRAM_folder_path]
add esp, 0xc
push esi
push 0x7fff
lea eax, [esp + 0xd8]
push eax
mov eax, dword [str.Backup_and_Restore_Calibration_Data_Basic_Settings]
push ecx
push edx
push eax
call edi
dec eax
lea ecx, [esp + 0x38]
cmp eax, 0x7ffd
ja 0x51a8166
call fcn.0519e620
mov dword [esp + 0x80dc], 3
mov ecx, dword [str.Restore_NVRAM_folder_path]
push ecx
lea ecx, [esp + 0x40]
call dword [0x523a2ec]
lea edx, [esp + 0xd0]
push edx
lea ecx, [esp + 0x5c]
call dword [0x523a2ec]
mov eax, dword [sym.imp.MSVCP90.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov eax, dword [eax]
push 1
push eax
push 0x529230c
lea ecx, [esp + 0x64]
call dword [sym.imp.MSVCP90.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::rfind_char_const___unsigned_int__unsigned_int_const]
mov ecx, dword [esp + 0x6c]
dec ecx
cmp eax, ecx
jne 0x51a8157
push ecx
push 0
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x64]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::substr_unsigned_int__unsigned_int_]
mov byte [esp + 0x80dc], 4
push eax
lea ecx, [esp + 0x5c]
call dword [0x523a2b0]
mov byte [esp + 0x80dc], 3
lea ecx, [esp + 0x1c]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, dword [esp + 0x80e4]
lea edx, [esp + 0x38]
push edx
push eax
jmp 0x51a81a5
call fcn.0519e620
mov dword [esp + 0x80dc], 5
mov ecx, dword [str.Restore_NVRAM_folder_path]
push ecx
lea ecx, [esp + 0x40]
call dword [0x523a2ec]
mov edx, dword [str.Z:NVRAMNVD_DATA]
push edx
lea ecx, [esp + 0x5c]
call dword [0x523a2ec]
mov ecx, dword [esp + 0x80e4]
lea eax, [esp + 0x38]
push eax
push ecx
mov ecx, 0x53f4cc8
mov byte [esp + 0x40], 0
call fcn.05065960
mov ecx, eax
add ecx, 0xd3f0
call fcn.051a75e0
mov dword [esp + 0x80dc], ebx
lea ecx, [esp + 0x38]
call fcn.0506e470
push 0x7fff
lea edx, [esp + 0xd4]
push 0
push edx
call sub.MSVCR90.dll_memset
mov ecx, dword [str.Target_NVRAM_Backup_and_Restore_List]
add esp, 0xc
push esi
push 0x7fff
lea eax, [esp + 0xd8]
push eax
push ecx
call ebp
mov edi, eax
test edi, edi
jbe 0x51a826a
cmp edi, 0x7ffd
ja 0x51a826a
mov eax, dword [esp + 0x80e4]
push 1
push edi
lea edx, [esp + 0xd8]
push edx
push eax
call fcn.051a7690
add esp, 0x10
test eax, eax
jne 0x51a8568
cmp edi, 0x7ffd
jne 0x51a826a
push 0x7fff
push eax
lea ecx, [esp + 0xd8]
push ecx
call sub.MSVCR90.dll_memset
mov eax, dword [str.Target_NVRAM_Backup_and_Restore_List]
add esp, 0xc
push esi
push 0x7fff
lea edx, [esp + 0xd8]
push edx
push eax
call ebp
mov edi, eax
test edi, edi
ja 0x51a8205
push 0x7fff
lea ecx, [esp + 0xd4]
push 0
push ecx
call sub.MSVCR90.dll_memset
mov eax, dword [str.Target_Backup_and_Restore_List]
add esp, 0xc
push esi
push 0x7fff
lea edx, [esp + 0xd8]
push edx
push eax
call ebp
mov ebx, dword [esp + 0x80e4]
mov edi, eax
test edi, edi
jbe 0x51a8303
cmp edi, 0x7ffd
ja 0x51a8303
push 2
push edi
lea ecx, [esp + 0xd8]
push ecx
push ebx
call fcn.051a7690
add esp, 0x10
test eax, eax
jne 0x51a8572
cmp edi, 0x7ffd
jne 0x51a8303
push 0x7fff
push eax
lea edx, [esp + 0xd8]
push edx
call sub.MSVCR90.dll_memset
mov ecx, dword [str.Target_Backup_and_Restore_List]
add esp, 0xc
push esi
push 0x7fff
lea eax, [esp + 0xd8]
push eax
push ecx
call ebp
mov edi, eax
test edi, edi
ja 0x51a82a4
push 0x7fff
lea edx, [esp + 0xd4]
push 0
push edx
call sub.MSVCR90.dll_memset
mov ecx, dword [str.Upload_PC_files_to_Target_List]
add esp, 0xc
push esi
push 0x7fff
lea eax, [esp + 0xd8]
push eax
push ecx
call ebp
mov edi, eax
test edi, edi
jbe 0x51a8396
cmp edi, 0x7ffd
ja 0x51a8396
push 3
push edi
lea edx, [esp + 0xd8]
push edx
push ebx
call fcn.051a7690
add esp, 0x10
test eax, eax
jne 0x51a7ef6
cmp edi, 0x7ffd
jne 0x51a8396
push 0x7fff
push eax
lea eax, [esp + 0xd8]
push eax
call sub.MSVCR90.dll_memset
mov edx, dword [str.Upload_PC_files_to_Target_List]
add esp, 0xc
push esi
push 0x7fff
lea ecx, [esp + 0xd8]
push ecx
push edx
call ebp
mov edi, eax
test edi, edi
ja 0x51a8337
push 0x7fff
lea eax, [esp + 0xd4]
push 0
push eax
call sub.MSVCR90.dll_memset
mov edx, dword [str.Upload_PC_folder_to_Target_List]
add esp, 0xc
push esi
push 0x7fff
lea ecx, [esp + 0xd8]
push ecx
push edx
call ebp
mov edi, eax
test edi, edi
jbe 0x51a842e
lea ebx, [ebx]
cmp edi, 0x7ffd
ja 0x51a842e
push 8
push edi
lea eax, [esp + 0xd8]
push eax
push ebx
call fcn.051a7690
add esp, 0x10
test eax, eax
jne 0x51a7efd
cmp edi, 0x7ffd
jne 0x51a842e
push 0x7fff
push eax
lea ecx, [esp + 0xd8]
push ecx
call sub.MSVCR90.dll_memset
mov eax, dword [str.Upload_PC_folder_to_Target_List]
add esp, 0xc
push esi
push 0x7fff
lea edx, [esp + 0xd8]
push edx
push eax
call ebp
mov edi, eax
test edi, edi
ja 0x51a83d0
push 0x7fff
lea ecx, [esp + 0xd4]
push 0
push ecx
call sub.MSVCR90.dll_memset
mov eax, dword [str.Backup_Restore_File_Prefix_MORE]
add esp, 0xc
push esi
push 0x7fff
lea edx, [esp + 0xd8]
push edx
push eax
call ebp
mov edi, eax
test edi, edi
jbe 0x51a84c0
cmp edi, 0x7ffd
ja 0x51a84c0
push 5
push edi
lea ecx, [esp + 0xd8]
push ecx
push ebx
call fcn.051a7690
add esp, 0x10
test eax, eax
jne 0x51a857c
cmp edi, 0x7ffd
jne 0x51a84c0
push 0x7fff
push eax
lea edx, [esp + 0xd8]
push edx
call sub.MSVCR90.dll_memset
mov ecx, dword [str.Backup_Restore_File_Prefix_MORE]
add esp, 0xc
push esi
push 0x7fff
lea eax, [esp + 0xd8]
push eax
push ecx
call ebp
mov edi, eax
test edi, edi
ja 0x51a8461
push 0x7fff
lea edx, [esp + 0xd4]
push 0
push edx
call sub.MSVCR90.dll_memset
mov ecx, dword [str.Backup_Restore_File_Prefix_DELETE]
add esp, 0xc
push esi
push 0x7fff
lea eax, [esp + 0xd8]
push eax
push ecx
call ebp
mov edi, eax
test edi, edi
jbe 0x51a7ecc
jmp 0x51a8500
cmp edi, 0x7ffd
ja 0x51a7ecc
push 6
push edi
lea edx, [esp + 0xd8]
push edx
push ebx
call fcn.051a7690
add esp, 0x10
test eax, eax
jne 0x51a8586
cmp edi, 0x7ffd
jne 0x51a7ecc
push 0x7fff
push eax
lea eax, [esp + 0xd8]
push eax
call sub.MSVCR90.dll_memset
mov edx, dword [str.Backup_Restore_File_Prefix_DELETE]
add esp, 0xc
push esi
push 0x7fff
lea ecx, [esp + 0xd8]
push ecx
push edx
call ebp
mov edi, eax
test edi, edi
ja 0x51a8500
jmp 0x51a7ecc
mov eax, 0xfffffffe
jmp 0x51a7ece
mov eax, 0xfffffffd
jmp 0x51a7ece
mov eax, 0xfffffff8
jmp 0x51a7ece
mov eax, 0xfffffff7
jmp 0x51a7ece