Function at 0x4ba330
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e7274
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2e0
mov eax, dword [0x52e400]
xor eax, ebp
mov dword [ebp - 0x94], eax
push 1
push 2
lea ecx, [ebp - 0x8c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_int_]
mov dword [ebp - 4], 0
push str.xap.error_code__
lea eax, [ebp - 0x8c]
push eax
call dword [sym.imp.MSVCP71.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::operator___struct_std::char_traits_char___class_std::basic_ostream_char__struct_std::char_traits_char_____char_const__]
add esp, 8
lea ecx, [ebp - 0x8c]
push ecx
push 0
push str.none
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bfcc0
push 0x502cdc
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bfcc1
push str.invalid_arg
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bfcc2
push str.arg_count
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bfcca
push str.invalid_key_type
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bfccb
push str.invalid_list_index
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bfccc
push str.key_type_mixed
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bfcd4
push str.invalid_value_type
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bfcde
push str.invalid_text
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bfce8
push str.no_memory
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bfcf2
push str.check_udata_fail
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bff19
push str.bencoding_invalid_int
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bff1a
push str.bencoding_invalid_str
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bff1b
push str.bencoding_invalid_list
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bff1c
push str.bencoding_invalid_dict
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bff1d
push str.bencoding_invalid_dict_key
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bff1e
push str.bencoding_invalid_prefix
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bff22
push str.bencoding_redundancy_chars
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bff7d
push str.json_invalid_string
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bff7e
push str.json_invalid_array
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bff7f
push str.json_invalid_unicode_code
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bff80
push str.json_invalid_escape_sequence
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bff81
push str.json_invalid_brackets
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bff82
push str.json_decode_redundancy_chars
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bffe1
push str.binary_register_invalid_type
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bffe2
push str.binary_register_lack_type
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bffe3
push str.binary_register_lack_name
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bffe4
push str.binary_register_lack_item
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bffe5
push str.binary_register_lack_member
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bffe6
push str.binary_register_invalid_template_key
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bffe7
push str.binary_register_invalid_type_string
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bffe8
push str.binary_register_invalid_assume_length
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bffe9
push str.binary_register_invalid_max_size
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bffea
push str.binary_register_invalid_opt_key
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bffeb
push str.binary_register_template_id_already_exist
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bffec
push str.binary_register_table_is_not_struct
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bffed
push str.binary_register_member_is_not_list
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bffee
push str.binary_register_default_value_not_match_type
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bffef
push str.binary_register_opt_value_not_match_type
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bfff0
push str.binary_register_opt_max_size_default_conflict
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c0008
push str.binary_encode_template_not_find
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c0009
push str.binary_encode_int_not_match
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c000a
push str.binary_encode_string_not_match
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c000b
push str.binary_encode_list_not_match
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c000c
push str.binary_encode_struct_not_match
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c000d
push str.binary_encode_invalid_ipv4
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c000e
push str.binary_encode_invalid_hex
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c000f
push str.binary_encode_assume_length_not_match
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c0012
push str.binary_decode_template_not_find
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c0013
push str.binary_decode_invalid_string
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c0014
push str.binary_decode_invalid_list
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c0015
push str.binary_decode_invalid_struct
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c0016
push str.binary_decode_invalid_string_size
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c0017
push str.binary_decode_invalid_struct_size
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c0018
push str.binary_decode_invalid_list_count
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c0045
push str.xml_not_utf8
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c0046
push str.xml_invalid
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c0047
push str.xml_invalid_text
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c0048
push str.xml_logic_error
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c0049
push str.xml_multi_root
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bfd39
push str.aes_invalid_key_length
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bfd3a
push str.aes_invalid_decrypt_data_length
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bfd43
push str.utf8_invalid_text
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c00a9
push str.local_disk_create_directory
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c00aa
push str.local_disk_create_file
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c00ab
push str.local_disk_delete_directory
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c00ac
push str.local_disk_delete_file
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c00ad
push str.local_disk_file_not_exist
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c00ae
push str.local_disk_write_file
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c00af
push str.local_disk_read_file
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c00b0
push str.local_disk_invalid_name
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c00b2
push str.local_disk_encrypt_key
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c00b3
push str.local_disk_encrypt
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c00b4
push str.local_disk_decrypt
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c010d
push str.xunlei_shub_encoding_invalid_opt_key
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c010e
push str.xunlei_shub_encoding_encode_invalid_protocol_format
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c010f
push str.xunlei_shub_encoding_encode_encrypt
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c0110
push str.xunlei_shub_encoding_encode_invalid_compress_flag
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c0116
push str.xunlei_shub_encoding_decode_decrypt
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c0117
push str.xunlei_shub_encoding_decode_invalid_data_size
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c0118
push str.xunlei_shub_encoding_decode_invalid_compress_flag
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c0119
push str.xunlei_shub_encoding_decode_invalid_http_header
call fcn.004baed0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c0171
push str.xunlei_shub_client_receive_timeout
call fcn.004baed0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bfd4d
push str.base64_encode
call fcn.004baed0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bfd4e
push str.base64_decode
call fcn.004baed0
add esp, 0xc
push str._local_profiles_local_provider__XLGetObject_Xunlei.Thunder.Path__if_provider_then_profiles__provider:GetProfilesPath___end
lea edx, [ebp - 0x8c]
push edx
call dword [sym.imp.MSVCP71.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::operator___struct_std::char_traits_char___class_std::basic_ostream_char__struct_std::char_traits_char_____char_const__]
add esp, 8
lea ecx, [ebp - 0xb0]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
mov byte [ebp - 4], 1
lea eax, [ebp - 0x2c4]
push eax
push 0
push 0
push 0x8023
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jl 0x4bacb5
lea ecx, [ebp - 0x2c4]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea edx, [ebp - 0x2c4]
push edx
call dword [sym.imp.MSVCR71.dll_wcslen]
add esp, 4
mov dword [ebp - 0x2e8], eax
mov dword [ebp - 0x2ec], 0
jmp 0x4bac54
mov eax, dword [ebp - 0x2ec]
add eax, 1
mov dword [ebp - 0x2ec], eax
mov ecx, dword [ebp - 0x2ec]
cmp ecx, dword [ebp - 0x2e8]
jae 0x4bac87
mov edx, dword [ebp - 0x2ec]
movzx eax, word [ebp + edx*2 - 0x2c4]
cmp eax, 0x5c
jne 0x4bac85
mov ecx, dword [ebp - 0x2ec]
mov word [ebp + ecx*2 - 0x2c4], 0x2f
jmp 0x4bac45
lea edx, [ebp - 0xb0]
push edx
mov eax, dword [ebp - 0x2e8]
push eax
lea ecx, [ebp - 0x2c4]
push ecx
call fcn.0044f9bd
add esp, 0xc
push str.Thunder_Network_XAP_
lea ecx, [ebp - 0xb0]
call dword [0x4eb700]
push 0x5036e0
lea edx, [ebp - 0xb0]
push edx
push str._local_profiles_path__profiles_or_
lea eax, [ebp - 0x8c]
push eax
call dword [sym.imp.MSVCP71.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::operator___struct_std::char_traits_char___class_std::basic_ostream_char__struct_std::char_traits_char_____char_const__]
add esp, 8
push eax
call fcn.00418000
add esp, 8
push eax
call dword [sym.imp.MSVCP71.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::operator___struct_std::char_traits_char___class_std::basic_ostream_char__struct_std::char_traits_char_____char_const__]
add esp, 8
push str._XLSetGlobal_xap.error_code__xap.error_code_
lea ecx, [ebp - 0x8c]
push ecx
call dword [sym.imp.MSVCP71.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::operator___struct_std::char_traits_char___class_std::basic_ostream_char__struct_std::char_traits_char_____char_const__]
add esp, 8
push str._XLSetGlobal_xap.profiles_path__profiles_path_
lea edx, [ebp - 0x8c]
push edx
call dword [sym.imp.MSVCP71.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::operator___struct_std::char_traits_char___class_std::basic_ostream_char__struct_std::char_traits_char_____char_const__]
add esp, 8
lea eax, [ebp - 0x2e4]
push eax
lea ecx, [ebp - 0x8c]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__::str_void_]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2e4]
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0x90], 0
lea edx, [ebp - 0x90]
push edx
mov ecx, dword [ebp - 0xb4]
call dword [sym.imp.MSVCP71.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::size_void_const]
push eax
mov ecx, dword [ebp - 0xb4]
call dword [sym.imp.MSVCP71.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
push str.xap.error_code.implement
call dword [sym.imp.XLLuaRuntime.dll__XLLRT_CreateChunk_16]
mov dword [ebp - 0x2c8], eax
cmp dword [ebp - 0x90], 0
je 0x4bada5
mov eax, dword [ebp - 0x90]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.XLLuaRuntime.dll__XLLRT_RunChunk_8]
mov dword [ebp - 0x2c8], eax
mov edx, dword [ebp - 0x90]
push edx
call dword [sym.imp.XLLuaRuntime.dll__XLLRT_ReleaseChunk_4]
mov dword [ebp - 0x2c8], eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2e4]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xb0]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__::vbase_dtor_void_]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x94]
xor ecx, ebp
call fcn.004d1da7
mov esp, ebp
pop ebp
ret