Function at 0x527430
Capabilities:
Delete directory

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
lea edi, [ebp - 0x38]
sub esp, 0x4c
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ecx, edi
mov dword [esp], ebx
mov dword [ebp - 0x48], eax
call fcn.00629a30
mov eax, dword [ebp - 0x38]
sub esp, 4
mov edx, dword [eax + 4]
test edx, edx
je 0x527810
xor eax, eax
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov word [esp], ax
mov ecx, edi
call fcn.006660c0
sub esp, 0xc
cmp eax, 0xffffffff
jne 0x527860
cmp byte [ebp - 0x48], 0
jne 0x527540
lea esi, [ebp - 0x30]
mov dword [esp], ebx
mov ecx, esi
call fcn.00629a30
lea eax, [ebp - 0x2c]
sub esp, 4
mov dword [esp + 4], esi
mov dword [esp], eax
mov ebx, eax
mov dword [ebp - 0x3c], eax
call fcn.0055d120
mov ecx, ebx
call fcn.00665e50
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
sub esp, 4
test eax, eax
mov eax, dword [ebp - 0x2c]
setne byte [ebp - 0x40]
mov edx, dword [eax]
test edx, edx
je 0x5277f0
cmp edx, 0xffffffff
je 0x5274ef
lock sub dword [eax], 1
mov eax, dword [ebp - 0x2c]
je 0x5277f0
mov eax, dword [ebp - 0x30]
mov edx, dword [eax]
test edx, edx
je 0x527720
cmp edx, 0xffffffff
je 0x527510
lock sub dword [eax], 1
mov eax, dword [ebp - 0x30]
je 0x527720
nop
mov edx, dword [ebp - 0x38]
mov eax, dword [edx]
test eax, eax
je 0x527781
cmp eax, 0xffffffff
je 0x52752f
lock sub dword [edx], 1
mov edx, dword [ebp - 0x38]
je 0x527781
movzx eax, byte [ebp - 0x40]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea ebx, [ebp - 0x2c]
mov dword [esp + 4], edi
mov dword [esp], ebx
mov dword [ebp - 0x3c], ebx
call fcn.00585990
lea esi, [ebp - 0x34]
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.00584870
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], edx
mov edx, dword [eax]
test edx, edx
je 0x5277a5
cmp edx, 0xffffffff
je 0x527586
lock sub dword [eax], 1
je 0x5277a5
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
test edx, edx
je 0x5277cd
cmp edx, 0xffffffff
je 0x5275a5
lock sub dword [eax], 1
mov eax, dword [ebp - 0x2c]
je 0x5277cd
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + 4]
test eax, eax
jle 0x5278a7
xor ebx, ebx
jmp 0x527627
cmp ecx, 0xffffffff
je 0x5275d2
lock sub dword [edx], 1
mov edx, dword [ebp - 0x30]
je 0x5276cb
test eax, eax
je 0x5276f1
sub ebx, 1
call fcn.005859b0
mov dword [esp + 8], 1
mov dword [esp + 4], ebx
mov ecx, edi
mov word [esp], ax
call fcn.00663640
mov ebx, eax
mov eax, dword [ebp - 0x34]
sub esp, 0xc
mov edx, dword [eax]
test edx, edx
je 0x527740
cmp edx, 0xffffffff
je 0x52761d
lock sub dword [eax], 1
mov eax, dword [ebp - 0x34]
je 0x527740
test ebx, ebx
mov eax, ebx
jle 0x527510
mov ecx, dword [ebp - 0x3c]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00666500
sub esp, 8
cmp dword [ebp - 0x24], 2
jne 0x52767b
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
mov eax, dword [eax]
lea edx, [ecx + ecx]
add eax, dword [eax + 0xc]
mov dword [ebp - 0x40], eax
movzx eax, word [eax + edx]
lea ecx, [eax - 0x41]
cmp ecx, 0x39
ja 0x527760
lea ecx, [eax - 0x5b]
cmp ecx, 5
jbe 0x527760
mov eax, dword [ebp - 0x40]
cmp word [edx + eax + 2], 0x3a
je 0x527898
mov eax, dword [ebp - 0x3c]
mov ecx, esi
mov dword [esp], eax
call fcn.005fe320
sub esp, 4
xor edx, edx
mov eax, esi
call fcn.004a1120
test al, al
mov byte [ebp - 0x40], al
je 0x5276f7
lea eax, [ebp - 0x30]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.0055d120
lea ecx, [ebp - 0x30]
call fcn.00665e50
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov edx, dword [ebp - 0x30]
sub esp, 4
mov ecx, dword [edx]
test ecx, ecx
jne 0x5275c0
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], edx
mov dword [ebp - 0x44], eax
call fcn.004a4c50
mov eax, dword [ebp - 0x44]
test eax, eax
jne 0x5275da
test ebx, ebx
setne byte [ebp - 0x40]
mov eax, dword [ebp - 0x34]
mov edx, dword [eax]
test edx, edx
je 0x527720
cmp edx, 0xffffffff
je 0x527510
lock sub dword [eax], 1
mov eax, dword [ebp - 0x34]
jne 0x527510
lea esi, [esi]
lea edi, [edi]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call fcn.004a4c50
jmp 0x527510
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call fcn.004a4c50
jmp 0x52761d
cmp eax, 0x7f
mov dword [ebp - 0x44], edx
jbe 0x52767b
call fcn.0058e7f0
test al, al
mov edx, dword [ebp - 0x44]
je 0x52767b
jmp 0x52766c
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], edx
call fcn.004a4c50
movzx eax, byte [ebp - 0x40]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x34]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call fcn.004a4c50
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
test edx, edx
jne 0x527593
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call fcn.004a4c50
jmp 0x5275a5
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call fcn.004a4c50
jmp 0x5274ef
lea eax, [ebp - 0x2c]
mov dword [esp + 4], str.Empty_filename_passed_to_function
mov dword [ebp - 0x2c], 2
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [esp], eax
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0x7459f0
call fcn.0072013c
call dword [sym.imp.msvcrt.dll__errno]
mov dword [eax], 0x16
mov edx, dword [ebp - 0x38]
mov byte [ebp - 0x40], 0
jmp 0x527513
lea eax, [ebp - 0x2c]
mov dword [esp + 4], str.Broken_filename_passed_to_function
mov dword [ebp - 0x2c], 2
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [esp], eax
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0x7459f0
call fcn.0072013c
jmp 0x527846
movzx eax, byte [ebp - 0x48]
mov edx, dword [ebp - 0x38]
mov byte [ebp - 0x40], al
jmp 0x527513
movzx eax, byte [ebp - 0x48]
mov byte [ebp - 0x40], al
jmp 0x527513