Function at 0x471540
Capabilities:
Delete directory
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4bc4e2
mov eax, dword fs:[0]
push eax
sub esp, 0x190
mov eax, dword [0x4ea160]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x14]
or esi, 0xffffffff
mov ecx, dword [ebp + 0x18]
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x190], ecx
test eax, eax
je 0x471892
lea ecx, [ebp - 0x188]
mov dword [ebp - method.FCPathName.virtual_0], vtable.FCPathName.0
mov dword [ebp - method.FCString.virtual_0], vtable.FCString.0
call fcn.00451b70
push 0
push 0x200
lea ecx, [ebp - 0x188]
call fcn.00450e40
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x18c]
call fcn.004537a0
mov dword [ebp - 4], 1
mov esi, 0x471180
mov eax, dword [ebp - 0x17c]
lea ecx, [ebp - 0x18c]
push dword [ebp - 0x178]
test eax, eax
cmovne esi, eax
mov dword [ebp - 0x17c], esi
call fcn.00453660
lea ecx, [ebp - 0x18c]
call fcn.00453b70
test eax, eax
je 0x4716a9
mov ebx, esi
cmp dword [edi], 0
je 0x471638
mov eax, dword [ebp - 0x184]
push 1
push dword [eax + 0x14]
call fcn.00471470
add esp, 8
mov eax, dword [ebp - 0x184]
push dword [eax + 0x14]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x4716a2
mov esi, dword [edi]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [ebp - 0x190]
mov dword [ebp - 0x178], eax
test esi, esi
mov eax, dword [ebp - 0x184]
mov ecx, 0x101
push 0
push dword [eax + 0x14]
lea eax, [ebp - 0x178]
push eax
mov eax, 0x10101
cmove eax, ecx
push eax
call ebx
mov esi, eax
add esp, 0x14
cmp esi, 0x1004
jne 0x471698
mov dword [edi], 1
jmp 0x471620
cmp esi, 4
je 0x471620
jmp 0x47186f
xor esi, esi
jmp 0x47186f
lea ecx, [ebp - 0x174]
call fcn.00453f30
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x19c]
mov dword [ebp - method.FCString.virtual_0], vtable.FCString.0
call fcn.00451b70
push 0
push 0x100
lea ecx, [ebp - 0x19c]
call fcn.00450e40
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x19c]
mov eax, dword [ebp - 0x184]
push dword [eax + 0x14]
push 0x100
call fcn.00450e40
push 0x4cdc00
lea ecx, [ebp - 0x19c]
call fcn.00450850
mov eax, dword [ebp - 0x198]
lea ecx, [ebp - 0x174]
push dword [eax + 0x14]
call fcn.00489c00
lea ecx, [ebp - 0x174]
call fcn.00489c40
test eax, eax
je 0x47176a
nop
lea ecx, [ebp - 0x174]
call fcn.00489cb0
push dword [ebp - 0x190]
push esi
mov eax, dword [eax + 4]
push ebx
push edi
push dword [eax + 0x14]
call fcn.00471540
add esp, 0x14
cmp eax, 3
je 0x4717fc
lea ecx, [ebp - 0x174]
call fcn.00489c40
test eax, eax
jne 0x471730
lea ecx, [ebp - 0x174]
call fcn.00489c20
mov ebx, dword [ebp - 0x17c]
nop dword [eax + eax]
cmp dword [edi], 0
je 0x471798
mov eax, dword [ebp - 0x184]
push 1
push dword [eax + 0x14]
call fcn.00471470
add esp, 8
mov eax, dword [ebp - 0x184]
push dword [eax + 0x14]
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test eax, eax
jne 0x47184f
mov esi, dword [edi]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [ebp - 0x190]
mov dword [ebp - 0x178], eax
test esi, esi
mov eax, dword [ebp - 0x184]
mov ecx, 0x201
push 0
push dword [eax + 0x14]
lea eax, [ebp - 0x178]
push eax
mov eax, 0x10201
cmove eax, ecx
push eax
call ebx
mov esi, eax
add esp, 0x14
cmp esi, 0x1004
jne 0x471844
mov dword [edi], 1
jmp 0x471780
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x19c]
call fcn.00450480
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x174]
call fcn.00454140
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - method.FCPathName.virtual_0], vtable.FCPathName.0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x188]
call fcn.00450480
mov eax, 3
jmp 0x471894
cmp esi, 4
je 0x471780
jmp 0x471851
xor esi, esi
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x19c]
call fcn.00450480
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x174]
call fcn.00454140
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - method.FCPathName.virtual_0], vtable.FCPathName.0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x188]
call fcn.00450480
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0044f18f
mov esp, ebp
pop ebp
ret