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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x684bd8
mov eax, dword fs:[0]
push eax
sub esp, 0x31c
mov eax, dword [0x759454]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x2f4], eax
xor eax, eax
mov dword [ebp - 0x44], 7
mov dword [ebp - 0x48], 0
mov word [ebp - 0x58], ax
push 8
mov dword [ebp - 4], eax
mov dword [ebp - 0x2ec], eax
mov dword [ebp - 0x2e8], eax
mov dword [ebp - 0x2e4], eax
mov dword [ebp - 0x2e0], eax
mov dword [ebp - 0x2dc], eax
call fcn.005e981c
add esp, 4
test eax, eax
jne 0x6586f2
call fcn.00608584
mov dword [ebp - 0x2ec], eax
lea ecx, [ebp - 0x2ec]
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [ebp - 0x2ec]
mov dword [eax], ecx
xor esi, esi
mov dword [ebp - 0x310], esi
mov dword [ebp - 0x30c], esi
mov dword [ebp - 0x308], esi
mov dword [ebp - 0x300], esi
mov dword [ebp - 0x2fc], esi
mov dword [ebp - 0x2f8], esi
push edi
mov byte [ebp - 4], 3
call fcn.00659300
add esp, 4
test al, al
jne 0x658751
xor bl, bl
jmp 0x658dfa
xor eax, eax
mov dword [ebp - 0x2c], 7
mov dword [ebp - 0x30], 0
mov word [ebp - 0x40], ax
mov byte [ebp - 4], 4
cmp word [edi], ax
jne 0x658772
xor ecx, ecx
jmp 0x658786
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x658777
sub ecx, edx
sar ecx, 1
push ecx
push edi
lea ecx, [ebp - 0x40]
call fcn.004426a0
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x2ec]
call fcn.00659470
lea eax, [ebp - 0x310]
push eax
push 0
push 0
call fcn.00657d80
lea eax, [ebp - 0x300]
xor edi, edi
push eax
push edi
push edi
mov dword [ebp - 0x30c], edi
call fcn.00657d80
add esp, 0x18
mov dword [ebp - 0x2fc], edi
lea eax, [ebp - 0x40]
lea ecx, [ebp - 0x300]
push eax
call fcn.005554b2
cmp dword [ebp - 0x2dc], edi
sete al
test al, al
jne 0x658d55
mov edi, dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov ebx, dword [sym.imp.KERNEL32.dll_FindClose]
nop word [eax + eax]
push 1
lea eax, [ebp - 0x31c]
push eax
lea eax, [ebp - 0x328]
push eax
lea ecx, [ebp - 0x2ec]
call fcn.00658f00
mov ecx, eax
call fcn.00658120
mov edx, eax
mov eax, dword [edx]
test eax, eax
je 0x65882c
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, dword [edx + 8]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x40]
cmp ecx, eax
je 0x65884a
push 0xffffffffffffffff
push 0
push eax
call fcn.004427a0
push 0x70f0c4
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.00554c3f
push 0x706064
push eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 5
push eax
call fcn.0044ace0
add esp, 0x18
mov esi, eax
lea eax, [ebp - 0x58]
cmp eax, esi
je 0x6588b0
mov eax, dword [ebp - 0x44]
cmp eax, 8
jb 0x658893
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.00442c90
xor eax, eax
mov dword [ebp - 0x44], 7
push esi
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x48], 0
mov word [ebp - 0x58], ax
call fcn.0044a860
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 5
cmp eax, 8
jb 0x658907
mov ecx, dword [ebp - 0x28]
inc eax
cmp eax, 0x7fffffff
ja 0x6586ed
add eax, eax
cmp eax, 0x1000
jb 0x6588fe
test cl, 0x1f
jne 0x6586ed
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x6586ed
sub ecx, eax
cmp ecx, 4
jb 0x6586ed
cmp ecx, 0x23
ja 0x6586ed
mov ecx, eax
push ecx
call fcn.00495460
add esp, 4
xor eax, eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x18], 0
mov byte [ebp - 4], 4
cmp eax, 8
jb 0x658975
mov ecx, dword [ebp - 0x88]
inc eax
cmp eax, 0x7fffffff
ja 0x6586ed
add eax, eax
cmp eax, 0x1000
jb 0x65896c
test cl, 0x1f
jne 0x6586ed
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x6586ed
sub ecx, eax
cmp ecx, 4
jb 0x6586ed
cmp ecx, 0x23
ja 0x6586ed
mov ecx, eax
push ecx
call fcn.00495460
add esp, 4
mov eax, dword [ebp - 0x2e0]
mov ecx, dword [ebp - 0x2dc]
dec eax
mov edx, dword [ebp - 0x2e4]
add ecx, eax
mov eax, dword [ebp - 0x2e8]
dec edx
and edx, ecx
mov esi, dword [eax + edx*4]
mov eax, dword [esi + 0x14]
cmp eax, 8
jb 0x6589e8
mov ecx, dword [esi]
inc eax
cmp eax, 0x7fffffff
ja 0x6586ed
add eax, eax
cmp eax, 0x1000
jb 0x6589df
test cl, 0x1f
jne 0x6586ed
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x6586ed
sub ecx, eax
cmp ecx, 4
jb 0x6586ed
cmp ecx, 0x23
ja 0x6586ed
mov ecx, eax
push ecx
call fcn.00495460
add esp, 4
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
cmp dword [esi + 0x14], 8
jb 0x6589fe
mov esi, dword [esi]
xor eax, eax
mov ecx, 0
mov word [esi], ax
sub dword [ebp - 0x2dc], 1
mov eax, dword [ebp - 0x2e0]
cmove eax, ecx
cmp dword [ebp - 0x44], 8
mov dword [ebp - 0x2e0], eax
lea ecx, [ebp - 0x2d8]
lea eax, [ebp - 0x58]
cmovae eax, dword [ebp - 0x58]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x658e6b
mov edx, 0x70efcc
lea ecx, [ebp - 0x2ac]
nop dword [eax]
mov ax, word [ecx]
cmp ax, word [edx]
jne 0x658a76
test ax, ax
je 0x658a72
mov ax, word [ecx + 2]
cmp ax, word [edx + 2]
jne 0x658a76
add ecx, 4
add edx, 4
test ax, ax
jne 0x658a50
xor eax, eax
jmp 0x658a7b
sbb eax, eax
or eax, 1
test eax, eax
je 0x658c29
mov eax, 0x6d8d08
lea ecx, [ebp - 0x2ac]
nop
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x658ab6
test dx, dx
je 0x658ab2
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x658ab6
add ecx, 4
add eax, 4
test dx, dx
jne 0x658a90
xor eax, eax
jmp 0x658abb
sbb eax, eax
or eax, 1
test eax, eax
je 0x658c29
test byte [ebp - 0x2d8], 0x10
je 0x658c36
push 0x70f0c4
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00554c3f
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 7
push ecx
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0044ace0
add esp, 0x18
push eax
lea ecx, [ebp - 0x2ec]
mov byte [ebp - 4], 8
call fcn.006593e0
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x658b1f
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00442c90
xor eax, eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x18], 0
mov byte [ebp - 4], 4
cmp eax, 8
jb 0x658b4c
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.00442c90
push 0x70f0c4
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00554c3f
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 9
push ecx
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0044ace0
add esp, 0x18
push eax
lea ecx, [ebp - 0x300]
mov byte [ebp - 4], 0xa
call fcn.00659540
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x658b9b
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00442c90
xor eax, eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x18], 0
mov byte [ebp - 4], 4
cmp eax, 8
jb 0x658bc8
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.00442c90
push 0x70f0c4
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00554c3f
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 0xb
push ecx
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.0044ace0
mov eax, dword [ebp - 0x5c]
add esp, 0x18
mov byte [ebp - 4], 4
cmp eax, 8
jb 0x658c0e
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.00442c90
mov eax, dword [ebp - 0x74]
cmp eax, 8
jb 0x658c29
inc eax
lea ecx, [ebp - 0x88]
push eax
push dword [ebp - 0x88]
call fcn.00442c90
test byte [ebp - 0x2d8], 0x10
jne 0x658d1c
push 0x70f0c4
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.00554c3f
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 0xc
push ecx
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0044ace0
add esp, 0x18
push eax
lea ecx, [ebp - 0x310]
mov byte [ebp - 4], 0xd
call fcn.00659540
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x658c88
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00442c90
xor eax, eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x18], 0
mov byte [ebp - 4], 4
cmp eax, 8
jb 0x658cbb
inc eax
lea ecx, [ebp - 0x88]
push eax
push dword [ebp - 0x88]
call fcn.00442c90
push 0x70f0c4
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.00554c3f
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 0xe
push ecx
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.0044ace0
mov eax, dword [ebp - 0x74]
add esp, 0x18
mov byte [ebp - 4], 4
cmp eax, 8
jb 0x658d07
inc eax
lea ecx, [ebp - 0x88]
push eax
push dword [ebp - 0x88]
call fcn.00442c90
mov eax, dword [ebp - 0x5c]
cmp eax, 8
jb 0x658d1c
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.00442c90
lea eax, [ebp - 0x2d8]
push eax
push esi
call edi
test eax, eax
jne 0x658a42
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
cmp eax, 0x12
jne 0x658d6a
call ebx
cmp dword [ebp - 0x2dc], 0
jne 0x658800
mov edi, dword [ebp - 0x30c]
mov esi, dword [ebp - 0x310]
cmp esi, edi
je 0x658d84
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileW]
nop
cmp dword [esi + 0x14], 8
jb 0x658d70
mov eax, dword [esi]
jmp 0x658d72
call ebx
xor bl, bl
jmp 0x658dd1
mov eax, esi
push eax
call ebx
test eax, eax
je 0x658e6b
add esi, 0x18
cmp esi, edi
jne 0x658d60
mov edi, dword [ebp - 0x2fc]
mov esi, dword [ebp - 0x300]
mov byte [ebp - 0x304], 0
push dword [ebp - 0x304]
push edi
push esi
call fcn.00657e10
add esp, 0xc
cmp esi, edi
je 0x658dcf
mov ebx, dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
cmp dword [esi + 0x14], 8
jb 0x658dbb
mov eax, dword [esi]
jmp 0x658dbd
mov eax, esi
push eax
call ebx
test eax, eax
je 0x658e6b
add esi, 0x18
cmp esi, edi
jne 0x658db1
mov bl, 1
mov eax, dword [ebp - 0x2c]
cmp eax, 8
jb 0x658de6
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.00442c90
xor eax, eax
mov dword [ebp - 0x2c], 7
mov dword [ebp - 0x30], 0
mov word [ebp - 0x40], ax
lea ecx, [ebp - 0x300]
call fcn.00477240
lea ecx, [ebp - 0x310]
call fcn.00477240
lea ecx, [ebp - 0x2ec]
call fcn.00658330
push 1
push dword [ebp - 0x2ec]
lea ecx, [ebp - 0x2ed]
call fcn.00658610
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x2ec], 0
cmp ecx, 8
jb 0x658e4d
inc ecx
push ecx
push dword [ebp - 0x58]
lea ecx, [ebp - 0x58]
call fcn.00442c90
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005e980b
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x2f4]
xor bl, bl
mov dword [ecx], eax
jmp 0x658dd1