Function at 0x402020
Capabilities:
Create directory
Enumerate files on windows
Move file
Set file attributes

Disassembly:
sub esp, 0x8a4
mov eax, dword [0x40f11c]
xor eax, esp
mov dword [esp + 0x8a0], eax
mov eax, dword [esp + 0x8a8]
push ebx
mov ebx, dword [sym.imp.SHLWAPI.dll_StrCpyW]
push ebp
push edi
push esi
lea ecx, [esp + 0x294]
push ecx
mov dword [esp + 0x18], eax
call ebx
mov ebp, dword [sym.imp.SHLWAPI.dll_StrCatW]
push 0x40d7c8
lea edx, [esp + 0x294]
push edx
call ebp
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x294]
xor edi, edi
push ecx
mov dword [esp + 0x1c], 0xc
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 6
lea edx, [esp + 0x294]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4020a2
sub eax, edx
sar eax, 1
inc eax
push eax
push esi
lea eax, [esp + 0x6a8]
push 0x104
push eax
call fcn.004028c7
push 2
push 0x40d7cc
lea ecx, [esp + 0x6b8]
push 0x104
push ecx
call fcn.0040299a
add esp, 0x20
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x6a4]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [esp + 0xc], eax
cmp eax, 0xffffffff
je 0x4022e9
lea ecx, [esp + 0x40]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x4022e9
jmp 0x402120
mov ecx, 0x40d7c8
lea eax, [esp + 0x6c]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x402156
cmp dx, di
je 0x402152
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x402156
add eax, 4
add ecx, 4
cmp dx, di
jne 0x402130
xor eax, eax
jmp 0x40215b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
je 0x4022d1
mov ecx, 0x40d7d0
lea eax, [esp + 0x6c]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x402196
cmp dx, di
je 0x402192
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x402196
add eax, 4
add ecx, 4
cmp dx, di
jne 0x402170
xor eax, eax
jmp 0x40219b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
je 0x4022d1
mov ecx, 0x40d7d4
lea eax, [esp + 0x6c]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4021d6
cmp dx, di
je 0x4021d2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4021d6
add eax, 4
add ecx, 4
cmp dx, di
jne 0x4021b0
xor eax, eax
jmp 0x4021db
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
je 0x4022d1
test byte [esp + 0x40], 0x10
je 0x4022d1
push 0x208
lea edx, [esp + 0x294]
push edi
push edx
call fcn.00407d00
push 0x208
lea eax, [esp + 0x4a8]
push edi
push eax
call fcn.00407d00
add esp, 0x18
push esi
lea ecx, [esp + 0x294]
push ecx
call ebx
lea edx, [esp + 0x6c]
push edx
lea eax, [esp + 0x294]
push eax
call ebp
push esi
lea ecx, [esp + 0x49c]
push ecx
call ebx
push 0x40d7dc
lea edx, [esp + 0x49c]
push edx
call ebp
lea edx, [esp + 0x498]
lea ecx, [esp + 0x290]
mov dword [esp + 0x2c], edx
mov eax, 1
mov dword [esp + 0x28], ecx
lea edx, [esp + 0x20]
mov ecx, 0x614
push edx
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], eax
mov word [esp + 0x34], cx
mov dword [esp + 0x36], eax
mov dword [esp + 0x3a], edi
mov dword [esp + 0x3e], edi
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
push esi
lea eax, [esp + 0x294]
push eax
call ebx
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esp + 0x294]
push edx
call ebp
push str..exe
lea eax, [esp + 0x294]
push eax
call ebp
mov ecx, dword [esp + 0x10]
push edi
add ecx, 0x44
push ecx
lea edx, [esp + 0x298]
push edx
call fcn.00401c30
add esp, 0xc
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x40]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x402120
mov ecx, dword [esp + 0x8ac]
pop edi
pop ebp
pop ebx
xor ecx, esp
call fcn.004025dc
add esp, 0x8a4
ret