Function at 0x46e81f
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [0x4eb664]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push str.Magic_StartMenuShortcut_Begin_r_n
mov ebx, 0x4eee98
push ebx
mov esi, ecx
call fcn.004738c9
pop ecx
pop ecx
mov edi, 0x4eb630
push edi
lea ecx, [ebp - 0x48]
call fcn.004044ee
lea eax, [ebp - 0x48]
push eax
mov ecx, esi
call fcn.0046bff3
push edi
lea ecx, [ebp - 0x40]
call fcn.004044ee
lea eax, [ebp - 0x40]
push eax
mov ecx, esi
call fcn.0046bdec
push edi
lea ecx, [ebp - 0x3c]
call fcn.004044ee
lea eax, [ebp - 0x3c]
push eax
mov ecx, esi
call fcn.0046c311
push edi
lea ecx, [ebp - 0x38]
call fcn.004044ee
lea eax, [ebp - 0x38]
push eax
mov ecx, esi
call fcn.0046c2a3
lea eax, [ebp - 0x38]
push eax
call fcn.00468709
mov edi, 0x4bcad0
push edi
call fcn.0040481a
pop ecx
pop ecx
push eax
push edi
lea ecx, [ebp - 0x38]
call fcn.0041e1c3
mov ecx, esi
call fcn.0046ea99
push 0
push dword [ebp - 0x38]
call fcn.0046845c
pop ecx
pop ecx
test eax, eax
jne 0x46e93c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.KFunction::MyCreateDirectory_errcode_d_r_n
push ebx
call fcn.004738c9
push dword [ebp - 0x38]
call fcn.00465cea
add esp, 0x10
lea ecx, [ebp - 0x1c]
push dword [ebp - 0x38]
call fcn.0040513a
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x34]
call fcn.0047a0b4
push eax
call fcn.0047b0b6
mov bl, al
pop ecx
neg bl
lea ecx, [ebp - 0x34]
sbb bl, bl
call fcn.0047a0fe
push 0
push 1
lea ecx, [ebp - 0x1c]
call fcn.00405ac5
inc bl
je 0x46e93c
push str.file_util::DirectoryExists_r_n
push 0x4eee98
call fcn.004738c9
pop ecx
pop ecx
push 0x4eb630
lea ecx, [ebp - 0x44]
call fcn.004044ee
lea eax, [ebp - 0x44]
push eax
mov ecx, esi
call fcn.0046c04f
mov edi, dword [ebp - 0x44]
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov esi, dword [ebp - 0x3c]
test eax, eax
push 0x4c441c
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x3c]
push eax
je 0x46e995
call fcn.0042367e
push 0
push edi
push dword [eax]
mov edi, dword [ebp - 0x48]
push str.__ico3
push edi
call fcn.00465e47
mov ecx, dword [ebp - 0x3c]
add esp, 0x20
add ecx, 0xfffffff0
jmp 0x46e9b5
call fcn.0042367e
mov edi, dword [ebp - 0x48]
push 0
push dword [eax]
push str.__ico3
push edi
call fcn.0046603a
mov ecx, dword [ebp - 0x3c]
add esp, 0x1c
lea ecx, [ecx - 0x10]
mov ebx, eax
call fcn.00404f8d
test ebx, ebx
je 0x46ea44
push dword [ebp - 0x40]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x46ea08
push 0x4c4448
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.0042367e
push 0
push dword [eax]
push 0x4d3c88
push dword [ebp - 0x40]
call fcn.0046603a
mov ecx, dword [ebp - 0x3c]
add esp, 0x1c
lea ecx, [ecx - 0x10]
mov ebx, eax
call fcn.00404f8d
test ebx, ebx
je 0x46ea44
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x46ea44
push 0x4c4460
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.0042367e
push 0
push dword [eax]
push 0x4d3c88
push esi
call fcn.0046603a
mov ecx, dword [ebp - 0x3c]
add esp, 0x1c
lea ecx, [ecx - 0x10]
mov ebx, eax
call fcn.00404f8d
push ebx
push str.Magic_StartMenuShortcut_End_bRet___d_r_n
push 0x4eee98
call fcn.004738c9
mov ecx, dword [ebp - 0x44]
add esp, 0xc
lea ecx, [ecx - 0x10]
call fcn.00404f8d
mov ecx, dword [ebp - 0x38]
lea ecx, [ecx - 0x10]
call fcn.00404f8d
lea ecx, [esi - 0x10]
call fcn.00404f8d
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.00404f8d
lea ecx, [edi - 0x10]
call fcn.00404f8d
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov eax, ebx
xor ecx, ebp
pop ebx
call fcn.0048f059
leave
ret