Function at 0x44f1c0
Capabilities:
Check if file exists
Delete directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c8565
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x647f80]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov edi, ecx
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x4c], edi
cmp dword [esi + 0x14], 0xf
mov eax, esi
mov dword [ebp - 0x4c], edi
jbe 0x44f201
mov eax, dword [esi]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x44f240
mov ecx, dword [esi + 0x10]
mov eax, closesocket
sub eax, ecx
cmp eax, 0xf
jb 0x44f6d6
cmp dword [esi + 0x14], 0xf
jbe 0x44f227
mov esi, dword [esi]
push 0xf
push str._does_not_exist
push ecx
push esi
push ecx
push dword [ebp - 0x50]
mov ecx, edi
call fcn.00455400
jmp 0x44f6b9
cmp dword [esi + 0x14], 0xf
mov eax, esi
jbe 0x44f24a
mov eax, dword [esi]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test eax, eax
jne 0x44f5e7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [ebp - 0x4c], ecx
cmp ecx, 0x91
jne 0x44f45b
cmp dword [esi + 0x14], 0xf
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
mov eax, esi
mov dword [ebp - 0x3c], 0
movlpd qword [ebp - 0x36], xmm0
mov dword [ebp - 0x2e], 0
mov dword [ebp - 0x44], 3
jbe 0x44f29e
mov eax, dword [esi]
mov dword [ebp - 0x40], eax
mov eax, 0x614
mov word [ebp - 0x38], ax
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.SHELL32.dll_SHFileOperationA]
test eax, eax
jne 0x44f427
cmp dword [esi + 0x14], 0xf
mov eax, esi
jbe 0x44f2c6
mov eax, dword [esi]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test eax, eax
jne 0x44f3c3
mov ecx, dword [esi + 0x10]
mov eax, closesocket
sub eax, ecx
cmp eax, 4
jb 0x44f6db
cmp dword [esi + 0x14], 0xf
jbe 0x44f2f0
mov esi, dword [esi]
push ecx
push esi
push 4
push str.OK:
push ecx
push dword [ebp - 0x50]
lea ecx, [ebp - 0x68]
call fcn.00455400
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x54]
mov eax, edx
mov ecx, dword [ebp - 0x58]
sub eax, ecx
push 0x17
push str._deletion_successfully.
cmp eax, 0x17
jb 0x44f346
cmp edx, 0xf
lea esi, [ebp - 0x68]
lea eax, [ecx + 0x17]
cmova esi, dword [ebp - 0x68]
add esi, ecx
mov dword [ebp - 0x58], eax
push esi
call fcn.0059fdf0
add esp, 0xc
mov byte [esi + 0x17], 0
lea eax, [ebp - 0x68]
jmp 0x44f357
mov byte [ebp - 0x4c], 0
lea ecx, [ebp - 0x68]
push dword [ebp - 0x4c]
push 0x17
call fcn.004546e0
xorps xmm0, xmm0
movups xmmword [edi], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
movups xmm0, xmmword [eax]
movups xmmword [edi], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov ecx, dword [ebp - 0x54]
cmp ecx, 0xf
jbe 0x44f6b9
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44f6af
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44f6e0
jmp 0x44f6af
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea esi, [ebp - 0x13]
mov dword [ebp - 0x4c], ecx
mov eax, 0xcccccccd
dec esi
mul ecx
shr edx, 3
mov al, dl
shl al, 2
lea ecx, [eax + edx]
mov eax, dword [ebp - 0x4c]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x4c], eax
test eax, eax
jne 0x44f3d1
push ecx
lea eax, [ebp - 0x13]
push eax
push esi
lea ecx, [ebp - 0x68]
call fcn.00455520
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 1
push eax
mov edx, str.Failed_to_remove_directory_after_deleting_contents._Error:
mov ecx, edi
call fcn.00453ba0
add esp, 4
jmp 0x44f38c
mov ecx, dword [esi + 0x10]
mov eax, closesocket
sub eax, ecx
cmp eax, 0x25
jb 0x44f6e5
cmp dword [esi + 0x14], 0xf
jbe 0x44f442
mov esi, dword [esi]
push 0x25
push str._Failed_to_delete_directory_contents.
push ecx
push esi
push ecx
push dword [ebp - 0x50]
mov ecx, edi
call fcn.00455400
jmp 0x44f6b9
lea edi, [ebp - 0x13]
nop
mov eax, 0xcccccccd
dec edi
mul ecx
shr edx, 3
mov al, dl
shl al, 2
lea ecx, [eax + edx]
mov eax, dword [ebp - 0x4c]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [edi], al
mov eax, edx
mov dword [ebp - 0x4c], eax
test eax, eax
jne 0x44f460
push ecx
lea eax, [ebp - 0x13]
push eax
push edi
lea ecx, [ebp - 0x44]
call fcn.00455520
mov edi, dword [ebp - 0x50]
mov eax, closesocket
mov dword [ebp - 4], 2
mov ecx, dword [esi + 0x10]
sub eax, ecx
cmp eax, 0x11
jb 0x44f6ea
cmp dword [esi + 0x14], 0xf
jbe 0x44f4bc
mov esi, dword [esi]
push ecx
push esi
push 0x11
push str.Failed_to_remove
push ecx
push dword [ebp - 0x50]
lea ecx, [ebp - 0x68]
call fcn.00455400
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x54]
mov eax, edx
mov ecx, dword [ebp - 0x58]
sub eax, ecx
push 8
push str._Error:
cmp eax, 8
jb 0x44f50f
cmp edx, 0xf
lea esi, [ebp - 0x68]
lea eax, [ecx + 8]
cmova esi, dword [ebp - 0x68]
add esi, ecx
mov dword [ebp - 0x58], eax
push esi
call fcn.0059fdf0
add esp, 0xc
mov byte [esi + 8], 0
lea eax, [ebp - 0x68]
jmp 0x44f520
mov byte [ebp - 0x50], 0
lea ecx, [ebp - 0x68]
push dword [ebp - 0x50]
push 8
call fcn.004546e0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x80], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x70], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x44]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x80]
mov ecx, edi
push eax
push dword [ebp - 0x50]
call fcn.00455220
mov ecx, dword [ebp - 0x6c]
cmp ecx, 0xf
jbe 0x44f58c
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44f582
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44f6e0
push ecx
push edx
call fcn.0059e516
add esp, 8
mov ecx, dword [ebp - 0x54]
cmp ecx, 0xf
jbe 0x44f5c0
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44f5b6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44f6e0
push ecx
push edx
call fcn.0059e516
add esp, 8
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0xf
mov byte [ebp - 0x68], 0
cmp ecx, 0xf
jbe 0x44f6b9
mov edx, dword [ebp - 0x44]
inc ecx
jmp 0x44f39c
mov ecx, dword [esi + 0x10]
mov eax, closesocket
sub eax, ecx
cmp eax, 4
jb 0x44f6ef
cmp dword [esi + 0x14], 0xf
jbe 0x44f602
mov esi, dword [esi]
push ecx
push esi
push 4
push str.OK:
push ecx
push dword [ebp - 0x50]
lea ecx, [ebp - 0x80]
call fcn.00455400
mov dword [ebp - 4], 5
mov edx, dword [ebp - 0x6c]
mov eax, edx
mov ecx, dword [ebp - 0x70]
sub eax, ecx
push 0x17
push str._deletion_successfully.
cmp eax, 0x17
jb 0x44f658
cmp edx, 0xf
lea esi, [ebp - 0x80]
lea eax, [ecx + 0x17]
cmova esi, dword [ebp - 0x80]
add esi, ecx
mov dword [ebp - 0x70], eax
push esi
call fcn.0059fdf0
add esp, 0xc
mov byte [esi + 0x17], 0
lea eax, [ebp - 0x80]
jmp 0x44f669
mov byte [ebp - 0x50], 0
lea ecx, [ebp - 0x80]
push dword [ebp - 0x50]
push 0x17
call fcn.004546e0
xorps xmm0, xmm0
movups xmmword [edi], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
movups xmm0, xmmword [eax]
movups xmmword [edi], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov ecx, dword [ebp - 0x6c]
cmp ecx, 0xf
jbe 0x44f6b9
mov edx, dword [ebp - 0x80]
inc ecx
jmp 0x44f39c
push ecx
push edx
call fcn.0059e516
add esp, 8
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0059e4d3
mov esp, ebp
pop ebp
ret
call fcn.0044c0d0
call fcn.0044c0d0
call fcn.005a920f
call fcn.0044c0d0
call fcn.0044c0d0
call fcn.0044c0d0
int3