Function at 0x10108000
Capabilities:
Check if file exists
Copy file
Delete file
Get common file path
Get file attributes

Disassembly:
mov eax, 0x10cc
call fcn.1010ecf0
mov eax, dword [0x1013b024]
xor eax, esp
mov dword [esp + 0x10c8], eax
push ebx
push ebp
push esi
push edi
xor ebp, ebp
push 0x3fe
lea eax, [esp + 0x4de]
mov ebx, ecx
push ebp
push eax
mov dword [esp + 0x1c], ebx
mov word [esp + 0x4e4], bp
call sub.MSVCR80.dll_memset
push 0x3fe
lea ecx, [esp + 0xea]
push ebp
push ecx
mov word [esp + 0xf0], bp
call sub.MSVCR80.dll_memset
push 0x3fe
lea edx, [esp + 0x8f6]
push ebp
push edx
mov word [esp + 0x8fc], bp
call sub.MSVCR80.dll_memset
push 0x3fe
lea eax, [esp + 0xd02]
push ebp
push eax
mov word [esp + 0xd08], bp
call sub.MSVCR80.dll_memset
mov ecx, 6
mov esi, str.ammntdrv.sys
lea edi, [esp + 0x48]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
add esp, 0x30
xor eax, eax
mov dword [esp + 0x32], eax
mov dword [esp + 0x36], eax
mov dword [esp + 0x3a], eax
mov dword [esp + 0x3e], eax
mov dword [esp + 0x42], eax
mov dword [esp + 0x46], eax
mov dword [esp + 0x4a], eax
mov dword [esp + 0x4e], eax
mov dword [esp + 0x52], eax
mov word [esp + 0x56], ax
mov ecx, 6
mov esi, str.ambakdrv.sys
lea edi, [esp + 0x58]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov dword [esp + 0x72], eax
mov dword [esp + 0x76], eax
mov dword [esp + 0x7a], eax
mov dword [esp + 0x7e], eax
mov dword [esp + 0x82], eax
mov dword [esp + 0x86], eax
mov dword [esp + 0x8a], eax
mov dword [esp + 0x8e], eax
mov dword [esp + 0x92], eax
mov word [esp + 0x96], ax
mov ecx, 6
mov esi, str.amwrtdrv.sys
lea edi, [esp + 0x98]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea ecx, [ebx + 0x1c]
mov dword [esp + 0xb2], eax
mov dword [esp + 0xb6], eax
mov dword [esp + 0xba], eax
mov dword [esp + 0xbe], eax
mov dword [esp + 0xc2], eax
mov dword [esp + 0xc6], eax
mov dword [esp + 0xca], eax
mov dword [esp + 0xce], eax
mov dword [esp + 0xd2], eax
mov word [esp + 0xd6], ax
mov eax, ecx
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
cmp dx, bp
jne 0x10108181
sub eax, esi
sar eax, 1
xor edx, edx
cmp edx, eax
sbb edi, edi
neg edi
jne 0x101081d9
push 0x128
mov esi, str..green.cpp
call fcn.10107420
add esp, 4
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call sub.Comn.dll_GetObjectLog
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
push esi
push ebx
push str._tcslen_m_tszRoot__0
push str._s_return_code:_0x_08X___s.
push eax
call edx
add esp, 0x14
mov eax, edi
jmp 0x10108430
lea edx, [esp + 0x4d8]
mov eax, ecx
sub edx, ecx
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
cmp cx, bp
jne 0x101081e4
mov edi, dword [sym.imp.MSVCR80.dll__swprintf]
xor esi, esi
jmp 0x10108204
mov ebx, dword [esp + 0x10]
push 0x400
lea eax, [esp + 0xdc]
push ebp
push eax
call sub.MSVCR80.dll_memset
add esp, 0xc
cmp dword [ebx + 4], ebp
lea ecx, [esp + 0x18]
lea edx, [esp + 0x4d8]
push ecx
lea eax, [esp + 0xdc]
push edx
je 0x1010823a
push str._sdriver_amd64_s
jmp 0x1010823f
push str._sdriveri386_s
push eax
call edi
add esp, 0x10
lea ecx, [esp + 0xd8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
xor ebx, ebx
cmp eax, 0xffffffff
setne bl
cmp ebx, ebp
je 0x101082c3
add esi, 1
cmp esi, 3
jb 0x10108200
push 0x200
lea ecx, [esp + 0xcdc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ebx, eax
cmp ebx, ebp
mov dword [esp + 0x14], ebx
jne 0x101082ed
push 0x13c
mov esi, str..green.cpp
call fcn.10107420
add esp, 4
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call sub.Comn.dll_GetObjectLog
push esi
push edi
push str.GetSystemDirectory_tszSysDir__sizeof_tszSysDir__sizeof_tszSysDir_0___
mov edx, dword [eax]
push str._s_return_code:_0x_08X___s.
push eax
mov eax, dword [edx + 0xc]
call eax
add esp, 0x14
mov eax, ebx
jmp 0x10108430
push 0x139
mov esi, str..green.cpp
call fcn.10107420
add esp, 4
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call sub.Comn.dll_GetObjectLog
push esi
push edi
push str.GetFileAttributes_tszFile__INVALID_FILE_ATTRIBUTES
jmp 0x101082ac
lea esi, [esp + 0x18]
mov ebx, 3
jmp 0x10108300
push 0x400
lea ecx, [esp + 0xdc]
push ebp
push ecx
call sub.MSVCR80.dll_memset
push esi
lea edx, [esp + 0xce8]
push edx
lea eax, [esp + 0xec]
push str._s_s
push eax
call edi
add esp, 0x1c
lea ecx, [esp + 0xd8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1010834f
lea edx, [esp + 0xd8]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
add esi, 0x40
sub ebx, 1
jne 0x10108300
mov ebp, dword [sym.imp.KERNEL32.dll_CopyFileW]
lea esi, [esp + 0x18]
mov ebx, 3
jmp 0x10108370
push 0x400
lea eax, [esp + 0x8dc]
push 0
push eax
call sub.MSVCR80.dll_memset
push 0x400
lea ecx, [esp + 0xe8]
push 0
push ecx
call sub.MSVCR80.dll_memset
mov edx, dword [esp + 0x28]
add esp, 0x18
cmp dword [edx + 4], 0
push esi
je 0x101083bd
lea eax, [esp + 0x4dc]
push eax
push str._sdriver_amd64_s
lea ecx, [esp + 0x8e4]
push ecx
jmp 0x101083d2
lea edx, [esp + 0x4dc]
push edx
push str._sdriveri386_s
lea eax, [esp + 0x8e4]
push eax
call edi
add esp, 0x10
push esi
lea ecx, [esp + 0xcdc]
push ecx
lea edx, [esp + 0xe0]
push str._s_s
push edx
call edi
add esp, 0x10
lea eax, [esp + 0xd8]
call fcn.101090c0
lea eax, [esp + 0xd8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0
lea ecx, [esp + 0xdc]
push ecx
lea edx, [esp + 0x8e0]
push edx
call ebp
add esi, 0x40
sub ebx, 1
jne 0x10108370
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10d8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1010dc50
add esp, 0x10cc
ret