Function at 0x4044e6
Capabilities:
Create thread
Get common file path
Set current directory
Set file attributes

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [esp + 0x14]
push edi
mov edi, dword [esp + 0x14]
push dword [esp + 0x20]
mov ebp, 0x4182fc
push dword [esp + 0x20]
push esi
push edi
push str.CreateDiskLite._1.__08X.__s__08X.__08X.
push ebp
push 3
call fcn.00407279
add esp, 0x1c
test esi, esi
je 0x404748
cmp dword [esp + 0x1c], 0
je 0x404748
push 0x20
mov ebx, 0x418858
push 0
push ebx
call fcn.0040b6c0
push 0x7d0
push 0
push dword [0x41411c]
call fcn.0040b6c0
mov eax, dword [esp + 0x34]
add esp, 0x18
mov dword [0x418860], eax
mov eax, dword [esp + 0x20]
push 0x100
push esi
mov dword [0x414118], 0x7d0
mov dword [0x418858], 0x414118
mov dword [0x418870], edi
mov dword [0x41885c], esi
mov dword [0x418874], eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x5c
push dword [0x41885c]
call fcn.0040b5f0
pop ecx
test eax, eax
pop ecx
je 0x4045ac
push 0x5c
push dword [0x41885c]
call fcn.0040b5f0
and byte [eax + 1], 0
pop ecx
pop ecx
push dword [0x41885c]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov esi, 0x41916c
push 0x40
push esi
push 0x584
mov dword [0x418374], 4
call fcn.00406e92
mov edx, dword [0x418864]
mov ecx, dword [0x418868]
mov eax, dword [0x41885c]
add esp, 0xc
mov dword [0x418360], esi
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
push edx
push ecx
push eax
mov dword [0x418364], eax
mov dword [0x418378], 1
mov dword [0x41836c], ecx
mov dword [0x418370], edx
call esi
push eax
push str.CreateDiskLite._2.__08X.__s.__08X.__08X.
push ebp
push 3
call fcn.00407279
push 0x418360
push edi
call fcn.004023d5
add esp, 0x24
test eax, eax
je 0x40471c
push dword [0x418860]
push edi
call fcn.004015a6
pop ecx
test eax, eax
pop ecx
je 0x40471c
mov edx, dword [0x418374]
mov ecx, dword [0x418370]
mov eax, dword [0x41836c]
push edx
push ecx
push eax
push dword [0x41885c]
mov dword [0x418868], eax
mov dword [0x418864], ecx
mov dword [0x41886c], edx
call esi
push eax
push str.CreateDiskLite._4.__08X.__s.__08X.__08X.__08X.
push ebp
push 3
call fcn.00407279
xor ebp, ebp
push 0xffffffffffffffff
push ebp
push 0x58a
call fcn.00406e92
add esp, 0x2c
push eax
push edi
push 0xfffffffffffffffa
push edi
call dword [sym.imp.USER32.dll_GetWindowLongA]
push eax
call fcn.0040289b
add esp, 0xc
test eax, eax
jne 0x4046b9
call esi
mov esi, eax
jmp 0x4046f9
push ebp
push dword [0x41885c]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push dword [0x41885c]
call fcn.0040ba8c
mov dword [esp], 0x419154
push ebp
push ebx
push 0x404135
push ebp
push ebp
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, ebp
mov dword [0x41915c], eax
jne 0x404708
call esi
mov esi, eax
call fcn.00402923
push 0x20
push ebp
push ebx
call fcn.0040b6c0
add esp, 0xc
push esi
jmp 0x40474a
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
push ebp
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 1
pop eax
jmp 0x404752
call esi
push dword [0x418864]
mov edi, eax
push dword [0x418868]
push dword [0x41885c]
call esi
push eax
push str.CreateDiskLite._3.__08X.__s.__08X.__08X.
push ebp
push 2
call fcn.00407279
add esp, 0x1c
push edi
jmp 0x40474a
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret