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

Disassembly:
mov eax, 0x20d64
call fcn.0040ab40
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x20d78]
or ecx, 0xffffffff
xor eax, eax
xor ebp, ebp
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x574]
mov eax, ecx
mov esi, edi
mov edi, edx
mov ebx, dword [esp + 0x20d7c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov dword [esp + 0x14], ebp
and ecx, 3
cmp ebx, ebp
mov dword [esp + 0x1c], ebp
rep movsb byte es:[edi], byte [esi]
je 0x401fc4
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x10974]
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]
mov dword [esp + 0x10], ebp
lea edi, [esp + ebp + 0x574]
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x20], edi
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x330]
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
lea edx, [esp + 0x330]
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, 0x41907c
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 + 0x330]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x4191d4
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 + 0x434]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x334]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
je 0x4023a6
test ebx, ebx
je 0x402090
lea edx, [esp + ebp + 0x10974]
push 0
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
jmp 0x40209b
mov eax, dword [esp + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
shl ebp, 6
add ebp, ecx
shl ebp, 2
lea edi, [esp + 0x460]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x24]
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 + 0x434]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [0x419170]
test al, 0x10
lea eax, [esp + 0x24]
je 0x402256
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x402110
test cl, cl
je 0x40210c
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x402110
add eax, 2
add esi, 2
test cl, cl
jne 0x4020ec
xor eax, eax
jmp 0x402115
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40237c
mov esi, dword [0x41916c]
lea eax, [esp + 0x24]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40214b
test cl, cl
je 0x402147
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40214b
add eax, 2
add esi, 2
test cl, cl
jne 0x402127
xor eax, eax
jmp 0x402150
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40237c
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
lea edx, [esp + 0x128]
lea edi, [esp + eax + 0x574]
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 + 0x128]
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 + 0x24]
push ecx
push edx
call fcn.00401d00
add esp, 8
test ebx, ebx
je 0x4021e4
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
lea edx, [esp + 0x22c]
lea edi, [esp + eax + 0x10974]
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 + 0x22c]
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 + 0x24]
push ecx
push edx
call fcn.00401d00
add esp, 8
mov edx, dword [esp + 0x14]
lea edi, [esp + 0x128]
or ecx, 0xffffffff
xor eax, eax
inc edx
add ebp, 0x104
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x14], edx
lea edx, [esp + ebp + 0x574]
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
test ebx, ebx
rep movsb byte es:[edi], byte [esi]
je 0x40237c
lea edi, [esp + 0x22c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + ebp + 0x10974]
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 0x40237c
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40227a
test cl, cl
je 0x402276
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40227a
add eax, 2
add esi, 2
test cl, cl
jne 0x402256
xor eax, eax
jmp 0x40227f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40237c
mov esi, dword [0x41916c]
lea eax, [esp + 0x24]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4022b5
test cl, cl
je 0x4022b1
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4022b5
add eax, 2
add esi, 2
test cl, cl
jne 0x402291
xor eax, eax
jmp 0x4022ba
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40237c
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
lea edx, [esp + 0x128]
lea edi, [esp + eax + 0x574]
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 + 0x128]
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 + 0x24]
push ecx
push edx
call fcn.00401d00
add esp, 8
test ebx, ebx
je 0x40236e
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
lea edx, [esp + 0x22c]
lea edi, [esp + eax + 0x10974]
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 + 0x22c]
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 + 0x24]
push ecx
push edx
call fcn.00401d00
lea eax, [esp + 0x234]
lea ecx, [esp + 0x130]
push eax
push ecx
call fcn.00402840
add esp, 0x10
cmp eax, 0xffffffff
je 0x4023fe
jmp 0x40237c
lea edx, [esp + 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x434]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x4020ab
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
inc eax
add ebp, 0x104
inc ecx
mov dword [esp + 0x1c], eax
cmp eax, ecx
mov dword [esp + 0x10], ebp
jl 0x401fc8
test ebx, ebx
jne 0x4023f1
mov edi, dword [esp + 0x14]
test edi, edi
jl 0x4023f1
mov edx, edi
shl edx, 6
add edx, edi
inc edi
lea esi, [esp + edx*4 + 0x574]
push esi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
sub esi, 0x104
dec edi
jne 0x4023e1
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20d64
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x20d64
ret