Function at 0x414107
Capabilities:
Delete directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x414401
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x38
push ebx
push esi
push edi
push 3
mov eax, dword [ebp + 8]
push eax
call fcn.0041366d
add esp, 8
push 0x409900
push str.Removing_Program_Files__Directories
push 0x409900
push 0x409900
mov ecx, dword [ebp + 8]
add ecx, 0x68
call fcn.004098d0
mov ecx, eax
call fcn.004098d0
mov ecx, eax
call fcn.00417095
mov ecx, eax
call fcn.004098d0
mov dword [ebp - 0x10], 0
jmp 0x414176
inc dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
add ecx, 0x34
call fcn.00403070
cmp eax, dword [ebp - 0x10]
jle 0x4143c1
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x1c]
cmp dword [ecx + eax*4], 2
jne 0x4143ae
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xd8]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x4141be
xor eax, eax
jmp 0x41440b
mov dword [ebp - 0x14], 0
jmp 0x4141cd
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x48
call fcn.004156d0
lea ecx, [eax + 0x3c]
call fcn.00403070
cmp eax, dword [ebp - 0x14]
jle 0x4143ae
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
jmp 0x414203
inc dword [ebp - 0x1c]
mov ecx, dword [ebp + 8]
add ecx, 0x34
call fcn.00403070
cmp eax, dword [ebp - 0x1c]
jle 0x414281
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x1c], eax
je 0x41427c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebp - 0x1c]
cmp dword [eax + ecx*4], 1
jne 0x41427c
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x48
call fcn.004156d0
lea ecx, [eax + 0x3c]
call fcn.00403180
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x48
call fcn.004156d0
add eax, 0x3c
push eax
call fcn.0040a691
add esp, 8
test eax, eax
je 0x41427c
mov dword [ebp - 0x18], 1
jmp 0x414200
cmp dword [ebp - 0x18], 0
jne 0x4143a9
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x48
call fcn.004156d0
lea ecx, [eax + 0x3c]
call fcn.00403180
push eax
lea ecx, [ebp - 0x28]
call fcn.00425cdf
mov dword [ebp - 4], 0
mov ecx, dword [ebp + 8]
add ecx, 0xc
call fcn.00403130
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00409caf
add esp, 8
test eax, eax
jne 0x41431a
sub esp, 0x64
mov dword [ebp - 0x2c], esp
push 1
mov eax, dword [ebp + 8]
add eax, 0x5c
push eax
mov ecx, dword [ebp - 0x2c]
call fcn.00415590
mov byte [ebp - 4], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
push eax
sub esp, 0xc
mov dword [ebp - 0x30], esp
lea eax, [ebp - 0x28]
push eax
mov ecx, dword [ebp - 0x30]
call fcn.00425cdf
mov byte [ebp - 4], 2
mov byte [ebp - 4], 0
call fcn.00412b80
add esp, 0x74
mov eax, dword [ebp + 8]
cmp dword [eax + 0x18], 0
jne 0x41439d
sub esp, 0xc
mov dword [ebp - 0x34], esp
lea eax, [ebp - 0x28]
push eax
mov ecx, dword [ebp - 0x34]
call fcn.00425cdf
mov byte [ebp - 4], 3
lea eax, [ebp - 0x40]
push eax
mov byte [ebp - 4], 0
call fcn.00408bc5
add esp, 0x10
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x28]
call fcn.00425e30
mov byte [ebp - 4], 0
call fcn.004143d4
lea ecx, [ebp - 0x28]
call fcn.00403130
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
sub esp, 0xc
mov dword [ebp - 0x44], esp
lea eax, [ebp - 0x28]
push eax
mov ecx, dword [ebp - 0x44]
call fcn.00425cdf
mov byte [ebp - 4], 5
mov byte [ebp - 4], 0
call fcn.00408f1b
add esp, 0xc
cmp eax, 1
jg 0x414327
mov dword [ebp - 4], 0xffffffff
call fcn.004143f8
jmp 0x4141ca
push 1
mov eax, dword [ebp + 8]
push eax
call fcn.0041366d
add esp, 8
jmp 0x414173
mov eax, 1
jmp 0x41440b
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret