Function at 0x496d80
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b4b74
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2e0
mov eax, dword [0x4f0dd0]
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.err__
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.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bfcc0
push 0x4cb25c
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bfcc1
push str.invalid_arg
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bfcc2
push str.arg_count
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bfcca
push str.invalid_key_type
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bfccb
push str.invalid_list_index
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bfccc
push str.key_type_mixed
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bfcd4
push str.invalid_value_type
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bfcde
push str.invalid_text
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bff19
push str.bencoding_invalid_int
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bff1a
push str.bencoding_invalid_str
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bff1b
push str.bencoding_invalid_list
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bff1c
push str.bencoding_invalid_dict
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bff1d
push str.bencoding_invalid_dict_key
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bff22
push str.bencoding_redundancy_chars
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bff7d
push str.json_invalid_string
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bff7e
push str.json_invalid_array
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bff7f
push str.json_invalid_uicode_code
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bff80
push str.json_invalid_escape_sequence
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bffe1
push str.binary_register_invalid_type
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bffe2
push str.binary_register_lack_type
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bffe3
push str.binary_register_lack_name
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bffe4
push str.binary_register_lack_item
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bffe5
push str.binary_register_lack_member
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bffe6
push str.binary_register_invalid_type_string
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bffe7
push str.binary_register_invalid_assume_length
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bffe8
push str.binary_register_invalid_max_size
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19bffe9
push str.binary_register_invalid_opt_key
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19bffea
push str.binary_register_member_is_not_list
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19bffeb
push str.binary_register_default_value_not_match_type
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c0008
push str.binary_encode_template_not_find
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c0009
push str.binary_encode_int_not_match
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c000a
push str.binary_encode_string_not_match
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c000b
push str.binary_encode_list_not_match
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c000c
push str.binary_encode_struct_not_match
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c000d
push str.binary_encode_invalid_ipv4
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c000e
push str.binary_encode_invalid_hex
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c000f
push str.binary_encode_assume_length_not_match
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c0012
push str.binary_decode_template_not_find
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c0013
push str.binary_decode_invalid_string
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c0014
push str.binary_decode_invalid_list
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c0015
push str.binary_decode_invalid_struct
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c0016
push str.binary_decode_invalid_string_size
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c0017
push str.binary_decode_invalid_struct_size
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c0018
push str.binary_decode_invalid_list_count
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c0045
push str.xml_not_utf8
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c0046
push str.xml_invalid
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c0047
push str.xml_invalid_text
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c0048
push str.xml_logic_error
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c0049
push str.xml_multi_root
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c0171
push str.aes_invalid_key_length
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c0172
push str.aes_invalid_key
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c01d5
push str.utf8_invalid_text
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c00a9
push str.local_disk_create_directory
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c00aa
push str.local_disk_create_file
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c00ab
push str.local_disk_delete_directory
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c00ac
push str.local_disk_delete_file
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c00ad
push str.local_disk_file_not_exist
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c00ae
push str.local_disk_write_file
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c00af
push str.local_disk_read_file
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c00b0
push str.local_disk_invalid_name
call fcn.004976a0
add esp, 0xc
lea edx, [ebp - 0x8c]
push edx
push 0x19c00b2
push str.local_disk_encrypt_key
call fcn.004976a0
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push 0x19c00b3
push str.local_disk_encrypt
call fcn.004976a0
add esp, 0xc
lea ecx, [ebp - 0x8c]
push ecx
push 0x19c00b4
push str.local_disk_decrypt
call fcn.004976a0
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 0x4974fa
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 0x497497
mov eax, dword [ebp - 0x2ec]
add eax, 1
mov dword [ebp - 0x2ec], eax
mov ecx, dword [ebp - 0x2ec]
cmp ecx, dword [ebp - 0x2e8]
jae 0x4974ca
mov edx, dword [ebp - 0x2ec]
movzx eax, word [ebp + edx*2 - 0x2c4]
cmp eax, 0x5c
jne 0x4974c8
mov ecx, dword [ebp - 0x2ec]
mov word [ebp + ecx*2 - 0x2c4], 0x2f
jmp 0x497488
lea edx, [ebp - 0xb0]
push edx
mov eax, dword [ebp - 0x2e8]
push eax
lea ecx, [ebp - 0x2c4]
push ecx
call fcn.0043c3a1
add esp, 0xc
push str.Thunder_Network_XAP_
lea ecx, [ebp - 0xb0]
call dword [0x4b7414]
jmp 0x49750b
push 0x4cb958
lea ecx, [ebp - 0xb0]
call dword [sym.imp.MSVCP71.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__::operator_char_const__]
push 0x4cb95c
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.0040f582
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.err__xap.err_
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.err.implement
call dword [sym.imp.XLLuaRuntime.dll__XLLRT_CreateChunk_16]
mov dword [ebp - 0x2c8], eax
cmp dword [ebp - 0x90], 0
je 0x4975fb
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.0049f127
mov esp, ebp
pop ebp
ret