Function at 0x464e3e
Capabilities:
Check if file exists

Disassembly:
sub esp, 0x360
mov eax, dword [0x4da6bc]
xor eax, esp
mov dword [esp + 0x35c], eax
mov ax, word [esp + 0x364]
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x20], esi
cmp ax, 5
jne 0x4650b4
mov eax, dword [esi + 4]
push 0
push 2
add esi, 4
push 0x43f
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ebp, eax
test ebp, ebp
jne 0x464e6f
lea ebp, [eax + 2]
call dword [sym.imp.USER32.dll_GetMessagePos]
mov edx, dword [0x5144c8]
movzx ecx, ax
push 0x131
shr eax, 0x10
push edx
mov dword [esp + 0x1c], ecx
mov ebx, eax
call dword [sym.imp.USER32.dll_LoadMenuW]
push 0
push eax
mov dword [esp + 0x18], eax
call dword [sym.imp.USER32.dll_GetSubMenu]
push 8
mov edi, eax
push ebp
push edi
call dword [sym.imp.USER32.dll_CheckMenuItem]
cmp ebp, 0x4b0
je 0x464ed1
cmp ebp, 0x4b1
je 0x464ed1
cmp ebp, 0xfde9
je 0x464ed1
push 3
push 3
push edi
call dword [sym.imp.USER32.dll_EnableMenuItem]
jmp 0x464f00
push 0
push 3
push edi
call dword [sym.imp.USER32.dll_EnableMenuItem]
mov eax, dword [esi]
push 0
push 0x20f
push 0x41d
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je 0x464f00
push 8
push 3
push edi
call dword [sym.imp.USER32.dll_CheckMenuItem]
mov edx, dword [esp + 0x14]
mov ecx, dword [esi]
push ebx
push edx
mov dword [esp + 0x2c], ecx
call fcn.004219e0
mov ecx, dword [esp + 0x2c]
add esp, 8
push 0
push ecx
push 0
push ebx
push eax
push 0x160
push edi
call dword [sym.imp.USER32.dll_TrackPopupMenu]
xor ebx, ebx
cmp eax, ebx
je 0x46509c
xor edi, edi
cmp eax, 1
jne 0x464fa6
or eax, 0xffffffff
push ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov byte [esp + 0x68], bl
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x2c], vtable.CEncDialog.0
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [esp + 0x30]
call fcn.00463da0
lea ecx, [esp + 0x28]
cmp eax, 1
jne 0x464f9c
mov edi, dword [esp + 0x68]
call fcn.00462080
jmp 0x464fd2
call fcn.00462080
jmp 0x46509c
cmp eax, 3
jne 0x464fcb
push ebx
push 0xf
mov ecx, esi
call fcn.0042ec50
xor edx, edx
test al, al
sete dl
mov ecx, esi
push edx
push 0xf
call fcn.0042ec80
jmp 0x46509c
cmp eax, 2
je 0x464fd2
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetACP]
cmp edi, ebp
je 0x46509c
cmp ebp, ebx
jne 0x464fec
cmp edi, eax
je 0x46509c
mov eax, dword [esi]
push ebx
push ebx
push 0x40b
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, esi
mov ebx, eax
call fcn.0042ed30
test al, al
jne 0x465092
push ebx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x465092
push 0x3a9a
lea ecx, [esp + 0x170]
call fcn.00460f70
mov edx, dword [esp + 0x20]
push 0
push 0
push 0x23
lea ecx, [esp + 0x178]
push ecx
mov ecx, dword [edx + 0x30]
call fcn.00481520
cmp eax, 2
jne 0x465056
lea ecx, [esp + 0x10]
call fcn.004195a0
jmp 0x4652b1
mov ecx, esi
cmp eax, 6
jne 0x465094
call fcn.00438b60
mov ecx, esi
mov ebp, eax
call fcn.0042ecf0
mov edx, dword [esi]
movzx eax, ax
movzx ecx, di
shl eax, 0x10
or eax, ecx
push eax
push ebx
push 0x409
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
push ebp
mov ecx, esi
call fcn.00457d60
jmp 0x46509a
mov ecx, esi
push edi
call fcn.0042ec30
xor ebx, ebx
mov eax, dword [esp + 0x10]
cmp eax, ebx
je 0x4652b1
push eax
call dword [sym.imp.USER32.dll_DestroyMenu]
jmp 0x4652b1
cmp ax, 7
jne 0x46512f
mov eax, dword [esi + 4]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x412
push eax
call edi
mov ecx, dword [0x5144c4]
mov ebp, dword [sym.imp.KERNEL32.dll_InterlockedExchange]
mov ebx, dword [0x5144c8]
push ecx
push 0x5144c8
mov dword [esp + 0x18], eax
call ebp
mov eax, dword [esi + 4]
push 0x160
push 1
lea edx, [esp + 0x18]
push edx
push eax
push 0x132
call fcn.00461e60
add esp, 0x14
test eax, eax
je 0x465122
cmp dword [esp + 0x10], eax
je 0x465122
mov ecx, dword [esi + 4]
push 0
push eax
push 0x412
push ecx
call edi
push ebx
push 0x5144c8
call ebp
jmp 0x4652b1
cmp ax, 8
jne 0x465279
mov edx, dword [esi + 4]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
xor ebx, ebx
push ebx
push ebx
add esi, 4
push 0x42c
push edx
call edi
push ebx
push 0x20d
mov dword [esp + 0x1c], eax
mov eax, dword [esi]
push 0x41d
push eax
mov dword [esp + 0x28], 0xb
mov dword [esp + 0x2c], 0xc
call edi
test eax, eax
jne 0x46517d
mov dword [esp + 0x18], ebx
mov ecx, dword [esi]
push ebx
push 0x202
push 0x41d
push ecx
call edi
test eax, eax
jne 0x465195
mov dword [esp + 0x1c], ebx
mov eax, dword [esi]
push 0x160
push 3
lea edx, [esp + 0x1c]
push edx
push eax
push 0x13a
call fcn.00461e60
add esp, 0x14
cmp eax, 0xa
jne 0x46523d
mov edx, dword [0x5144c8]
mov edi, dword [sym.imp.USER32.dll_LoadStringW]
push 0x40
lea ecx, [esp + 0x70]
push ecx
push 0x3abd
push edx
call edi
mov ecx, dword [0x5144c8]
push 0x40
lea eax, [esp + 0xf0]
push eax
push 0x3aa7
push ecx
call edi
lea edx, [esp + 0xec]
push edx
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x30]
call fcn.0041a860
push ebx
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [esp + 0x30]
call fcn.00419dd0
cmp eax, 1
jne 0x465232
lea ecx, [esp + 0x28]
call fcn.00449c90
lea ecx, [eax - 2]
cmp ecx, 0x3e
ja 0x465232
push eax
mov ecx, esi
call fcn.0042ed70
lea ecx, [esp + 0x28]
call fcn.00419940
jmp 0x4652b1
cmp eax, 0xb
jne 0x465254
mov edx, dword [esi]
push ebx
push 0x687
push 0x111
push edx
call edi
jmp 0x4652b1
cmp eax, 0xc
jne 0x46526b
mov eax, dword [esi]
push ebx
push 0x516
push 0x111
push eax
call edi
jmp 0x4652b1
cmp eax, ebx
je 0x4652b1
push eax
mov ecx, esi
call fcn.0042ed70
jmp 0x4652b1
cmp ax, 4
je 0x46529b
cmp ax, 1
je 0x46529b
cmp ax, 2
je 0x46529b
cmp ax, 6
jne 0x4652b1
lea ecx, [esi + 4]
call fcn.00460f30
jmp 0x4652b1
mov ecx, dword [esi + 4]
push 0
push 0x592
push 0x111
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esp + 0x36c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
xor eax, eax
call fcn.0049e9d2
add esp, 0x360
ret 0x10