Function at 0x40ec90
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x456a93
mov eax, dword fs:[0]
push eax
sub esp, 0x160
mov eax, dword [0x46c664]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, dword [ebp + 8]
mov dword [ebp - 0xc0], ebx
push 0x45d600
push ebx
call fcn.0041dc00
test eax, eax
setne al
mov byte [ebx + 0x65], al
test al, al
je 0x40ecf3
push 7
push str.__force
lea eax, [ebx + 0xe0]
call fcn.004103d0
push 0x45d61c
push ebx
call fcn.0041dc00
test eax, eax
jne 0x40ed11
push 0x45d62c
push ebx
call fcn.0041dc00
test eax, eax
je 0x40ed16
mov eax, 1
mov byte [ebx + 0x66], al
test al, al
je 0x40ed2f
push 8
push 0x45d630
lea eax, [ebx + 0xe0]
call fcn.004103d0
push str.nodlg
push ebx
call fcn.0041dc00
test eax, eax
setne al
mov byte [ebx + 0x69], al
test al, al
je 0x40ed58
push 7
push str.__noDLG
lea eax, [ebx + 0xe0]
call fcn.004103d0
push str.repair
push ebx
call fcn.0041dc00
test eax, eax
setne al
mov byte [ebx + 0x6a], al
test al, al
je 0x40ed81
push 8
push str.__repair
lea eax, [ebx + 0xe0]
call fcn.004103d0
push str.list
push ebx
call fcn.0041dc00
test eax, eax
je 0x40edbf
push str.list
push ebx
call fcn.0041dc00
lea esi, [ebx + 0x70]
mov ecx, eax
lea edi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x40eda3
sub ecx, edi
sar ecx, 1
push ecx
call fcn.0040e990
mov ecx, esi
call fcn.00416b30
push str.createserver
push ebx
call fcn.0041dc00
test eax, eax
setne al
mov byte [ebx + 0x67], al
push str.updateserver
push ebx
call fcn.0041dc00
test eax, eax
setne al
mov byte [ebx + 0x68], al
cmp byte [ebx + 0x67], 0
jne 0x40edef
test al, al
je 0x40ee66
push str.dest
push ebx
call fcn.0041dc00
test eax, eax
je 0x40ee2b
push str.dest
push ebx
call fcn.0041dc00
mov ecx, eax
lea esi, [ecx + 2]
mov edi, edi
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x40ee10
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebx + 0xfc]
call fcn.0040e990
cmp dword [ebx + 0x10c], 0
je 0x40ee66
lea esi, [ebx + 0xe0]
push 8
push str.__dest_
mov eax, esi
call fcn.004103d0
push 0xffffffffffffffff
push 0
lea ecx, [ebx + 0xfc]
push ecx
call fcn.004102e0
push 1
push 0x45d6e8
mov eax, esi
call fcn.004103d0
push 0x45d6ec
push ebx
call fcn.0041dc00
test eax, eax
jne 0x40ee93
push 0x45d6f0
push ebx
call fcn.0041dc00
test eax, eax
jne 0x40ee93
push 0x45d6f4
push ebx
call fcn.0041dc00
test eax, eax
je 0x40ee98
mov eax, 1
mov byte [ebx + 0x6b], al
test al, al
je 0x40eeb1
push 6
push str.__help
lea eax, [ebx + 0xe0]
call fcn.004103d0
push str.extract
push ebx
call fcn.0041dc00
test eax, eax
je 0x40eef9
push str.extract
push ebx
call fcn.0041dc00
mov ecx, eax
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x40eed0
sub ecx, esi
sar ecx, 1
lea edi, [ebx + 0x8c]
push ecx
mov esi, edi
call fcn.0040e990
push 0xb
push str.__extract_
jmp 0x40ef89
push 0x45d738
push ebx
call fcn.0041dc00
test eax, eax
je 0x40ef46
push 0x45d738
push ebx
call fcn.0041dc00
mov ecx, eax
lea esi, [ecx + 2]
jmp 0x40ef20
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x40ef20
sub ecx, esi
sar ecx, 1
lea edi, [ebx + 0x8c]
push ecx
mov esi, edi
call fcn.0040e990
push 5
push 0x45d73c
jmp 0x40ef89
push str.xtract
push ebx
call fcn.0041dc00
test eax, eax
je 0x40efae
push str.xtract
push ebx
call fcn.0041dc00
mov ecx, eax
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x40ef65
sub ecx, esi
sar ecx, 1
lea edi, [ebx + 0x8c]
push ecx
mov esi, edi
call fcn.0040e990
push 0xa
push str.__xtract_
lea esi, [ebx + 0xe0]
mov eax, esi
call fcn.004103d0
push 0xffffffffffffffff
push 0
push edi
call fcn.004102e0
push 1
push 0x45d6e8
mov eax, esi
call fcn.004103d0
xor edi, edi
cmp dword [ebx + 0x9c], edi
je 0x40f27c
mov esi, 7
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], edi
xor edx, edx
mov word [ebp - 0x4c], dx
push edi
lea eax, [ebx + 0x8c]
push eax
or eax, 0xffffffff
lea ecx, [ebp - 0x4c]
call fcn.00401a90
mov dword [ebp - 4], edi
lea ecx, [ebp - 0x4c]
call fcn.00416b30
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x30]
push ecx
lea ecx, [ebp - 0x4c]
call fcn.004168f0
mov byte [ebp - 4], 3
mov edi, 8
cmp dword [ebp - 0x38], edi
jb 0x40f018
mov edx, dword [ebp - 0x4c]
push edx
call fcn.0043266a
add esp, 4
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], 0
xor eax, eax
mov word [ebp - 0x4c], ax
lea ecx, [ebp - 0x30]
call fcn.00416e80
test al, al
je 0x40f11e
cmp dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x30]
jae 0x40f043
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40f0b8
and al, 0x10
cmp al, 0x10
sete al
test al, al
je 0x40f0b8
push 0x20
push str.SapSelfX
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call fcn.00425480
lea ecx, [ebp - 0x16c]
push ecx
call fcn.0040dbc0
add esp, 0x10
mov byte [ebp - 4], 5
test eax, eax
je 0x40f089
add eax, 0x10
jmp 0x40f08b
xor eax, eax
push str.Extracting_to:
push eax
call fcn.0040dc20
lea edx, [ebp - 0x30]
push edx
push eax
call fcn.0040e660
add esp, 0x10
mov byte [ebp - 4], 3
lea eax, [ebp - 0x16c]
push eax
call fcn.0040db40
jmp 0x40f24f
mov byte [ebx + 0x6c], 1
push 0x45
push str.SapSelfX
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call fcn.00425480
lea ecx, [ebp - 0x16c]
push ecx
call fcn.0040dbc0
add esp, 0x10
mov byte [ebp - 4], 6
test eax, eax
je 0x40f0eb
add eax, 0x10
jmp 0x40f0ed
xor eax, eax
push str.Path_to_extract_archive_is_not_a_directory:
push eax
call fcn.0040dc20
lea edx, [ebp - 0x30]
push edx
push eax
call fcn.0040e660
add esp, 0x10
mov byte [ebp - 4], 3
lea eax, [ebp - 0x16c]
push eax
call fcn.0040db40
mov byte [ebx + 0x64], 0
jmp 0x40f24f
mov byte [ebx + 0x6c], 1
mov byte [ebp - 4], 7
push 0
lea ecx, [ebp - 0x30]
call fcn.00416f60
push 0x20
push str.SapSelfX
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call fcn.00425480
lea ecx, [ebp - 0x16c]
push ecx
call fcn.0040dbc0
add esp, 0x10
mov byte [ebp - 4], 8
test eax, eax
je 0x40f15f
add eax, 0x10
jmp 0x40f161
xor eax, eax
push str.Creating_directory
push eax
call fcn.0040dc20
mov esi, eax
lea edx, [ebp - 0x30]
push edx
push esi
call fcn.0040e660
push 0x45d7ec
push esi
call fcn.0040dc20
add esp, 0x18
mov byte [ebp - 4], 7
lea eax, [ebp - 0x16c]
push eax
call fcn.0040db40
mov byte [ebx + 0x6c], 0
mov dword [ebp - 4], 3
jmp 0x40f24f
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1c], 8
jb 0x40f268
mov edx, dword [ebp - 0x30]
push edx
call fcn.0043266a
add esp, 4
mov dword [ebp - 0x1c], 7
mov dword [ebp - 0x20], 0
xor eax, eax
mov word [ebp - 0x30], ax
push str.detach
push ebx
call fcn.0041dc00
test eax, eax
je 0x40f2c6
push str.detach
push ebx
call fcn.0041dc00
mov ecx, eax
lea esi, [ecx + 2]
jmp 0x40f2a0
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x40f2a0
sub ecx, esi
sar ecx, 1
lea edi, [ebx + 0xa8]
push ecx
mov esi, edi
call fcn.0040e990
push 0xa
push str.__detach_
jmp 0x40f309
push 0x45d860
push ebx
call fcn.0041dc00
test eax, eax
je 0x40f32e
push 0x45d860
push ebx
call fcn.0041dc00
mov ecx, eax
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x40f2e5
sub ecx, esi
sar ecx, 1
lea edi, [ebx + 0xa8]
push ecx
mov esi, edi
call fcn.0040e990
push 5
push 0x45d864
lea esi, [ebx + 0xe0]
mov eax, esi
call fcn.004103d0
push 0xffffffffffffffff
push 0
push edi
call fcn.004102e0
push 1
push 0x45d6e8
mov eax, esi
call fcn.004103d0
cmp dword [ebx + 0xb8], 0
je 0x40f73a
mov esi, 7
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], 0
xor ecx, ecx
mov word [ebp - 0x30], cx
lea eax, [ebx + 0xa8]
push ecx
push eax
or eax, 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.00401a90
mov dword [ebp - 4], 0xc
lea ecx, [ebp - 0x30]
call fcn.00416b30
mov dword [ebp - 4], 0xd
lea edx, [ebp - 0x4c]
push edx
lea ecx, [ebp - 0x30]
call fcn.004168f0
mov byte [ebp - 4], 0xe
push 0
push eax
or eax, 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.00401a90
mov byte [ebp - 4], 0xd
mov edi, 8
cmp dword [ebp - 0x38], edi
jb 0x40f3b1
mov eax, dword [ebp - 0x4c]
push eax
call fcn.0043266a
add esp, 4
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], 0
xor ecx, ecx
mov word [ebp - 0x4c], cx
cmp dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x30]
jae 0x40f3cc
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40f543
and al, 0x10
cmp al, 0x10
sete al
test al, al
je 0x40f543
mov dword [ebp - 0x38], 7
mov dword [ebp - 0x3c], 0
xor edx, edx
mov word [ebp - 0x4c], dx
push 3
mov eax, 0x45d870
lea esi, [ebp - 0x4c]
call fcn.0040e990
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0xbc]
push eax
xor ecx, ecx
call fcn.0041b0c0
add esp, 4
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0xa0]
push ecx
mov ecx, eax
call fcn.00415df0
mov byte [ebp - 4], 0x12
mov edx, esi
push edx
lea ecx, [ebp - 0x84]
push ecx
mov ecx, eax
call fcn.00416600
mov byte [ebp - 4], 0x13
lea edx, [ebp - 0x30]
push edx
mov ecx, eax
lea edi, [ebp - 0x68]
call fcn.00415bc0
mov byte [ebp - 4], 0x14
push 0
push eax
or eax, 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.00401a90
mov byte [ebp - 4], 0x13
cmp dword [ebp - 0x54], 8
jb 0x40f484
mov eax, dword [ebp - 0x68]
push eax
call fcn.0043266a
add esp, 4
mov esi, 7
mov dword [ebp - 0x54], esi
xor edi, edi
mov dword [ebp - 0x58], edi
xor ecx, ecx
mov word [ebp - 0x68], cx
mov byte [ebp - 4], 0x12
cmp dword [ebp - 0x70], 8
jb 0x40f4b0
mov edx, dword [ebp - 0x84]
push edx
call fcn.0043266a
add esp, 4
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x74], edi
xor eax, eax
mov word [ebp - 0x84], ax
mov byte [ebp - 4], 0x11
cmp dword [ebp - 0x8c], 8
jb 0x40f4db
mov ecx, dword [ebp - 0xa0]
push ecx
call fcn.0043266a
add esp, 4
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x90], edi
xor edx, edx
mov word [ebp - 0xa0], dx
mov byte [ebp - 4], 0x10
cmp dword [ebp - 0xa8], 8
jb 0x40f50c
mov eax, dword [ebp - 0xbc]
push eax
call fcn.0043266a
add esp, 4
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0xac], edi
xor ecx, ecx
mov word [ebp - 0xbc], cx
mov byte [ebp - 4], 0xd
cmp dword [ebp - 0x38], 8
jb 0x40f537
mov edx, dword [ebp - 0x4c]
push edx
call fcn.0043266a
add esp, 4
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], edi
xor eax, eax
mov word [ebp - 0x4c], ax
lea ecx, [ebp - 0x30]
call fcn.00416e80
test al, al
je 0x40f63b
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
cmp dword [0x470734], 0
je 0x40f59c
push 0x470710
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [0x4706e8], esi
mov dword [0x4706ec], 0x45caac
mov dword [0x4706f0], 1
mov ecx, 0x45
mov word [0x4706f4], cx
mov byte [0x4706f6], 0
lea edx, [ebp - 0x16c]
push edx
call fcn.0040dbc0
add esp, 4
mov byte [ebp - 4], 0x19
test eax, eax
je 0x40f5b8
add eax, 0x10
jmp 0x40f5ba
xor eax, eax
push str.Path_to_detach_archive_to_exists:
push eax
call fcn.0040dc20
lea ecx, [ebp - 0x30]
push ecx
push eax
call fcn.0040e660
mov byte [ebp - 4], 0x1a
lea edx, [ebp - 0x16c]
push edx
call fcn.004254d0
add esp, 0x14
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x10c]
call fcn.0040d930
lea eax, [ebp - 0x10c]
mov dword [ebp - 0xc0], eax
mov dword [ebp - method.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.virtual_0], vtable.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.0
mov byte [ebp - 4], 0xd
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
mov ecx, eax
push ecx
call fcn.0043060b
add esp, 4
push 0
mov eax, 0x45d498
lea esi, [ebx + 0xa8]
call fcn.0040e990
mov byte [ebx + 0x64], 0
jmp 0x40f6f0
lea edx, [ebp - 0x30]
push edx
lea ecx, [ebp - 0x4c]
call fcn.00415f30
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x4c]
call fcn.00416e80
test al, al
jne 0x40f6c6
push 0x45
push str.SapSelfX
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call fcn.00425480
lea eax, [ebp - 0x16c]
push eax
call fcn.0040dbc0
add esp, 0x10
mov byte [ebp - 4], 0x1d
test eax, eax
je 0x40f686
add eax, 0x10
jmp 0x40f688
xor eax, eax
push str.Folder_to_detach_archive_to_does_not_exist:
push eax
call fcn.0040dc20
lea ecx, [ebp - 0x4c]
push ecx
push eax
call fcn.0040e660
add esp, 0x10
mov byte [ebp - 4], 0x1c
lea edx, [ebp - 0x16c]
push edx
call fcn.0040db40
push 0
mov eax, 0x45d498
lea esi, [ebx + 0xa8]
call fcn.0040e990
mov byte [ebx + 0x64], 0
mov byte [ebp - 4], 0xd
cmp dword [ebp - 0x38], 8
jb 0x40f6dc
mov eax, dword [ebp - 0x4c]
push eax
call fcn.0043266a
add esp, 4
mov dword [ebp - 0x38], 7
mov dword [ebp - 0x3c], 0
xor ecx, ecx
mov word [ebp - 0x4c], cx
cmp dword [ebx + 0xb8], 0
je 0x40f70d
push 0
lea edx, [ebp - 0x30]
push edx
or eax, 0xffffffff
lea ecx, [ebx + 0xa8]
call fcn.00401a90
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1c], 8
jb 0x40f726
mov eax, dword [ebp - 0x30]
push eax
call fcn.0043266a
add esp, 4
mov dword [ebp - 0x1c], 7
mov dword [ebp - 0x20], 0
xor ecx, ecx
mov word [ebp - 0x30], cx
push str.extcmd
push ebx
call fcn.0041dc00
test eax, eax
je 0x40f77b
push str.extcmd
push ebx
call fcn.0041dc00
mov ecx, eax
lea esi, [ecx + 2]
lea esp, [esp]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x40f760
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebx + 0xc4]
call fcn.0040e990
cmp dword [ebx + 0xd4], 0
je 0x40f88e
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
cmp dword [0x470734], 0
je 0x40f7d1
push 0x470710
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [0x4706e8], esi
mov dword [0x4706ec], 0x45caac
mov dword [0x4706f0], 1
mov edx, 0x20
mov word [0x4706f4], dx
mov byte [0x4706f6], 0
lea eax, [ebp - 0x16c]
push eax
call fcn.0040dbc0
add esp, 4
mov dword [ebp - 4], 0x20
test eax, eax
je 0x40f7f0
add eax, 0x10
jmp 0x40f7f2
xor eax, eax
lea edi, [ebx + 0xc4]
push edi
push str.The_external_commandline_is:
push eax
call fcn.0040dc20
add esp, 8
push eax
call fcn.0040e660
mov dword [ebp - 4], 0x21
lea ecx, [ebp - 0x16c]
push ecx
call fcn.004254d0
add esp, 0xc
or esi, 0xffffffff
mov dword [ebp - 4], esi
lea ecx, [ebp - 0x10c]
call fcn.0040d930
lea edx, [ebp - 0x10c]
mov dword [ebp - 0xc0], edx
mov dword [ebp - method.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.virtual_0], vtable.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.0
mov dword [ebp - 4], esi
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
mov eax, edx
push eax
call fcn.0043060b
add esp, 4
lea esi, [ebx + 0xe0]
push 9
push str._extcmd_
mov eax, esi
call fcn.004103d0
push 0xffffffffffffffff
push 0
push edi
call fcn.004102e0
push 1
push 0x45d6e8
mov eax, esi
call fcn.004103d0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00432675
mov esp, ebp
pop ebp
ret 4