Function at 0x52092f
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x11c
mov eax, dword [0x7b088c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0xf0]
and dword [ebp - 0xf0], 0
push ebx
push edi
push edx
push 0x1001
push eax
mov edi, ecx
lea eax, [ebp - 0xe4]
mov ecx, dword [ebp + 8]
push ecx
push eax
call sym.txupd.exe_class_CTXStringW___cdecl_Util::FS::CombinePath_class_CTXStringW_const___class_CTXStringW_const__
add esp, 0xc
mov ecx, eax
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
lea eax, [ebp - 0xe8]
push 0x70f3a4
push eax
call sym.txupd.exe_class_CTXStringW___cdecl_FS::CombineQNC_wchar_t_const___wchar_t_const__
add esp, 0xc
mov ecx, eax
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
call sym.txupd.exe_int___cdecl_FS::CreateFileW_wchar_t_const___unsigned_long_int__struct_ITXFile___
mov ebx, eax
lea ecx, [ebp - 0xe8]
add esp, 0xc
neg ebx
sbb bl, bl
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0xe4]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
add bl, 1
je 0x5209c4
xor bl, bl
jmp 0x520eb0
push esi
lea ecx, [ebp - 0x11c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_void_
xor ebx, ebx
mov ecx, ebx
mov edx, ebx
push 0xf
pop eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x3c], ecx
mov byte [ebp - 0x4c], bl
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xbc], edx
mov byte [ebp - 0xcc], bl
mov dword [ebp - 0xe4], ebx
cmp dword [edi + 0xc], ebx
jbe 0x520d9c
mov dword [ebp - 0xe8], ebx
mov eax, dword [edi]
add eax, ecx
lea ecx, [ebp - 0x11c]
push eax
call fcn.0051eb7b
push 0xffffffffffffffff
lea ecx, [ebp - 0x11c]
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
push dword [ebp - 0xf4]
lea ecx, [ebp - 0x100]
call sym.txupd.exe_public:_void___thiscall_CTXStringA::constructor_struct_tagGBK__wchar_t_const___int_
mov ecx, eax
call sym.txupd.exe_public:_char_const____thiscall_CTXStringA::GetString_void_const
push eax
lea ecx, [ebp - 0x1c]
call fcn.0041910f
lea ecx, [ebp - 0x100]
call sym.txupd.exe_public:_void___thiscall_CTXStringA::destructor_void_
mov ebx, dword [ebp - 0xc]
xor ecx, ecx
mov edx, dword [ebp - 8]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0xec], ebx
test ebx, ebx
je 0x520a8f
cmp edx, 0x10
lea eax, [ebp - 0x1c]
cmovae eax, esi
cmp byte [eax + ecx], 0x5c
jne 0x520a8a
cmp edx, 0x10
lea eax, [ebp - 0x1c]
cmovae eax, esi
mov byte [eax + ecx], 0x2f
mov edx, dword [ebp - 8]
mov esi, dword [ebp - 0x1c]
inc ecx
cmp ecx, ebx
jb 0x520a68
mov ecx, dword [ebp - 0xec]
xor ebx, ebx
test ecx, ecx
je 0x520aaf
cmp edx, 0x10
lea eax, [ebp - 0x1c]
push 0x10
cmovae eax, esi
cmp byte [eax + ecx - 1], 0x2f
pop eax
cmove ebx, eax
mov esi, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x114]
mov edx, dword [ebp - 0x118]
push 0x14
pop eax
mov word [ebp - 0x80], ax
xor eax, eax
mov word [ebp - 0x7c], si
mov esi, dword [ebp - 0xec]
push 0x21
mov word [ebp - 0x7e], ax
mov word [ebp - 0x7a], ax
pop eax
mov word [ebp - 0x6a], si
xor esi, esi
mov word [ebp - 0x68], si
push 0x14
pop esi
mov word [ebp - 0xb0], si
mov word [ebp - 0xae], si
xor esi, esi
mov word [ebp - 0x78], ax
mov eax, dword [ebp - 0x110]
mov word [ebp - 0xac], si
mov esi, dword [ebp - 0x10c]
mov dword [ebp - 0x6e], eax
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0xec]
mov word [ebp - 0xaa], si
xor esi, esi
mov word [ebp - 0x98], ax
xor eax, eax
push 0x21
mov word [ebp - 0xa8], si
mov dword [ebp - 0x72], ecx
pop esi
mov dword [ebp - 0xa0], ecx
lea ecx, [ebp - 0xdc]
mov dword [ebp - 0x96], eax
mov dword [ebp - 0x92], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x84], 0x4034b50
mov dword [ebp - 0x76], edx
mov dword [ebp - 0xb4], 0x2014b50
mov word [ebp - 0xa6], si
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0x8e], ebx
mov dword [ebp - 0x8a], eax
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_void_
push 0x64
lea ecx, [ebp - 0xdc]
call sym.txupd.exe_public:_wchar_t____thiscall_CTXStringW::GetBuffer_int_
push eax
push 0x64
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
or esi, 0xffffffff
lea ecx, [ebp - 0xdc]
push esi
call sym.txupd.exe_public:_void___thiscall_CTXStringW::ReleaseBuffer_int_
push 0x10
pop ecx
cmp dword [ebp - 8], ecx
lea eax, [ebp - 0x1c]
push str..tmp
cmovae eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x108]
push esi
push eax
push dword [ebp - 0xf4]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_struct_tagGBK__char_const___int_
push eax
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0x104]
push eax
call sym.txupd.exe_class_CTXStringW___cdecl_operator_class_CTXStringW_const___class_CTXStringW_const__
add esp, 0xc
push eax
lea eax, [ebp - 0xe0]
push eax
call sym.txupd.exe_class_CTXStringW___cdecl_operator_class_CTXStringW_const___wchar_t_const__
add esp, 0xc
lea ecx, [ebp - 0x104]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x108]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
and dword [ebp - 0xd8], 0
lea eax, [ebp - 0xd8]
push eax
push 0
lea ecx, [ebp - 0xe0]
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
lea eax, [ebp - 0xf4]
push 0x70f3a4
push eax
call sym.txupd.exe_class_CTXStringW___cdecl_FS::CombineQNC_wchar_t_const___wchar_t_const__
add esp, 0xc
mov ecx, eax
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
call sym.txupd.exe_int___cdecl_FS::CreateFileW_wchar_t_const___unsigned_long_int__struct_ITXFile___
mov ebx, eax
lea ecx, [ebp - 0xf4]
add esp, 0xc
neg ebx
sbb bl, bl
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
add bl, 1
jne 0x520edc
mov eax, dword [ebp - 0xd8]
lea edx, [ebp - 0xf8]
xor ebx, ebx
mov dword [ebp - 0xf8], ebx
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x40]
mov eax, dword [ebp - 0xd8]
lea edx, [ebp - 0xd4]
mov dword [ebp - 0xd4], ebx
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x48]
mov eax, dword [ebp - 0xd4]
lea edx, [ebp - 0xfc]
mov dword [ebp - 0xfc], ebx
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
cmp dword [ebp - 0xd4], ebx
je 0x520ecf
push 0x1e
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x4c]
call fcn.00430475
push esi
push ebx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x4c]
call fcn.00430518
push dword [ebp - 0xf8]
lea ecx, [ebp - 0x4c]
push dword [ebp - 0xfc]
call fcn.00430475
push 0x2e
lea eax, [ebp - 0xb4]
push eax
lea ecx, [ebp - 0xcc]
call fcn.00430475
push esi
push ebx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0xcc]
call fcn.00430518
lea ecx, [ebp - 0xe0]
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
call sym.txupd.exe_int___cdecl_FS::DeleteFileW_wchar_t_const__
pop ecx
lea ecx, [ebp - 0xd4]
call fcn.00506e10
lea ecx, [ebp - 0xd8]
call fcn.004d1188
lea ecx, [ebp - 0xe0]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0xdc]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
push ebx
push 1
lea ecx, [ebp - 0x1c]
call fcn.004191aa
mov esi, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xe8]
inc esi
push 0x14
pop eax
add ecx, eax
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0xe8], ecx
cmp esi, dword [edi + 0xc]
jb 0x520a09
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0xbc]
xor eax, eax
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x60], eax
movzx eax, word [edi + 0xc]
mov word [ebp - 0x5c], ax
mov word [ebp - 0x5a], ax
xor eax, eax
mov word [ebp - 0x50], ax
lea eax, [ecx + 0x16]
add eax, edx
mov dword [ebp - 0x20], 0xf
push eax
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x34], bl
mov dword [ebp - 0x64], 0x6054b50
mov dword [ebp - 0x58], edx
call fcn.00430989
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x34]
call fcn.0041931a
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0xcc]
push eax
lea ecx, [ebp - 0x34]
call fcn.00430518
push 0x16
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x34]
call fcn.00430475
push 0x10
pop ecx
cmp dword [ebp - 0x20], ecx
lea eax, [ebp - 0x34]
push dword [ebp - 0x24]
cmovae eax, dword [ebp - 0x34]
lea ecx, [ebp - 0xd0]
push eax
mov dword [ebp - 0xd0], ebx
call fcn.004ee909
mov eax, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xf0]
test eax, eax
jne 0x520e4f
lea eax, [ebp - 0xd0]
push eax
call sym.txupd.exe_int___cdecl_Util::Data::CreateTXBuffer_struct_ITXBuffer___
mov eax, dword [ebp - 0xd0]
pop ecx
mov ecx, dword [esi]
push eax
push esi
call dword [ecx + 0x5c]
test eax, eax
js 0x520e66
mov ecx, edi
call fcn.00522cdb
mov dword [edi + 0xc], ebx
mov bl, 1
mov eax, dword [ebp - 0xd0]
test eax, eax
je 0x520e7d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and dword [ebp - 0xd0], 0
push 0
lea ecx, [ebp - 0x34]
push 1
call fcn.004191aa
push 0
push 1
lea ecx, [ebp - 0xcc]
call fcn.004191aa
push 0
push 1
lea ecx, [ebp - 0x4c]
call fcn.004191aa
lea ecx, [ebp - 0x11c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
pop esi
lea ecx, [ebp - 0xf0]
call fcn.004d1188
mov ecx, dword [ebp - 4]
mov al, bl
pop edi
xor ecx, ebp
pop ebx
call fcn.00682c16
mov esp, ebp
pop ebp
ret 8
lea ecx, [ebp - 0xd4]
call fcn.00506e10
jmp 0x520ede
xor ebx, ebx
lea ecx, [ebp - 0xd8]
call fcn.004d1188
lea ecx, [ebp - 0xe0]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0xdc]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
push ebx
lea ecx, [ebp - 0x1c]
jmp 0x520e82