Function at 0x280a7e80
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x2810d750
mov eax, dword fs:[0]
push eax
mov eax, 0x3ed4
mov dword fs:[0], esp
call fcn.2810b2f0
mov eax, dword [0x281a5360]
push ebx
push ebp
push esi
mov dword [esp + 0x3edc], eax
push edi
lea eax, [esp + 0x60]
push eax
push 0xfa0
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
mov edi, dword [sym.imp.MSVCR71.dll_wcscpy]
jne 0x280a7eda
lea ecx, [esp + 0x60]
push 0x2811e850
push ecx
call edi
add esp, 8
mov ebx, dword [sym.imp.MSVCR71.dll_wcscat]
lea edx, [esp + 0x60]
push 0x2811e18c
push edx
call ebx
call dword [sym.imp.MSVCR71.dll__getpid]
push 0xa
lea ecx, [esp + 0x5c]
push ecx
push eax
call fcn.280a7890
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x78]
push eax
call ebx
lea ecx, [esp + 0x7c]
push str..IOR
push ecx
call ebx
mov ebp, dword [sym.imp.MSVCR71.dll_wcslen]
lea edx, [esp + 0x84]
push edx
call ebp
lea eax, [eax + eax + 2]
push eax
call fcn.2810ae4f
lea ecx, [esp + 0x8c]
push ecx
push eax
mov dword [esi + 0xc], eax
call edi
add esp, 0x34
push 0x2811b548
lea ecx, [esp + 0x18]
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharString::constructor_unsigned_short_int_const__]
lea ecx, [esp + 0x28]
mov dword [esp + 0x3eec], 0
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharString::constructor_void_]
push str.CRConfig11
lea ecx, [esp + 0x2c]
mov byte [esp + 0x3ef0], 1
call dword [sym.imp.cxlibw_3_1.dll_public:_bool___thiscall_CXLib301::SString_t_unsigned_short_int__1_::copyFrom_char_const__]
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.cxlibw_3_1.dll_public:_static_class_CXLib301::SWCharString___cdecl_CXLib301::SEnv::GetEnv_class_CXLib301::SWCharString_const__]
add esp, 8
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x3ef0], 2
call dword [sym.imp.cxlibw_3_1.dll_public:_class_CXLib301::SWCharString____thiscall_CXLib301::SWCharString::operator_class_CXLib301::SWCharString_const__]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3eec], 1
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharString::destructor_void_]
lea ecx, [esp + 0x14]
call dword [sym.imp.cxlibw_3_1.dll_public:_bool___thiscall_CXLib301::SString_t_unsigned_short_int__1_::isEmpty_void_const]
test al, al
mov ebx, dword [sym.imp.cxlibw_3_1.dll_public:_class_CXLib301::SString_t_unsigned_short_int__1_____thiscall_CXLib301::SString_t_unsigned_short_int__1_::operator_unsigned_short_int_const__]
jne 0x280a8007
push 0x5c
push ecx
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharString::constructor_class_CXLib301::SWCharString_const__]
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.cxlibw_3_1.dll_class_CXLib301::SWCharString___cdecl_CXLib301::GetParentLevelDir_class_CXLib301::SWCharString__unsigned_short_int_]
add esp, 0xc
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x3ef0], 3
call dword [sym.imp.cxlibw_3_1.dll_public:_class_CXLib301::SWCharString____thiscall_CXLib301::SWCharString::operator_class_CXLib301::SWCharString_const__]
lea ecx, [esp + 0x1c]
jmp 0x280a81ae
push 0xa
push str.The_environment_variable_CRConfig11_is_not_defined
push 0x752
push 0x2811e5c0
call fcn.28099b50
add esp, 0x10
push str.Software_
lea ecx, [esp + 0x24]
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharString::constructor_unsigned_short_int_const__]
push str.Business_ObjectsSuite_11.5
lea ecx, [esp + 0x24]
mov byte [esp + 0x3ef0], 4
call ebx
push 0x2811e18c
lea ecx, [esp + 0x24]
call ebx
push str.Shared
lea ecx, [esp + 0x24]
call ebx
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0x1c], reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharStringCI::constructor_class_CXLib301::SWCharString_const__]
push 0x2811b548
lea ecx, [esp + 0x38]
mov byte [esp + 0x3ef0], 5
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharStringCI::constructor_unsigned_short_int_const__]
push 1
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x40]
push ecx
lea ecx, [esp + 0x48]
mov byte [esp + 0x3efc], 6
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::Registry::constructor_class_CXLib301::SWCharStringCI_const___class_CXLib301::SWCharStringCI_const___struct_HKEY____const_const___bool_]
lea ecx, [esp + 0x34]
mov byte [esp + 0x3eec], 9
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharStringCI::destructor_void_]
lea ecx, [esp + 0x24]
mov byte [esp + 0x3eec], 8
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharStringCI::destructor_void_]
lea ecx, [esp + 0x38]
call dword [sym.imp.cxlibw_3_1.dll_public:_bool___thiscall_CXLib301::Registry::KeyExists_void_const]
test al, al
je 0x280a816f
push 0x2811b548
lea ecx, [esp + 0x20]
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharString::constructor_unsigned_short_int_const__]
push str.CommonFiles
lea ecx, [esp + 0x30]
mov byte [esp + 0x3ef0], 0xa
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharString::constructor_unsigned_short_int_const__]
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esp + 0x44]
mov byte [esp + 0x3ef8], 0xb
call dword [sym.imp.cxlibw_3_1.dll_public:_class_CXLib301::SWCharString___thiscall_CXLib301::Registry::ReadValue_class_CXLib301::SWCharString_const___class_CXLib301::SWCharString_const__]
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x3ef0], 0xc
call dword [sym.imp.cxlibw_3_1.dll_public:_class_CXLib301::SWCharString____thiscall_CXLib301::SWCharString::operator_class_CXLib301::SWCharString_const__]
lea ecx, [esp + 0x30]
mov byte [esp + 0x3eec], 0xb
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharString::destructor_void_]
lea ecx, [esp + 0x2c]
mov byte [esp + 0x3eec], 0xa
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharString::destructor_void_]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3eec], 8
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharString::destructor_void_]
lea ecx, [esp + 0x14]
call dword [sym.imp.cxlibw_3_1.dll_public:_bool___thiscall_CXLib301::SString_t_unsigned_short_int__1_::isEmpty_void_const]
test al, al
jne 0x280a8198
lea edx, [esp + 0x14]
push 0x5c
push edx
call dword [sym.imp.cxlibw_3_1.dll_void___cdecl_CXLib301::AppendSlashToDir_class_CXLib301::SWCharString___unsigned_short_int_]
add esp, 8
push str.java
lea ecx, [esp + 0x18]
call ebx
lea ecx, [esp + 0x38]
mov byte [esp + 0x3eec], 4
call dword [sym.imp.cxlibw_3_1.dll_public_virtual:_void___thiscall_CXLib301::Registry::destructor_void_]
lea ecx, [esp + 0x20]
mov byte [esp + 0x3eec], 1
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharString::destructor_void_]
push 0x2811b548
lea ecx, [esp + 0x14]
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharString::constructor_unsigned_short_int_const__]
lea ecx, [esp + 0x14]
mov byte [esp + 0x3eec], 0xd
call dword [sym.imp.cxlibw_3_1.dll_public:_bool___thiscall_CXLib301::SString_t_unsigned_short_int__1_::isEmpty_void_const]
test al, al
jne 0x280a8383
lea eax, [esp + 0x14]
push 0x5c
push eax
call dword [sym.imp.cxlibw_3_1.dll_void___cdecl_CXLib301::AppendSlashToDir_class_CXLib301::SWCharString___unsigned_short_int_]
add esp, 8
push 0x2811e748
lea ecx, [esp + 0x18]
call ebx
lea ecx, [esp + 0x14]
push 0x5c
push ecx
call dword [sym.imp.cxlibw_3_1.dll_void___cdecl_CXLib301::AppendSlashToDir_class_CXLib301::SWCharString___unsigned_short_int_]
add esp, 8
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x14]
call dword [0x281193ec]
push str.crlovexternal.jar
lea ecx, [esp + 0x14]
call ebx
sub esp, 8
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x3b
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SChar_t_unsigned_short_int__1_::constructor_unsigned_short_int_]
lea ecx, [esp + 0x18]
call dword [sym.imp.cxlibw_3_1.dll_public:_class_CXLib301::SString_t_unsigned_short_int__1_____thiscall_CXLib301::SString_t_unsigned_short_int__1_::operator_class_CXLib301::SChar_t_unsigned_short_int__1__]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x14]
call dword [0x281193ec]
push str.CRDBJavaServerCommon.jar
lea ecx, [esp + 0x14]
call ebx
sub esp, 8
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x3b
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SChar_t_unsigned_short_int__1_::constructor_unsigned_short_int_]
lea ecx, [esp + 0x18]
call dword [sym.imp.cxlibw_3_1.dll_public:_class_CXLib301::SString_t_unsigned_short_int__1_____thiscall_CXLib301::SString_t_unsigned_short_int__1_::operator_class_CXLib301::SChar_t_unsigned_short_int__1__]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x14]
call dword [0x281193ec]
push str.CRDBJavaServer.jar
lea ecx, [esp + 0x14]
call ebx
sub esp, 8
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x3b
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SChar_t_unsigned_short_int__1_::constructor_unsigned_short_int_]
lea ecx, [esp + 0x18]
call dword [sym.imp.cxlibw_3_1.dll_public:_class_CXLib301::SString_t_unsigned_short_int__1_____thiscall_CXLib301::SString_t_unsigned_short_int__1_::operator_class_CXLib301::SChar_t_unsigned_short_int__1__]
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x14]
call dword [0x281193ec]
push str.CRDBJDBCServer.jar
lea ecx, [esp + 0x14]
call ebx
sub esp, 8
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x3b
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SChar_t_unsigned_short_int__1_::constructor_unsigned_short_int_]
lea ecx, [esp + 0x18]
call dword [sym.imp.cxlibw_3_1.dll_public:_class_CXLib301::SString_t_unsigned_short_int__1_____thiscall_CXLib301::SString_t_unsigned_short_int__1_::operator_class_CXLib301::SChar_t_unsigned_short_int__1__]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x14]
call dword [0x281193ec]
push str.CRDBXMLServer.jar
lea ecx, [esp + 0x14]
call ebx
sub esp, 8
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x3b
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SChar_t_unsigned_short_int__1_::constructor_unsigned_short_int_]
lea ecx, [esp + 0x18]
call dword [sym.imp.cxlibw_3_1.dll_public:_class_CXLib301::SString_t_unsigned_short_int__1_____thiscall_CXLib301::SString_t_unsigned_short_int__1_::operator_class_CXLib301::SChar_t_unsigned_short_int__1__]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x14]
call dword [0x281193ec]
push str.CRDBJavabeansServer.jar
lea ecx, [esp + 0x14]
call ebx
sub esp, 8
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x3b
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SChar_t_unsigned_short_int__1_::constructor_unsigned_short_int_]
lea ecx, [esp + 0x18]
call dword [sym.imp.cxlibw_3_1.dll_public:_class_CXLib301::SString_t_unsigned_short_int__1_____thiscall_CXLib301::SString_t_unsigned_short_int__1_::operator_class_CXLib301::SChar_t_unsigned_short_int__1__]
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x14]
call dword [0x281193ec]
push str.external
lea ecx, [esp + 0x14]
call ebx
lea eax, [esp + 0x10]
push 0x5c
push eax
call dword [sym.imp.cxlibw_3_1.dll_void___cdecl_CXLib301::AppendSlashToDir_class_CXLib301::SWCharString___unsigned_short_int_]
add esp, 8
push str.CRDBXMLExternal.jar
lea ecx, [esp + 0x14]
call ebx
lea ecx, [esp + 0x24]
push ecx
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov dword [esp + 0x30], 0
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharString::constructor_class_CXLib301::SWCharString_const__]
call fcn.280a5a90
mov ebx, dword [esp + 0x2c]
lea eax, [esp + 0x1fa8]
push ebx
push eax
call edi
add esp, 0x10
test ebx, ebx
je 0x280a83c6
push ebx
call sub.MSVCR71.dll_void___cdecl_operator_delete___void__
add esp, 4
push 0xfa0
push 0x3b
lea ecx, [esp + 0x1fa8]
push ecx
mov ecx, esi
call fcn.280a6990
lea edx, [esp + 0x1fa0]
push edx
call ebp
lea eax, [eax + eax + 2]
push eax
call fcn.2810ae4f
lea ecx, [esp + 0x1fa8]
push ecx
push eax
mov dword [esi + 4], eax
call edi
push 0x2811e470
call ebp
lea edx, [eax + eax + 2]
push edx
call fcn.2810ae4f
push 0x2811e470
push eax
mov dword [esi + 8], eax
call edi
push 0x2811e43c
call ebp
lea eax, [eax + eax + 2]
push eax
call fcn.2810ae4f
push 0x2811e43c
push eax
mov dword [esi + 0x10], eax
call edi
push 0x2811e47c
call ebp
lea ecx, [eax + eax + 2]
push ecx
call fcn.2810ae4f
push 0x2811e47c
push eax
mov dword [esi + 0x14], eax
call edi
add esp, 0x40
push str.64000000
call ebp
lea edx, [eax + eax + 2]
push edx
call fcn.2810ae4f
push str.64000000
push eax
mov dword [esi + 0x18], eax
call edi
push str.32000000
call ebp
lea eax, [eax + eax + 2]
push eax
call fcn.2810ae4f
push str.32000000
push eax
mov dword [esi + 0x1c], eax
call edi
add esp, 0x20
lea ecx, [esp + 0x10]
mov byte [esp + 0x3eec], 1
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharString::destructor_void_]
lea ecx, [esp + 0x28]
mov byte [esp + 0x3eec], 0
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharString::destructor_void_]
lea ecx, [esp + 0x14]
mov dword [esp + 0x3eec], 0xffffffff
call dword [sym.imp.cxlibw_3_1.dll_public:_void___thiscall_CXLib301::SWCharString::destructor_void_]
mov ecx, dword [esp + 0x3ee4]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x3ee0]
call fcn.2810b0cb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3ee0
ret