Function at 0x1003c15b
Capabilities:
Get common file path

Disassembly:
push 0x84c
mov eax, 0x100775eb
call fcn.1005a354
xor edi, edi
push 0x7fe
lea eax, [ebp - 0x812]
mov esi, ecx
push edi
push eax
mov dword [ebp - 0x834], esi
mov word [ebp - 0x814], di
call fcn.10053710
add esp, 0xc
mov dword [ebp - 0x818], 7
mov dword [ebp - 0x81c], edi
mov word [ebp - 0x82c], di
add esi, 0x1c
push esi
push str.DownloadProxy.Downloader.1
mov dword [ebp - 4], edi
call dword [sym.imp.ole32.dll_CLSIDFromProgID]
sub esp, 0x10
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea ebx, [ebp - 0x814]
movsd dword es:[edi], dword [esi]
call fcn.1003e693
add esp, 0x10
test eax, eax
jne 0x1003c1ed
xor edi, edi
push 0
push 1
lea esi, [ebp - 0x830]
call fcn.10001efb
mov eax, edi
call fcn.1005a3d7
ret
lea eax, [ebp - 0x814]
push eax
call fcn.1005317b
pop ecx
lea ecx, [ebp - 0x814]
lea esi, [ebp - 0x830]
call fcn.100022ac
mov ebx, 0x100846e4
push ebx
call fcn.1005317b
mov edx, dword [ebp - 0x81c]
test edx, edx
pop ecx
mov dword [ebp - 0x854], eax
jbe 0x1003c27f
cmp dword [ebp - 0x818], 8
mov ecx, dword [ebp - 0x82c]
jae 0x1003c23c
lea ecx, [ebp - 0x82c]
cmp dword [ebp - 0x818], 8
lea eax, [ecx + edx*2]
mov ecx, dword [ebp - 0x82c]
jae 0x1003c27b
lea ecx, [ebp - 0x82c]
jmp 0x1003c27b
mov edi, dword [ebp - 0x854]
test edi, edi
mov edx, ebx
jbe 0x1003c26f
movzx esi, word [ecx]
cmp word [edx], si
je 0x1003c271
inc edx
inc edx
dec edi
jne 0x1003c265
xor edx, edx
test edx, edx
je 0x1003c2ff
inc ecx
inc ecx
cmp ecx, eax
jb 0x1003c256
or ecx, 0xffffffff
push ecx
xor edi, edi
lea esi, [ebp - 0x830]
call fcn.100018fa
push ebx
call fcn.1005317b
pop ecx
mov ecx, dword [ebp - 0x81c]
test ecx, ecx
jbe 0x1003c33a
or edx, 0xffffffff
cmp ecx, edx
ja 0x1003c2af
lea edx, [ecx - 1]
cmp dword [ebp - 0x818], 8
mov ecx, dword [ebp - 0x82c]
jae 0x1003c2c4
lea ecx, [ebp - 0x82c]
lea ecx, [ecx + edx*2]
test eax, eax
mov edi, eax
mov edx, ebx
jbe 0x1003c2dc
movzx esi, word [ecx]
cmp word [edx], si
je 0x1003c2de
inc edx
inc edx
dec edi
jne 0x1003c2d2
xor edx, edx
test edx, edx
je 0x1003c31d
cmp dword [ebp - 0x818], 8
mov edx, dword [ebp - 0x82c]
jae 0x1003c2f7
lea edx, [ebp - 0x82c]
cmp ecx, edx
je 0x1003c33a
dec ecx
dec ecx
jmp 0x1003c2c7
cmp dword [ebp - 0x818], 8
mov eax, dword [ebp - 0x82c]
jae 0x1003c314
lea eax, [ebp - 0x82c]
sub ecx, eax
sar ecx, 1
jmp 0x1003c282
cmp dword [ebp - 0x818], 8
mov eax, dword [ebp - 0x82c]
jae 0x1003c332
lea eax, [ebp - 0x82c]
sub ecx, eax
sar ecx, 1
mov eax, ecx
jmp 0x1003c33d
or eax, 0xffffffff
push 0xffffffffffffffff
lea edi, [eax + 1]
lea esi, [ebp - 0x830]
call fcn.100018fa
lea eax, [ebp - 0x858]
mov ecx, esi
call fcn.10001968
mov esi, eax
lea eax, [ebp - 0x848]
lea ecx, [ebp - 0x830]
call fcn.10001988
mov edi, eax
lea eax, [ebp - 0x840]
lea ecx, [ebp - 0x830]
call fcn.10001968
push dword [esi + 4]
push dword [esi]
push dword [edi + 4]
push dword [edi]
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x850]
call fcn.10025178
mov edi, dword [ebp - 0x834]
add esp, 0x18
push 0xffffffffffffffff
lea eax, [edi + 0x1238]
push eax
xor ebx, ebx
lea eax, [ebp - 0x830]
call fcn.10001d45
xor esi, esi
cmp dword [edi + 0x1230], esi
jne 0x1003c46e
push 0x400
lea eax, [ebp - 0x814]
push esi
push eax
call fcn.10053710
add esp, 0xc
push esi
push 0x2b
lea eax, [ebp - 0x814]
push eax
push esi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x1003c46e
lea eax, [ebp - 0x814]
push eax
call fcn.1005317b
pop ecx
lea esi, [edi + 0x121c]
lea ecx, [ebp - 0x814]
call fcn.100022ac
push str.TencentQQDownload
push esi
call fcn.10006aa8
lea eax, [ebp - 0x850]
mov ecx, esi
call fcn.10001968
mov ebx, eax
lea eax, [ebp - 0x840]
mov ecx, esi
call fcn.10001988
mov dword [ebp - 0x834], eax
lea eax, [ebp - 0x848]
mov ecx, esi
call fcn.10001968
push dword [ebx + 4]
mov ecx, dword [ebp - 0x834]
push dword [ebx]
push dword [ecx + 4]
push dword [ecx]
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x838]
call fcn.10025178
add esp, 0x18
xor esi, esi
cmp dword [edi + 0x1214], esi
jne 0x1003c4e2
cmp dword [edi + 0x44], esi
je 0x1003c48e
push 0xffffffffffffffff
lea ecx, [edi + 0x1200]
lea eax, [edi + 0x30]
push ecx
xor ebx, ebx
call fcn.10001d45
lea ebx, [edi + 0x1200]
lea eax, [ebp - 0x850]
mov ecx, ebx
call fcn.10001968
mov esi, eax
lea eax, [ebp - 0x840]
mov ecx, ebx
call fcn.10001988
mov ebx, eax
lea eax, [ebp - 0x848]
lea ecx, [edi + 0x1200]
call fcn.10001968
push dword [esi + 4]
push dword [esi]
push dword [ebx + 4]
push dword [ebx]
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x838]
call fcn.10025178
add esp, 0x18
xor esi, esi
cmp dword [edi + 0x1230], esi
je 0x1003c51b
lea eax, [edi + 0x121c]
cmp dword [eax + 0x18], 8
mov ecx, dword [eax + 0x14]
jb 0x1003c4fe
mov eax, dword [eax + 4]
jmp 0x1003c501
add eax, 4
push ecx
push eax
lea eax, [ebp - 0x830]
call fcn.10001dcb
cmp eax, 0xffffffff
je 0x1003c51b
xor edi, edi
inc edi
jmp 0x1003c1d6
lea ecx, [edi + 0x1200]
lea eax, [ebp - 0x830]
call fcn.10039ed6
test al, al
jne 0x1003c513
jmp 0x1003c1d4