Function at 0x4049fc
Capabilities:
Create directory
Delete directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push edi
mov edi, eax
mov ecx, edi
call fcn.00404ec3
test al, al
je 0x404a17
xor eax, eax
jmp 0x404c13
mov eax, dword [edi]
mov eax, dword [eax - 0xc]
xor ecx, ecx
cmp eax, 2
push esi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ecx
jl 0x404a5b
cmp eax, ecx
mov esi, 0x80070057
jge 0x404a3c
push esi
call fcn.0040319b
mov eax, dword [edi]
cmp byte [eax], 0x5c
jne 0x404a5b
cmp dword [eax - 0xc], 1
jge 0x404a4f
push esi
call fcn.0040319b
mov eax, dword [edi]
cmp byte [eax + 1], 0x5c
mov byte [ebp - 1], 1
je 0x404a5f
mov byte [ebp - 1], 0
push ebx
mov ebx, 0x420aec
push ebx
lea esi, [ebp - 0x14]
call fcn.004032f7
lea eax, [ebp - 0x20]
push edi
push eax
mov eax, esi
call fcn.00404c16
mov eax, dword [ebp - 0x14]
pop ecx
pop ecx
add eax, 0xfffffff0
call fcn.00402f79
cmp byte [ebp - 1], 0
je 0x404adb
push 0
lea edi, [ebp - 0x20]
call fcn.00402bd1
push 0
call fcn.00402bd1
push 0x420a04
lea esi, [ebp - 0x14]
call fcn.004032f7
xor eax, eax
cmp dword [ebp - 0x1c], eax
jle 0x404ae5
mov esi, dword [ebp - 0x20]
mov eax, dword [esi]
push dword [eax - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.00402f2b
lea eax, [ebp - 0x14]
mov edi, esi
call fcn.00402d6c
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
call fcn.00402f79
jmp 0x404ade
mov esi, dword [ebp - 0x20]
xor eax, eax
cmp dword [ebp - 0x1c], eax
jg 0x404af4
push eax
push eax
push 1
push 0xc000008c
call dword [sym.imp.KERNEL32.dll_RaiseException]
mov eax, dword [esi]
sub eax, 0x10
call fcn.00402f91
mov esi, eax
mov eax, dword [ebp - 0x1c]
add esi, 0x10
dec eax
cmp byte [ebp + 8], 0
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], eax
je 0x404b16
inc dword [ebp - 0xc]
xor eax, eax
inc eax
cmp dword [ebp - 0xc], eax
mov dword [ebp - 0x14], eax
jle 0x404bff
lea eax, [esi - 0x10]
call fcn.00402f91
add eax, 0x10
mov ecx, ebx
mov dword [ebp - 8], eax
call fcn.00402f1b
push eax
push ebx
lea eax, [ebp - 8]
push eax
call fcn.00402f2b
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x20]
call fcn.00406b90
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
lea eax, [ebp - 8]
push eax
call fcn.00402f2b
mov edi, dword [ebp - 8]
push 0
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x404ba9
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
mov dword [ebp - 8], eax
je 0x404bb9
cmp dword [ebp - 0x14], 1
jle 0x404b8c
push esi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
lea eax, [edi - 0x10]
call fcn.00402f79
lea eax, [esi - 0x10]
call fcn.00402f79
lea edi, [ebp - 0x20]
call fcn.00402dac
mov eax, dword [ebp - 8]
jmp 0x404c11
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x404bb9
lea eax, [ebp - 8]
push eax
call fcn.004069f1
mov ecx, ebx
call fcn.00402f1b
push eax
push ebx
lea eax, [ebp - 0x10]
push eax
call fcn.00402f2b
mov esi, dword [ebp - 0x14]
mov eax, esi
lea ecx, [ebp - 0x20]
call fcn.00406b90
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00402f2b
lea eax, [edi - 0x10]
call fcn.00402f79
inc esi
cmp esi, dword [ebp - 0xc]
mov dword [ebp - 0x14], esi
mov esi, dword [ebp - 0x10]
jl 0x404b25
lea eax, [esi - 0x10]
call fcn.00402f79
lea edi, [ebp - 0x20]
call fcn.00402dac
xor eax, eax
pop ebx
pop esi
pop edi
leave
ret