Function at 0x4027c0
Capabilities:
Delete file

Disassembly:
sub esp, 0x12c
mov eax, dword [0x40bd68]
push ebx
push ebp
push esi
mov ecx, dword [eax]
push edi
lea edx, [esp + 0x1c]
xor edi, edi
push edx
push edi
push eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
xor esi, esi
mov dword [esp + 0x30], edi
mov dword [0x40bd70], edi
call dword [ecx + 0x14]
cmp eax, edi
jl 0x402885
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x10]
push edx
lea edx, [esp + 0x18]
mov ecx, dword [eax]
push edx
push 1
push eax
call dword [ecx + 0xc]
cmp eax, edi
jl 0x40287b
cmp dword [esp + 0x10], edi
je 0x40287b
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x18]
push edx
push eax
mov ecx, dword [eax]
mov dword [esp + 0x20], edi
call dword [ecx + 0x18]
test eax, eax
jl 0x402857
mov ecx, dword [esp + 0x148]
mov eax, dword [esp + 0x18]
cmp ecx, 1
jne 0x402848
cmp eax, edi
jne 0x402851
cmp ecx, 2
jne 0x402857
cmp eax, edi
jne 0x402857
inc dword [0x40bd70]
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x18]
mov edx, dword [eax]
push ecx
push 1
push eax
call dword [edx + 0xc]
cmp eax, edi
jge 0x402817
mov eax, dword [esp + 0x1c]
push eax
mov edx, dword [eax]
call dword [edx + 8]
cmp dword [0x40bd70], edi
jne 0x4028a9
cmp dword [esp + 0x144], edi
jne 0x402add
push str.No_packages_installed._n
call fcn.00402c80
jmp 0x402ada
mov ebx, dword [esp + 0x140]
push 0x4092cc
push ebx
call fcn.004035c0
add esp, 8
cmp eax, edi
mov dword [esp + 0x20], eax
jne 0x4028e6
cmp dword [esp + 0x144], edi
jne 0x402add
push ebx
push str.Cannot_open__s_for_output_n
call fcn.00402c80
add esp, 8
jmp 0x402add
mov eax, dword [esp + 0x144]
mov dword [esp + 0x2c], 1
cmp eax, edi
jne 0x402912
mov eax, dword [0x40bd6c]
push edi
push 0x402df0
push edi
push 0x65
push eax
call dword [sym.imp.USER32.dll_CreateDialogParamA]
mov dword [esp + 0x24], eax
mov eax, dword [0x40bd68]
lea edx, [esp + 0x1c]
push edx
push edi
mov ecx, dword [eax]
push eax
xor ebx, ebx
call dword [ecx + 0x14]
cmp eax, edi
jl 0x402ab1
mov ebp, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x34]
push edx
lea edx, [esp + 0x18]
mov ecx, dword [eax]
push edx
push 1
push eax
call dword [ecx + 0xc]
cmp eax, edi
jl 0x402aa7
cmp dword [esp + 0x34], edi
je 0x402aa7
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x30]
push edx
push eax
mov ecx, dword [eax]
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x38], edi
call dword [ecx + 0x18]
test eax, eax
jl 0x402a6a
mov ecx, dword [esp + 0x148]
mov eax, dword [esp + 0x30]
cmp ecx, 1
jne 0x402996
cmp eax, edi
je 0x402a6a
cmp ecx, 2
jne 0x4029a3
cmp eax, edi
jne 0x402a6a
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x18]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
test eax, eax
jge 0x4029c8
push str.Error:_unable_to_retrieve_the_name_of_a_package_n
call fcn.00403490
add esp, 4
jmp 0x402a65
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x10]
push eax
push 0xffffffffffffffff
push ecx
call fcn.00402be0
add esp, 0xc
test eax, eax
jge 0x4029ec
mov edx, dword [esp + 0x18]
push edx
push str.Error:_error_processing_package_name__ls_n
jmp 0x402a5d
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x38]
push 0x104
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x30]
test eax, eax
jge 0x402a10
mov eax, dword [esp + 0x10]
push eax
push str.Error:_unable_to_retrieve_the_path_of_package__s_n
jmp 0x402a5d
mov ecx, dword [esp + 0x10]
push ecx
call fcn.004027a0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
add esp, 4
lea edx, [esp + 0x38]
push edx
push eax
push ecx
call fcn.00402210
add esp, 0xc
cmp eax, edi
jge 0x402a6a
cmp eax, 0x80030002
jne 0x402a53
mov edx, dword [esp + 0x10]
push edx
push str._Warning:_zip_file_for_package__s_does_not_exist_n
call fcn.00403490
add esp, 8
jmp 0x402a6a
mov eax, dword [esp + 0x10]
push eax
push str._Fatal_error_adding_package__s_n
call fcn.00403490
add esp, 8
mov esi, 1
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x10]
cmp eax, edi
je 0x402a85
push eax
call fcn.004035e0
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x402a90
push eax
call ebp
mov edx, dword [esp + 0x24]
inc ebx
push ebx
push edx
call fcn.00402d80
add esp, 8
cmp esi, edi
je 0x402933
mov eax, dword [esp + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp esi, edi
jne 0x402add
mov edx, dword [esp + 0x20]
push edx
call fcn.00402530
add esp, 4
test eax, eax
jl 0x402ad0
mov dword [esp + 0x28], 1
jmp 0x402add
push str.Failed_to_create_central_directory_n
call fcn.00403490
add esp, 4
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x402b0a
push eax
call fcn.004034d0
mov eax, dword [esp + 0x2c]
add esp, 4
cmp eax, edi
jne 0x402b0a
cmp dword [esp + 0x2c], edi
je 0x402b0a
mov eax, dword [esp + 0x140]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [esp + 0x24]
cmp eax, edi
je 0x402b19
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12c
ret