Function at 0x40f5f0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4fd4ec
mov eax, dword fs:[0]
push eax
sub esp, 0x7c
mov eax, dword [0x5503c8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
cmp dword [ebp + 0xc], 8
mov dword [ebp - 0x24], 0
je 0x40f531
cmp byte [ebp + 8], 0
je 0x40f531
push 0
push 1
sub esp, 0x28
mov eax, esp
mov dword [eax + 0x24], 0
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0040b0f0
add esp, 0x38
push str.code
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 0
call fcn.004062b0
mov edi, eax
mov cl, byte [edi]
movzx eax, cl
cmp eax, 9
ja case.0x40f3bb.32
jmp dword [eax*4 + 0x40f5c8]
xor edx, edx
lea eax, [edi + 8]
cmp cl, 6
cmovne eax, edx
mov edi, dword [eax]
jmp 0x40f41a
cmp cl, 5
je 0x40f3eb
cmp cl, 6
je 0x40f3eb
xor cl, cl
lea eax, [edi + 8]
xor edx, edx
test cl, cl
cmove eax, edx
mov edi, dword [eax]
jmp 0x40f41a
mov cl, 1
lea eax, [edi + 8]
xor edx, edx
test cl, cl
cmove eax, edx
mov edi, dword [eax]
jmp 0x40f41a
xor edx, edx
lea eax, [edi + 8]
cmp cl, 7
cmovne eax, edx
cvttsd2si edi, qword [eax]
jmp 0x40f41a
xor edx, edx
lea eax, [edi + 8]
cmp cl, 4
cmovne eax, edx
movzx edi, byte [eax]
cmp edi, 0xc8
je 0x40f47d
mov ecx, dword [esi + 0x78]
mov byte [esi + 0xb4], 0
test ecx, ecx
je 0x40f43a
mov eax, dword [ecx]
push 1
call dword [eax + 0xec]
mov ecx, dword [esi + 0x7c]
test ecx, ecx
je 0x40f44b
mov eax, dword [ecx]
push 1
call dword [eax + 0xec]
mov ecx, dword [esi + 0x80]
test ecx, ecx
je 0x40f51f
mov eax, dword [ecx]
cmp edi, 0x191
jne 0x40f470
push 0x503fdc
call dword [eax + 0x3c]
jmp 0x40f51f
push 0x503ffc
call dword [eax + 0x3c]
jmp 0x40f51f
cmp dword [ebp + 0xc], 7
jne 0x40f51f
push str.zipOriginUrl
push str.data
lea ecx, [ebp - 0x20]
call fcn.004062b0
mov ecx, eax
call fcn.004062b0
mov edi, eax
cmp byte [edi], 3
xorps xmm0, xmm0
movups xmmword [ebp - 0x3c], xmm0
mov byte [ebp - 4], 4
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
mov byte [ebp - 0x3c], 0
mov dword [ebp - 0x24], 8
jne 0x40f57a
mov eax, dword [edi + 8]
lea ecx, [ebp - 0x3c]
cmp ecx, eax
je 0x40f4ef
cmp dword [eax + 0x14], 0x10
mov ecx, eax
jb 0x40f4e3
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
lea ecx, [ebp - 0x3c]
call fcn.004031f0
lea eax, [ebp - 0x3c]
mov dword [ebp - 4], 0
push eax
lea ecx, [esi + 0x84]
call fcn.004025d0
lea ecx, [ebp - 0x3c]
call fcn.00403630
push 0xa
push 6
push dword [esi + 0x6c]
lea ecx, [esi - 0x48c]
call sym.Office2.exe_public:_bool___thiscall_DuiLib::CPaintManagerUI::SetTimer_class_DuiLib::CControlUI___unsigned_int__unsigned_int_
push dword [ebp - 0x20]
lea ecx, [ebp - 0x18]
mov dword [ebp - 4], 7
call fcn.00415080
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004cf8bc
mov esp, ebp
pop ebp
ret 0xc
mov ecx, edi
call fcn.00419970
push eax
lea ecx, [ebp - 0x88]
call fcn.00402650
push eax
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 1
push str.type_must_be_number__but_is
push eax
call fcn.004064b0
mov byte [ebp - 4], 2
jmp 0x40f5a7
mov ecx, edi
call fcn.00419970
push eax
lea ecx, [ebp - 0x70]
call fcn.00402650
push eax
lea eax, [ebp - 0x88]
mov dword [ebp - 4], 5
push str.type_must_be_string__but_is
push eax
call fcn.004064b0
mov byte [ebp - 4], 6
push edi
push eax
lea eax, [ebp - 0x58]
push 0x12e
push eax
call fcn.00409280
add esp, 0x1c
lea eax, [ebp - 0x58]
push 0x52f328
push eax
call fcn.004d0fb1
dec esi
cmc
inc eax
add byte [esi - 0xb], cl
inc eax
add byte [esi - 0xb], cl
inc eax
add byte [esi - 0xb], cl
inc eax
add byte [esp + esi*8], cl
inc eax
add cl, dl
inc eax
add dl, al
inc eax
add bl, bh
inc eax
add byte [esi - 0xb], cl
inc eax
add byte [esi - 0xb], cl
inc eax
add byte [ebp - 0x75], dl
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4fd53d
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [0x5503c8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
push dword [edi + 4]
lea ecx, [edi + 0x4e0]
call sym.Office2.exe_public:_void___thiscall_CWndShadow::Create_struct_HWND____
push 0
push 0
lea ecx, [edi + 0x4e0]
call sym.Office2.exe_public:_bool___thiscall_CWndShadow::SetPosition_int__int_
push 3
lea ecx, [edi + 0x4e0]
call sym.Office2.exe_public:_bool___thiscall_CWndShadow::SetSize_int_
push 0x503eb0
lea ecx, [edi + 0x2c]
call sym.Office2.exe_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CPaintManagerUI::FindControl_wchar_t_const__const
push 0x503ebc
lea ecx, [edi + 0x2c]
mov dword [edi + 0x524], eax
call sym.Office2.exe_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CPaintManagerUI::FindControl_wchar_t_const__const
push 0x503ec8
lea ecx, [edi + 0x2c]
mov dword [edi + 0x528], eax
call sym.Office2.exe_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CPaintManagerUI::FindControl_wchar_t_const__const
push str.browse
lea ecx, [edi + 0x2c]
mov dword [edi + 0x52c], eax
call sym.Office2.exe_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CPaintManagerUI::FindControl_wchar_t_const__const
push 0x503ee4
lea ecx, [edi + 0x2c]
mov dword [edi + 0x530], eax
call sym.Office2.exe_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CPaintManagerUI::FindControl_wchar_t_const__const
push str.text
lea ecx, [edi + 0x2c]
mov dword [edi + 0x534], eax
call sym.Office2.exe_public:_class_DuiLib::CControlUI____thiscall_DuiLib::CPaintManagerUI::FindControl_wchar_t_const__const
cmp dword [edi + 0x524], 0
mov dword [edi + 0x538], eax
je 0x40f70b
cmp dword [edi + 0x4d8], 0x10
lea eax, [edi + 0x4c4]
jb 0x40f6d2
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00401a70
add esp, 8
mov edx, eax
cmp dword [edx + 0x14], 8
mov dword [ebp - 4], 0
jb 0x40f6f0
mov edx, dword [edx]
mov ecx, dword [edi + 0x524]
push edx
mov eax, dword [ecx]
call dword [eax + 0x3c]
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0xffffffff
call fcn.00403580
cmp dword [edi + 0x528], 0
je 0x40f75b
mov eax, dword [edi + 0x4dc]
cmp dword [eax + 0x14], 0x10
jb 0x40f722
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00401a70
add esp, 8
mov edx, eax
cmp dword [edx + 0x14], 8
mov dword [ebp - 4], 1
jb 0x40f740
mov edx, dword [edx]
mov ecx, dword [edi + 0x528]
push edx
mov eax, dword [ecx]
call dword [eax + 0x3c]
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0xffffffff
call fcn.00403580
mov ecx, dword [edi + 0x52c]
test ecx, ecx
je 0x40f80f
mov eax, dword [ecx]
push 0
call dword [eax + 0xec]
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
xor eax, eax
mov dword [ebp - 0x14], 7
movups xmmword [ebp - 0x28], xmm0
mov word [ebp - 0x28], ax
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
push 0x503ef8
mov dword [ebp - 4], 2
call esi
test eax, eax
je 0x40f7ad
mov ecx, 0x503efc
jmp 0x40f7c3
push 0x503f04
call esi
test eax, eax
mov ecx, 0x503f08
mov edx, 0x529254
cmove ecx, edx
push ecx
lea ecx, [ebp - 0x28]
call fcn.0040ea20
cmp dword [ebp - 0x18], 0
je 0x40f807
push 9
push 0x503f10
lea ecx, [ebp - 0x28]
call fcn.00414df0
push 6
push str._temp_
lea ecx, [ebp - 0x28]
call fcn.00414df0
mov ecx, dword [edi + 0x52c]
lea edx, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
cmovae edx, dword [ebp - 0x28]
mov eax, dword [ecx]
push edx
call dword [eax + 0x3c]
lea ecx, [ebp - 0x28]
call fcn.00403580
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004cf8bc
mov esp, ebp
pop ebp
ret