Function at 0x46ae20
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 0x580]
mov ebx, dword [eax + 0x20]
cmp dword [ebx + 0x88], 8
mov dword [ebp - 0xc], ebx
mov al, byte [ebx + 0x30]
mov byte [ebp - 1], al
mov byte [ebp - 2], al
lea eax, [ebx + 0x74]
jb 0x46ae4e
mov eax, dword [eax]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
setne byte [ebp - 3]
cmp byte [ebp - 1], 0
jne 0x46ae94
xor esi, esi
call fcn.00439ba0
cmp dword [eax + 0x1c], esi
jbe 0x46ae94
lea ecx, [ecx]
push esi
call fcn.00439ba0
mov ecx, eax
call fcn.0041b0d0
cmp byte [eax + 0x30], 0
jne 0x46ae90
inc esi
call fcn.00439ba0
cmp esi, dword [eax + 0x1c]
jb 0x46ae70
jmp 0x46ae94
mov byte [ebp - 2], 1
mov eax, dword [ebx + 0x64]
mov esi, dword [sym.imp.USER32.dll_EnableMenuItem]
mov dword [ebp - 8], eax
xor eax, eax
cmp byte [ebp - 1], al
setne al
dec eax
and eax, 3
push eax
push 0xa02e
push dword [edi + 0x68934]
call esi
movzx eax, byte [ebp - 1]
push eax
push 0xa02e
push 0x401
push dword [edi + 0x668]
call dword [sym.imp.USER32.dll_SendMessageW]
xor eax, eax
cmp byte [ebp - 2], al
setne al
dec eax
and eax, 3
push eax
push 0xa02f
push dword [edi + 0x68934]
call esi
mov cl, byte [ebp - 2]
movzx eax, cl
push eax
push 0xa02f
push 0x401
push dword [edi + 0x668]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp byte [ebp - 1], 0
jne 0x46af1c
cmp dword [ebp - 8], 2
je 0x46af1c
mov cl, 1
jmp 0x46af1e
xor cl, cl
xor eax, eax
test cl, cl
setne al
dec eax
and eax, 3
push eax
push 0x2713
push dword [edi + 0x68934]
call esi
cmp byte [ebp - 1], 0
jne 0x46af47
cmp dword [ebp - 8], 2
je 0x46af47
mov cl, 1
jmp 0x46af49
xor cl, cl
xor eax, eax
test cl, cl
setne al
dec eax
and eax, 3
push eax
push 0x2714
push dword [edi + 0x68934]
call esi
mov cl, byte [ebx + 0x70]
xor eax, eax
test cl, cl
mov byte [ebp - 2], cl
setne al
dec eax
and eax, 3
push eax
push 0xa431
push dword [edi + 0x68934]
call esi
cmp byte [ebx + 0xb8], 0
jne 0x46af94
cmp byte [ebp - 2], 0
jne 0x46af94
mov cl, 1
jmp 0x46af96
xor cl, cl
xor eax, eax
test cl, cl
setne al
dec eax
and eax, 3
push eax
push 0xa42c
push dword [edi + 0x68934]
call esi
movzx eax, byte [ebx + 0x3c]
neg eax
sbb eax, eax
and eax, 8
push eax
push 0xa42c
push dword [edi + 0x68934]
call dword [sym.imp.USER32.dll_CheckMenuItem]
xor eax, eax
cmp byte [ebp - 3], al
setne al
dec eax
and eax, 3
push eax
push 0xa038
push dword [edi + 0x68934]
mov dword [ebp - 8], eax
call esi
push dword [ebp - 8]
push 0xa03c
push dword [edi + 0x68934]
call esi
push dword [ebp - 8]
push 0xa03b
push dword [edi + 0x68934]
call esi
push dword [ebp - 8]
push 0xa036
push dword [edi + 0x68934]
call esi
cmp dword [ebx + 0x88], 8
lea eax, [ebx + 0x74]
jb 0x46b027
mov eax, dword [eax]
push eax
call fcn.00426170
add esp, 4
xor ecx, ecx
test al, al
setne cl
dec ecx
and ecx, 3
push ecx
push 0xa03f
push dword [edi + 0x68934]
call esi
push dword [ebp - 8]
push 0xac44
push dword [edi + 0x68934]
call esi
push dword [ebp - 8]
push 0xac45
push dword [edi + 0x68934]
call esi
push dword [ebp - 8]
push 0xac47
push dword [edi + 0x68934]
call esi
push dword [ebp - 8]
push 0xac46
push dword [edi + 0x68934]
call esi
mov bl, byte [ebx + 0x31]
xor eax, eax
test bl, bl
setne al
dec eax
and eax, 3
push eax
push 0xafc9
push dword [edi + 0x68934]
call esi
xor eax, eax
cmp bl, 2
setne al
dec eax
and eax, 3
push eax
push 0xafca
push dword [edi + 0x68934]
call esi
xor eax, eax
cmp bl, 1
setne al
dec eax
and eax, 3
push eax
push 0xafcb
push dword [edi + 0x68934]
call esi
mov ecx, edi
call fcn.0046b5c0
push 0xffffffffffffffff
mov ecx, edi
call fcn.0046b180
mov ecx, dword [edi + 0x68fd0]
test ecx, ecx
je 0x46b0f8
call fcn.0040e210
mov ebx, dword [ebp - 0xc]
xor eax, eax
mov esi, dword [ebx + 0x64]
cmp esi, 2
setne al
dec eax
and eax, 3
push eax
push 0xac41
push dword [edi + 0x68934]
call dword [sym.imp.USER32.dll_EnableMenuItem]
xor eax, eax
cmp esi, 2
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
setne al
push eax
push 0xac41
push 0x401
push dword [edi + 0x668]
call esi
movzx eax, byte [ebx + 0xb8]
neg eax
sbb eax, eax
and eax, 8
push eax
push 0xac41
push dword [edi + 0x68934]
call dword [sym.imp.USER32.dll_CheckMenuItem]
movzx eax, byte [ebx + 0xb8]
push eax
push 0xac41
push 0x402
push dword [edi + 0x668]
call esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret