Function at 0x442250
Capabilities:
Check if file exists
Copy file
Get common file path
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b0e11
mov eax, dword fs:[0]
push eax
sub esp, 0x880
push ebx
push esi
push edi
push ecx
lea edi, [ebp - 0x88c]
mov ecx, 0x220
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
pop ecx
mov eax, dword [0x4cf110]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 4], 1
sub esp, 0x20
mov ecx, esp
mov dword [ebp - 0x868], esp
lea eax, [ebp + 0x7c]
push eax
call fcn.0043c0ef
mov dword [ebp - 0x870], eax
call fcn.0043c360
add esp, 0x20
mov dword [ebp - 0x874], eax
cmp dword [ebp - 0x874], 0
je 0x4422ef
sub esp, 0x20
mov ecx, esp
mov dword [ebp - 0x85c], esp
lea eax, [ebp + 0x7c]
push eax
call fcn.0043c0ef
mov dword [ebp - 0x870], eax
call fcn.0043bdf7
add esp, 0x20
xor eax, eax
mov word [ebp - 0x228], ax
push 0x206
push 0
lea eax, [ebp - 0x226]
push eax
call fcn.0043b802
add esp, 0xc
mov esi, esp
push 0x104
lea eax, [ebp - 0x228]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
cmp esi, esp
call fcn.0043c45a
xor eax, eax
mov word [ebp - 0x438], ax
push 0x206
push 0
lea eax, [ebp - 0x436]
push eax
call fcn.0043b802
add esp, 0xc
mov esi, esp
push 0x104
lea eax, [ebp - 0x438]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
cmp esi, esp
call fcn.0043c45a
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x450], 0
lea eax, [ebp + 0x7c]
push eax
lea ecx, [ebp - 0x478]
call fcn.0043c0ef
mov byte [ebp - 4], 2
lea eax, [ebp + 0x1c]
push eax
lea ecx, [ebp - 0x478]
push ecx
lea edx, [ebp - 0x4a0]
push edx
call fcn.0043bd4d
add esp, 0xc
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x4a0]
call fcn.0043c013
push eax
call fcn.0043bb63
add esp, 4
test eax, eax
jne 0x442494
sub esp, 0x20
mov esi, esp
mov dword [ebp - 0x850], esp
push 0x4b722c
lea eax, [ebp - 0x4a0]
push eax
push str.CreateDir_:
lea ecx, [ebp - 0x844]
push ecx
call fcn.0043b389
add esp, 0xc
mov dword [ebp - 0x870], eax
mov edx, dword [ebp - 0x870]
mov dword [ebp - 0x874], edx
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x874]
push eax
push esi
call fcn.0043b0ff
add esp, 0xc
mov dword [ebp - 0x878], eax
call fcn.0043c1d5
add esp, 0x20
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x844]
call fcn.0043bb59
mov esi, esp
push str.CreateDir_faied
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp esi, esp
call fcn.0043c45a
mov dword [ebp - 0x81c], 0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x4a0]
call fcn.0043bb59
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x478]
call fcn.0043bb59
mov byte [ebp - 4], 0
lea ecx, [ebp + 8]
call fcn.0043b5d2
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x7c]
call fcn.0043bb59
mov eax, dword [ebp - 0x81c]
jmp 0x442a80
mov eax, dword [ebp - 0x18]
add eax, 0x94
push eax
push 0x4b6e8c
push 0x4b71dc
push 0x4b6e8c
lea ecx, [ebp - 0x438]
push ecx
lea ecx, [ebp - 0x810]
call fcn.0043b4d8
mov dword [ebp - 0x870], eax
mov edx, dword [ebp - 0x870]
mov dword [ebp - 0x874], edx
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x874]
push eax
lea ecx, [ebp - 0x7e8]
push ecx
call fcn.0043b0ff
add esp, 0xc
mov dword [ebp - 0x878], eax
mov edx, dword [ebp - 0x878]
mov dword [ebp - 0x87c], edx
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x87c]
push eax
lea ecx, [ebp - 0x7c0]
push ecx
call fcn.0043b0ff
add esp, 0xc
mov dword [ebp - 0x880], eax
mov edx, dword [ebp - 0x880]
mov dword [ebp - 0x884], edx
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x884]
push eax
lea ecx, [ebp - 0x798]
push ecx
call fcn.0043b0ff
add esp, 0xc
mov dword [ebp - 0x888], eax
mov edx, dword [ebp - 0x888]
mov dword [ebp - 0x88c], edx
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x88c]
push eax
lea ecx, [ebp - 0x4c8]
push ecx
call fcn.0043bd4d
add esp, 0xc
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x798]
call fcn.0043bb59
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x7c0]
call fcn.0043bb59
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x7e8]
call fcn.0043bb59
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x810]
call fcn.0043bb59
mov eax, dword [ebp - 0x18]
add eax, 0x94
push eax
push 0x4b6e8c
lea ecx, [ebp - 0x478]
push ecx
lea edx, [ebp - 0x770]
push edx
call fcn.0043b0ff
add esp, 0xc
mov dword [ebp - 0x870], eax
mov eax, dword [ebp - 0x870]
mov dword [ebp - 0x874], eax
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x874]
push ecx
lea edx, [ebp - 0x4f0]
push edx
call fcn.0043bd4d
add esp, 0xc
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x770]
call fcn.0043bb59
call fcn.0043b23f
mov esi, esp
push 0
lea ecx, [ebp - 0x4f0]
call fcn.0043c013
push eax
lea ecx, [ebp - 0x4c8]
call fcn.0043c013
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
cmp esi, esp
call fcn.0043c45a
mov dword [ebp - 0x444], eax
cmp dword [ebp - 0x444], 0
jne 0x44273d
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.0043c45a
push eax
lea eax, [ebp - 0x73c]
push eax
call fcn.0043c914
add esp, 8
mov dword [ebp - 0x870], eax
mov ecx, dword [ebp - 0x870]
mov dword [ebp - 0x874], ecx
mov byte [ebp - 4], 0x11
sub esp, 0x20
mov edx, esp
mov dword [ebp - 0x748], esp
mov eax, dword [ebp - 0x874]
push eax
push str.CopyFile_Err_LastErr_
push edx
call fcn.0043b389
add esp, 0xc
mov dword [ebp - 0x878], eax
call fcn.0043c1d5
add esp, 0x20
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x73c]
call fcn.0043bb59
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.0043c45a
mov dword [ebp - 0x450], eax
mov dword [ebp - 0x714], 0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x4f0]
call fcn.0043bb59
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x4c8]
call fcn.0043bb59
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x4a0]
call fcn.0043bb59
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x478]
call fcn.0043bb59
mov byte [ebp - 4], 0
lea ecx, [ebp + 8]
call fcn.0043b5d2
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x7c]
call fcn.0043bb59
mov eax, dword [ebp - 0x714]
jmp 0x442a80
mov dword [ebp - 0x4fc], 0
jmp 0x442758
mov eax, dword [ebp - 0x4fc]
add eax, 1
mov dword [ebp - 0x4fc], eax
lea ecx, [ebp + 8]
call fcn.0043bb6d
cmp dword [ebp - 0x4fc], eax
jae 0x442a12
mov eax, dword [ebp - 0x4fc]
push eax
lea ecx, [ebp + 8]
call fcn.0043cb53
push eax
push 0x4b6e8c
lea ecx, [ebp - 0x228]
push ecx
lea ecx, [ebp - 0x708]
call fcn.0043b4d8
mov dword [ebp - 0x870], eax
mov edx, dword [ebp - 0x870]
mov dword [ebp - 0x874], edx
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x874]
push eax
lea ecx, [ebp - 0x6e0]
push ecx
call fcn.0043b0ff
add esp, 0xc
mov dword [ebp - 0x878], eax
mov edx, dword [ebp - 0x878]
mov dword [ebp - 0x87c], edx
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x87c]
push eax
lea ecx, [ebp - 0x524]
push ecx
call fcn.0043bd4d
add esp, 0xc
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x6e0]
call fcn.0043bb59
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x708]
call fcn.0043bb59
mov eax, dword [ebp - 0x4fc]
push eax
lea ecx, [ebp + 8]
call fcn.0043cb53
push eax
push 0x4b6e8c
lea ecx, [ebp - 0x4a0]
push ecx
lea edx, [ebp - 0x6b8]
push edx
call fcn.0043b0ff
add esp, 0xc
mov dword [ebp - 0x870], eax
mov eax, dword [ebp - 0x870]
mov dword [ebp - 0x874], eax
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x874]
push ecx
lea edx, [ebp - 0x54c]
push edx
call fcn.0043bd4d
add esp, 0xc
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x6b8]
call fcn.0043bb59
mov esi, esp
push 0
lea ecx, [ebp - 0x54c]
call fcn.0043c013
push eax
lea ecx, [ebp - 0x524]
call fcn.0043c013
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
cmp esi, esp
call fcn.0043c45a
mov dword [ebp - 0x444], eax
cmp dword [ebp - 0x444], 0
jne 0x4429ef
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.0043c45a
cmp eax, 2
jne 0x4429ef
mov eax, dword [ebp - 0x4fc]
push eax
lea ecx, [ebp + 8]
call fcn.0043cb53
push eax
push str.Drivers_
lea ecx, [ebp - 0x228]
push ecx
lea ecx, [ebp - 0x690]
call fcn.0043b4d8
mov dword [ebp - 0x870], eax
mov edx, dword [ebp - 0x870]
mov dword [ebp - 0x874], edx
mov byte [ebp - 4], 0x1a
mov eax, dword [ebp - 0x874]
push eax
lea ecx, [ebp - 0x668]
push ecx
call fcn.0043b0ff
add esp, 0xc
mov dword [ebp - 0x878], eax
mov edx, dword [ebp - 0x878]
mov dword [ebp - 0x87c], edx
mov byte [ebp - 4], 0x1b
mov eax, dword [ebp - 0x87c]
push eax
lea ecx, [ebp - 0x640]
push ecx
call fcn.0043bd4d
add esp, 0xc
mov dword [ebp - 0x880], eax
mov edx, dword [ebp - 0x880]
mov dword [ebp - 0x884], edx
mov byte [ebp - 4], 0x1c
mov eax, dword [ebp - 0x884]
push eax
lea ecx, [ebp - 0x524]
call fcn.0043c1b7
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x640]
call fcn.0043bb59
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x668]
call fcn.0043bb59
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x690]
call fcn.0043bb59
mov esi, esp
push 0
lea ecx, [ebp - 0x54c]
call fcn.0043c013
push eax
lea ecx, [ebp - 0x524]
call fcn.0043c013
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
cmp esi, esp
call fcn.0043c45a
mov dword [ebp - 0x444], eax
cmp dword [ebp - 0x444], 0
jne 0x4429ef
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x54c]
call fcn.0043bb59
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x524]
call fcn.0043bb59
jmp 0x442a12
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x54c]
call fcn.0043bb59
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x524]
call fcn.0043bb59
jmp 0x442749
call fcn.0043c49b
mov eax, dword [ebp - 0x444]
mov dword [ebp - 0x618], eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x4f0]
call fcn.0043bb59
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x4c8]
call fcn.0043bb59
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x4a0]
call fcn.0043bb59
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x478]
call fcn.0043bb59
mov byte [ebp - 4], 0
lea ecx, [ebp + 8]
call fcn.0043b5d2
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x7c]
call fcn.0043bb59
mov eax, dword [ebp - 0x618]
push edx
mov ecx, ebp
push eax
lea edx, [0x442abc]
call fcn.0043b8b6
pop eax
pop edx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0043b29e
add esp, 0x88c
cmp ebp, esp
call fcn.0043c45a
mov esp, ebp
pop ebp
ret 0x94