Function at 0x457800
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50f110
mov eax, dword fs:[0]
push eax
sub esp, 0x660
mov eax, dword [0x58fa2c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x66c], ebx
mov dword [ebp - 4], 0
mov ecx, dword [ebx + 0x60]
cmp byte [ecx + 0x1f54], 0
je 0x457ab4
add ecx, 0x1d4c
lea edx, [ebp - 0x118]
sub edx, ecx
nop
mov al, byte [ecx]
mov byte [edx + ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x457860
lea eax, [ebp - 0x118]
push eax
call fcn.00488700
add esp, 4
mov edx, dword [ebx + 0x60]
add edx, 0x1f54
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x457886
sub edx, esi
lea edi, [ebp - 0x118]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x457896
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x118]
push eax
call fcn.00488700
add esp, 4
lea edi, [ebp - 0x118]
dec edi
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x4578c2
mov eax, dword [0x51bc60]
mov dword [edi], eax
lea eax, [ebp - 0x668]
push eax
lea eax, [ebp - 0x118]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4579fc
nop dword [eax]
nop word [eax + eax]
mov esi, dword [ebp - 0x66c]
mov ecx, dword [esi + 0x60]
add ecx, 0x1d4c
lea edx, [ebp - 0x424]
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x457917
lea eax, [ebp - 0x424]
push eax
call fcn.00488700
add esp, 4
mov edx, dword [esi + 0x60]
add edx, 0x1f54
mov esi, edx
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x457940
sub edx, esi
lea edi, [ebp - 0x424]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x457950
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x424]
push eax
call fcn.00488700
add esp, 4
lea edx, [ebp - 0x63c]
mov esi, edx
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x457980
sub edx, esi
lea edi, [ebp - 0x424]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x457990
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test byte [ebp - 0x668], 0x10
jne 0x4579d0
lea eax, [ebp - 0x424]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x4579d0
push eax
lea eax, [ebp - 0x424]
push eax
call fcn.0048d3e0
add esp, 8
push pe_nt_image_headers32
push 0
lea eax, [ebp - 0x668]
push eax
call fcn.004b8570
add esp, 0xc
lea eax, [ebp - 0x668]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x457900
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ebx, dword [ebp - 0x66c]
mov ecx, dword [ebx + 0x60]
add ecx, 0x1d4c
lea edx, [ebp - 0x118]
sub edx, ecx
nop word [eax + eax]
mov al, byte [ecx]
mov byte [edx + ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x457a20
lea eax, [ebp - 0x118]
push eax
call fcn.00488700
add esp, 4
mov edx, dword [ebx + 0x60]
add edx, 0x1f54
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x457a46
sub edx, esi
lea edi, [ebp - 0x118]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x457a56
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x21c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push 0x51c1c0
mov esi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
call esi
lea eax, [ebp - 0x118]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
push 0
lea eax, [ebp - 0x118]
push eax
call fcn.0048d3e0
add esp, 8
lea eax, [ebp - 0x21c]
push eax
call esi
jmp 0x457aba
mov esi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov ecx, dword [ebx + 0x60]
cmp byte [ecx + 0x8190], 0
je 0x457e72
add ecx, 0x1d4c
lea edx, [ebp - 0x118]
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x457ad8
lea eax, [ebp - 0x118]
push eax
call fcn.00488700
add esp, 4
mov edx, dword [ebx + 0x60]
add edx, 0x8190
mov esi, edx
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x457b00
sub edx, esi
lea edi, [ebp - 0x118]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x457b10
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x118]
push eax
call fcn.00488700
add esp, 4
lea edi, [ebp - 0x118]
dec edi
nop dword [eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x457b40
mov eax, dword [0x51bc60]
mov dword [edi], eax
lea eax, [ebp - 0x668]
push eax
lea eax, [ebp - 0x118]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x457cf2
mov esi, dword [ebp - 0x66c]
mov ecx, dword [esi + 0x60]
add ecx, 0x1d4c
lea edx, [ebp - 0x320]
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x457b87
lea eax, [ebp - 0x320]
push eax
call fcn.00488700
add esp, 4
mov edx, dword [esi + 0x60]
add edx, 0x8190
mov esi, edx
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x457bb0
sub edx, esi
lea edi, [ebp - 0x320]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x457bc0
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x320]
push eax
call fcn.00488700
add esp, 4
lea edx, [ebp - 0x63c]
mov esi, edx
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x457bf0
sub edx, esi
lea edi, [ebp - 0x320]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x457c00
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test byte [ebp - 0x668], 0x10
je 0x457ca5
mov ecx, 0x568808
lea eax, [ebp - 0x63c]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x457c50
test dl, dl
je 0x457c4c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x457c50
add eax, 2
add ecx, 2
test dl, dl
jne 0x457c30
xor eax, eax
jmp 0x457c55
sbb eax, eax
or eax, 1
test eax, eax
je 0x457cc6
mov ecx, 0x51ce58
lea eax, [ebp - 0x63c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x457c84
test dl, dl
je 0x457c80
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x457c84
add eax, 2
add ecx, 2
test dl, dl
jne 0x457c64
xor eax, eax
jmp 0x457c89
sbb eax, eax
or eax, 1
test eax, eax
je 0x457cc6
push 0x51bc60
lea eax, [ebp - 0x320]
push eax
push 1
call fcn.0048ce70
add esp, 0xc
jmp 0x457cb2
lea eax, [ebp - 0x320]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x457cc6
push eax
lea eax, [ebp - 0x320]
push eax
call fcn.0048d3e0
add esp, 8
push pe_nt_image_headers32
push 0
lea eax, [ebp - 0x668]
push eax
call fcn.004b8570
add esp, 0xc
lea eax, [ebp - 0x668]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x457b70
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ebx, dword [ebp - 0x66c]
mov ecx, dword [ebx + 0x60]
add ecx, 0x1d4c
lea edx, [ebp - 0x118]
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x457d10
lea eax, [ebp - 0x118]
push eax
call fcn.00488700
add esp, 4
mov edx, dword [ebx + 0x60]
add edx, 0x8190
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x457d36
sub edx, esi
lea edi, [ebp - 0x118]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x457d46
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x118]
push eax
call fcn.00488700
add esp, 4
mov edx, dword [ebx + 0x60]
add edx, 0x8294
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x457d76
sub edx, esi
lea edi, [ebp - 0x118]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x457d86
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x118]
dec ecx
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x457da3
mov eax, dword [str..dat]
mov dword [ecx], eax
mov al, byte [0x51ce60]
mov byte [ecx + 4], al
push 0
lea eax, [ebp - 0x118]
push eax
call fcn.0048d3e0
add esp, 8
mov ecx, dword [ebx + 0x60]
add ecx, 0x1d4c
lea edx, [ebp - 0x118]
sub edx, ecx
nop
mov al, byte [ecx]
mov byte [edx + ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x457de0
lea eax, [ebp - 0x118]
push eax
call fcn.00488700
add esp, 4
mov edx, dword [ebx + 0x60]
add edx, 0x8190
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x457e06
sub edx, esi
lea edi, [ebp - 0x118]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x457e16
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x21c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push 0x51c1c0
mov esi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
call esi
lea eax, [ebp - 0x118]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
push 0
lea eax, [ebp - 0x118]
push eax
call fcn.0048d3e0
add esp, 8
lea eax, [ebp - 0x21c]
push eax
call esi
mov ecx, dword [ebx + 0x60]
add ecx, 0x1d4c
cmp byte [ecx], 0
je 0x45808a
lea edx, [ebp - 0x118]
sub edx, ecx
nop dword [eax]
mov al, byte [ecx]
mov byte [edx + ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x457e90
lea eax, [ebp - 0x118]
push eax
call fcn.00488700
add esp, 4
lea ecx, [ebp - 0x118]
dec ecx
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x457eb2
mov ax, word [0x51ba28]
mov word [ecx], ax
mov al, byte [0x51ba2a]
mov byte [ecx + 2], al
mov edx, dword [ebx + 0x60]
add edx, 0x2058
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x457ed8
sub edx, esi
lea edi, [ebp - 0x118]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x457ee8
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x668]
push eax
lea eax, [ebp - 0x118]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x458077
nop dword [eax]
mov eax, dword [ebp - 0x66c]
mov ecx, dword [eax + 0x60]
add ecx, 0x1d4c
lea edx, [ebp - 0x21c]
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x457f37
lea eax, [ebp - 0x21c]
push eax
call fcn.00488700
add esp, 4
lea edx, [ebp - 0x63c]
mov esi, edx
nop word [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x457f60
sub edx, esi
lea edi, [ebp - 0x21c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x457f70
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test byte [ebp - 0x668], 0x10
je 0x45802d
mov ecx, 0x568808
lea eax, [ebp - 0x63c]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x457fc0
test dl, dl
je 0x457fbc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x457fc0
add eax, 2
add ecx, 2
test dl, dl
jne 0x457fa0
xor eax, eax
jmp 0x457fc5
sbb eax, eax
or eax, 1
test eax, eax
je 0x45804b
mov ecx, 0x51ce58
lea eax, [ebp - 0x63c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x457ff8
test dl, dl
je 0x457ff4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x457ff8
add eax, 2
add ecx, 2
test dl, dl
jne 0x457fd8
xor eax, eax
jmp 0x457ffd
sbb eax, eax
or eax, 1
test eax, eax
je 0x45804b
push 0x51bc60
lea eax, [ebp - 0x21c]
push eax
push 1
call fcn.0048ce70
add esp, 0xc
test eax, eax
jne 0x45804b
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.0048d3e0
add esp, 8
jmp 0x45804b
push 0
lea eax, [ebp - 0x21c]
push eax
call fcn.0048d3e0
add esp, 8
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push pe_nt_image_headers32
push 0
lea eax, [ebp - 0x668]
push eax
call fcn.004b8570
add esp, 0xc
lea eax, [ebp - 0x668]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x457f20
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ebx, dword [ebp - 0x66c]
mov esi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 0
mov eax, dword [ebx + 0x60]
add eax, 0x1d4
push eax
call fcn.0048d3e0
add esp, 8
lea eax, [ebp - 0x528]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push 0x51c1c0
call esi
mov eax, dword [ebx + 0x60]
add eax, 0x1d4c
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
push 0
mov eax, dword [ebx + 0x60]
add eax, 0x1d4c
push eax
call fcn.0048d3e0
add esp, 8
lea eax, [ebp - 0x528]
push eax
call esi
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004a4566
mov esp, ebp
pop ebp
ret