Function at 0x40d080
Capabilities:
Get common file path
Get program files directory

Disassembly:
push 0xffffffffffffffff
push 0x43a2f3
mov eax, dword fs:[0]
push eax
sub esp, 0x33c
mov eax, dword [0x44e040]
xor eax, esp
mov dword [esp + 0x338], eax
push ebp
push esi
mov eax, dword [0x44e040]
xor eax, esp
push eax
lea eax, [esp + 0x348]
mov dword fs:[0], eax
mov ebp, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0
push 0x1a
lea eax, [esp + 0x13c]
push eax
push 0
call ebp
lea eax, [esp + 0x134]
lea ecx, [esp + 0xc]
call fcn.0040d480
cmp dword [esp + 0x24], 8
jb 0x40d0f3
mov ecx, dword [esp + 0x10]
push ecx
call fcn.00421709
add esp, 4
lea eax, [esp + 0x134]
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40d100
sub eax, edx
sar eax, 1
push eax
lea esi, [edi + 0x28]
lea eax, [esp + 0x138]
call fcn.0040b1e0
push 0x1b
push str.DTLSoftMgrDtlSMGRDownLoad_
mov eax, esi
call fcn.00409170
push 0x104
lea edx, [esp + 0x138]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [esp + 0x134]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push 0x441874
lea ecx, [esp + 0x138]
push 0x105
push ecx
call fcn.004223c7
lea eax, [esp + 0x140]
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40d174
sub eax, edx
sar eax, 1
push eax
lea esi, [edi + 0xc]
lea eax, [esp + 0x138]
call fcn.0040b1e0
push edi
call fcn.0040d5a0
push edi
call fcn.0040d6f0
push 0x20a
lea edx, [esp + 0x138]
push 0
push edx
call fcn.00425110
add esp, 0xc
push 0
push 0x26
lea eax, [esp + 0x13c]
push eax
push 0
call ebp
test eax, eax
je 0x40d1fb
lea eax, [esp + 0x134]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40d1d4
sub eax, edx
sar eax, 1
push eax
lea esi, [edi + 0xb4]
lea eax, [esp + 0x138]
call fcn.0040b1e0
jmp 0x40d30d
lea ecx, [esp + 0xc]
push ecx
call fcn.004388b0
add esp, 4
mov esi, 8
mov dword [esp + 0x350], 0
cmp dword [eax + 0x18], esi
jb 0x40d222
mov eax, dword [eax + 4]
jmp 0x40d225
add eax, 4
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0xb4]
call dword [sym.imp.DTLUI.dll_public:_void___thiscall_DuiLib::CDuiString::constructor_wchar_t_const___int_]
mov byte [esp + 0x350], 2
cmp dword [esp + 0x24], esi
jb 0x40d250
mov edx, dword [esp + 0x10]
push edx
call fcn.00421709
add esp, 4
xor eax, eax
lea ecx, [esp + 0xac]
mov dword [esp + 0x24], 7
mov dword [esp + 0x20], 0
mov word [esp + 0x10], ax
call dword [sym.imp.DTLUI.dll_public:_int___thiscall_DuiLib::CDuiString::GetLength_void_const]
cmp eax, 1
mov ebp, dword [sym.imp.DTLUI.dll_public:_void___thiscall_DuiLib::CDuiString::destructor_void_]
jl 0x40d2f9
push 1
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0xb4]
call dword [sym.imp.DTLUI.dll_public:_class_DuiLib::CDuiString___thiscall_DuiLib::CDuiString::Left_int_]
mov ecx, eax
mov byte [esp + 0x350], 3
call dword [sym.imp.DTLUI.dll_public:_wchar_t_const____thiscall_DuiLib::CDuiString::operator_wchar_t_const__void_const]
mov ecx, eax
lea esi, [ecx + 2]
jmp 0x40d2b0
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x40d2b0
sub ecx, esi
sar ecx, 1
lea esi, [edi + 0xb4]
push ecx
call fcn.0040b1e0
lea ecx, [esp + 0x28]
mov byte [esp + 0x350], 2
call ebp
call fcn.00436940
test eax, eax
mov eax, esi
je 0x40d2ed
push 0x15
push 0x441878
jmp 0x40d2f4
push 0xf
push str.:Program_Files
call fcn.00409170
lea ecx, [esp + 0xac]
mov dword [esp + 0x350], 0xffffffff
call ebp
cmp dword [edi + 0xc8], 0
jne 0x40d328
push 0x10
lea esi, [edi + 0xb4]
mov eax, str.C:Program_Files
call fcn.0040b1e0
push 0xffffffffffffffff
lea esi, [edi + 0xb4]
push 0
lea ecx, [edi + 0xd0]
mov eax, esi
call fcn.0040a2f0
cmp dword [esi + 0x18], 8
jb 0x40d34a
mov esi, dword [esi + 4]
jmp 0x40d34d
add esi, 4
push esi
push str.the_install_folder___S_
push 0x33
push str..ConfigMgr.cpp
push 8
call fcn.004383d0
push eax
call fcn.00437ce0
add esp, 0x18
push edi
mov dword [edi + 4], 0x457
mov dword [edi + 8], 1
call fcn.0040dab0
push 0x39
lea esi, [edi + 0x44]
mov eax, str.http:__soft.160.com_GetSoftDB.ashx_uid1111vonekeyt_d
call fcn.0040b1e0
mov dword [edi + 0xec], 0
mov ecx, dword [esp + 0x348]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebp
mov ecx, dword [esp + 0x338]
xor ecx, esp
call fcn.004216dc
add esp, 0x348
ret