Function at 0x40bfb0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x17830
call fcn.005194d0
mov eax, dword [0x594ca8]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
cmp dword [edi + 0x20], 0
mov dword [ebp - 0x17810], edi
jne 0x40c477
cmp dword [edi + 0x30], 0
jne 0x40c477
push 0x3ff
lea eax, [ebp - 0x403]
push 0
push eax
mov byte [ebp - 0x404], 0
call fcn.00518ea0
add esp, 0xc
push 1
push 0x1c
lea ecx, [ebp - 0x404]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea esi, [ebp - 0x1780c]
call fcn.00401f10
mov esi, dword [edi + 0x28]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x1780c], 0x544547
test esi, esi
jne 0x40c044
mov dword [ebp - 0x1781c], 0
jmp 0x40c077
push esi
call ebx
inc eax
cmp eax, 0x3fffffff
jle 0x40c05b
mov dword [ebp - 0x1781c], 0
jmp 0x40c077
lea edi, [eax + eax]
mov eax, edi
call fcn.0051b880
mov eax, esp
push 3
push edi
push esi
push eax
call fcn.00403b60
mov dword [ebp - 0x1781c], eax
mov edx, dword [ebp - 0x17810]
mov edi, dword [edx + 0x24]
xor esi, esi
cmp edi, esi
jne 0x40c08e
mov dword [ebp - 0x17824], esi
jmp 0x40c0bf
push edi
call ebx
inc eax
cmp eax, 0x3fffffff
jle 0x40c0a1
mov dword [ebp - 0x17824], esi
jmp 0x40c0bf
lea esi, [eax + eax]
mov eax, esi
call fcn.0051b880
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.00403b60
mov dword [ebp - 0x17824], eax
xor esi, esi
mov eax, dword [ebp - 0x17810]
mov edi, dword [eax + 0x1c]
cmp edi, esi
jne 0x40c0d4
mov dword [ebp - 0x1782c], esi
jmp 0x40c105
push edi
call ebx
inc eax
cmp eax, 0x3fffffff
jle 0x40c0e7
mov dword [ebp - 0x1782c], esi
jmp 0x40c105
lea esi, [eax + eax]
mov eax, esi
call fcn.0051b880
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.00403b60
mov dword [ebp - 0x1782c], eax
xor esi, esi
mov ecx, dword [ebp - 0x17810]
mov edi, dword [ecx + 0x18]
cmp edi, esi
jne 0x40c11a
mov dword [ebp - 0x17828], esi
jmp 0x40c14b
push edi
call ebx
inc eax
cmp eax, 0x3fffffff
jle 0x40c12d
mov dword [ebp - 0x17828], esi
jmp 0x40c14b
lea esi, [eax + eax]
mov eax, esi
call fcn.0051b880
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.00403b60
mov dword [ebp - 0x17828], eax
xor esi, esi
mov edx, dword [ebp - 0x17810]
mov edi, dword [edx + 0x10]
cmp edi, esi
jne 0x40c160
mov dword [ebp - 0x17820], esi
jmp 0x40c191
push edi
call ebx
inc eax
cmp eax, 0x3fffffff
jle 0x40c173
mov dword [ebp - 0x17820], esi
jmp 0x40c191
lea esi, [eax + eax]
mov eax, esi
call fcn.0051b880
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.00403b60
mov dword [ebp - 0x17820], eax
xor esi, esi
mov eax, dword [ebp - 0x17810]
mov edi, dword [eax + 0xc]
cmp edi, esi
jne 0x40c1a6
mov dword [ebp - 0x17818], esi
jmp 0x40c1d7
push edi
call ebx
inc eax
cmp eax, 0x3fffffff
jle 0x40c1b9
mov dword [ebp - 0x17818], esi
jmp 0x40c1d7
lea esi, [eax + eax]
mov eax, esi
call fcn.0051b880
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.00403b60
mov dword [ebp - 0x17818], eax
xor esi, esi
mov ecx, dword [ebp - 0x17810]
mov edi, dword [ecx + 8]
cmp edi, esi
jne 0x40c1ec
mov dword [ebp - 0x17814], esi
jmp 0x40c21d
push edi
call ebx
inc eax
cmp eax, 0x3fffffff
jle 0x40c1ff
mov dword [ebp - 0x17814], esi
jmp 0x40c21d
lea esi, [eax + eax]
mov eax, esi
call fcn.0051b880
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.00403b60
mov dword [ebp - 0x17814], eax
xor esi, esi
mov edx, dword [ebp - 0x17810]
mov edi, dword [edx + 4]
cmp edi, esi
jne 0x40c22e
xor ebx, ebx
jmp 0x40c255
push edi
call ebx
inc eax
cmp eax, 0x3fffffff
jle 0x40c23d
xor ebx, ebx
jmp 0x40c255
lea esi, [eax + eax]
mov eax, esi
call fcn.0051b880
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.00403b60
mov ebx, eax
mov eax, dword [ebp - 0x17810]
mov edi, dword [eax]
test edi, edi
jne 0x40c265
xor eax, eax
jmp 0x40c28e
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x40c278
xor eax, eax
jmp 0x40c28e
lea esi, [eax + eax]
mov eax, esi
call fcn.0051b880
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.00403b60
mov ecx, dword [ebp - 0x1781c]
mov edx, dword [ebp - 0x17824]
mov esi, dword [ebp - 0x17810]
push ecx
mov ecx, dword [esi + 0x20]
push edx
mov edx, dword [ebp - 0x1782c]
push ecx
mov ecx, dword [ebp - 0x17828]
push edx
mov edx, dword [esi + 0x14]
push ecx
mov ecx, dword [ebp - 0x17820]
push edx
mov edx, dword [ebp - 0x17818]
push ecx
mov ecx, dword [ebp - 0x17814]
push edx
push ecx
push ebx
push eax
lea edx, [ebp - 0x1740c]
push str.http:__trace.m1905.cn_pcclient__m_sa_sos_sdid_sappid_sverid_dpid_scid_sstep_dposid_surl_s
push edx
call fcn.00515ef6
mov esi, dword [esi + 4]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
add esp, 0x34
test esi, esi
jne 0x40c2f8
mov dword [ebp - 0x17814], esi
jmp 0x40c331
push esi
call edi
inc eax
cmp eax, 0x3fffffff
jle 0x40c30f
mov dword [ebp - 0x17814], 0
jmp 0x40c331
lea edi, [eax + eax]
mov eax, edi
call fcn.0051b880
mov eax, esp
push 3
push edi
push esi
push eax
call fcn.00403b60
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x17814], eax
push 0x570678
call edi
inc eax
cmp eax, 0x3fffffff
jle 0x40c344
xor ebx, ebx
jmp 0x40c360
lea esi, [eax + eax]
mov eax, esi
call fcn.0051b880
mov eax, esp
push 3
push esi
push 0x570678
push eax
call fcn.00403b60
mov ebx, eax
push str.1905Cache1
call edi
inc eax
cmp eax, 0x3fffffff
jle 0x40c373
xor eax, eax
jmp 0x40c38d
lea esi, [eax + eax]
mov eax, esi
call fcn.0051b880
mov eax, esp
push 3
push esi
push str.1905Cache1
push eax
call fcn.00403b60
mov ecx, dword [ebp - 0x17814]
push ecx
push ebx
push eax
lea edx, [ebp - 0x404]
push edx
push str._s_s_sTongji_s.xml
lea eax, [ebp - 0x1240c]
push 0x2800
push eax
call fcn.00515f7a
mov eax, dword [ebp - 0x17810]
mov esi, dword [eax]
mov ecx, dword [eax + 0x2c]
add esp, 0x1c
mov dword [ebp - 0xd40c], ecx
mov dword [ebp - 0xd408], 0x402
test esi, esi
jne 0x40c3d9
xor ebx, ebx
jmp 0x40c400
push esi
call edi
inc eax
cmp eax, 0x3fffffff
jle 0x40c3e8
xor ebx, ebx
jmp 0x40c400
lea edi, [eax + eax]
mov eax, edi
call fcn.0051b880
mov eax, esp
push 3
push edi
push esi
push eax
call fcn.00403b60
mov ebx, eax
mov edx, dword [ebp - 0x17810]
mov edi, dword [edx]
test edi, edi
je 0x40c41b
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x40c41f
xor eax, eax
jmp 0x40c435
lea esi, [eax + eax]
mov eax, esi
call fcn.0051b880
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.00403b60
lea ecx, [ebp - 0x1240c]
push ecx
push ebx
push eax
push 0x16
lea edx, [ebp - 0xd404]
push str.type_dm_s_a_s_saveFile_s
push edx
call fcn.00515ef6
add esp, 0x18
mov eax, 0xcc08
lea esi, [ebp - 0x1780c]
call fcn.005194d0
mov edi, esp
mov ecx, 0x3302
rep movsd dword es:[edi], dword [esi]
call fcn.00401750
jmp 0x40ca8b
push 0x3ff
lea eax, [ebp - 0x403]
push 0
push eax
mov byte [ebp - 0x404], 0
call fcn.00518ea0
push 0x3ff
lea ecx, [ebp - 0xc03]
push 0
push ecx
mov byte [ebp - 0xc04], 0
call fcn.00518ea0
push 0x27ff
lea edx, [ebp - 0x3403]
push 0
push edx
mov byte [ebp - 0x3404], 0
call fcn.00518ea0
push 0x27ff
lea eax, [ebp - 0xac03]
push 0
push eax
mov byte [ebp - 0xac04], 0
call fcn.00518ea0
push 0x27ff
lea ecx, [ebp - 0x5c03]
push 0
push ecx
mov byte [ebp - 0x5c04], 0
call fcn.00518ea0
push 0x27ff
lea edx, [ebp - 0x8403]
push 0
push edx
mov byte [ebp - 0x8404], 0
call fcn.00518ea0
add esp, 0x48
push 0x3ff
lea eax, [ebp - 0x803]
push 0
push eax
mov byte [ebp - 0x804], 0
call fcn.00518ea0
add esp, 0xc
push 1
push 0x1c
lea ecx, [ebp - 0x404]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
mov esi, dword [edi + 4]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
test esi, esi
jne 0x40c55f
mov dword [ebp - 0x17814], 0
jmp 0x40c5a6
push esi
call ebx
inc eax
cmp eax, 0x3fffffff
jg 0x40c598
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0051b880
mov edi, esp
test edi, edi
je 0x40c598
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 0x40c59a
xor eax, eax
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x17814], eax
push 0x570678
call ebx
inc eax
cmp eax, 0x3fffffff
jg 0x40c5e9
lea esi, [eax + eax]
mov eax, esi
call fcn.0051b880
mov edi, esp
test edi, edi
je 0x40c5e9
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 0x40c5eb
xor esi, esi
push str.1905Cache1
call ebx
inc eax
cmp eax, 0x3fffffff
jg 0x40c62c
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0051b880
mov edi, esp
test edi, edi
je 0x40c62c
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 0x40c62e
xor eax, eax
mov edx, dword [ebp - 0x17814]
push edx
push esi
push eax
lea eax, [ebp - 0x404]
push eax
push str._s_s_sTongji_s.xml
lea ecx, [ebp - 0x8404]
push 0x2800
push ecx
call fcn.00515f7a
mov ecx, dword [ebp - 0x17810]
mov edi, dword [ecx + 0x28]
add esp, 0x1c
mov dword [ebp - 0xc04], 0x544547
test edi, edi
jne 0x40c676
mov dword [ebp - 0x17814], edi
jmp 0x40c6c1
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x40c6b3
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0051b880
mov esi, esp
test esi, esi
je 0x40c6b3
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 0x40c6b5
xor eax, eax
mov ecx, dword [ebp - 0x17810]
mov dword [ebp - 0x17814], eax
mov edi, dword [ecx + 0x24]
test edi, edi
jne 0x40c6d0
mov dword [ebp - 0x17818], edi
jmp 0x40c71b
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x40c70d
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0051b880
mov esi, esp
test esi, esi
je 0x40c70d
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 0x40c70f
xor eax, eax
mov ecx, dword [ebp - 0x17810]
mov dword [ebp - 0x17818], eax
mov edi, dword [ecx + 0x1c]
test edi, edi
jne 0x40c72a
mov dword [ebp - 0x17820], edi
jmp 0x40c775
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x40c767
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0051b880
mov esi, esp
test esi, esi
je 0x40c767
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 0x40c769
xor eax, eax
mov ecx, dword [ebp - 0x17810]
mov dword [ebp - 0x17820], eax
mov edi, dword [ecx + 0x18]
test edi, edi
jne 0x40c784
mov dword [ebp - 0x17828], edi
jmp 0x40c7cf
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x40c7c1
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0051b880
mov esi, esp
test esi, esi
je 0x40c7c1
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 0x40c7c3
xor eax, eax
mov ecx, dword [ebp - 0x17810]
mov dword [ebp - 0x17828], eax
mov edi, dword [ecx + 0x10]
test edi, edi
jne 0x40c7de
mov dword [ebp - 0x1782c], edi
jmp 0x40c829
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x40c81b
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0051b880
mov esi, esp
test esi, esi
je 0x40c81b
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 0x40c81d
xor eax, eax
mov ecx, dword [ebp - 0x17810]
mov dword [ebp - 0x1782c], eax
mov edi, dword [ecx + 0xc]
test edi, edi
jne 0x40c838
mov dword [ebp - 0x17824], edi
jmp 0x40c883
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x40c875
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0051b880
mov esi, esp
test esi, esi
je 0x40c875
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 0x40c877
xor eax, eax
mov ecx, dword [ebp - 0x17810]
mov dword [ebp - 0x17824], eax
mov edi, dword [ecx + 8]
test edi, edi
jne 0x40c892
mov dword [ebp - 0x1781c], edi
jmp 0x40c8dd
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x40c8cf
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0051b880
mov esi, esp
test esi, esi
je 0x40c8cf
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 0x40c8d1
xor eax, eax
mov ecx, dword [ebp - 0x17810]
mov dword [ebp - 0x1781c], eax
mov edi, dword [ecx + 4]
test edi, edi
jne 0x40c8ec
mov dword [ebp - 0x17830], edi
jmp 0x40c937
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x40c929
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0051b880
mov esi, esp
test esi, esi
je 0x40c929
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 0x40c92b
xor eax, eax
mov ecx, dword [ebp - 0x17810]
mov dword [ebp - 0x17830], eax
mov edi, dword [ecx]
test edi, edi
jne 0x40c941
xor eax, eax
jmp 0x40c986
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x40c97e
lea ebx, [eax + eax]
mov eax, ebx
call fcn.0051b880
mov esi, esp
test esi, esi
je 0x40c97e
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 0x40c980
xor eax, eax
mov ecx, dword [ebp - 0x17810]
mov edx, dword [ebp - 0x17814]
push edx
mov edx, dword [ebp - 0x17818]
push edx
mov edx, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x14]
push edx
mov edx, dword [ebp - 0x17820]
push edx
mov edx, dword [ebp - 0x17828]
push edx
mov edx, dword [ebp - 0x1782c]
push ecx
mov ecx, dword [ebp - 0x17824]
push edx
mov edx, dword [ebp - 0x1781c]
push ecx
mov ecx, dword [ebp - 0x17830]
push edx
push ecx
push eax
lea edx, [ebp - 0xac04]
push str.http:__trace.m1905.cn_pcclient__m_sa_sos_sdid_sappid_sverid_dpid_scid_sstep_dposid_surl_s
push edx
call fcn.00515ef6
lea eax, [ebp - 0xac04]
push str.http:__
push eax
call fcn.00515fa0
add esp, 0x3c
test eax, eax
je 0x40c9f5
add eax, 7
jmp 0x40c9fb
lea eax, [ebp - 0xac04]
mov dl, byte [eax]
xor ecx, ecx
test dl, dl
je 0x40ca11
cmp dl, 0x2f
je 0x40ca11
mov dl, byte [ecx + eax + 1]
inc ecx
test dl, dl
jne 0x40ca03
push ecx
push eax
lea ecx, [ebp - 0x804]
push ecx
call fcn.00516030
lea edx, [ebp - 0xac04]
push str.http:__
push edx
call fcn.00515fa0
add esp, 0x14
test eax, eax
je 0x40ca3c
add eax, 7
jmp 0x40ca42
lea eax, [ebp - 0xac04]
push 0x5704d4
push eax
call fcn.00515fa0
lea edx, [ebp - 0x5c04]
add esp, 8
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x40ca58
lea eax, [ebp - 0x8404]
push eax
lea ecx, [ebp - 0x5c04]
push ecx
lea edx, [ebp - 0x804]
push edx
lea ecx, [ebp - 0x3404]
lea edx, [ebp - 0xc04]
call fcn.00402070
add esp, 0xc
lea esp, [ebp - 0x1783c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0051553d
mov esp, ebp
pop ebp
ret