Function at 0x40eda0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x674bc7
mov eax, dword fs:[0]
push eax
sub esp, 0x1c0
mov eax, dword [0x71506c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
push 0x3a8
sub esp, 0x18
mov dword [ebp - 0x1c8], ebx
mov eax, esp
mov dword [ebp - 0x1cc], 0
push 0
push 0x1c
push eax
call fcn.004d1cc6
add esp, 0xc
lea eax, [ebp - 0x28]
push eax
call fcn.004d0c7c
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0
push eax
call fcn.004d01dd
add esp, 0x24
test eax, eax
jne 0x40ee66
mov edx, dword [ebp - 0x14]
mov eax, edx
mov ecx, dword [ebp - 0x18]
sub eax, ecx
push 1
push 0x6fc798
cmp eax, 1
jb 0x40ee4f
cmp edx, 0x10
lea esi, [ebp - 0x28]
lea eax, [ecx + 1]
cmovae esi, dword [ebp - 0x28]
add esi, ecx
mov dword [ebp - 0x18], eax
push esi
call fcn.00507e10
add esp, 0xc
mov byte [esi + 1], 0
jmp 0x40ee66
mov byte [ebp - 0x1c4], 0
lea ecx, [ebp - 0x28]
push dword [ebp - 0x1c4]
push 1
call fcn.00407030
mov edi, dword [ebx + 0xdc]
test edi, edi
je 0x40eec9
cmp dword [ebx + 0xe0], 0x10
lea ecx, [ebx + 0xcc]
jb 0x40ee81
mov ecx, dword [ecx]
mov esi, dword [ebp - 0x14]
mov eax, esi
mov edx, dword [ebp - 0x18]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x40eeb3
lea eax, [edx + edi]
cmp esi, 0x10
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
lea esi, [eax + edx]
push esi
call fcn.00507e10
add esp, 0xc
mov byte [esi + edi], 0
jmp 0x40eec9
mov byte [ebp - 0x1c4], 0
lea ecx, [ebp - 0x28]
push dword [ebp - 0x1c4]
push edi
call fcn.00407030
lea eax, [ebp - 0x28]
push eax
call fcn.004d01dd
add esp, 4
test eax, eax
jne 0x40ef27
mov edx, dword [ebp - 0x14]
mov eax, edx
mov ecx, dword [ebp - 0x18]
sub eax, ecx
push 1
push 0x6fc798
cmp eax, 1
jb 0x40ef10
cmp edx, 0x10
lea esi, [ebp - 0x28]
lea eax, [ecx + 1]
cmovae esi, dword [ebp - 0x28]
add esi, ecx
mov dword [ebp - 0x18], eax
push esi
call fcn.00507e10
add esp, 0xc
mov byte [esi + 1], 0
jmp 0x40ef27
mov byte [ebp - 0x1c4], 0
lea ecx, [ebp - 0x28]
push dword [ebp - 0x1c4]
push 1
call fcn.00407030
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x40eff2
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 1
push eax
push 0x3a8
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405f50
lea eax, [ebp - 0x40]
push eax
call fcn.004d08fb
add esp, 0x20
mov byte [ebp - 4], 2
cmp dword [eax + 0x14], 8
jb 0x40ef77
mov eax, dword [eax]
push eax
call fcn.004d1b4a
mov byte [ebp - 4], 1
add esp, 8
mov edx, dword [ebp - 0x2c]
cmp edx, 8
jb 0x40efbe
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40efb4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f8cc
push edx
push ecx
call fcn.00430080
add esp, 8
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x5c]
test ecx, ecx
je 0x40efee
mov edx, dword [ecx]
lea eax, [ebp - 0x80]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov byte [ebp - 4], 0
call fcn.004d5ab1
test al, al
je 0x40f074
mov eax, dword [0x725d28]
test eax, eax
je 0x40f074
cmp dword [eax + 4], 5
jl 0x40f074
cmp dword [ebx + 0x44], 0x10
lea eax, [ebx + 0x30]
mov dword [ebp - 0x1bc], eax
jb 0x40f021
mov eax, dword [eax]
mov dword [ebp - 0x1bc], eax
sub esp, 0xc
lea ecx, [ebp - 0x1b8]
push 0x46
push str.CDoOwerInstall::OnDoGreenInstall
push 5
call fcn.0040e3c0
mov edi, eax
mov edx, str.ower_7z_ins_free7zfile:
mov byte [ebp - 4], 4
lea ecx, [edi + 0x30]
call fcn.0040e230
mov edx, dword [ebp - 0x1bc]
lea ecx, [edi + 0x30]
call fcn.0040e230
mov ecx, dword [0x725d28]
push edi
call fcn.00410b00
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0
call fcn.0040e7c0
xor esi, esi
add ebx, 0x30
nop dword [eax]
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
mov ecx, ebx
cmovae eax, dword [ebp - 0x28]
cmp dword [ebx + 0x14], 0x10
jb 0x40f095
mov ecx, dword [ebx]
push 0
push 0
push 0x6fc7f0
push eax
push ecx
call fcn.004e8250
mov edi, eax
test edi, edi
je 0x40f0b6
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
test edi, edi
je 0x40f0c0
cmp esi, 3
jl 0x40f080
lea eax, [ebp - 0x28]
cmp ebx, eax
je 0x40f0da
cmp dword [ebp - 0x14], 0x10
mov ecx, ebx
push dword [ebp - 0x18]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.004063f0
mov edi, dword [ebp - 0x1c8]
cmp dword [edi + 0x158], 0x10
lea esi, [edi + 0x144]
mov edx, esi
jb 0x40f0f3
mov edx, dword [esi]
mov eax, dword [ebx + 0x10]
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x1bc], eax
mov eax, dword [ebx + 0x14]
sub eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x1c4], ecx
cmp ecx, eax
ja 0x40f147
cmp dword [ebx + 0x14], 0x10
mov esi, dword [ebp - 0x1bc]
lea eax, [esi + ecx]
mov dword [ebx + 0x10], eax
mov eax, ebx
jb 0x40f128
mov eax, dword [ebx]
push ecx
add esi, eax
push edx
push esi
call fcn.00507e10
mov eax, dword [ebp - 0x1c4]
add esp, 0xc
mov byte [esi + eax], 0
lea esi, [edi + 0x144]
jmp 0x40f15e
push ecx
push edx
mov byte [ebp - 0x1c4], 0
push dword [ebp - 0x1c4]
push ecx
mov ecx, ebx
call fcn.00407030
call fcn.004d5ab1
test al, al
je 0x40f21a
mov eax, dword [0x725d28]
test eax, eax
je 0x40f21a
cmp dword [eax + 4], 5
jl 0x40f21a
sub esp, 0xc
lea ecx, [ebp - 0x1b8]
push 0x55
push str.CDoOwerInstall::OnDoGreenInstall
push 5
call fcn.0040e3c0
mov dword [ebp - 0x1bc], eax
lea ecx, [eax + 0x30]
mov byte [ebp - 4], 5
mov edx, str.ower_7z_ins:
call fcn.0040e230
cmp dword [edi + 0xc8], 0x10
lea edx, [edi + 0xb4]
jb 0x40f1c1
mov edx, dword [edx]
mov ecx, dword [ebp - 0x1bc]
lea ecx, [ecx + 0x30]
call fcn.0040e230
mov ecx, dword [ebp - 0x1bc]
mov edx, 0x6fc750
lea ecx, [ecx + 0x30]
call fcn.0040e230
cmp dword [ebx + 0x14], 0x10
mov edx, ebx
jb 0x40f1ec
mov edx, dword [ebx]
mov ecx, dword [ebp - 0x1bc]
lea ecx, [ecx + 0x30]
call fcn.0040e230
push dword [ebp - 0x1bc]
mov ecx, dword [0x725d28]
call fcn.00410b00
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0
call fcn.0040e7c0
push 0x3a8
sub esp, 0x18
mov ecx, esp
push esi
call fcn.00405f50
lea eax, [ebp - 0x70]
push eax
call fcn.004d08fb
add esp, 0x20
mov byte [ebp - 4], 6
cmp dword [eax + 0x14], 8
jb 0x40f242
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.004d1c16
add esp, 8
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x5c]
cmp edx, 8
jb 0x40f290
mov ecx, dword [ebp - 0x70]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40f286
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f8d1
push edx
push ecx
call fcn.00430080
add esp, 8
xor eax, eax
mov dword [ebp - 0x60], 0
push eax
push 0x6fc808
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
call fcn.00410b50
cmp dword [ebx + 0x14], 0x10
mov ecx, ebx
mov dword [ebp - 0x1c0], eax
jb 0x40f2c5
mov ecx, dword [ebx]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x40f648
call fcn.004d5ab1
test al, al
je 0x40f39d
mov eax, dword [0x725d28]
test eax, eax
je 0x40f39d
cmp dword [eax + 4], 5
jl 0x40f39d
cmp dword [edi + 0x170], 0x10
lea eax, [edi + 0x15c]
mov dword [ebp - 0x1c4], eax
jb 0x40f315
mov eax, dword [eax]
mov dword [ebp - 0x1c4], eax
cmp dword [ebx + 0x14], 0x10
mov dword [ebp - 0x1bc], ebx
jb 0x40f329
mov eax, dword [ebx]
mov dword [ebp - 0x1bc], eax
sub esp, 0xc
lea ecx, [ebp - 0x1b8]
push 0x5c
push str.CDoOwerInstall::OnDoGreenInstall
push 5
call fcn.0040e3c0
mov edi, eax
mov edx, str.ower_7z_inst_path:
mov byte [ebp - 4], 9
lea ecx, [edi + 0x30]
call fcn.0040e230
mov edx, dword [ebp - 0x1bc]
lea ecx, [edi + 0x30]
call fcn.0040e230
mov edx, 0x6fc814
lea ecx, [edi + 0x30]
call fcn.0040e230
mov edx, dword [ebp - 0x1c4]
lea ecx, [edi + 0x30]
call fcn.0040e230
mov ecx, dword [0x725d28]
push edi
call fcn.00410b00
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 8
call fcn.0040e7c0
mov edi, dword [ebp - 0x1c8]
cmp dword [ebp - 0x1c0], 0xffffffff
je 0x40f551
cmp dword [ebx + 0x14], 0x10
jb 0x40f3b2
mov ebx, dword [ebx]
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x40f648
push 0x6fc810
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, eax
test ebx, ebx
je 0x40f648
push 0x3a8
sub esp, 0x18
lea eax, [edi + 0x15c]
mov ecx, esp
push eax
call fcn.00405f50
lea eax, [ebp - 0x40]
push eax
call fcn.004d08fb
mov byte [ebp - 4], 0xa
xor ecx, ecx
mov eax, dword [ebp - 0x30]
mov esi, 2
inc eax
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004300b6
mov edi, eax
mov eax, dword [ebp - 0x30]
inc eax
push eax
push 0
push edi
call fcn.0040d2b0
add esp, 0x30
lea eax, [ebp - 0x40]
cmp dword [ebp - 0x2c], 8
mov ecx, edi
cmovae eax, dword [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x30]
lea edx, [eax*2 + 2]
call fcn.0040e9d0
push 0x3a8
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
push eax
call fcn.00405f50
lea eax, [ebp - 0x58]
push eax
call fcn.004d08fb
mov byte [ebp - 4], 0xb
xor ecx, ecx
mov eax, dword [ebp - 0x48]
inc eax
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004300b6
mov esi, eax
mov eax, dword [ebp - 0x48]
inc eax
push eax
push 0
push esi
call fcn.0040d2b0
add esp, 0x30
lea eax, [ebp - 0x58]
cmp dword [ebp - 0x44], 8
mov ecx, esi
cmovae eax, dword [ebp - 0x58]
push eax
mov eax, dword [ebp - 0x48]
lea edx, [eax*2 + 2]
call fcn.0040e9d0
push esi
push edi
call ebx
push 2
push edi
call fcn.00430080
push 2
push esi
call fcn.00430080
mov byte [ebp - 4], 0xa
add esp, 0x18
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x40f4fc
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40f4f2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f8d6
push edx
push ecx
call fcn.00430080
add esp, 8
xor eax, eax
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
cmp edx, 8
jb 0x40f648
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40f63e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f8db
jmp 0x40f63e
push 0x75300
push 1
push 0x3a8
sub esp, 0x18
lea eax, [edi + 0x15c]
mov ecx, esp
push eax
call fcn.00405f50
lea eax, [ebp - 0x58]
push eax
call fcn.004d08fb
add esp, 0x20
mov byte [ebp - 4], 0xc
cmp dword [eax + 0x14], 8
jb 0x40f586
mov eax, dword [eax]
push eax
push 0x3a8
sub esp, 0x18
mov ecx, esp
push ebx
call fcn.00405f50
lea eax, [ebp - 0x40]
push eax
call fcn.004d08fb
add esp, 0x20
mov byte [ebp - 4], 0xd
cmp dword [eax + 0x14], 8
jb 0x40f5af
mov eax, dword [eax]
push eax
call fcn.004d7447
mov byte [ebp - 4], 0xc
add esp, 0x10
mov edx, dword [ebp - 0x2c]
cmp edx, 8
jb 0x40f5f6
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40f5ec
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f8e0
push edx
push ecx
call fcn.00430080
add esp, 8
xor eax, eax
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
cmp edx, 8
jb 0x40f648
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40f63e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f8e5
push edx
push ecx
call fcn.00430080
add esp, 8
mov edi, dword [ebp - 0x1c8]
mov eax, 0x2aaaaaab
mov ecx, dword [edi + 0x1f0]
sub ecx, dword [edi + 0x1ec]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x40f81b
lea ecx, [ebp - 0x54]
call fcn.004d3eb6
mov byte [ebp - 4], 0xe
mov eax, dword [edi + 0x1f0]
mov esi, dword [edi + 0x1ec]
mov dword [ebp - 0x1c0], eax
cmp esi, eax
je 0x40f75f
push esi
lea ecx, [ebp - 0x70]
call fcn.00405f50
push 0
sub esp, 0x18
mov byte [ebp - 4], 0xf
mov edi, esp
lea eax, [ebp - 0x70]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00405f50
push edi
call fcn.004d07b7
add esp, 0x1c
lea ecx, [ebp - 0x54]
call fcn.004d423a
movzx ebx, al
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x1cc], ebx
test al, al
jne 0x40f726
cmp edx, 0x10
jb 0x40f70f
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40f705
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f8cc
push edx
push ecx
call fcn.00430080
add esp, 8
add esi, 0x18
cmp esi, dword [ebp - 0x1c0]
jne 0x40f697
mov edi, dword [ebp - 0x1c8]
jmp 0x40f761
cmp edx, 0x10
jb 0x40f757
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40f74d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f8ea
push edx
push ecx
call fcn.00430080
add esp, 8
mov edi, dword [ebp - 0x1c8]
jmp 0x40f761
xor ebx, ebx
call fcn.004d5ab1
test al, al
je 0x40f813
mov eax, dword [0x725d28]
test eax, eax
je 0x40f813
cmp dword [eax + 4], 5
jl 0x40f813
sub esp, 0xc
lea ecx, [ebp - 0x1b8]
push 0x8a
push str.CDoOwerInstall::OnDoGreenInstall
push 5
call fcn.0040e3c0
mov dword [ebp - 0x1c0], eax
lea esi, [eax + 0x30]
mov byte [ebp - 4], 0x10
mov edx, str.ower_7z_ins:
mov ecx, esi
call fcn.0040e230
cmp dword [edi + 0xc8], 0x10
lea edx, [edi + 0xb4]
jb 0x40f7c9
mov edx, dword [edx]
mov ecx, esi
call fcn.0040e230
mov edx, str._result:
mov ecx, esi
call fcn.0040e230
push ebx
mov ecx, esi
call fcn.00412810
mov edi, dword [0x725d28]
mov esi, dword [edi + 8]
cmp esi, dword [edi + 0xc]
je 0x40f808
mov ebx, dword [ebp - 0x1c0]
mov ecx, dword [esi]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 4
cmp esi, dword [edi + 0xc]
jne 0x40f7f8
lea ecx, [ebp - 0x1b8]
call fcn.0040e7c0
lea ecx, [ebp - 0x54]
call fcn.004d405d
mov edx, dword [ebp - 0x84]
cmp edx, 8
jb 0x40f85b
mov ecx, dword [ebp - 0x98]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40f851
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f8ef
push edx
push ecx
call fcn.00430080
add esp, 8
mov edx, dword [ebp - 0x14]
xor eax, eax
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 7
mov word [ebp - 0x98], ax
cmp edx, 0x10
jb 0x40f8a8
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40f89e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f8f4
push edx
push ecx
call fcn.00430080
add esp, 8
mov al, byte [ebp - 0x1cc]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042fa05
mov esp, ebp
pop ebp
ret 4
call fcn.0050c210
call fcn.0050c210
call fcn.0050c210
call fcn.0050c210
call fcn.0050c210
call fcn.0050c210
call fcn.0050c210
call fcn.0050c210
call fcn.0050c210
int3