Function at 0x4150c0
Capabilities:
Delete file
Get common file path
Set file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x44c2f1
mov eax, dword fs:[0]
push eax
sub esp, 0x880
mov eax, dword [0x45dd50]
xor eax, esp
mov dword [esp + 0x878], eax
push ebx
push esi
push edi
mov eax, dword [0x45dd50]
xor eax, esp
push eax
lea eax, [esp + 0x890]
mov dword fs:[0], eax
push 0x400
lea eax, [esp + 0x88]
push eax
mov edi, ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
call fcn.0041cd80
cmp eax, 1
je 0x41512c
cmp eax, 2
je 0x41512c
push edi
call fcn.00414880
jmp 0x41513f
call fcn.00414960
mov ecx, edi
call fcn.00414b70
mov ecx, edi
call fcn.00414c90
xor ebx, ebx
xor ecx, ecx
lea eax, [esp + 0x84]
mov dword [esp + 0x64], 7
mov dword [esp + 0x60], ebx
mov word [esp + 0x50], cx
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x415160
sub eax, edx
sar eax, 1
push eax
lea edx, [esp + 0x88]
push edx
lea ecx, [esp + 0x54]
call fcn.00402450
push 9
push str.drivers_
lea esi, [esp + 0x54]
mov dword [esp + 0x8a0], ebx
call fcn.00402dd0
lea eax, [esp + 0x18]
push eax
call fcn.00410850
lea ecx, [esp + 0x18]
push ecx
push edi
mov byte [esp + 0x8a0], 1
call fcn.00410590
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov ecx, edi
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x4152e8
mov dword [esp + 0x14], 0
cmp ebx, eax
jb 0x4151ef
call fcn.0042f0b7
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
lea eax, [edx + esi]
push eax
lea ecx, [esp + 0x50]
lea esi, [esp + 0x6c]
call fcn.00402bb0
add esp, 4
mov byte [esp + 0x898], 2
mov edx, dword [esp + 0x6c]
mov edi, 8
cmp dword [esp + 0x80], edi
jae 0x415225
lea edx, [esp + 0x6c]
xor eax, eax
mov word [esp + 0x34], ax
mov eax, edx
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x415241
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x38]
call fcn.00402450
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x48], edi
jae 0x415269
lea eax, [esp + 0x34]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x48], edi
jae 0x415283
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [esp + 0x48], edi
jb 0x41529d
mov ecx, dword [esp + 0x34]
push ecx
call fcn.0042123b
add esp, 4
mov byte [esp + 0x898], 1
cmp dword [esp + 0x80], edi
jb 0x4152bb
mov edx, dword [esp + 0x6c]
push edx
call fcn.0042123b
add esp, 4
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
add dword [esp + 0x14], 0x1c
mov ecx, edi
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc ebx
add eax, edx
cmp ebx, eax
jb 0x4151ef
xor ebx, ebx
cmp esi, ebx
je 0x41532c
cmp esi, edi
je 0x415323
add esi, 0x18
cmp dword [esi], 8
jb 0x415306
mov eax, dword [esi - 0x14]
push eax
call fcn.0042123b
add esp, 4
xor ecx, ecx
mov dword [esi], 7
mov dword [esi - 4], ebx
mov word [esi - 0x14], cx
add esi, 0x1c
lea edx, [esi - 0x18]
cmp edx, edi
jne 0x4152f5
mov esi, dword [esp + 0x24]
push esi
call fcn.0042123b
add esp, 4
mov eax, dword [esp + 0x18]
push eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
call fcn.0042123b
add esp, 4
cmp dword [esp + 0x64], 8
jb 0x415359
mov ecx, dword [esp + 0x50]
push ecx
call fcn.0042123b
add esp, 4
mov ecx, dword [esp + 0x890]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x878]
xor ecx, esp
call fcn.0042eb3c
mov esp, ebp
pop ebp
ret