Function at 0x441940
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Get file attributes
Set file attributes

Disassembly:
sub esp, 0x66c
mov eax, dword [0x4cf640]
xor eax, esp
mov dword [esp + 0x668], eax
push ebx
mov ebx, dword [esp + 0x674]
push esi
push edi
push ebx
mov dword [esp + 0x10], ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 1
je 0x441978
xor eax, 1
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x208
xor edi, edi
lea eax, [esp + 0x470]
push edi
push eax
call fcn.00479220
lea eax, [esp + 0x478]
add esp, 0xc
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4419a0
sub eax, edx
sar eax, 1
mov edx, eax
mov eax, ebx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4419b6
sub eax, esi
mov ecx, 0x103
sar eax, 1
sub ecx, edx
cmp ecx, eax
jae 0x4419fa
lea eax, [esp + 0x46c]
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4419e0
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, 0x103
sub eax, ecx
jmp 0x441a0f
mov eax, ebx
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441a00
sub eax, edx
sar eax, 1
push eax
lea edx, [esp + 0x470]
push ebx
push edx
call fcn.0047a66f
lea eax, [esp + 0x478]
add esp, 0xc
lea edx, [eax + 2]
jmp 0x441a30
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441a30
sub eax, edx
sar eax, 1
cmp eax, 0x103
jae 0x441a61
lea eax, [esp + 0x46c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441a50
sub eax, edx
sar eax, 1
jmp 0x441a66
mov eax, 0x103
mov word [esp + eax*2 + 0x46c], di
lea eax, [esp + 0x46c]
lea edx, [eax + 2]
jmp 0x441a80
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441a80
sub eax, edx
sar eax, 1
mov ecx, 0x103
sub ecx, eax
cmp ecx, 1
jae 0x441abd
lea eax, [esp + 0x46c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441aa5
sub eax, edx
sar eax, 1
mov edx, 0x103
sub edx, eax
jmp 0x441ac2
mov edx, 1
lea eax, [esp + 0x46c]
lea esi, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441ad0
sub eax, esi
sar eax, 1
je 0x441b6e
lea eax, [esp + 0x46c]
lea esi, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441af0
sub eax, esi
sar eax, 1
cmp word [esp + eax*2 + 0x46a], 0x5c
je 0x441b6e
push edx
lea edx, [esp + 0x470]
push 0x4b5754
push edx
call fcn.0047a66f
lea eax, [esp + 0x478]
add esp, 0xc
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441b30
sub eax, edx
sar eax, 1
cmp eax, 0x103
jae 0x441b61
lea eax, [esp + 0x46c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441b50
sub eax, edx
sar eax, 1
jmp 0x441b66
mov eax, 0x103
mov word [esp + eax*2 + 0x46c], di
lea eax, [esp + 0x46c]
lea edx, [eax + 2]
jmp 0x441b80
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441b80
sub eax, edx
sar eax, 1
mov ecx, 0x103
sub ecx, eax
cmp ecx, 3
jae 0x441bbd
lea eax, [esp + 0x46c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441ba5
sub eax, edx
sar eax, 1
mov ecx, 0x103
sub ecx, eax
jmp 0x441bc2
mov ecx, 3
push ecx
lea edx, [esp + 0x470]
push 0x4b6524
push edx
call fcn.0047a66f
lea eax, [esp + 0x478]
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441be2
sub eax, edx
sar eax, 1
cmp eax, 0x103
jae 0x441c13
lea eax, [esp + 0x46c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441c02
sub eax, edx
sar eax, 1
jmp 0x441c18
mov eax, 0x103
mov word [esp + eax*2 + 0x46c], di
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x470]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x441c54
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [esp + 0x668]
xor ecx, esp
call fcn.00478cd0
add esp, 0x66c
ret
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x441c60
cmp dword [esp + 0x18], 0x10
je 0x441f66
push 0x208
lea edx, [esp + 0x26c]
push edi
push edx
call fcn.00479220
lea eax, [esp + 0x274]
add esp, 0xc
lea edx, [eax + 2]
jmp 0x441c90
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441c90
sub eax, edx
sar eax, 1
mov edx, eax
mov eax, dword [esp + 0x10]
lea esi, [eax + 2]
jmp 0x441cb0
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441cb0
sub eax, esi
mov ecx, 0x103
sar eax, 1
sub ecx, edx
cmp ecx, eax
jae 0x441cee
lea eax, [esp + 0x268]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441cd4
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, 0x103
sub eax, ecx
jmp 0x441d04
mov eax, dword [esp + 0x10]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441cf5
sub eax, edx
sar eax, 1
mov edx, dword [esp + 0x10]
push eax
push edx
lea eax, [esp + 0x270]
push eax
call fcn.0047a66f
lea eax, [esp + 0x274]
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441d24
sub eax, edx
sar eax, 1
cmp eax, 0x103
jae 0x441d55
lea eax, [esp + 0x268]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441d44
sub eax, edx
sar eax, 1
jmp 0x441d5a
mov eax, 0x103
mov word [esp + eax*2 + 0x268], di
lea eax, [esp + 0x268]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441d70
sub eax, edx
sar eax, 1
mov ecx, 0x103
sub ecx, eax
cmp ecx, 1
jae 0x441dad
lea eax, [esp + 0x268]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441d95
sub eax, edx
sar eax, 1
mov edx, 0x103
sub edx, eax
jmp 0x441db2
mov edx, 1
lea eax, [esp + 0x268]
lea esi, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441dc0
sub eax, esi
sar eax, 1
je 0x441e5e
lea eax, [esp + 0x268]
lea esi, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441de0
sub eax, esi
sar eax, 1
cmp word [esp + eax*2 + 0x266], 0x5c
je 0x441e5e
push edx
lea edx, [esp + 0x26c]
push 0x4b5754
push edx
call fcn.0047a66f
lea eax, [esp + 0x274]
add esp, 0xc
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441e20
sub eax, edx
sar eax, 1
cmp eax, 0x103
jae 0x441e51
lea eax, [esp + 0x268]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441e40
sub eax, edx
sar eax, 1
jmp 0x441e56
mov eax, 0x103
mov word [esp + eax*2 + 0x268], di
lea eax, [esp + 0x268]
lea edx, [eax + 2]
jmp 0x441e70
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441e70
sub eax, edx
sar eax, 1
mov edx, eax
lea eax, [esp + 0x44]
lea esi, [eax + 2]
jmp 0x441e90
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441e90
sub eax, esi
mov ecx, 0x103
sar eax, 1
sub ecx, edx
cmp ecx, eax
jae 0x441ece
lea eax, [esp + 0x268]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441eb4
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, 0x103
sub eax, ecx
jmp 0x441ee4
lea eax, [esp + 0x44]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441ed5
sub eax, edx
sar eax, 1
push eax
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x270]
push eax
call fcn.0047a66f
lea eax, [esp + 0x274]
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441f04
sub eax, edx
sar eax, 1
cmp eax, 0x103
jae 0x441f4a
lea eax, [esp + 0x268]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441f24
sub eax, edx
lea ecx, [esp + 0x268]
sar eax, 1
push ecx
mov word [esp + eax*2 + 0x26c], di
call ebp
jmp 0x442282
lea ecx, [esp + 0x268]
mov eax, 0x103
push ecx
mov word [esp + eax*2 + 0x26c], di
call ebp
jmp 0x442282
lea edx, [esp + 0x44]
push 0x4b6520
push edx
call fcn.0047a5de
add esp, 8
test eax, eax
je 0x442282
lea eax, [esp + 0x44]
push 0x4b6518
push eax
call fcn.0047a5de
add esp, 8
test eax, eax
je 0x442282
push 0x208
lea ecx, [esp + 0x26c]
push edi
push ecx
call fcn.00479220
lea eax, [esp + 0x274]
add esp, 0xc
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441fc0
sub eax, edx
sar eax, 1
mov edx, eax
mov eax, dword [esp + 0x10]
lea esi, [eax + 2]
jmp 0x441fe0
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x441fe0
sub eax, esi
mov ecx, 0x103
sar eax, 1
sub ecx, edx
cmp ecx, eax
jae 0x44201e
lea eax, [esp + 0x268]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x442004
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, 0x103
sub eax, ecx
jmp 0x442034
mov eax, dword [esp + 0x10]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x442025
sub eax, edx
sar eax, 1
mov edx, dword [esp + 0x10]
push eax
push edx
lea eax, [esp + 0x270]
push eax
call fcn.0047a66f
lea eax, [esp + 0x274]
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x442054
sub eax, edx
sar eax, 1
cmp eax, 0x103
jae 0x442085
lea eax, [esp + 0x268]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x442074
sub eax, edx
sar eax, 1
jmp 0x44208a
mov eax, 0x103
mov word [esp + eax*2 + 0x268], di
lea eax, [esp + 0x268]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4420a0
sub eax, edx
sar eax, 1
mov ecx, 0x103
sub ecx, eax
cmp ecx, 1
jae 0x4420dd
lea eax, [esp + 0x268]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4420c5
sub eax, edx
sar eax, 1
mov edx, 0x103
sub edx, eax
jmp 0x4420e2
mov edx, 1
lea eax, [esp + 0x268]
lea esi, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4420f0
sub eax, esi
sar eax, 1
je 0x44218e
lea eax, [esp + 0x268]
lea esi, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x442110
sub eax, esi
sar eax, 1
cmp word [esp + eax*2 + 0x266], 0x5c
je 0x44218e
push edx
lea edx, [esp + 0x26c]
push 0x4b5754
push edx
call fcn.0047a66f
lea eax, [esp + 0x274]
add esp, 0xc
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x442150
sub eax, edx
sar eax, 1
cmp eax, 0x103
jae 0x442181
lea eax, [esp + 0x268]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x442170
sub eax, edx
sar eax, 1
jmp 0x442186
mov eax, 0x103
mov word [esp + eax*2 + 0x268], di
lea eax, [esp + 0x268]
lea edx, [eax + 2]
jmp 0x4421a0
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4421a0
sub eax, edx
sar eax, 1
mov edx, eax
lea eax, [esp + 0x44]
lea esi, [eax + 2]
jmp 0x4421c0
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4421c0
sub eax, esi
mov ecx, 0x103
sar eax, 1
sub ecx, edx
cmp ecx, eax
jae 0x4421fe
lea eax, [esp + 0x268]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4421e4
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, 0x103
sub eax, ecx
jmp 0x442214
lea eax, [esp + 0x44]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x442205
sub eax, edx
sar eax, 1
push eax
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x270]
push eax
call fcn.0047a66f
lea eax, [esp + 0x274]
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x442234
sub eax, edx
sar eax, 1
cmp eax, 0x103
jae 0x442265
lea eax, [esp + 0x268]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x442254
sub eax, edx
sar eax, 1
jmp 0x44226a
mov eax, 0x103
lea ecx, [esp + 0x268]
push ecx
mov word [esp + eax*2 + 0x26c], di
call fcn.00441940
add esp, 4
lea edx, [esp + 0x18]
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x441c60
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov ecx, dword [esp + 0x678]
pop ebp
pop edi
neg eax
pop esi
sbb eax, eax
pop ebx
xor ecx, esp
neg eax
call fcn.00478cd0
add esp, 0x66c
ret