Function at 0x4182b0
Capabilities:
Create directory
Delete directory
Enumerate files on windows
Enumerate files recursively
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47d929
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x290
mov eax, dword [0x4a8ae4]
push ebx
push esi
xor eax, ebp
push edi
mov ebx, ecx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x274], ebx
mov eax, 1
mov dword [ebp - 4], eax
mov dword [ebp - 0x26c], eax
call fcn.004621d7
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x27c], eax
mov byte [ebp - 4], 2
call fcn.004621d7
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x268], eax
mov byte [ebp - 4], 3
call fcn.004621d7
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x270], esi
mov byte [ebp - 4], 4
call fcn.00476002
mov eax, dword [eax + 4]
mov edi, dword [ebp + 8]
push edi
mov dword [ebp - 0x298], eax
mov byte [ebp - 4], 5
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
jne 0x418496
mov esi, dword [ebp + 0xc]
push 0x5c
push esi
call fcn.0044a56f
add esp, 8
test eax, eax
jne 0x41837a
or eax, 0xffffffff
jmp 0x41837e
sub eax, esi
sar eax, 1
push 1
inc eax
push eax
lea ecx, [ebp - 0x278]
push ecx
lea ecx, [ebp + 0xc]
call fcn.00405220
mov esi, eax
mov eax, dword [esi]
mov ecx, dword [eax - 4]
sub eax, 0x10
cmp ecx, 1
mov byte [ebp - 4], 6
jle 0x4183af
mov edx, dword [eax + 4]
push edx
mov ecx, esi
call fcn.00401300
mov ebx, dword [esi]
sub esp, 0x1c
mov esi, esp
xor eax, eax
mov dword [ebp - 0x284], esp
mov dword [esi + 0x18], 7
mov dword [esi + 0x14], eax
push ebx
mov word [esi + 4], ax
call fcn.00449da9
add esp, 4
push eax
push ebx
mov ecx, esi
call fcn.00402410
cmp dword [edi - 4], 1
mov byte [ebp - 4], 7
jle 0x4183f7
mov eax, dword [edi - 0xc]
push eax
lea ecx, [ebp + 8]
call fcn.00401300
mov edi, dword [ebp + 8]
sub esp, 0x1c
mov esi, esp
xor ebx, ebx
mov dword [ebp - 0x280], esp
mov dword [esi + 0x18], 7
mov dword [esi + 0x14], ebx
push edi
mov word [esi + 4], bx
call fcn.00449da9
add esp, 4
push eax
push edi
mov ecx, esi
call fcn.00402410
mov ecx, dword [ebp - 0x274]
mov byte [ebp - 4], 6
call fcn.00417280
mov esi, eax
mov eax, dword [ebp - 0x278]
add eax, 0xfffffff0
mov byte [ebp - 4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x418459
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
xor eax, eax
cmp esi, ebx
sete al
cmp edi, ebx
mov dword [ebp - 0x26c], eax
jne 0x41846e
xor eax, eax
jmp 0x41847b
push edi
call fcn.00449da9
add esp, 4
cmp eax, ebx
jl 0x41848c
cmp eax, dword [edi - 8]
jg 0x41848c
mov dword [edi - 0xc], eax
mov word [edi + eax*2], bx
jmp 0x4188f8
push 0x80070057
call fcn.004010a0
mov ecx, dword [ebp + 0xc]
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x4184ac
mov dword [ebp - 0x26c], eax
push 0x48a050
call fcn.00449da9
add esp, 4
push eax
push 0x48a050
lea ecx, [ebp + 8]
call fcn.004082f0
push 0x48a050
call fcn.00449da9
add esp, 4
push eax
push 0x48a050
lea ecx, [ebp + 0xc]
call fcn.004082f0
push 0x48a060
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x278]
push eax
call fcn.00405530
add esp, 0xc
push eax
lea ecx, [ebp - 0x27c]
mov byte [ebp - 4], 8
call fcn.00403cc0
mov eax, dword [ebp - 0x278]
add eax, 0xfffffff0
mov byte [ebp - 4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41852e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov edi, dword [ebp - 0x27c]
lea eax, [ebp - 0x264]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
mov dword [ebp - 0x278], eax
jne 0x418604
mov ecx, ebx
call fcn.0040dca0
lea eax, [esi - 0x10]
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x418576
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x268]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41859a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [edi - 0x10]
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4185b8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4185d9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4185fd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
xor eax, eax
jmp 0x4189f4
mov ebx, dword [ebp + 0xc]
jmp 0x418610
mov esi, dword [ebp - 0x278]
test esi, esi
je 0x4188ee
lea eax, [ebp - 0x264]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x4188ee
lea ecx, [ebp - 0x238]
push ecx
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x290]
push eax
call fcn.00405530
add esp, 0xc
push eax
lea ecx, [ebp - 0x268]
mov byte [ebp - 4], 9
call fcn.00403cc0
mov eax, dword [ebp - 0x290]
add eax, 0xfffffff0
mov byte [ebp - 4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x418682
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [ebp - 0x238]
push eax
lea ecx, [ebp + 0xc]
push ecx
lea edx, [ebp - 0x288]
push edx
call fcn.00405530
add esp, 0xc
push eax
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 0xa
call fcn.00403cc0
mov eax, dword [ebp - 0x288]
add eax, 0xfffffff0
mov byte [ebp - 4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4186d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
test byte [ebp - 0x264], 0x10
jne 0x418786
mov eax, dword [ebp - 0x298]
mov cl, byte [eax + 0x160]
test cl, cl
je 0x418703
push ebx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov dword [ebp - 0x26c], 0
jmp 0x418610
mov eax, dword [ebx - 4]
mov esi, 1
cmp eax, esi
push esi
jle 0x41871f
mov ecx, dword [ebx - 0xc]
push ecx
lea ecx, [ebp + 0xc]
call fcn.00401300
mov ebx, dword [ebp + 0xc]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x28c], esp
push ebx
call fcn.004027f0
mov eax, dword [ebp - 0x268]
cmp dword [eax - 4], esi
mov byte [ebp - 4], 0xb
jle 0x418754
mov edx, dword [eax - 0xc]
push edx
lea ecx, [ebp - 0x268]
call fcn.00401300
mov eax, dword [ebp - 0x268]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x294], esp
push eax
call fcn.004027f0
mov ecx, dword [ebp - 0x274]
mov byte [ebp - 4], 5
call fcn.00417280
xor ecx, ecx
test eax, eax
sete cl
mov dword [ebp - 0x26c], ecx
jmp 0x418610
lea edx, [ebp - 0x238]
push 0x48a07c
push edx
call fcn.0044a53d
add esp, 8
test eax, eax
je 0x418610
lea eax, [ebp - 0x238]
push 0x48a0a0
push eax
call fcn.0044a53d
add esp, 8
test eax, eax
je 0x418610
mov edi, dword [ebp - 0x268]
push 0x5c
push edi
call fcn.0044a56f
add esp, 8
test eax, eax
jne 0x4187d8
or esi, 0xffffffff
jmp 0x4187de
sub eax, edi
sar eax, 1
mov esi, eax
push esi
lea ecx, [ebp - 0x280]
push ecx
lea ecx, [ebp - 0x270]
call fcn.00408280
push eax
lea edx, [ebp - 0x270]
push edx
lea eax, [ebp - 0x29c]
push eax
mov byte [ebp - 4], 0xc
call fcn.00408390
mov eax, dword [ebp - 0x29c]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41882c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x280]
add eax, 0xfffffff0
mov byte [ebp - 4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x418850
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push esi
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x270]
call fcn.00408280
mov eax, dword [eax]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov eax, dword [ebp - 0x284]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41888e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x270]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x294], esp
mov esi, esp
push eax
call fcn.00401570
add eax, 0x10
add esp, 4
mov dword [esi], eax
push ecx
lea eax, [edi - 0x10]
mov dword [ebp - 0x28c], esp
mov esi, esp
push eax
mov byte [ebp - 4], 0xd
call fcn.00401570
mov ecx, dword [ebp - 0x274]
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov byte [ebp - 4], 5
call fcn.004182b0
test eax, eax
jne 0x418610
mov dword [ebp - 0x26c], eax
jmp 0x418610
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x274]
mov ecx, dword [eax + 0xdc]
test ecx, ecx
je 0x41893d
mov edx, dword [ecx]
xor ebx, ebx
mov dword [0x4a9a38], ebx
call dword [edx + 0x60]
mov esi, dword [ebp - 0x274]
mov ecx, dword [esi + 0xdc]
cmp ecx, ebx
je 0x41892c
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov dword [esi + 0xdc], ebx
jmp 0x41893d
mov eax, dword [ebp - 0x270]
add eax, 0xfffffff0
mov dword [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x418964
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x268]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x418988
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x27c]
add eax, 0xfffffff0
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4189ac
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
add edi, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4189ca
mov ecx, dword [edi]
mov edx, dword [ecx]
push edi
call dword [edx + 4]
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4189ee
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x26c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x14]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0044a318
mov esp, ebp
pop ebp
ret 8