Function at 0x404910
Capabilities:
Create directory
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x429c1b
mov eax, dword fs:[0]
push eax
sub esp, 0x4f0
mov eax, dword [0x446044]
xor eax, esp
mov dword [esp + 0x4e8], eax
push ebx
push esi
push edi
mov eax, dword [0x446044]
xor eax, esp
push eax
lea eax, [esp + 0x500]
mov dword fs:[0], eax
push 0x104
lea ecx, [esp + 0x4c]
mov dword [esp + 0x34], 0
call fcn.00420f90
mov dword [esp + 0x508], 0
push 0x104
lea ecx, [esp + 0x30]
call fcn.00420f90
mov byte [esp + 0x508], 1
push 0x447b30
lea ecx, [esp + 0x1c]
call fcn.004024c0
mov byte [esp + 0x508], 3
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x1c]
call fcn.004056c0
mov byte [esp + 0x508], 4
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
cmp ecx, 1
jne 0x4049d8
test ecx, ecx
jge 0x4049cb
push 0x80070057
call fcn.004016e0
movzx eax, word [eax]
cmp ax, 0x5c
jne 0x4049d8
xor bl, bl
jmp 0x4049da
mov bl, 1
mov byte [esp + 0x508], 3
lea ecx, [esp + 0x28]
call fcn.00401130
test bl, bl
je 0x4049ff
push 1
push 0x42c040
lea ecx, [esp + 0x20]
call fcn.00401530
push 3
push 0x42c05c
lea ecx, [esp + 0x20]
call fcn.00401530
lea ecx, [esp + 0x24]
call fcn.00420f40
mov byte [esp + 0x508], 5
mov edx, dword [esp + 0x18]
mov edi, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
lea ecx, [esp + 0x54]
push ecx
push edx
mov dword [esp + 0x30], 1
call edi
cmp eax, 0xffffffff
mov dword [esp + 0x34], eax
jne 0x404a4f
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x404f62
mov eax, dword [0x447b34]
mov eax, dword [eax - 0xc]
test eax, eax
jne 0x404a6a
push 0x447b30
mov ecx, 0x447b34
call fcn.004041e0
mov edx, dword [0x447b34]
lea ecx, [esp + 0x2a4]
push ecx
push edx
call edi
cmp eax, 0xffffffff
jne 0x404a90
mov eax, dword [0x447b34]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
jmp 0x404a97
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [esp + 0x20]
push ecx
mov ecx, 0x447b34
call fcn.004056c0
mov byte [esp + 0x508], 6
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
cmp ecx, 1
jne 0x404ad3
test ecx, ecx
jge 0x404ac6
push 0x80070057
call fcn.004016e0
movzx eax, word [eax]
cmp ax, 0x5c
jne 0x404ad3
xor bl, bl
jmp 0x404ad5
mov bl, 1
mov byte [esp + 0x508], 5
lea ecx, [esp + 0x20]
call fcn.00401130
test bl, bl
je 0x404afb
push 1
push 0x42c040
mov ecx, 0x447b34
call fcn.00401530
cmp dword [esp + 0x30], 0x80040003
je 0x404f50
lea edx, [esp + 0x80]
push edx
lea ecx, [esp + 0x14]
call fcn.00421070
mov bl, 7
mov byte [esp + 0x508], bl
mov eax, dword [esp + 0x10]
push 0x2e
push eax
call dword [sym.imp.MSVCR80.dll_wcsrchr]
add esp, 8
test eax, eax
jne 0x404b7b
or esi, 0xffffffff
push 0
push 0x42b694
lea ecx, [esp + 0x18]
call fcn.00401740
mov eax, dword [esp + 0x10]
mov edx, 0x42c064
mov ecx, eax
mov di, word [ecx]
cmp di, word [edx]
jne 0x404bd7
test di, di
je 0x404b77
mov di, word [ecx + 2]
cmp di, word [edx + 2]
jne 0x404bd7
add ecx, 4
add edx, 4
test di, di
jne 0x404b55
xor ecx, ecx
jmp 0x404bdc
sub eax, dword [esp + 0x10]
sar eax, 1
mov esi, eax
test esi, esi
jle 0x404b3a
lea ecx, [esp + 0x50]
push ecx
lea eax, [esp + 0x14]
lea edx, [esi + 1]
push eax
call fcn.00405570
mov byte [esp + 0x508], 8
push eax
lea ecx, [esp + 0x14]
call fcn.004041e0
mov byte [esp + 0x508], bl
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404b4a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x404b4a
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
sete cl
test cl, cl
jne 0x404c68
mov edx, 0x42c06c
mov ecx, eax
mov di, word [ecx]
cmp di, word [edx]
jne 0x404c16
test di, di
je 0x404c12
mov di, word [ecx + 2]
cmp di, word [edx + 2]
jne 0x404c16
add ecx, 4
add edx, 4
test di, di
jne 0x404bf0
xor ecx, ecx
jmp 0x404c1b
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
sete cl
test cl, cl
jne 0x404c68
mov ecx, 0x42c074
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x404c56
test dx, dx
je 0x404c52
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x404c56
add eax, 4
add ecx, 4
test dx, dx
jne 0x404c30
xor eax, eax
jmp 0x404c5b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x404f0b
lea ecx, [esp + 0x80]
push ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x2c], 0
call fcn.00421070
mov bl, 0xa
mov byte [esp + 0x508], bl
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x20]
push eax
mov ecx, esi
xor edx, edx
call fcn.004055e0
mov byte [esp + 0x508], 0xb
push eax
lea ecx, [esp + 0x20]
call fcn.004041e0
mov byte [esp + 0x508], bl
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404cd6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esp + 0x80]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x404ce0
sub eax, edx
sar eax, 1
push eax
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x2c]
call fcn.00401740
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x48]
push eax
mov ebx, 0x447b34
call fcn.00405800
add esp, 8
mov byte [esp + 0x508], 0xd
push eax
lea ecx, [esp + 0x24]
call fcn.00421010
mov byte [esp + 0x508], 0xf
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404d52
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
call fcn.00420f40
mov byte [esp + 0x508], 0x11
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esp + 0x30]
call fcn.004056c0
mov byte [esp + 0x508], 0x12
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
cmp ecx, 1
jne 0x404d98
test ecx, ecx
jl 0x4049c1
movzx eax, word [eax]
cmp ax, 0x5c
jne 0x404d98
mov bl, cl
jmp 0x404d9a
xor bl, bl
mov byte [esp + 0x508], 0x11
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x404dc2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x404e02
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x40]
push edx
mov ebx, 0x447b30
call fcn.00405800
add esp, 8
mov byte [esp + 0x508], 0x14
push eax
lea ecx, [esp + 0x18]
call fcn.004041e0
mov byte [esp + 0x508], 0x11
lea ecx, [esp + 0x3c]
call fcn.00401130
jmp 0x404e4e
lea eax, [esp + 0x40]
push 0x447b30
push eax
mov ebx, 0x42c040
call fcn.004058a0
add esp, 8
mov byte [esp + 0x508], 0x15
push eax
lea ecx, [esp + 0x18]
call fcn.004041e0
mov byte [esp + 0x508], 0x11
lea ecx, [esp + 0x40]
call fcn.00401130
mov eax, dword [esp + 0x24]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x1c]
call fcn.00401530
mov ecx, dword [esp + 0x14]
mov edx, dword [0x447b2c]
mov edi, dword [0x447b38]
push ecx
mov ecx, dword [esp + 0x24]
push edx
call fcn.00404fe0
mov esi, dword [sym.imp.MSVCR80.dll___iob_func]
mov dword [esp + 0x30], eax
call esi
add eax, 0x40
push eax
push 0x42c07c
call dword [sym.imp.MSVCR80.dll_fputs]
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR80.dll_fflush]
add esp, 0xc
mov byte [esp + 0x508], 0xf
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404ebb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x508], 0xa
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404ee3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x508], 7
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404f0b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x54]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
setne bl
mov byte [esp + 0x508], 5
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404f48
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
jne 0x404afb
mov ecx, dword [esp + 0x34]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [esp + 0x28], 0
je 0x404f73
push 0
push 0
mov ecx, 0x42c080
call fcn.00404660
add esp, 8
mov byte [esp + 0x508], 3
lea ecx, [esp + 0x24]
call fcn.00401130
mov byte [esp + 0x508], 1
lea ecx, [esp + 0x18]
call fcn.00401130
mov byte [esp + 0x508], 0
lea ecx, [esp + 0x2c]
call fcn.00401130
mov dword [esp + 0x508], 0xffffffff
lea ecx, [esp + 0x48]
call fcn.00401130
xor eax, eax
mov ecx, dword [esp + 0x500]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x4e8]
xor ecx, esp
call fcn.0042382b
mov esp, ebp
pop ebp
ret