Function at 0x403875
Capabilities:
Delete file

Disassembly:
push ebp
lea ebp, [esp - 0xfa8]
mov eax, 0x1028
call fcn.00406600
mov eax, dword [0x40c17c]
xor eax, ebp
mov dword [ebp + 0xfa4], eax
push ebx
push esi
mov esi, dword [ebp + 0xfb4]
xor ebx, ebx
cmp dword [ebp + 0xfb0], 3
push edi
push 0xa
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x60], ebx
pop edi
je 0x4038d0
push ebx
push ebx
push str.Wrong_number_of_args
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
inc eax
jmp 0x403c22
push 0x4081a4
push dword [esi + 4]
call sub.MSVCR80.dll_strcmp
test eax, eax
pop ecx
pop ecx
je 0x4038ec
push ebx
push ebx
push str.2._arg_is_not__u
jmp 0x4038c1
push 0x40818c
push dword [esi + 8]
call dword [sym.imp.MSVCR80.dll_fopen]
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x68], eax
jne 0x40390c
push ebx
push ebx
push str.could_not_open_logfile
jmp 0x4038c1
push 0x28
call dword [sym.imp.MSVCR80.dll_malloc]
cmp eax, ebx
pop ecx
mov dword [ebp - 0x74], eax
jne 0x40392d
push ebx
mov edi, str.Out_of_memory
call fcn.00401bc8
pop ecx
jmp 0x403c22
push dword [ebp - 0x68]
lea eax, [ebp - 0x5c]
push 0x1000
push eax
call dword [sym.imp.MSVCR80.dll_fgets]
add esp, 0xc
test eax, eax
je 0x4039db
mov ebx, dword [sym.imp.MSVCR80.dll_isspace]
lea eax, [ebp - 0x5c]
dec eax
mov dword [ebp - 0x64], eax
lea eax, [ebp - 0x5c]
push eax
call sub.MSVCR80.dll_strlen
mov esi, eax
mov eax, dword [ebp - 0x64]
movsx eax, byte [eax + esi]
push eax
call ebx
pop ecx
jmp 0x40397a
mov eax, dword [ebp - 0x64]
dec esi
movsx eax, byte [eax + esi]
push eax
call ebx
test eax, eax
pop ecx
jne 0x40396f
lea eax, [ebp - 0x5c]
push eax
mov byte [ebp + esi - 0x5c], 0
call dword [sym.imp.MSVCR80.dll__strdup]
mov edx, dword [ebp - 0x70]
inc dword [ebp - 0x70]
cmp dword [ebp - 0x70], edi
pop ecx
mov ecx, dword [ebp - 0x74]
mov dword [ecx + edx*4], eax
jl 0x4039bd
add edi, 0xa
mov eax, edi
shl eax, 2
push eax
push ecx
call dword [sym.imp.MSVCR80.dll_realloc]
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x74], eax
je 0x403a99
push dword [ebp - 0x68]
lea eax, [ebp - 0x5c]
push 0x1000
push eax
call dword [sym.imp.MSVCR80.dll_fgets]
add esp, 0xc
test eax, eax
jne 0x403957
mov esi, dword [ebp - 0x7c]
xor ebx, ebx
push dword [ebp - 0x68]
call dword [sym.imp.MSVCR80.dll_fclose]
mov dword [esp], 0x40335c
push 4
push dword [ebp - 0x70]
push dword [ebp - 0x74]
call dword [sym.imp.MSVCR80.dll_qsort]
add esp, 0x10
push 0x24
push str.Please_confirm
push str.Are_you_sure_you_want_to_remove_nthis_package_from_your_computer_
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
jne 0x403c20
cmp dword [ebp - 0x70], ebx
mov dword [section..data], 0x80000002
mov edi, 0x4074e8
mov dword [ebp - 0x68], ebx
jle 0x403bad
mov esi, dword [sym.imp.MSVCR80.dll_sscanf]
push 2
pop ebx
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
lea eax, [eax + ecx*4]
push dword [eax]
mov dword [ebp - 0x80], eax
push edi
call sub.MSVCR80.dll_strcmp
test eax, eax
pop ecx
pop ecx
je 0x403b99
mov eax, dword [ebp - 0x80]
mov edi, dword [eax]
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x64]
push eax
push str._d_Root_Key:__s
push edi
call esi
add esp, 0x10
cmp eax, ebx
lea eax, [ebp - 0x5c]
jne 0x403ac1
push str.HKEY_CURRENT_USER
push eax
call sub.MSVCR80.dll_strcmp
test eax, eax
pop ecx
pop ecx
jne 0x403aa0
mov dword [section..data], 0x80000001
jmp 0x403b99
push 0
jmp 0x40391d
call fcn.004028a8
test eax, eax
jne 0x403b99
push 0x10
push eax
push str.You_do_not_seem_to_have_sufficient_access_rights_non_this_machine_to_uninstall_this_software
call dword [sym.imp.USER32.dll_GetFocus]
push eax
jmp 0x4038c2
push eax
lea eax, [ebp - 0x64]
push eax
push str._d_Made_Dir:__s
push edi
call esi
add esp, 0x10
cmp eax, ebx
jne 0x403ae8
push edi
call fcn.0040366d
test eax, eax
pop ecx
je 0x403b48
inc dword [ebp - 0x78]
jmp 0x403b99
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x64]
push eax
push str._d_File_Copy:__s
push edi
call esi
add esp, 0x10
cmp eax, ebx
jne 0x403b12
push edi
call fcn.00403639
test eax, eax
pop ecx
je 0x403b48
inc dword [ebp - 0x6c]
jmp 0x403b99
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x64]
push eax
push str._d_File_Overwrite:__s
push edi
call esi
add esp, 0x10
cmp eax, ebx
je 0x403aff
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x64]
push eax
push str._d_Reg_DB_Key:__s
push edi
call esi
add esp, 0x10
cmp eax, ebx
jne 0x403b5c
push edi
call fcn.00401bc8
jmp 0x403b98
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, ebx
je 0x403b99
cmp eax, 3
je 0x403b99
inc dword [ebp - 0x60]
jmp 0x403b99
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x64]
push eax
push str._d_Reg_DB_Value:__s
push edi
call esi
add esp, 0x10
cmp eax, ebx
jne 0x403b7b
push edi
call fcn.00401bc8
jmp 0x403b98
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x64]
push eax
push str._d_Run_Script:__s
push edi
call esi
add esp, 0x10
cmp eax, ebx
jne 0x403b99
push edi
call fcn.004036a1
pop ecx
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
cmp eax, dword [ebp - 0x70]
jl 0x403a3c
mov esi, dword [ebp - 0x7c]
xor ebx, ebx
push dword [esi + 8]
call dword [sym.imp.kernel32.dll_DeleteFileA]
test eax, eax
je 0x403bbf
inc dword [ebp - 0x6c]
jmp 0x403bd2
inc dword [ebp - 0x60]
call dword [sym.imp.kernel32.dll_GetLastError]
mov edi, dword [esi + 8]
push eax
call fcn.00401bc8
pop ecx
cmp dword [ebp - 0x60], ebx
lea eax, [ebp - 0x5c]
je 0x403bf4
push dword [ebp - 0x60]
push dword [ebp - 0x78]
push dword [ebp - 0x6c]
push str._d_files_and__d_directories_removed_n_d_files_or_directories_could_not_be_removed
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
jmp 0x403c09
push dword [ebp - 0x78]
push dword [ebp - 0x6c]
push str._d_files_and__d_directories_removed
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x40
push str.Uninstall_Finished_
lea eax, [ebp - 0x5c]
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
call fcn.00403370
xor eax, eax
mov ecx, dword [ebp + 0xfa4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004065b0
add ebp, 0xfa8
leave
ret