Function at 0x403710
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56e1cc
mov eax, dword fs:[0]
push eax
sub esp, 0x224
mov eax, dword [0x5d80cc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea ecx, [ebp - 0x22c]
call fcn.00402590
push 0x4032b0
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], 0
call fcn.00402a50
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.0054ddb0
add esp, 0xc
lea eax, [ebp - 0x218]
push 0
push 0x1a
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov byte [ebp - 4], 1
call fcn.0041cde4
mov ecx, eax
mov byte [ebp - 4], 0
test ecx, ecx
je 0x403983
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x21c], eax
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x21c]
call fcn.00403510
test al, al
jne 0x4037f3
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4037d1
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x21c]
call fcn.00402a60
mov eax, dword [ebp - 0x21c]
mov byte [ebp - 4], 3
mov edx, dword [eax - 0xc]
lea ecx, [edx - 1]
test ecx, ecx
js 0x403979
cmp ecx, edx
jg 0x403979
cmp word [eax + ecx*2], 0x5c
je 0x403832
cmp word [eax + edx*2 - 2], 0x2f
je 0x403832
push 0x57e680
lea ecx, [ebp - 0x21c]
call fcn.00403160
push str.MicrosoftWindowsCookies_
lea ecx, [ebp - 0x21c]
call fcn.00403160
push 1
push ecx
mov esi, esp
mov dword [ebp - 0x230], esp
mov dword [ebp - 0x220], esi
mov byte [ebp - 4], 4
call fcn.0041cde4
mov ecx, eax
mov byte [ebp - 4], 3
test ecx, ecx
je 0x40398d
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.kingsoft.txt
mov ecx, esi
mov byte [ebp - 4], 5
call fcn.00403510
test al, al
jne 0x403896
push 0xe
push str.kingsoft.txt
mov ecx, esi
call fcn.00402a60
push ecx
mov dword [ebp - 0x220], esp
mov esi, dword [ebp - 0x21c]
add esi, 0xfffffff0
mov byte [ebp - 4], 6
mov ecx, dword [esi]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, dword [esi + 0xc]
lea ebx, [esi + 0xc]
shr ecx, 0x1f
mov edx, eax
test cl, cl
jne 0x4038cb
cmp edx, dword [esi]
jne 0x4038cb
mov edi, esi
lock inc dword [ebx]
jmp 0x403924
mov eax, dword [edx]
mov ecx, edx
push 2
push dword [esi + 4]
call dword [eax]
mov edi, eax
test edi, edi
je 0x403997
mov eax, dword [esi + 4]
lea edx, [esi + 0x10]
mov dword [edi + 4], eax
lea ecx, [edi + 0x10]
mov eax, dword [esi + 4]
inc eax
add eax, eax
je 0x403924
test ecx, ecx
je 0x403914
push eax
test edx, edx
je 0x403909
push edx
push ecx
call fcn.0054d830
add esp, 0xc
jmp 0x403924
push 0
push ecx
call fcn.0054ddb0
add esp, 0xc
call fcn.00550afc
mov dword [eax], 0x16
call fcn.00550a3f
mov ecx, dword [ebp - 0x220]
lea eax, [edi + 0x10]
mov dword [ecx], eax
lea ecx, [ebp - 0x22c]
mov byte [ebp - 4], 3
call fcn.00402c00
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x403952
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x22c]
call fcn.00401c90
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0054b836
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.00402750
push 0x80004005
call fcn.00402750
push 0x80004005
call fcn.00402750
call fcn.00402bf0
int3