Function at 0x46bf3a
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3ac
push ebx
push esi
push edi
xor edi, edi
cmp dword [0x4ce944], edi
jne 0x46c2c9
xor esi, esi
push str.dbshortcut.dat
inc esi
push edi
lea eax, [ebp - 8]
mov dword [0x4ce950], edi
mov dword [0x4ce944], esi
call fcn.004691a3
pop ecx
lea ecx, [ebp - 0x14]
call fcn.00407392
mov eax, dword [ebp - 8]
pop ecx
add eax, 0xfffffff0
call fcn.00405cc6
push dword [ebp - 0x14]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x46c1ec
mov eax, dword [0x4cd420]
mov ecx, 0x4cd420
call dword [eax + 0xc]
add eax, 0x10
cmp dword [ebp - 0x14], edi
mov dword [ebp - 0xc], eax
je 0x46c1e1
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x14]
call fcn.0046c2d3
cmp eax, edi
je 0x46c1e1
mov eax, dword [ebp - 0xc]
cmp dword [eax - 0xc], 3
jle 0x46c1e1
lea eax, [ebp - 0xa0]
call fcn.00423ba3
push esi
mov esi, dword [ebp - 0xc]
push edi
push esi
lea ecx, [ebp - 0xa0]
call fcn.00424bc1
cmp byte [ebp - 0x5c], 0
je 0x46c009
lea ecx, [ebp - 0xa0]
call fcn.00404ab8
lea eax, [esi - 0x10]
jmp 0x46c1e7
lea eax, [ebp - 0xa0]
call fcn.00404a94
cmp eax, edi
je 0x46bff6
push str.dbshortcut
call fcn.004048f5
mov ebx, eax
test ebx, ebx
je 0x46bff6
or dword [ebp - 4], 0xffffffff
or dword [ebp - 0x10], 0xffffffff
push str.enable
lea esi, [ebp - 4]
call fcn.0042385b
push str.effectiveid
lea esi, [ebp - 0x10]
mov eax, ebx
call fcn.0042385b
push str.tryno
mov eax, ebx
call fcn.00423832
mov edi, dword [ebp - 4]
cmp edi, 0xffffffff
mov dword [ebp - 8], eax
je 0x46c1d6
mov esi, dword [ebp - 0x10]
cmp esi, 0xffffffff
je 0x46c1d6
test eax, eax
je 0x46c1d6
push eax
call fcn.0046f250
test eax, eax
pop ecx
je 0x46c1d6
mov dword [0x4ce948], edi
call fcn.0046c3c1
push dword [ebp - 8]
mov dword [0x4ce94c], eax
push 0x4ce958
call fcn.0040cdc4
push str.item
mov eax, ebx
mov dword [0x4ce954], esi
call fcn.004048f5
jmp 0x46c1cb
mov ebx, dword [ebp - 4]
or dword [ebp - 0x10], 0xffffffff
push 0x4b1be4
lea esi, [ebp - 0x10]
mov eax, ebx
call fcn.0042385b
push 0x4ba8a8
mov eax, ebx
call fcn.00423832
mov dword [ebp - 8], eax
push 0x4ba8ac
mov eax, ebx
call fcn.00423832
mov edi, eax
push str.name
mov eax, ebx
call fcn.00423832
cmp dword [ebp - 0x10], 0xffffffff
je 0x46c1be
cmp dword [ebp - 8], 0
je 0x46c1be
test edi, edi
je 0x46c1be
test eax, eax
je 0x46c1be
push eax
lea esi, [ebp - 0x3ac]
call fcn.0040495b
mov ebx, dword [eax]
push edi
lea esi, [ebp - 0x2a8]
call fcn.0040495b
push dword [ebp - 8]
mov edi, dword [eax]
lea esi, [ebp - 0x1a4]
call fcn.0040495b
push ebx
push edi
push dword [eax]
lea ebx, [ebp - 0x24]
push dword [ebp - 0x10]
call fcn.0046be00
lea eax, [ebp - 0x1a0]
cmp dword [ebp - 0x1a4], eax
je 0x46c174
push dword [ebp - 0x1a4]
call fcn.0046f308
pop ecx
lea eax, [ebp - 0x2a4]
cmp dword [ebp - 0x2a8], eax
je 0x46c18e
push dword [ebp - 0x2a8]
call fcn.0046f308
pop ecx
lea eax, [ebp - 0x3a8]
cmp dword [ebp - 0x3ac], eax
je 0x46c1a8
push dword [ebp - 0x3ac]
call fcn.0046f308
pop ecx
lea eax, [ebp - 0x24]
push eax
mov eax, 0x4ce95c
call fcn.0046c4f5
lea esi, [ebp - 0x24]
call fcn.00469f57
mov eax, dword [ebp - 4]
push str.item
call fcn.0040771d
test eax, eax
mov dword [ebp - 4], eax
jne 0x46c0be
lea ecx, [ebp - 0xa0]
call fcn.00404ab8
mov eax, dword [ebp - 0xc]
add eax, 0xfffffff0
call fcn.00405cc6
mov edi, 0x4ce95c
mov eax, edi
call fcn.0046c45a
test eax, eax
jbe 0x46c2be
cmp dword [0x4ce948], 0
je 0x46c2be
mov eax, dword [0x4cd420]
mov ecx, 0x4cd420
call dword [eax + 0xc]
push dword [0x4ce94c]
add eax, 0x10
mov dword [ebp - 4], eax
push str.s_de
lea eax, [ebp - 4]
call fcn.0040326e
pop ecx
pop ecx
push dword [ebp - 4]
mov esi, 0x4ce958
call fcn.00463fce
cmp eax, 0xffffffff
je 0x46c2b3
mov eax, edi
call fcn.0046c45a
mov ebx, eax
xor esi, esi
test ebx, ebx
jle 0x46c2b3
push esi
mov eax, edi
call fcn.0046c46d
mov eax, dword [eax]
cmp eax, dword [0x4ce954]
je 0x46c26f
inc esi
cmp esi, ebx
jl 0x46c256
jmp 0x46c2b3
push esi
mov eax, edi
call fcn.0046c46d
add eax, 4
mov eax, dword [eax]
xor ebx, ebx
cmp dword [eax - 0xc], ebx
je 0x46c2ac
push esi
mov eax, edi
call fcn.0046c46d
add eax, 0xc
mov eax, dword [eax]
cmp dword [eax - 0xc], ebx
je 0x46c2ac
push esi
mov eax, edi
call fcn.0046c46d
add eax, 8
mov eax, dword [eax]
cmp dword [eax - 0xc], ebx
je 0x46c2ac
xor eax, eax
inc eax
jmp 0x46c2ae
xor eax, eax
mov dword [0x4ce950], eax
mov eax, dword [ebp - 4]
add eax, 0xfffffff0
call fcn.00405cc6
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
call fcn.00405cc6
mov eax, dword [0x4ce944]
pop edi
pop esi
pop ebx
leave
ret