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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x456193
mov eax, dword fs:[0]
push eax
sub esp, 0x160
mov eax, dword [0x46b664]
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 0x45c600
push ebx
call fcn.0041d7b0
test eax, eax
setne al
mov byte [ebx + 0x65], al
test al, al
je 0x40ef03
push 7
push str.__force
lea eax, [ebx + 0xe0]
call fcn.004105e0
push 0x45c61c
push ebx
call fcn.0041d7b0
test eax, eax
jne 0x40ef21
push 0x45c62c
push ebx
call fcn.0041d7b0
test eax, eax
je 0x40ef26
mov eax, 1
mov byte [ebx + 0x66], al
test al, al
je 0x40ef3f
push 8
push 0x45c630
lea eax, [ebx + 0xe0]
call fcn.004105e0
push str.nodlg
push ebx
call fcn.0041d7b0
test eax, eax
setne al
mov byte [ebx + 0x69], al
test al, al
je 0x40ef68
push 7
push str.__noDLG
lea eax, [ebx + 0xe0]
call fcn.004105e0
push str.repair
push ebx
call fcn.0041d7b0
test eax, eax
setne al
mov byte [ebx + 0x6a], al
test al, al
je 0x40ef91
push 8
push str.__repair
lea eax, [ebx + 0xe0]
call fcn.004105e0
push str.list
push ebx
call fcn.0041d7b0
test eax, eax
je 0x40efcf
push str.list
push ebx
call fcn.0041d7b0
lea esi, [ebx + 0x70]
mov ecx, eax
lea edi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x40efb3
sub ecx, edi
sar ecx, 1
push ecx
call fcn.0040eba0
mov ecx, esi
call fcn.00416bf0
push str.createserver
push ebx
call fcn.0041d7b0
test eax, eax
setne al
mov byte [ebx + 0x67], al
push str.updateserver
push ebx
call fcn.0041d7b0
test eax, eax
setne al
mov byte [ebx + 0x68], al
cmp byte [ebx + 0x67], 0
jne 0x40efff
test al, al
je 0x40f076
push str.dest
push ebx
call fcn.0041d7b0
test eax, eax
je 0x40f03b
push str.dest
push ebx
call fcn.0041d7b0
mov ecx, eax
lea esi, [ecx + 2]
mov edi, edi
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x40f020
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebx + 0xfc]
call fcn.0040eba0
cmp dword [ebx + 0x10c], 0
je 0x40f076
lea esi, [ebx + 0xe0]
push 8
push str.__dest_
mov eax, esi
call fcn.004105e0
push 0xffffffffffffffff
push 0
lea ecx, [ebx + 0xfc]
push ecx
call fcn.004104f0
push 1
push 0x45c6e8
mov eax, esi
call fcn.004105e0
push 0x45c6ec
push ebx
call fcn.0041d7b0
test eax, eax
jne 0x40f0a3
push 0x45c6f0
push ebx
call fcn.0041d7b0
test eax, eax
jne 0x40f0a3
push 0x45c6f4
push ebx
call fcn.0041d7b0
test eax, eax
je 0x40f0a8
mov eax, 1
mov byte [ebx + 0x6b], al
test al, al
je 0x40f0c1
push 6
push str.__help
lea eax, [ebx + 0xe0]
call fcn.004105e0
push str.extract
push ebx
call fcn.0041d7b0
test eax, eax
je 0x40f109
push str.extract
push ebx
call fcn.0041d7b0
mov ecx, eax
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x40f0e0
sub ecx, esi
sar ecx, 1
lea edi, [ebx + 0x8c]
push ecx
mov esi, edi
call fcn.0040eba0
push 0xb
push str.__extract_
jmp 0x40f199
push 0x45c738
push ebx
call fcn.0041d7b0
test eax, eax
je 0x40f156
push 0x45c738
push ebx
call fcn.0041d7b0
mov ecx, eax
lea esi, [ecx + 2]
jmp 0x40f130
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x40f130
sub ecx, esi
sar ecx, 1
lea edi, [ebx + 0x8c]
push ecx
mov esi, edi
call fcn.0040eba0
push 5
push 0x45c73c
jmp 0x40f199
push str.xtract
push ebx
call fcn.0041d7b0
test eax, eax
je 0x40f1be
push str.xtract
push ebx
call fcn.0041d7b0
mov ecx, eax
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x40f175
sub ecx, esi
sar ecx, 1
lea edi, [ebx + 0x8c]
push ecx
mov esi, edi
call fcn.0040eba0
push 0xa
push str.__xtract_
lea esi, [ebx + 0xe0]
mov eax, esi
call fcn.004105e0
push 0xffffffffffffffff
push 0
push edi
call fcn.004104f0
push 1
push 0x45c6e8
mov eax, esi
call fcn.004105e0
xor edi, edi
cmp dword [ebx + 0x9c], edi
je 0x40f48c
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.00416bf0
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x30]
push ecx
lea ecx, [ebp - 0x4c]
call fcn.004169b0
mov byte [ebp - 4], 3
mov edi, 8
cmp dword [ebp - 0x38], edi
jb 0x40f228
mov edx, dword [ebp - 0x4c]
push edx
call fcn.00431dda
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.00416f40
test al, al
je 0x40f32e
cmp dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x30]
jae 0x40f253
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40f2c8
and al, 0x10
cmp al, 0x10
sete al
test al, al
je 0x40f2c8
push 0x20
push str.SapSelfX
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call fcn.00424d30
lea ecx, [ebp - 0x16c]
push ecx
call fcn.0040ddf0
add esp, 0x10
mov byte [ebp - 4], 5
test eax, eax
je 0x40f299
add eax, 0x10
jmp 0x40f29b
xor eax, eax
push str.Extracting_to:
push eax
call fcn.0040de50
lea edx, [ebp - 0x30]
push edx
push eax
call fcn.0040e870
add esp, 0x10
mov byte [ebp - 4], 3
lea eax, [ebp - 0x16c]
push eax
call fcn.0040dd70
jmp 0x40f45f
mov byte [ebx + 0x6c], 1
push 0x45
push str.SapSelfX
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call fcn.00424d30
lea ecx, [ebp - 0x16c]
push ecx
call fcn.0040ddf0
add esp, 0x10
mov byte [ebp - 4], 6
test eax, eax
je 0x40f2fb
add eax, 0x10
jmp 0x40f2fd
xor eax, eax
push str.Path_to_extract_archive_is_not_a_directory:
push eax
call fcn.0040de50
lea edx, [ebp - 0x30]
push edx
push eax
call fcn.0040e870
add esp, 0x10
mov byte [ebp - 4], 3
lea eax, [ebp - 0x16c]
push eax
call fcn.0040dd70
mov byte [ebx + 0x64], 0
jmp 0x40f45f
mov byte [ebx + 0x6c], 1
mov byte [ebp - 4], 7
push 0
lea ecx, [ebp - 0x30]
call fcn.00417020
push 0x20
push str.SapSelfX
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call fcn.00424d30
lea ecx, [ebp - 0x16c]
push ecx
call fcn.0040ddf0
add esp, 0x10
mov byte [ebp - 4], 8
test eax, eax
je 0x40f36f
add eax, 0x10
jmp 0x40f371
xor eax, eax
push str.Creating_directory
push eax
call fcn.0040de50
mov esi, eax
lea edx, [ebp - 0x30]
push edx
push esi
call fcn.0040e870
push 0x45c7ec
push esi
call fcn.0040de50
add esp, 0x18
mov byte [ebp - 4], 7
lea eax, [ebp - 0x16c]
push eax
call fcn.0040dd70
mov byte [ebx + 0x6c], 0
mov dword [ebp - 4], 3
jmp 0x40f45f
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1c], 8
jb 0x40f478
mov edx, dword [ebp - 0x30]
push edx
call fcn.00431dda
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.0041d7b0
test eax, eax
je 0x40f4d6
push str.detach
push ebx
call fcn.0041d7b0
mov ecx, eax
lea esi, [ecx + 2]
jmp 0x40f4b0
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x40f4b0
sub ecx, esi
sar ecx, 1
lea edi, [ebx + 0xa8]
push ecx
mov esi, edi
call fcn.0040eba0
push 0xa
push str.__detach_
jmp 0x40f519
push 0x45c860
push ebx
call fcn.0041d7b0
test eax, eax
je 0x40f53e
push 0x45c860
push ebx
call fcn.0041d7b0
mov ecx, eax
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x40f4f5
sub ecx, esi
sar ecx, 1
lea edi, [ebx + 0xa8]
push ecx
mov esi, edi
call fcn.0040eba0
push 5
push 0x45c864
lea esi, [ebx + 0xe0]
mov eax, esi
call fcn.004105e0
push 0xffffffffffffffff
push 0
push edi
call fcn.004104f0
push 1
push 0x45c6e8
mov eax, esi
call fcn.004105e0
cmp dword [ebx + 0xb8], 0
je 0x40f94a
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.00416bf0
mov dword [ebp - 4], 0xd
lea edx, [ebp - 0x4c]
push edx
lea ecx, [ebp - 0x30]
call fcn.004169b0
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 0x40f5c1
mov eax, dword [ebp - 0x4c]
push eax
call fcn.00431dda
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 0x40f5dc
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40f753
and al, 0x10
cmp al, 0x10
sete al
test al, al
je 0x40f753
mov dword [ebp - 0x38], 7
mov dword [ebp - 0x3c], 0
xor edx, edx
mov word [ebp - 0x4c], dx
push 3
mov eax, 0x45c870
lea esi, [ebp - 0x4c]
call fcn.0040eba0
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0xbc]
push eax
xor ecx, ecx
call fcn.0041acb0
add esp, 4
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0xa0]
push ecx
mov ecx, eax
call fcn.00415eb0
mov byte [ebp - 4], 0x12
mov edx, esi
push edx
lea ecx, [ebp - 0x84]
push ecx
mov ecx, eax
call fcn.004166c0
mov byte [ebp - 4], 0x13
lea edx, [ebp - 0x30]
push edx
mov ecx, eax
lea edi, [ebp - 0x68]
call fcn.00415c80
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 0x40f694
mov eax, dword [ebp - 0x68]
push eax
call fcn.00431dda
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 0x40f6c0
mov edx, dword [ebp - 0x84]
push edx
call fcn.00431dda
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 0x40f6eb
mov ecx, dword [ebp - 0xa0]
push ecx
call fcn.00431dda
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 0x40f71c
mov eax, dword [ebp - 0xbc]
push eax
call fcn.00431dda
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 0x40f747
mov edx, dword [ebp - 0x4c]
push edx
call fcn.00431dda
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.00416f40
test al, al
je 0x40f84b
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
cmp dword [0x46f734], 0
je 0x40f7ac
push 0x46f710
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [0x46f6e8], esi
mov dword [0x46f6ec], 0x45baac
mov dword [0x46f6f0], 1
mov ecx, 0x45
mov word [0x46f6f4], cx
mov byte [0x46f6f6], 0
lea edx, [ebp - 0x16c]
push edx
call fcn.0040ddf0
add esp, 4
mov byte [ebp - 4], 0x19
test eax, eax
je 0x40f7c8
add eax, 0x10
jmp 0x40f7ca
xor eax, eax
push str.Path_to_detach_archive_to_exists:
push eax
call fcn.0040de50
lea ecx, [ebp - 0x30]
push ecx
push eax
call fcn.0040e870
mov byte [ebp - 4], 0x1a
lea edx, [ebp - 0x16c]
push edx
call fcn.00424d80
add esp, 0x14
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x10c]
call fcn.0040db60
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.0042fd7b
add esp, 4
push 0
mov eax, 0x45c490
lea esi, [ebx + 0xa8]
call fcn.0040eba0
mov byte [ebx + 0x64], 0
jmp 0x40f900
lea edx, [ebp - 0x30]
push edx
lea ecx, [ebp - 0x4c]
call fcn.00415ff0
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x4c]
call fcn.00416f40
test al, al
jne 0x40f8d6
push 0x45
push str.SapSelfX
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call fcn.00424d30
lea eax, [ebp - 0x16c]
push eax
call fcn.0040ddf0
add esp, 0x10
mov byte [ebp - 4], 0x1d
test eax, eax
je 0x40f896
add eax, 0x10
jmp 0x40f898
xor eax, eax
push str.Folder_to_detach_archive_to_does_not_exist:
push eax
call fcn.0040de50
lea ecx, [ebp - 0x4c]
push ecx
push eax
call fcn.0040e870
add esp, 0x10
mov byte [ebp - 4], 0x1c
lea edx, [ebp - 0x16c]
push edx
call fcn.0040dd70
push 0
mov eax, 0x45c490
lea esi, [ebx + 0xa8]
call fcn.0040eba0
mov byte [ebx + 0x64], 0
mov byte [ebp - 4], 0xd
cmp dword [ebp - 0x38], 8
jb 0x40f8ec
mov eax, dword [ebp - 0x4c]
push eax
call fcn.00431dda
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 0x40f91d
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 0x40f936
mov eax, dword [ebp - 0x30]
push eax
call fcn.00431dda
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.0041d7b0
test eax, eax
je 0x40f98b
push str.extcmd
push ebx
call fcn.0041d7b0
mov ecx, eax
lea esi, [ecx + 2]
lea esp, [esp]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x40f970
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebx + 0xc4]
call fcn.0040eba0
cmp dword [ebx + 0xd4], 0
je 0x40fa9e
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
cmp dword [0x46f734], 0
je 0x40f9e1
push 0x46f710
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [0x46f6e8], esi
mov dword [0x46f6ec], 0x45baac
mov dword [0x46f6f0], 1
mov edx, 0x20
mov word [0x46f6f4], dx
mov byte [0x46f6f6], 0
lea eax, [ebp - 0x16c]
push eax
call fcn.0040ddf0
add esp, 4
mov dword [ebp - 4], 0x20
test eax, eax
je 0x40fa00
add eax, 0x10
jmp 0x40fa02
xor eax, eax
lea edi, [ebx + 0xc4]
push edi
push str.The_external_commandline_is:
push eax
call fcn.0040de50
add esp, 8
push eax
call fcn.0040e870
mov dword [ebp - 4], 0x21
lea ecx, [ebp - 0x16c]
push ecx
call fcn.00424d80
add esp, 0xc
or esi, 0xffffffff
mov dword [ebp - 4], esi
lea ecx, [ebp - 0x10c]
call fcn.0040db60
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.0042fd7b
add esp, 4
lea esi, [ebx + 0xe0]
push 9
push str._extcmd_
mov eax, esi
call fcn.004105e0
push 0xffffffffffffffff
push 0
push edi
call fcn.004104f0
push 1
push 0x45c6e8
mov eax, esi
call fcn.004105e0
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.00431de5
mov esp, ebp
pop ebp
ret 4