Function at 0x40ec30
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x8410
call fcn.00519540
mov eax, dword [0x594ca8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
push 0x3ff
lea ecx, [ebp - 0x803]
push 0
push ecx
mov dword [ebp - 0x840c], eax
mov byte [ebp - 0x804], 0
call fcn.00518f10
push 0x3ff
lea edx, [ebp - 0xc03]
push 0
push edx
mov byte [ebp - 0xc04], 0
call fcn.00518f10
push 0x27ff
lea eax, [ebp - 0x3403]
push 0
push eax
mov byte [ebp - 0x3404], 0
call fcn.00518f10
push 0x27ff
lea ecx, [ebp - 0x5c03]
push 0
push ecx
mov byte [ebp - 0x5c04], 0
call fcn.00518f10
push 0x27ff
lea edx, [ebp - 0x8403]
push 0
push edx
mov byte [ebp - 0x8404], 0
call fcn.00518f10
push 0x3ff
lea eax, [ebp - 0x403]
push 0
push eax
mov byte [ebp - 0x404], 0
call fcn.00518f10
add esp, 0x48
push 1
push 0x1c
lea ecx, [ebp - 0x804]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
mov esi, dword [0x59cce4]
test esi, esi
jne 0x40ed17
mov dword [ebp - 0x8408], esi
jmp 0x40ed5c
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x40ed54
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0051b8f0
mov edi, esp
test edi, edi
je 0x40ed54
push 0
push 0
push ebx
push edi
push 0xffffffffffffffff
push esi
push 0
push 3
mov byte [edi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, edi
jmp 0x40ed56
xor eax, eax
mov dword [ebp - 0x8408], eax
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0x570678
call ebx
inc eax
cmp eax, 0x3fffffff
jg 0x40eda5
lea esi, [eax + eax]
mov eax, esi
call fcn.0051b8f0
mov edi, esp
test edi, edi
je 0x40eda5
push 0
push 0
push esi
push edi
push 0xffffffffffffffff
push 0x570678
push 0
push 3
mov byte [edi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, eax
neg esi
sbb esi, esi
and esi, edi
jmp 0x40eda7
xor esi, esi
push str.1905Cache1
call ebx
inc eax
cmp eax, 0x3fffffff
jg 0x40ede8
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0051b8f0
mov edi, esp
test edi, edi
je 0x40ede8
push 0
push 0
push ebx
push edi
push 0xffffffffffffffff
push str.1905Cache1
push 0
push 3
mov byte [edi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, edi
jmp 0x40edea
xor eax, eax
mov edx, dword [ebp - 0x8408]
push edx
push esi
push eax
lea eax, [ebp - 0x804]
push eax
push str._s_s_sTongji_s.xml
lea ecx, [ebp - 0x8404]
push 0x2800
push ecx
call fcn.00515fea
mov edx, dword [str.link.1905.com]
mov edi, dword [0x59cd08]
mov eax, dword [0x571310]
mov ecx, dword [0x571314]
mov dword [ebp - 0x404], edx
mov dx, word [0x571318]
add esp, 0x1c
mov dword [ebp - 0xc04], 0x544547
mov dword [ebp - 0x400], eax
mov dword [ebp - 0x3fc], ecx
mov word [ebp - 0x3f8], dx
test edi, edi
jne 0x40ee60
mov dword [ebp - 0x8408], edi
jmp 0x40eea5
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x40ee9d
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0051b8f0
mov esi, esp
test esi, esi
je 0x40ee9d
push 0
push 0
push ebx
push esi
push 0xffffffffffffffff
push edi
push 0
push 3
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
jmp 0x40ee9f
xor eax, eax
mov dword [ebp - 0x8408], eax
mov ebx, dword [0x59ccf8]
test ebx, ebx
jne 0x40eeb7
mov dword [ebp - 0x8410], ebx
jmp 0x40eefc
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x40eef4
lea edi, [eax + eax]
mov eax, edi
call fcn.0051b8f0
mov esi, esp
test esi, esi
je 0x40eef4
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push ebx
push 0
push 3
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
jmp 0x40eef6
xor eax, eax
mov dword [ebp - 0x8410], eax
mov eax, dword [ebp - 0x840c]
mov edi, dword [eax]
test edi, edi
jne 0x40ef10
mov dword [ebp - 0x840c], edi
jmp 0x40ef55
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x40ef4d
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0051b8f0
mov esi, esp
test esi, esi
je 0x40ef4d
push 0
push 0
push ebx
push esi
push 0xffffffffffffffff
push edi
push 0
push 3
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
jmp 0x40ef4f
xor eax, eax
mov dword [ebp - 0x840c], eax
mov ebx, dword [0x59ccec]
test ebx, ebx
je 0x40ef9c
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x40ef9c
lea edi, [eax + eax]
mov eax, edi
call fcn.0051b8f0
mov esi, esp
test esi, esi
je 0x40ef9c
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push ebx
push 0
push 3
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
jmp 0x40ef9e
xor eax, eax
mov ecx, dword [ebp - 0x8408]
mov edx, dword [0x59ccf4]
push ecx
mov ecx, dword [0x59cd00]
push edx
mov edx, dword [ebp - 0x8410]
push ecx
mov ecx, dword [ebp - 0x840c]
push edx
push ecx
push eax
lea edx, [ebp - 0x5c04]
push str._pc.gif_aupdatemsoftdid_sappid1700verid_spid_sstep_doverid_durl_s
push edx
call fcn.00515f66
lea eax, [ebp - 0x8404]
push eax
lea ecx, [ebp - 0x5c04]
push ecx
lea edx, [ebp - 0x404]
push edx
lea ecx, [ebp - 0x3404]
lea edx, [ebp - 0xc04]
call fcn.00402070
add esp, 0x2c
lea esp, [ebp - 0x841c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005155a4
mov esp, ebp
pop ebp
ret