Function at 0x45dd50
Capabilities:
Delete directory
Delete file
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
mov dword [ebp - 0x54], 0
push 0x47957c
push 1
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp + 8]
call fcn.00404b90
push eax
call fcn.00402e30
add esp, 8
mov byte [ebp - 0x29], al
lea ecx, [ebp - 0x30]
call fcn.00404e70
movzx ecx, byte [ebp - 0x29]
test ecx, ecx
je 0x45ddb5
lea ecx, [ebp + 8]
call fcn.00401ce0
sub eax, 1
push eax
lea edx, [ebp - 0x34]
push edx
lea ecx, [ebp + 8]
call fcn.00404c20
push eax
lea ecx, [ebp + 8]
call fcn.004022f0
lea ecx, [ebp - 0x34]
call fcn.00404e70
lea ecx, [ebp - 0x18]
call fcn.0042b1b3
lea ecx, [ebp - 0x1c]
call fcn.00404e50
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
push 0x4795d0
lea edx, [ebp - 0x1c]
push edx
call fcn.00405b30
add esp, 0x10
push 0
lea ecx, [ebp - 0x1c]
call fcn.004024e0
push eax
lea ecx, [ebp - 0x18]
call fcn.0042b241
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x45ded9
lea ecx, [ebp - 0x18]
call fcn.0042b011
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x18]
call fcn.0042b176
test eax, eax
jne 0x45ded4
lea ecx, [ebp - 0x18]
call fcn.004082f0
test eax, eax
je 0x45de89
lea ecx, [ebp - 0x24]
call fcn.00404e50
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x18]
call fcn.0042b4d1
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp + 8]
push edx
push 0x4795dc
lea eax, [ebp - 0x24]
push eax
call fcn.00405b30
add esp, 0x10
lea ecx, [ebp - 0x38]
call fcn.00404e70
push ecx
mov ecx, esp
mov dword [ebp - 0x3c], esp
lea edx, [ebp + 0xc]
push edx
call fcn.00401880
push ecx
mov ecx, esp
mov dword [ebp - 0x40], esp
lea eax, [ebp - 0x24]
push eax
call fcn.00401880
call fcn.0045dd50
add esp, 8
lea ecx, [ebp - 0x24]
call fcn.00404e70
jmp 0x45ded4
lea ecx, [ebp - 0x28]
call fcn.00404e50
lea ecx, [ebp - 0x44]
push ecx
lea ecx, [ebp - 0x18]
call fcn.0042b4d1
mov edx, dword [eax]
push edx
mov eax, dword [ebp + 8]
push eax
push 0x4795e8
lea ecx, [ebp - 0x28]
push ecx
call fcn.00405b30
add esp, 0x10
lea ecx, [ebp - 0x44]
call fcn.00404e70
lea ecx, [ebp - 0x28]
call fcn.004024e0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x28]
call fcn.00404e70
jmp 0x45ddf4
lea ecx, [ebp - 0x18]
call fcn.0042af41
lea ecx, [ebp + 8]
call fcn.004024e0
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
je 0x45df12
or dword [ebp - 0x54], 1
lea edx, [ebp + 8]
push edx
push str.Remove_Dir_Success:
lea eax, [ebp - 0x4c]
push eax
call fcn.004015e0
add esp, 0xc
mov dword [ebp - 0x58], eax
jmp 0x45df2e
or dword [ebp - 0x54], 2
lea ecx, [ebp + 8]
push ecx
push str.Remove_Dir_Failed:
lea edx, [ebp - 0x50]
push edx
call fcn.004015e0
add esp, 0xc
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x48]
call fcn.004024e0
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov ecx, dword [ebp - 0x54]
and ecx, 2
je 0x45df57
and dword [ebp - 0x54], 0xfffffffd
lea ecx, [ebp - 0x50]
call fcn.00404e70
mov edx, dword [ebp - 0x54]
and edx, 1
je 0x45df6b
and dword [ebp - 0x54], 0xfffffffe
lea ecx, [ebp - 0x4c]
call fcn.00404e70
lea ecx, [ebp - 0x1c]
call fcn.00404e70
lea ecx, [ebp - 0x18]
call fcn.0042b1d9
lea ecx, [ebp + 8]
call fcn.00404e70
lea ecx, [ebp + 0xc]
call fcn.00404e70
mov esp, ebp
pop ebp
ret