Function at 0x440e90
Capabilities:
Check if file exists
Delete file
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x254
push ebx
push esi
mov esi, dword [ebp + 8]
test esi, esi
push edi
jne 0x440eb0
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x114], 6
jne 0x4412c6
mov eax, dword [esi + 0x124]
test eax, eax
je 0x4412c6
cmp byte [eax], 0
je 0x4412c6
lea edi, [esi + 0x128]
test edi, edi
mov dword [esp + 0xc], edi
je 0x4412c6
cmp byte [edi], 0
je 0x4412c6
mov eax, dword [esi + 0x234]
cmp eax, 1
mov dword [esp + 0x10], eax
jge 0x440f06
mov dword [esp + 0x10], 5
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileA]
push edi
call ebx
test eax, eax
jne 0x440f32
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x440f32
test al, 1
je 0x440f32
push 0x80
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push edi
call ebx
mov eax, dword [esi + 0x124]
mov dword [esp + 0x14], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x440f43
sub eax, edx
lea edi, [eax + 0x184]
push edi
call fcn.00459619
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4410db
mov ecx, edi
mov edx, ecx
shr ecx, 2
xor eax, eax
mov edi, ebx
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
xor eax, eax
mov ecx, 0x41
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
push 0x103
lea eax, [esp + 0x1c]
push eax
push str._SYSTEMROOT__system32cmd.exe
call fcn.0044a750
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x4410ca
lea ecx, [esp + 0x120]
push ecx
lea edx, [esp + 0x1c]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x4410ca
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
lea eax, [esp + 0x18]
push eax
push str._s__C
push ebx
call fcn.00458ee7
mov ecx, dword [esi + 0x124]
push 0x22
push ecx
call fcn.004590c0
add esp, 0x14
test eax, eax
je 0x441073
inc edi
inc eax
push 0x22
push eax
call fcn.004590c0
add esp, 8
test eax, eax
jne 0x440ff3
cmp edi, 3
jle 0x441073
mov edi, ebx
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x441010
mov dx, word [0x46a3c0]
mov word [edi], dx
mov eax, dword [esi + 0x124]
mov esi, eax
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x441030
mov edi, ebx
sub eax, esi
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x441040
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebx
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x441060
mov ax, word [0x46a3c0]
mov word [edi], ax
jmp 0x4410a8
mov eax, dword [esi + 0x124]
mov edx, eax
jmp 0x441080
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x441080
mov edi, ebx
sub eax, edx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x441090
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
push ecx
push 1
lea edx, [esp + 0x20]
push ebx
push edx
call fcn.0044ac30
mov esi, dword [ebp + 8]
add esp, 0x10
mov edi, eax
mov dword [esp + 0x14], 1
push ebx
call fcn.0045932f
mov eax, dword [esp + 0x18]
add esp, 4
test eax, eax
jne 0x4410f5
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x124]
push eax
push 1
push ecx
push 0
call fcn.0044ac30
add esp, 0x10
mov edi, eax
mov eax, dword [esi + 0x230]
test eax, eax
je 0x441112
push eax
call fcn.0045932f
add esp, 4
mov dword [esi + 0x230], 0
test edi, edi
je 0x44114d
mov eax, dword [esi + 0x254]
test eax, eax
jle 0x441141
mov edx, dword [esi + 0x124]
push edx
push str.Failed_to_run_system_check_command__s_n
call fcn.0043ed20
mov eax, dword [esi + 0x254]
add esp, 8
dec eax
mov dword [esi + 0x254], eax
mov eax, 0xfffffffd
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0xc]
push 0x4698e4
push eax
call fcn.00459902
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x44119c
mov eax, dword [esi + 0x254]
test eax, eax
jle 0x441190
mov ecx, dword [esi + 0x124]
push ecx
push str.Failed_to_read_results_from_system_check_command__s_n
call fcn.0043ed20
mov eax, dword [esi + 0x254]
add esp, 8
dec eax
mov dword [esi + 0x254], eax
mov eax, 0xfffffffc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 2
push 0
push ebx
call fcn.0045985d
push ebx
call fcn.0045978d
push 0
push 0
push ebx
mov esi, eax
call fcn.0045985d
add esp, 0x1c
cmp esi, 1
jae 0x4411c2
xor esi, esi
lea edi, [esi + 1]
push edi
call fcn.00459619
mov edx, eax
mov eax, dword [ebp + 8]
add esp, 4
test edx, edx
mov dword [eax + 0x230], edx
jne 0x441221
mov ecx, dword [eax + 0x254]
test ecx, ecx
jle 0x44120c
mov edx, dword [eax + 0x124]
push edx
push edi
push str.Failed_to_allocate__d_bytes_for_read_results_from_system_check_command__s_n
call fcn.0043ed20
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x254]
add esp, 0xc
dec ecx
mov dword [eax + 0x254], ecx
push ebx
call fcn.00459521
mov eax, 0xfffffffa
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edi
mov edi, edx
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
push ebx
rep stosb byte es:[edi], al
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x230]
push esi
push 1
push eax
call fcn.00459489
push ebx
mov dword [esp + 0x20], eax
call fcn.00459521
mov eax, dword [esp + 0x20]
add esp, 0x14
cmp eax, esi
jne 0x441275
add edi, 0x248
push edi
call fcn.0045a1c9
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x254]
test eax, eax
jle 0x4412a1
mov ecx, dword [edi + 0x124]
push ecx
push esi
push str.Failed_to_read__d_bytes_of_results_from__s_after_running_system_check_command__s_n
call fcn.0043ed20
mov eax, dword [edi + 0x254]
add esp, 0xc
dec eax
mov dword [edi + 0x254], eax
mov edx, dword [edi + 0x230]
push edx
call fcn.0045932f
mov dword [edi + 0x230], 0
mov eax, 0xfffffffb
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret