Function at 0x404450
Capabilities:
Create directory
Delete file
Set file attributes

Disassembly:
push 0xffffffffffffffff
push 0x40e4d6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x174
mov eax, dword [0x412200]
push ebp
push edi
xor edi, edi
mov dword [esp + 0x178], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
mov ebp, dword [esp + 0x18c]
mov eax, dword [ebp + 0x14]
push edi
push 0x40f3b7
push eax
push edi
mov ecx, ebp
mov dword [esp + 0x194], edi
call fcn.00403050
test eax, eax
jne 0x4044b2
xor al, al
jmp 0x4046e6
mov eax, dword [ebp + 0x18]
push ebx
mov ebx, 0x10
cmp eax, ebx
push esi
lea esi, [ebp + 4]
jb 0x4044c7
mov eax, dword [esi]
jmp 0x4044c9
mov eax, esi
lea ecx, [esp + 0x40]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x404510
test byte [esp + 0x40], 0x10
push eax
je 0x4044f8
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [esp + 0x14]
call fcn.00401f60
mov al, 1
jmp 0x4046e4
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [ebp + 0x18], ebx
jb 0x404507
mov eax, dword [esi]
jmp 0x404509
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], edi
mov byte [esp + 0x28], 0
cmp dword [ebp + 0x14], edi
mov byte [esp + 0x18c], 1
jbe 0x4045d5
mov ecx, dword [ebp + 0x18]
cmp ecx, ebx
jb 0x40453d
mov eax, dword [esi]
jmp 0x40453f
mov eax, esi
cmp byte [eax + edi], 0x5c
je 0x404572
cmp ecx, ebx
jb 0x40454d
mov eax, dword [esi]
jmp 0x40454f
mov eax, esi
cmp byte [eax + edi], 0x2f
je 0x404572
cmp ecx, ebx
jb 0x40455d
mov eax, dword [esi]
jmp 0x40455f
mov eax, esi
xor edx, edx
mov dl, byte [eax + edi]
lea ecx, [esp + 0x24]
push edx
push 1
call fcn.00403790
jmp 0x404590
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x18]
call fcn.004043c0
push 1
push 0x40f49c
lea ecx, [esp + 0x2c]
call fcn.00401530
mov ecx, dword [ebp + 0x18]
cmp ecx, ebx
jb 0x40459b
mov eax, dword [esi]
jmp 0x40459d
mov eax, esi
cmp byte [eax + edi], 0x5c
je 0x4045c9
cmp ecx, ebx
jb 0x4045ab
mov eax, dword [esi]
jmp 0x4045ad
mov eax, esi
cmp byte [eax + edi], 0x2f
je 0x4045c9
mov ecx, dword [ebp + 0x14]
dec ecx
cmp edi, ecx
jne 0x4045c9
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x18]
call fcn.004043c0
mov eax, dword [ebp + 0x14]
inc edi
cmp edi, eax
jb 0x404532
mov esi, dword [esp + 0x18]
mov ebp, dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov ebx, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov byte [esp + 0x13], 1
mov edi, 1
add esi, 0x20
mov eax, dword [esp + 0x18]
test eax, eax
je 0x404613
mov ecx, dword [esp + 0x1c]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jge 0x40466b
cmp dword [esi + 0x14], 0x10
jb 0x404621
mov eax, dword [esi]
jmp 0x404623
mov eax, esi
push 0
push eax
call ebp
cmp eax, 1
jne 0x404653
cmp dword [esi + 0x14], 0x10
jb 0x404643
mov eax, dword [esi]
push 0x80
push eax
call ebx
inc edi
add esi, 0x1c
jmp 0x4045f2
mov eax, esi
push 0x80
push eax
call ebx
inc edi
add esi, 0x1c
jmp 0x4045f2
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x404666
inc edi
add esi, 0x1c
jmp 0x4045f2
mov byte [esp + 0x13], 0
cmp dword [esp + 0x3c], 0x10
jb 0x40467f
mov eax, dword [esp + 0x28]
push eax
call fcn.00405f98
add esp, 4
mov esi, dword [esp + 0x18]
test esi, esi
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], 0
mov byte [esp + 0x28], 0
je 0x4046e0
mov edi, dword [esp + 0x1c]
cmp esi, edi
je 0x4046d7
add esi, 0x18
cmp dword [esi], 0x10
jb 0x4046b8
mov ecx, dword [esi - 0x14]
push ecx
call fcn.00405f98
add esp, 4
mov dword [esi], 0xf
mov dword [esi - 4], 0
mov byte [esi - 0x14], 0
add esi, 0x1c
lea edx, [esi - 0x18]
cmp edx, edi
jne 0x4046a7
mov esi, dword [esp + 0x18]
push esi
call fcn.00405f98
add esp, 4
mov al, byte [esp + 0x13]
pop esi
pop ebx
mov ecx, dword [esp + 0x17c]
pop edi
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x174]
pop ebp
call fcn.00405b2e
add esp, 0x180
ret