Function at 0x403820
Capabilities:
Delete directory

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x88
mov esi, eax
mov edi, edx
mov ebx, ecx
push eax
call fcn.0041f190
add esp, 0x10
cmp eax, 0
jle 0x403e00
push eax
push eax
push ebx
push esi
call fcn.00426740
add esp, 0x10
mov dword [ebp - 0x80], eax
test eax, eax
je 0x404135
mov ebx, dword [0x4e00b8]
cmp ebx, 0x10
jbe switch.0x00403a1e
mov eax, dword [0x4e00c8]
cmp eax, 1
je 0x403e18
cmp eax, 2
jne 0x403890
mov eax, dword [ebp - 0x80]
mov edx, dword [eax + 0x28]
or edx, 0x800000
mov dword [eax + 0x28], edx
lea esi, [esi]
push eax
push eax
push 2
mov eax, dword [ebp - 0x80]
push eax
call fcn.00427120
add esp, 0x10
test eax, eax
je 0x403ec8
mov eax, dword [ebp + 8]
mov dword [ebp - 0x7c], 1
test eax, eax
je 0x40407b
push eax
push eax
mov eax, dword [ebp + 8]
push eax
push edi
call fcn.00426460
add esp, 0x10
mov dword [ebp - 0x78], eax
test eax, eax
je 0x40402d
mov ecx, dword [0x4af1f0]
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x78]
call fcn.00401420
mov ecx, dword [ebp - 0x78]
sub esp, 0xc
mov esi, dword [ecx]
push esi
call fcn.0041ee20
add esp, 0x10
mov dword [ebp - 0x68], eax
test eax, eax
je 0x40425f
cmp dword [0x4e0008], 7
je 0x40406f
mov ecx, dword [ebp - 0x80]
mov dl, byte [ecx + 0x2b]
mov ecx, dword [ebp - 0x78]
and edx, 0xffffff80
mov al, byte [ecx + 0x2b]
and eax, 0x7f
or eax, edx
mov byte [ecx + 0x2b], al
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x78]
mov dl, byte [eax + 0x2c]
mov al, byte [ecx + 0x2c]
and edx, 1
and eax, 0xfffffffe
or eax, edx
mov byte [ecx + 0x2c], al
mov edi, dword [0x4af020]
test edi, edi
jne 0x403e2c
push ebx
push ebx
push 0
mov ecx, dword [ebp - 0x80]
push ecx
call fcn.00427300
mov dword [ebp - 0x70], eax
pop eax
pop edx
mov edx, dword [ebp - 0x80]
mov al, byte [edx + 0x28]
and eax, 7
and eax, 0xff
push eax
mov eax, dword [ebp - 0x78]
push eax
call fcn.00426920
add esp, 0x10
test eax, eax
je 0x40404e
mov ecx, dword [ebp - 0x78]
xor edi, edi
add ecx, 0x94
mov dword [ebp - 0x64], ecx
lea esi, [esi]
mov eax, dword [0x4e0018]
test eax, eax
je 0x403a25
mov eax, dword [ebp - 0x64]
sub esp, 0xc
mov edx, dword [ebp - 0x78]
mov dword [eax], 0
mov ebx, dword [edx]
push edx
call fcn.004267e0
add esp, 0x10
test eax, eax
je 0x40418e
sub esp, 0xc
mov ecx, dword [ebp - 0x80]
mov ebx, dword [ecx]
push ecx
call fcn.004267e0
add esp, 0x10
test eax, eax
je 0x4041ac
test edi, edi
je 0x403a07
lea esi, [esi]
mov eax, dword [edi + 8]
test eax, eax
je 0x403eb2
sub esp, 0xc
push eax
call fcn.004267e0
pop eax
mov eax, dword [edi + 4]
push eax
call sub.msvcrt.dll__unlink
add esp, 0x10
mov edi, dword [edi]
test edi, edi
jne 0x4039e0
sub esp, 0xc
mov esi, dword [ebp - 0x68]
push esi
call sub.msvcrt.dll__rmdir
add esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
jmp dword [ebx*4 + 0x4b3c48]
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x40399d
mov eax, dword [ebp - 0x70]
sub esp, 0xc
mov eax, dword [eax]
push eax
call fcn.0041ebf0
add esp, 0x10
test eax, eax
je 0x4040ea
push 0
mov ecx, dword [ebp - 0x70]
mov ebx, dword [ecx]
push ebx
push 0x4b3bb1
mov ecx, dword [ebp - 0x68]
push ecx
call fcn.00496df0
mov dword [ebp - 0x6c], eax
pop eax
lea eax, [ebp - 0x38]
pop edx
push eax
mov eax, dword [ebp - 0x6c]
push eax
call sub.msvcrt.dll__stat
add esp, 0x10
test eax, eax
js 0x403ac4
sub esp, 0xc
mov esi, dword [ebp - 0x6c]
push esi
call fcn.0041ee20
add esp, 0x10
mov esi, eax
test eax, eax
je 0x404220
sub esp, 0xc
push 0xc
call fcn.00496770
mov ebx, eax
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], 0
push 0
mov edx, dword [ebp - 0x70]
mov edi, ebx
mov eax, dword [edx]
push eax
push 0x4b3bb1
push esi
call fcn.00496df0
add esp, 0x20
mov dword [ebp - 0x6c], eax
mov eax, dword [0x4e0278]
mov dword [ebp - 0x74], 0
test eax, eax
jne 0x403c80
sub esp, 0xc
push 0xc
call fcn.00496770
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x84], eax
mov dword [eax + 4], edx
mov dword [eax], edi
mov dword [eax + 8], 0
pop eax
pop edx
push 1
mov eax, dword [ebp - 0x70]
push eax
call fcn.00427120
add esp, 0x10
mov esi, eax
test eax, eax
je 0x403c64
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x403d90
xor ebx, ebx
push edi
push edi
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
call fcn.00426460
add esp, 0x10
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x40410e
test esi, esi
jne 0x403cc0
test bl, bl
je 0x403c40
push esi
push esi
mov edx, dword [ebp - 0x70]
lea ecx, [ebp - 0x5c]
mov eax, dword [edx + 4]
push ecx
push edx
call dword [eax + 0xfc]
add esp, 0x10
test eax, eax
jne 0x403db1
mov edi, dword [ebp - 0x48]
test edi, edi
js 0x403f8c
push 0
push 0
push 0
mov esi, dword [ebp - 0x70]
push esi
call fcn.00423710
add esp, 0x10
test eax, eax
jne 0x403f6b
mov ecx, dword [0x4e0268]
test ecx, ecx
jne 0x404005
sub esp, 0xc
push 0x2000
call fcn.00496770
add esp, 0x10
mov dword [ebp - 0x88], eax
test edi, edi
je 0x403fb2
xor esi, esi
jmp 0x403be8
push eax
mov eax, dword [ebp - 0x60]
push eax
push ebx
mov ecx, dword [ebp - 0x88]
push ecx
call fcn.00423500
add esp, 0x10
cmp ebx, eax
jne 0x403fe3
add esi, ebx
cmp edi, esi
jle 0x403fb2
mov ebx, edi
sub ebx, esi
cmp ebx, 0x2000
jle 0x403bf9
mov ebx, 0x2000
push eax
mov eax, dword [ebp - 0x70]
push eax
push ebx
mov eax, dword [ebp - 0x88]
push eax
call fcn.004230d0
add esp, 0x10
cmp ebx, eax
je 0x403bc1
push 0
push 0
mov eax, dword [ebp - 0x70]
push eax
push 0
call fcn.0041f2b0
pop eax
mov eax, dword [ebp - 0x88]
push eax
call fcn.004ae988
mov ebx, 1
add esp, 0x10
jmp 0x403dc8
sub esp, 0xc
mov ecx, dword [ebp - 0x6c]
push ecx
call sub.msvcrt.dll__unlink
mov dword [0x4e0018], 1
add esp, 0x10
mov edi, dword [ebp - 0x84]
jmp 0x403990
push str.Unable_to_recognise_the_format_of_file
push 0
mov eax, dword [ebp - 0x70]
mov bl, 1
push eax
push 0
call fcn.0041f2b0
add esp, 0x10
jmp 0x403b1e
push esi
push esi
mov ecx, dword [ebp - 0x70]
lea edx, [ebp - 0x38]
mov eax, dword [ecx + 4]
push edx
push ecx
call dword [eax + 0xfc]
add esp, 0x10
mov dword [ebp - 0x74], eax
test eax, eax
je 0x403ad8
push ebx
push ebx
mov ecx, dword [ebp - 0x70]
mov ecx, dword [ecx]
push ecx
push str.internal_stat_error_on__s
call fcn.0041f170
add esp, 0x10
jmp 0x403ad8
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x70]
call fcn.00401da0
test eax, eax
sete al
xor ebx, ebx
mov bl, al
test ebx, ebx
je 0x403cf2
sub esp, 0xc
mov eax, dword [ebp - 0x70]
push eax
call fcn.00424de0
add esp, 0x10
test eax, eax
je 0x403b4e
sub esp, 0xc
mov edi, dword [ebp - 0x60]
push edi
call fcn.004267e0
add esp, 0x10
test eax, eax
je 0x403ddf
lea esi, [esi]
test ebx, ebx
jne 0x403c40
mov edx, dword [0x4e0278]
test edx, edx
je 0x403d40
mov eax, dword [ebp - 0x74]
test eax, eax
jne 0x403d40
lea ecx, [ebp - 0x38]
push eax
push eax
push ecx
mov eax, dword [ebp - 0x6c]
push eax
call fcn.00407770
add esp, 0x10
nop
lea esi, [esi]
push eax
push eax
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 0x6c]
push eax
call fcn.00426740
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x84]
mov ebx, dword [ebp - 0x70]
mov dword [edx + 8], eax
mov dword [ecx], eax
add eax, 0x90
mov dword [ebp - 0x64], eax
pop esi
pop edi
push ebx
mov ecx, dword [ebp - 0x80]
push ecx
call fcn.00427300
pop edx
mov ebx, eax
mov eax, dword [ebp - 0x70]
push eax
call fcn.004267e0
add esp, 0x10
mov dword [ebp - 0x70], ebx
jmp 0x403c59
push eax
push eax
mov ecx, dword [ebp - 0x70]
xor ebx, ebx
mov eax, dword [ecx + 4]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x6c]
push eax
call fcn.00426460
add esp, 0x10
mov dword [ebp - 0x60], eax
jmp 0x403b33
push 0
push 0
mov ebx, dword [ebp - 0x70]
push ebx
push 0
mov ebx, 1
call fcn.0041f2b0
add esp, 0x10
sub esp, 0xc
mov edi, dword [ebp - 0x60]
push edi
call fcn.004262b0
add esp, 0x10
test eax, eax
jne 0x403d10
push 0
push 0
push 0
mov esi, dword [ebp - 0x6c]
push esi
call fcn.0041f2b0
add esp, 0x10
mov dword [0x4e0018], 1
jmp 0x403d10
je 0x403ff0
mov dword [0x4e0018], 1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [ebp - 0x80]
mov ebx, dword [ecx + 0x28]
or ebx, 0x1800000
mov dword [ecx + 0x28], ebx
jmp 0x403890
mov esi, dword [ecx + 0x28]
or esi, 0x40000
mov dword [ecx + 0x28], esi
jmp 0x40394a
mov edx, dword [ebp - 0x80]
mov eax, dword [edx + 0x28]
or eax, 0x100000
mov dword [edx + 0x28], eax
mov eax, dword [0x4e00c8]
cmp eax, 1
jne 0x403878
jmp 0x403e18
mov eax, dword [ebp - 0x80]
mov edx, dword [eax + 0x28]
mov ecx, edx
and edx, 0xfe00001f
shr ecx, 5
and ecx, 0xfffff
or ch, 0x40
mov eax, ecx
shl eax, 5
or edx, eax
mov eax, dword [ebp - 0x80]
cmp ebx, 5
mov dword [eax + 0x28], edx
je case.0x403a1e.0
or ecx, 0x20000
and edx, 0xfe00001f
shl ecx, 5
or edx, ecx
mov dword [eax + 0x28], edx
mov eax, dword [0x4e00c8]
cmp eax, 1
jne 0x403878
jmp 0x403e18
sub esp, 0xc
mov eax, dword [edi + 4]
push eax
call sub.msvcrt.dll__rmdir
add esp, 0x10
mov edi, dword [edi]
jmp 0x403a03
lea eax, [ebp - 0x10]
push ebx
push eax
push 1
mov ecx, dword [ebp - 0x80]
push ecx
call fcn.00426a90
add esp, 0x10
test eax, eax
je 0x404153
mov edx, dword [ebp + 8]
test edx, edx
je 0x40424f
push eax
push eax
mov eax, dword [ebp + 8]
push eax
push edi
call fcn.00426460
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x40402d
mov ecx, dword [0x4af1f0]
mov edx, dword [ebp - 0x80]
call fcn.00401420
mov ecx, dword [ebp + 0xc]
mov edx, ebx
mov eax, dword [ebp - 0x80]
call fcn.00401da0
test eax, eax
jne 0x4040c7
mov dword [0x4e0018], 1
sub esp, 0xc
push ebx
call fcn.004262b0
add esp, 0x10
test eax, eax
sete al
test al, al
je 0x404092
mov dword [0x4e0018], 1
push 0
push 0
push 0
push edi
call fcn.0041f2b0
add esp, 0x10
jmp 0x403e10
sub esp, 0xc
mov ebx, dword [ebp - 0x70]
push ebx
call fcn.0041ec90
mov dword [esp], eax
mov ebx, 1
call fcn.0041f3a0
add esp, 0x10
jmp 0x403dc8
sub esp, 0xc
mov ecx, dword [ebp - 0x70]
mov ebx, 1
push ecx
call fcn.0041ec90
pop edi
pop edx
push eax
push str.stat_returns_negative_size_for___s
call fcn.0041f170
add esp, 0x10
jmp 0x403dc8
push eax
push eax
mov ax, word [ebp - 0x56]
xor ebx, ebx
or ah, 1
and eax, 0xffff
push eax
mov edx, dword [ebp - 0x60]
mov eax, dword [edx]
push eax
call sub.msvcrt.dll__chmod
pop eax
mov eax, dword [ebp - 0x88]
push eax
call fcn.004ae988
add esp, 0x10
jmp 0x403dc8
push 0
push 0
mov edx, dword [ebp - 0x60]
push edx
jmp 0x403c1a
push eax
push eax
push esi
push str.error:_the_input_file__s_is_empty
call fcn.0041f170
add esp, 0x10
jmp 0x403e06
mov eax, dword [ebp - 0x60]
sub esp, 0xc
mov edx, dword [ebp - 0x70]
mov ebx, dword [eax]
push edx
call fcn.0041ec90
add esp, 0xc
push ebx
push eax
push str.copy_from___s__unknown__to___s__unknown__n
call fcn.00401a00
add esp, 0x10
jmp 0x403b9f
push 0
push 0
push 0
push edi
call fcn.0041f2b0
mov dword [0x4e0018], 1
add esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [0x4e0018], 1
push 0
push 0
mov eax, dword [ebp - 0x78]
push eax
push 0
call fcn.0041f2b0
add esp, 0x10
jmp 0x403a07
mov eax, dword [ebp - 0x78]
and byte [eax + 0x2b], 0x7f
jmp 0x403925
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x7c], 0
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov dword [ebp + 8], eax
jmp 0x4038ba
sub esp, 0xc
mov eax, dword [ebp - 0x80]
push eax
call fcn.004267e0
add esp, 0x10
test eax, eax
jne 0x403e10
mov dword [0x4e0018], 1
push 0
push 0
push 0
push esi
call fcn.0041f2b0
add esp, 0x10
jmp 0x403e10
mov eax, dword [0x4e0018]
test eax, eax
jne 0x403f34
sub esp, 0xc
push ebx
call fcn.004267e0
add esp, 0x10
test eax, eax
sete al
jmp 0x403f45
push eax
push eax
mov edx, dword [ebp - 0x70]
mov esi, dword [edx]
push esi
push str.illegal_pathname_found_in_archive_member:__s
call fcn.0041f170
add esp, 0x10
mov dword [0x4e0018], 1
jmp 0x4039d8
push 0
push 0
push 0
mov eax, dword [ebp - 0x6c]
push eax
call fcn.0041f2b0
mov edi, dword [ebp - 0x84]
add esp, 0x10
mov dword [0x4e0018], 1
jmp 0x4039d8
push 0
push 0
push 0
push esi
call fcn.0041f2b0
add esp, 0x10
mov dword [0x4e0018], 1
jmp 0x403e10
call fcn.004238e0
mov ebx, eax
push eax
lea eax, [ebp - 0x14]
push eax
push 3
mov eax, dword [ebp - 0x80]
push eax
call fcn.00426a90
add esp, 0x10
test eax, eax
je 0x4041ca
cmp ebx, 0xd
jne 0x403ee3
sub esp, 0xc
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.004ae988
add esp, 0x10
jmp 0x403ee3
mov dword [0x4e0018], 1
push 0
push 0
push 0
push ebx
call fcn.0041f2b0
add esp, 0x10
jmp 0x4039bf
mov dword [0x4e0018], 1
push 0
push 0
push 0
push ebx
call fcn.0041f2b0
add esp, 0x10
jmp 0x4039d8
call fcn.004238e0
mov edi, eax
cmp ebx, eax
je 0x4041e1
sub esp, 0xc
push ebx
call fcn.00424660
add esp, 0x10
push 0
push 0
push 0
push esi
call fcn.0041f2b0
add esp, 0x10
cmp ebx, 0xd
je 0x40427c
cmp edi, 0xd
jne 0x403e06
sub esp, 0xc
mov eax, dword [ebp - 0x14]
push eax
call fcn.0041f240
pop eax
mov eax, dword [ebp - 0x14]
push eax
call fcn.004ae988
add esp, 0x10
jmp 0x403e06
call sub.msvcrt.dll__errno
sub esp, 0xc
mov ebx, dword [eax]
push ebx
call sub.msvcrt.dll_strerror
pop edx
pop ecx
push eax
push str.cannot_create_tempdir_for_archive_copying__error:__s_
call fcn.0041f170
add esp, 0x10
mov dword [0x4e0018], 1
jmp 0x4039d8
mov edx, dword [ebp - 0x80]
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov dword [ebp + 8], eax
jmp 0x403eee
call sub.msvcrt.dll__errno
sub esp, 0xc
mov ebx, dword [eax]
push ebx
call sub.msvcrt.dll_strerror
pop edx
pop ecx
push eax
push str.cannot_create_tempdir_for_archive_copying__error:__s_
call fcn.0041f940
sub esp, 0xc
mov edx, dword [ebp - 0x10]
push edx
call fcn.0041f240
pop eax
mov eax, dword [ebp - 0x10]
push eax
call fcn.004ae988
add esp, 0x10
jmp 0x4041f9