Function at 0x10065470
Capabilities:
Get common file path
Get file attributes
Get program files directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x584
mov eax, dword [0x102519c8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x42c]
push ebx
push esi
mov dword [ebp - 0x55c], eax
xor eax, eax
push 6
push str.CLSID_
mov dword [ebp - 0x41c], 0
mov dword [ebp - 0x418], 7
mov word [ebp - 0x42c], ax
call fcn.100070c0
push 0x26
push str.871C5380_42A0_1069_A2EA_08002B30309D
lea ecx, [ebp - 0x42c]
call fcn.10006d70
cmp dword [ebp - 0x418], 8
lea eax, [ebp - 0x42c]
jb 0x100654e4
mov eax, dword [ebp - 0x42c]
push ecx
mov ecx, esp
mov dword [ebp - 0x584], VariantCopy
push 0x10202940
mov dword [ebp - 0x580], eax
mov dword [ebp - 0x57c], 0x10202940
mov dword [ebp - 0x578], 0x10202940
mov dword [ebp - 0x574], 2
mov dword [ebp - 0x570], 0
mov dword [ebp - 0x56c], 0
mov dword [ebp - 0x568], 0
mov dword [ebp - 0x564], 0
call fcn.10002490
push 0
lea eax, [ebp - 0x584]
mov ecx, 0x1025ac18
push eax
push str.871C5380_42A0_1069_A2EA_08002B30309D
push str.CLSID
call fcn.101ad040
push 0
push 0x26
lea eax, [ebp - 0x414]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x10065742
mov esi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x414]
push str.Internet_Explorer
push eax
call esi
push str.iexplore.exe
lea eax, [ebp - 0x414]
push eax
call esi
push 0
push 0x10
lea eax, [ebp - 0x20c]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x10065742
push str.Internet_Explorer.lnk
lea eax, [ebp - 0x20c]
push eax
call esi
call fcn.10003180
mov esi, dword [eax + 0x154]
test esi, esi
je 0x100655e0
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0xe
call fcn.10003680
add esp, 4
test eax, eax
je 0x100655f9
lea ecx, [ebp - 0x20c]
push ecx
call eax
jmp 0x10065606
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, eax
test esi, esi
je 0x10065613
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp ebx, 0xffffffff
je 0x10065723
test bl, 0x10
jne 0x10065723
push dword [ebp - 0x55c]
lea ecx, [ebp - 0x558]
call fcn.101221f0
push 0x10202940
lea ecx, [ebp - 0x560]
call fcn.10002490
push eax
lea eax, [ebp - 0x55c]
push 0x9c51
push eax
call fcn.100053d0
add esp, 0xc
lea ecx, [ebp - 0x20c]
push ecx
push dword [eax]
lea ecx, [ebp - 0x45c]
call fcn.10020470
push eax
lea eax, [ebp - 0x444]
push eax
call fcn.1001b790
add esp, 0xc
lea ecx, [ebp - 0x45c]
call fcn.10005250
mov edx, dword [ebp - 0x55c]
or esi, 0xffffffff
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100656aa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x560]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x100656c5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x430], 8
lea eax, [ebp - 0x444]
jb 0x100656da
mov eax, dword [ebp - 0x444]
push 0x10202940
push 2
push 2
push 0
push 0
push eax
lea ecx, [ebp - 0x558]
call fcn.10126970
push 0
push 0
push 0
push 1
lea eax, [ebp - 0x20c]
push eax
lea ecx, [ebp - 0x558]
call fcn.10123f40
lea ecx, [ebp - 0x444]
call fcn.10005250
lea ecx, [ebp - 0x558]
call fcn.10122860
push 0
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x414]
push eax
call fcn.100d97c0
add esp, 0xc
test eax, eax
setne bl
jmp 0x10065744
xor bl, bl
mov edx, dword [ebp - 0x418]
cmp edx, 8
jb 0x10065780
mov ecx, dword [ebp - 0x42c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10065776
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10065792
push edx
push ecx
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 8
mov ecx, dword [ebp - 4]
mov al, bl
pop esi
xor ecx, ebp
pop ebx
call fcn.101f99c6
mov esp, ebp
pop ebp
ret
call fcn.101e6c40
int3