Function at 0x44db50
Capabilities:
Delete directory

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c
lea edx, [ebp + 8]
mov eax, dword [0x57f040]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea edi, [ebp + 0x18]
cmp byte [ecx + 5], 0
je 0x44dc0d
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x44dd6c
mov esi, dword [edx + 0x20]
mov ebx, dword [edx + 0x24]
xor eax, eax
inc eax
lock xadd dword [edi], eax
test eax, eax
jle 0x44dd6f
cmp eax, 0x7fffffff
je 0x44dd72
mov dword [ebp - 0x28], ecx
mov eax, dword [ecx + 0x18]
mov ecx, dword [eax + 4]
call dword [0x5798d8]
push esi
push ebx
push edi
call ecx
add esp, 0xc
mov ebx, eax
lock dec dword [edi]
jne 0x44dbc5
push edi
call fcn.0046a060
add esp, 4
test bl, bl
je 0x44dc03
lea ecx, [ebp + 8]
cmp byte [ecx + 0xc], 0
lea edi, [ebp + 0x18]
je 0x44dc43
cmp byte [ecx + 0x28], 0
mov edx, dword [ebp - 0x28]
je 0x44dc6f
cmp byte [edx + 5], 0
je 0x44dd5d
movzx eax, byte [edx + 4]
mov edx, dword [ecx + 0x20]
push eax
call fcn.0044df00
lea edx, [ebp + 8]
add esp, 4
mov ebx, eax
jmp 0x44dc0f
xor ebx, ebx
lea edi, [ebp + 0x18]
lea edx, [ebp + 8]
jmp 0x44dc0f
xor ebx, ebx
cmp byte [edx + 0xc], 0
je 0x44dc20
lea ecx, [ebp + 8]
call fcn.004b73c0
lea edx, [ebp + 8]
cmp byte [edx + 0x1c], 0
je 0x44dc2d
mov ecx, edi
call fcn.004b73c0
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004e71b0
mov eax, ebx
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret 0x2c
mov eax, dword [ebp - 0x28]
add eax, 0x14
lea ecx, [ebp - 0x20]
push eax
call fcn.004b7140
lea eax, [ebp + 8]
cmp byte [eax + 0x1c], 0
je 0x44dd56
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp - 0x20]
mov edx, edi
push eax
call fcn.0044dd80
jmp 0x44dbf9
cmp byte [ecx + 0x1c], 0
je 0x44dcf2
cmp byte [edx + 5], 0
je 0x44dd5d
movzx eax, byte [edx + 4]
mov esi, edx
mov edx, dword [ecx + 0x20]
mov ebx, ecx
push eax
call fcn.0044df00
add esp, 4
test al, al
jne 0x44dca2
mov ecx, ebx
xor ebx, ebx
mov edx, ecx
jmp 0x44dc0f
add esi, 0x14
lea ecx, [ebp - 0x24]
push esi
call fcn.004b7140
cmp byte [ebx + 0x1c], 0
je 0x44dd56
lea eax, [ebp + 8]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp - 0x24]
mov edx, edi
push eax
call fcn.0044dd80
lea edx, [ebp + 8]
add esp, 4
mov bl, 1
test al, al
jne 0x44dc0f
mov eax, dword [edx + 0x20]
cmp byte [eax + 0xb], 0
jns 0x44dce4
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
xor ebx, ebx
jmp 0x44dc08
mov ebx, dword [ecx + 0x20]
lea esi, [ebp - 0x1c]
mov eax, ecx
mov ecx, ebx
push eax
push esi
call fcn.0046b4c0
mov ecx, ebx
push esi
call fcn.0046a1e0
mov ecx, esi
call fcn.004b73c0
push ebx
call fcn.0045cf30
add esp, 4
test al, al
jne 0x44dd2c
push ebx
call fcn.0045f800
add esp, 4
test al, al
je 0x44dceb
mov ecx, dword [0x584f50]
test ecx, ecx
jne 0x44dd42
call fcn.00429b50
mov ecx, eax
mov dword [0x584f50], eax
push 0x12019f
push 1
push ebx
call fcn.00429df0
mov ebx, eax
jmp 0x44dc08
push str....._third_partylibc_srcincludeoptional:806:_assertion_this__has_value___failed:_optional_operator_called_on_a_disengaged_value_n
jmp 0x44dd62
push str....._third_partylibc_srcincludeoptional:801:_assertion_this__has_value___failed:_optional_operator_called_on_a_disengaged_value_n
push 0x55eb93
call fcn.00516c70
int3
int3
int3