Function at 0x401080
Capabilities:
Create directory
Delete directory
Delete file
Enumerate files on windows

Disassembly:
mov eax, 0x81150
call fcn.00403fe0
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x81164]
or ecx, 0xffffffff
xor eax, eax
xor ebp, ebp
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x41160]
mov eax, ecx
mov esi, edi
mov edi, edx
mov dword [esp + 0x10], ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov dword [esp + 0x1c], ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x81168]
cmp edi, ebp
je 0x4010f2
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x1160]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x14], ebp
lea ebx, [esp + ebp + 0x41160]
or ecx, 0xffffffff
mov edi, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0xd60]
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
lea edx, [esp + 0xd60]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x40d030
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0xd60]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x40d03c
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x20]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xd64]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
je 0x4014db
mov eax, dword [esp + 0x81168]
test eax, eax
je 0x4011c0
lea edx, [esp + ebp + 0x1160]
push 0
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
jmp 0x4011c7
push ebx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
mov ebp, dword [esp + 0x10]
shl ebp, 0xa
lea edi, [esp + 0x4c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov al, byte [esp + 0x20]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test al, 0x10
mov esi, 0x40d038
lea eax, [esp + 0x160]
je 0x401385
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401232
test cl, cl
je 0x40122e
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401232
add eax, 2
add esi, 2
test cl, cl
jne 0x40120e
xor eax, eax
jmp 0x401237
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4014b4
mov esi, 0x40d034
lea eax, [esp + 0x160]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40126f
test cl, cl
je 0x40126b
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40126f
add eax, 2
add esi, 2
test cl, cl
jne 0x40124b
xor eax, eax
jmp 0x401274
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4014b4
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x560]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x560]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x160]
push ecx
push edx
call fcn.00401000
mov eax, dword [esp + 0x81170]
add esp, 8
test eax, eax
je 0x40130c
mov eax, dword [esp + 0x14]
or ecx, 0xffffffff
lea edx, [esp + 0x960]
lea edi, [esp + eax + 0x1160]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x960]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x160]
push ecx
push edx
call fcn.00401000
add esp, 8
mov edx, dword [esp + 0x10]
lea edi, [esp + 0x560]
or ecx, 0xffffffff
xor eax, eax
inc edx
add ebp, 0x400
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x10], edx
lea edx, [esp + ebp + 0x41160]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x81168]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x4014b4
lea edi, [esp + 0x960]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + ebp + 0x1160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4014b4
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4013a9
test cl, cl
je 0x4013a5
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4013a9
add eax, 2
add esi, 2
test cl, cl
jne 0x401385
xor eax, eax
jmp 0x4013ae
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4014b4
mov esi, 0x40d034
lea eax, [esp + 0x160]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4013e6
test cl, cl
je 0x4013e2
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4013e6
add eax, 2
add esi, 2
test cl, cl
jne 0x4013c2
xor eax, eax
jmp 0x4013eb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4014b4
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x560]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x560]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x160]
push ecx
push edx
call fcn.00401000
mov eax, dword [esp + 0x81170]
add esp, 8
test eax, eax
je 0x4014a6
mov eax, dword [esp + 0x14]
or ecx, 0xffffffff
lea edx, [esp + 0x960]
lea edi, [esp + eax + 0x1160]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x960]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x160]
push ecx
push edx
call fcn.00401000
add esp, 8
lea eax, [esp + 0x960]
lea ecx, [esp + 0x560]
push eax
push ecx
call fcn.00401550
add esp, 8
cmp eax, 0xffffffff
je 0x401538
jmp 0x4014b4
lea edx, [esp + 0x560]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x20]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x4011ce
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
inc eax
add ebp, 0x400
inc ecx
mov dword [esp + 0x1c], eax
cmp eax, ecx
mov dword [esp + 0x14], ebp
jl 0x4010f6
mov eax, dword [esp + 0x81168]
test eax, eax
jne 0x40152b
mov edi, dword [esp + 0x10]
test edi, edi
jl 0x40152b
mov edx, edi
shl edx, 0xa
inc edi
lea esi, [esp + edx + 0x41160]
push esi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
sub esi, 0x400
dec edi
jne 0x40151b
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x81150
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x81150
ret