Function at 0x51f452
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov eax, dword [0x7b088c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x34]
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov esi, ecx
push edx
xor ecx, ecx
push ecx
push edi
push eax
lea eax, [ebp - 0x24]
mov dword [ebp - 0x34], 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 - 0x2c]
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 - 0x2c]
add esp, 0xc
neg ebx
sbb bl, bl
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x24]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
add bl, 1
je 0x51f4d0
xor ebx, ebx
jmp 0x51f75b
mov eax, dword [ebp - 0x34]
lea edx, [ebp - 0x30]
xor ebx, ebx
mov dword [ebp - 0x30], ebx
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x40]
lea ecx, [ebp - 0x5c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_void_
push edi
lea ecx, [ebp - 0x5c]
call fcn.0051b603
mov eax, dword [ebp - 0x30]
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x50], eax
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_void_
push 0x64
lea ecx, [ebp - 0x38]
call sym.txupd.exe_public:_wchar_t____thiscall_CTXStringW::GetBuffer_int_
push eax
push 0x64
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x38]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::ReleaseBuffer_int_
push str..tmp
lea eax, [ebp - 0x2c]
push edi
push eax
call sym.txupd.exe_class_CTXStringW___cdecl_operator_class_CTXStringW_const___wchar_t_const__
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x44]
push eax
call sym.txupd.exe_class_CTXStringW___cdecl_Util::FS::CombinePath_class_CTXStringW_const___class_CTXStringW_const__
add esp, 0x18
lea ecx, [ebp - 0x2c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], ebx
push eax
push 0x1002
lea ecx, [ebp - 0x44]
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
lea eax, [ebp - 0x2c]
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 - 0x2c]
add esp, 0xc
neg ebx
sbb bl, bl
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
add bl, 1
jne 0x51f736
xor ebx, ebx
lea eax, [esi + 0x10]
push 0x38
push str.1.2.3
push ebx
push 8
push 0xfffffffffffffff1
push 8
push 0xffffffffffffffff
push eax
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], ebx
mov dword [eax], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x2c], ebx
call fcn.00415b50
add esp, 0x20
test eax, eax
jne 0x51f738
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x24], ebx
jmp 0x51f696
mov dword [ebp - 0x3c], ebx
lea edx, [ebp - 0x3c]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x30]
lea eax, [ebp - 0x1c]
mov dword [ebp - 8], 0xf
push eax
push edi
push dword [ebp - 0x3c]
mov ecx, esi
mov dword [ebp - 0xc], ebx
mov byte [ebp - 0x1c], bl
call sym.txupd.exe_private:_bool___thiscall_CZipFiles::ZipBuffer_void_const___unsigned_int__class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char____
test al, al
je 0x51f721
mov eax, dword [ebp - 0x24]
push edi
push dword [ebp - 0x3c]
push eax
call fcn.004152f0
mov edi, dword [ebp - 0x2c]
lea ecx, [ebp - 0x20]
add edi, dword [ebp - 0xc]
add esp, 0xc
cmp dword [ebp - 8], 0x10
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x1c]
cmovae eax, dword [ebp - 0x1c]
push dword [ebp - 0xc]
mov dword [ebp - 0x2c], edi
push eax
mov dword [ebp - 0x20], ebx
call fcn.004ee909
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x48], edx
test eax, eax
jne 0x51f65f
lea eax, [ebp - 0x20]
push eax
call sym.txupd.exe_int___cdecl_Util::Data::CreateTXBuffer_struct_ITXBuffer___
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x48]
pop ecx
mov ecx, dword [edx]
push eax
push edx
call dword [ecx + 0x5c]
test eax, eax
mov eax, dword [ebp - 0x20]
js 0x51f714
cmp dword [ebp - 0x30], ebx
je 0x51f6c8
test eax, eax
je 0x51f683
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x20], ebx
push ebx
push 1
lea ecx, [ebp - 0x1c]
call fcn.004191aa
lea ecx, [ebp - 0x28]
call fcn.00506e10
mov eax, dword [ebp - 0x30]
lea edx, [ebp - 0x28]
mov ecx, 0x100000
mov dword [ebp - 0x28], ebx
cmp eax, ecx
mov edi, eax
push edx
cmova edi, ecx
sub eax, edi
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x34]
push edi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x51f5db
jmp 0x51f72c
test eax, eax
je 0x51f6d5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x20], ebx
push ebx
push 1
lea ecx, [ebp - 0x1c]
call fcn.004191aa
lea ecx, [ebp - 0x28]
call fcn.00506e10
mov eax, dword [ebp - 0x24]
mov ecx, esi
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x5c]
push eax
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x4c], 8
call fcn.00522ef5
inc dword [esi + 0xc]
lea eax, [esi + 0x10]
push eax
call fcn.00416bd0
pop ecx
mov bl, 1
jmp 0x51f73b
test eax, eax
je 0x51f721
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x20], ebx
push ebx
push 1
lea ecx, [ebp - 0x1c]
call fcn.004191aa
lea ecx, [ebp - 0x28]
call fcn.00506e10
jmp 0x51f738
xor ebx, ebx
mov dword [ebp - 0x24], ebx
lea ecx, [ebp - 0x40]
call fcn.004d1188
lea ecx, [ebp - 0x44]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x38]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x5c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x34]
call fcn.004d1188
mov ecx, dword [ebp - 4]
mov al, bl
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00682c16
mov esp, ebp
pop ebp
ret 8