Function at 0x460080
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4947e8
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x4c9070]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x20], edx
mov esi, ecx
xor eax, eax
nop
cmp dword [eax + 0x4cb164], esi
je 0x4600d6
add eax, 0x14
cmp eax, 0xf0
jb 0x4600b0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edi, [eax + 0x4cb160]
test edi, edi
jne 0x4600f4
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [edi + 8]
lea ecx, [ebp - 0x10]
call fcn.00403eb0
mov dword [ebp - 4], 0
or ebx, 0xffffffff
mov eax, dword [ebp - 0x10]
cmp dword [eax - 0xc], 0
jne 0x460119
xor esi, esi
jmp 0x460324
lea ecx, [ebp - 0x10]
call fcn.0045fe30
push dword [edi + 0xc]
lea ecx, [ebp - 0x1c]
call fcn.00403eb0
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x1c]
cmp dword [edx - 0xc], 0
je 0x460144
lea ecx, [ebp - 0x1c]
call fcn.0045c4c0
mov edx, dword [ebp - 0x1c]
push dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
call fcn.0045bce0
add esp, 4
test eax, eax
jne 0x46015d
xor esi, esi
jmp 0x460306
cmp esi, 0xfffffffd
jne 0x460301
call fcn.00404a20
mov ecx, eax
test ecx, ecx
jne 0x46017b
push 0x80004005
call fcn.00404ad0
mov eax, dword [ecx]
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x18], edi
mov byte [ebp - 4], 2
call fcn.00404a20
mov ecx, eax
test ecx, ecx
jne 0x46019f
push 0x80004005
call fcn.00404ad0
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x14], esi
mov byte [ebp - 4], 3
mov ecx, 1
mov eax, dword [esi - 8]
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x4601d2
push 0x104
lea ecx, [ebp - 0x14]
call fcn.00404530
mov esi, dword [ebp - 0x14]
push 0
push 0x10
push esi
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x4602cb
push dword [esi - 8]
push esi
call fcn.00474f18
add esp, 8
test eax, eax
js 0x460357
cmp eax, dword [esi - 8]
jg 0x460357
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
mov ecx, dword [esi - 0xc]
lea eax, [ecx - 1]
test eax, eax
js 0x460357
cmp eax, ecx
jg 0x460357
cmp word [esi + eax*2], 0x5c
je 0x46023a
push 0x4a1b6c
lea ecx, [ebp - 0x14]
call fcn.00403140
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x46024c
push eax
lea ecx, [ebp - 0x18]
call fcn.00404750
jmp 0x4602ad
push 0x5c
push dword [ebp - 0x10]
call fcn.0046e615
add esp, 8
test eax, eax
je 0x4602a1
sub eax, dword [ebp - 0x10]
sar eax, 1
test eax, eax
jle 0x4602a1
inc eax
lea ecx, [ebp - 0x10]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00425650
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 4
call fcn.0040a720
mov byte [ebp - 4], 3
mov eax, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4602ad
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4602ad
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x18]
call fcn.0040a720
mov edi, dword [ebp - 0x18]
mov eax, dword [edi - 0xc]
test eax, eax
je 0x4602cb
push eax
push edi
lea ecx, [ebp - 0x14]
call fcn.00403730
mov esi, dword [ebp - 0x14]
mov ecx, esi
call fcn.0045c020
mov byte [ebp - 4], 2
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4602e6
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x460301
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, 1
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x460324
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x460343
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.00404ad0
int3