Function at 0x46e6f2
Capabilities:
Check if file exists

Disassembly:
push 0x1c
mov eax, 0x4ae6e2
call fcn.004711ef
push dword [ebp + 0xc]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
xor ebx, ebx
test eax, eax
jne 0x46e717
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
push str.CreateObject
push dword [0x4f39b0]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
cmp esi, ebx
jne 0x46e736
or eax, 0xffffffff
jmp 0x46e931
mov dword [ebp - 0x10], ebx
push dword [ebp + 8]
mov dword [ebp - 4], ebx
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
cmp eax, ebx
je 0x46e781
push str..zip
push eax
call fcn.0047030e
pop ecx
pop ecx
test eax, eax
jne 0x46e781
lea eax, [ebp - 0x10]
push eax
push 0x4c276c
push 0x4c279c
call esi
test eax, eax
je 0x46e791
mov eax, dword [ebp - 0x10]
or dword [ebp - 4], 0xffffffff
cmp eax, ebx
je 0x46e72e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x46e72e
lea eax, [ebp - 0x10]
push eax
push 0x4c276c
push 0x4c278c
jmp 0x46e768
push 0x10
call fcn.0046d860
pop ecx
cmp eax, ebx
je 0x46e7a8
mov ecx, eax
call fcn.0046e05b
mov esi, eax
jmp 0x46e7aa
xor esi, esi
push esi
lea ecx, [ebp - 0x14]
call fcn.0046da2e
push dword [ebp + 8]
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.0046ef36
test al, al
jne 0x46e7d7
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], bl
cmp eax, ebx
je 0x46e76e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x46e76e
push 0x1c
call fcn.0046d860
pop ecx
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 2
cmp eax, ebx
je 0x46e7f5
mov ecx, eax
call fcn.0046ddff
mov esi, eax
jmp 0x46e7f7
xor esi, esi
push esi
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call fcn.0046da2e
mov edi, dword [ebp - 0x14]
mov byte [esi + 0xc], bl
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
push esi
push ebx
push edi
push eax
mov byte [ebp - 4], 3
call dword [ecx + 0xc]
test eax, eax
je 0x46e845
mov byte [ebp - 4], 1
cmp esi, ebx
je 0x46e82f
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], bl
cmp edi, ebx
je 0x46e76e
mov eax, dword [edi]
push edi
call dword [eax + 8]
jmp 0x46e76e
push 0x78
call fcn.0046d860
pop ecx
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 4
cmp eax, ebx
je 0x46e863
mov ecx, eax
call fcn.0046de4a
mov esi, eax
jmp 0x46e865
xor esi, esi
push esi
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 3
call fcn.0046da2e
push dword [ebp + 0xc]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 5
call fcn.0046dc25
mov edi, dword [ebp + 0x10]
push edi
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x10]
mov ecx, esi
mov byte [ebp - 4], 6
call fcn.0046df94
push dword [ebp - 0x28]
mov byte [ebp - 4], 5
call fcn.0046d88b
pop ecx
mov byte [esi + 0x58], bl
cmp edi, ebx
je 0x46e8b6
push dword [ebp + 0xc]
mov eax, dword [edi]
push dword [ebp + 8]
push edi
call dword [eax]
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
push esi
push ebx
push 0xffffffffffffffff
push ebx
push eax
call dword [ecx + 0x1c]
mov byte [ebp - 4], 3
cmp eax, ebx
je 0x46e8f3
cmp esi, ebx
je 0x46e8d9
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 1
cmp eax, ebx
je 0x46e7c5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x46e7c5
cmp esi, ebx
je 0x46e8fd
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 1
cmp eax, ebx
je 0x46e90e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], bl
cmp eax, ebx
je 0x46e91e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x10]
or dword [ebp - 4], 0xffffffff
cmp eax, ebx
je 0x46e92f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
call fcn.004712c7
ret