Function at 0x1001ba90
Capabilities:
Check if file exists
Copy file
Create directory
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10041674
mov eax, dword fs:[0]
push eax
mov eax, 0x16f8
call fcn.1002b940
mov eax, dword [0x100582a0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x18]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
push str.DoCopyInfDriverFilesEx_Start
mov dword [ebp - 0x1690], eax
mov dword [ebp - 0x1678], ecx
call fcn.10027780
add esp, 4
lea ecx, [ebp - 0x1670]
call fcn.10018500
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x16c4], ebx
mov dword [ebp - 0x16c0], ebx
mov dword [ebp - 0x16bc], ebx
mov dword [ebp - 0x16e4], ebx
mov dword [ebp - 0x16e0], ebx
mov dword [ebp - 0x16dc], ebx
mov dword [ebp - 0x16d4], ebx
mov dword [ebp - 0x16d0], ebx
mov dword [ebp - 0x16cc], ebx
mov dword [ebp - 0x16b0], ebx
mov dword [ebp - 0x16ac], ebx
mov dword [ebp - 0x16a8], ebx
mov eax, 7
xor edx, edx
mov dword [ebp - 0x1110], eax
mov dword [ebp - 0x1114], ebx
mov word [ebp - 0x1124], dx
xor ecx, ecx
mov dword [ebp - 0x119c], eax
mov dword [ebp - 0x11a0], ebx
mov word [ebp - 0x11b0], cx
mov dword [ebp - 0x11b8], eax
mov dword [ebp - 0x11bc], ebx
mov word [ebp - 0x11cc], dx
mov dword [ebp - 0x16f8], ebx
mov dword [ebp - 0x16f4], ebx
mov dword [ebp - 0x16f0], ebx
push 0x48
mov byte [ebp - 4], 8
mov dword [ebp - 0x1698], ebx
call fcn.1002b0c1
add esp, 4
cmp eax, ebx
je 0x1001cb3c
mov dword [ebp - 0x169c], eax
mov dword [eax], eax
mov eax, dword [ebp - 0x169c]
mov dword [eax + 4], eax
mov eax, dword [ebp - 0x169c]
mov dword [eax + 8], eax
mov eax, dword [ebp - 0x169c]
mov byte [eax + 0x44], 1
mov ecx, dword [ebp - 0x169c]
mov byte [ecx + 0x45], 1
mov byte [ebp - 4], 9
cmp esi, ebx
je 0x1001ca29
cmp edi, ebx
je 0x1001ca29
cmp dword [ebp - 0x1678], ebx
je 0x1001ca29
cmp dword [ebp - 0x1690], ebx
je 0x1001ca29
mov ebx, dword [ebp + 0x10]
test ebx, 0xfffffffc
je 0x1001bcb2
lea ecx, [ebp - 0x16a0]
mov byte [ebp - 4], 8
call fcn.10019190
lea ecx, [ebp - 0x16f8]
call fcn.10002e90
lea ecx, [ebp - 0x11cc]
call fcn.10001340
lea ecx, [ebp - 0x11b0]
call fcn.10001340
lea ecx, [ebp - 0x1124]
call fcn.10001340
lea ecx, [ebp - 0x16b0]
call fcn.100160c0
lea ecx, [ebp - 0x16d4]
call fcn.100160c0
lea ecx, [ebp - 0x16e4]
call fcn.10002e90
lea ecx, [ebp - 0x16c4]
call fcn.10002e90
lea ecx, [ebp - 0x1670]
mov dword [ebp - 4], 0xffffffff
call fcn.10013180
mov eax, 0x57
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.1002b571
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x1678]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1001bd65
push eax
mov eax, dword [ebp - 0x1678]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x1001bd79
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp - 0x16a0]
mov esi, eax
mov byte [ebp - 4], 8
call fcn.10019190
lea ecx, [ebp - 0x16f8]
call fcn.10002e90
lea ecx, [ebp - 0x11cc]
call fcn.10001340
lea ecx, [ebp - 0x11b0]
call fcn.10001340
lea ecx, [ebp - 0x1124]
call fcn.10001340
lea ecx, [ebp - 0x16b0]
call fcn.100160c0
lea ecx, [ebp - 0x16d4]
call fcn.100160c0
lea ecx, [ebp - 0x16e4]
call fcn.10002e90
lea ecx, [ebp - 0x16c4]
call fcn.10002e90
lea ecx, [ebp - 0x1670]
mov dword [ebp - 4], 0xffffffff
call fcn.10013180
mov eax, esi
jmp 0x1001bc96
mov ecx, dword [ebp - 0x1678]
push 0x100480e4
push ecx
call fcn.10014600
add esp, 8
mov edx, dword [ebp - 0x1690]
lea ecx, [ebp - 0x16b0]
mov dword [edx], 0
call fcn.100160f0
lea eax, [ebp - 0x16a0]
push eax
lea ecx, [ebp - 0x16f8]
push ecx
lea edx, [ebp - 0x11cc]
push edx
lea eax, [ebp - 0x11b0]
push eax
lea ecx, [ebp - 0x1124]
push ecx
lea edx, [ebp - 0x16d4]
push edx
mov edx, dword [ebp + 0x28]
lea eax, [ebp - 0x16e4]
push eax
mov eax, dword [ebp + 0x24]
lea ecx, [ebp - 0x16c4]
push ecx
mov ecx, dword [ebp + 0x20]
push edx
push eax
push ecx
push ebx
push edi
push esi
lea ecx, [ebp - 0x1670]
call fcn.10019b70
mov edi, eax
test edi, edi
jne 0x1001c8dc
xor ebx, ebx
xor edx, edx
mov dword [ebp - 0x11d4], 7
mov dword [ebp - 0x11d8], ebx
mov word [ebp - 0x11e8], dx
mov ecx, dword [ebp + 0x1c]
lea eax, [ebp - 0x11e8]
push eax
push ecx
mov byte [ebp - 4], 0xf
call fcn.10016b80
push 0x20
lea edx, [ebp - 0x258]
push edx
push 0x104
mov dword [ebp - 0x167c], eax
lea eax, [ebp - 0xec8]
push eax
push 0x104
lea ecx, [ebp - 0x10d0]
push ecx
push 0x20
lea edx, [ebp - 0x298]
push edx
push esi
call fcn.1002b72a
push ebx
push ebx
lea eax, [ebp - 0x10d0]
push eax
lea ecx, [ebp - 0x298]
push ecx
lea edx, [ebp - 0xcc0]
push 0x104
push edx
call fcn.1002b9aa
mov edi, dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
add esp, 0x44
lea eax, [ebp - 0xcc0]
push eax
call edi
mov ecx, dword [ebp - 0x1678]
push ecx
lea edx, [ebp - 0x6a8]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea eax, [ebp - 0x6a8]
push eax
call edi
lea ecx, [ebp - 0x6a8]
push ecx
lea edx, [ebp - 0x8b0]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0xec8]
push eax
lea ecx, [ebp - 0x8b0]
push ecx
call edi
lea edx, [ebp - 0x258]
push edx
lea eax, [ebp - 0x8b0]
push eax
call edi
push ebx
lea ecx, [ebp - 0x8b0]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov edx, dword [ebp - 0x16e4]
mov eax, dword [ebp - 0x16c4]
mov ecx, dword [ebp - 0x16f8]
mov dword [ebp - 0x1684], edx
mov edx, dword [ebp - 0x16d4]
mov dword [ebp - 0x1680], eax
mov dword [ebp - 0x1688], ecx
mov dword [ebp - 0x168c], edx
cmp eax, dword [ebp - 0x16c0]
je 0x1001c80c
lea edi, [ebx + 8]
mov eax, dword [ebp - 0x1680]
push eax
lea ecx, [ebp - 0x1108]
call fcn.10002ae0
mov ecx, dword [ebp - 0x1684]
push ecx
lea ecx, [ebp - 0x10ec]
mov byte [ebp - 4], 0x10
call fcn.10002ae0
mov edx, dword [ebp - 0x1688]
push edx
lea ecx, [ebp - 0x1178]
mov byte [ebp - 4], 0x11
call fcn.10002ae0
mov ecx, dword [ebp - 0x1108]
cmp dword [ebp - 0x10f4], edi
jae 0x1001bf7b
lea ecx, [ebp - 0x1108]
mov eax, dword [ebp - 0x1178]
cmp dword [ebp - 0x1164], edi
jae 0x1001bf8f
lea eax, [ebp - 0x1178]
push ecx
push eax
lea eax, [ebp - 0xcc0]
push eax
push str._s_s_s
push 0x104
lea ecx, [ebp - 0xab8]
push 0x104
push ecx
call fcn.1002b989
add esp, 0x1c
cmp dword [ebp - 0x10dc], ebx
jne 0x1001bff2
mov eax, dword [ebp - 0x1108]
cmp dword [ebp - 0x10f4], edi
jae 0x1001bfd2
lea eax, [ebp - 0x1108]
push eax
lea edx, [ebp - 0x6a8]
push edx
push str._s_s
push 0x104
push 0x104
lea eax, [ebp - 0x4a0]
push eax
jmp 0x1001c024
mov eax, dword [ebp - 0x10ec]
cmp dword [ebp - 0x10d8], edi
jae 0x1001c006
lea eax, [ebp - 0x10ec]
push eax
lea ecx, [ebp - 0x6a8]
push ecx
push str._s_s
push 0x104
push 0x104
lea edx, [ebp - 0x4a0]
push edx
call fcn.1002b989
add esp, 0x18
mov dword [ebp - 0x11f8], ebx
mov dword [ebp - 0x11f4], ebx
mov dword [ebp - 0x11f0], ebx
mov ecx, dword [ebp - 0x169c]
mov eax, dword [ecx]
mov byte [ebp - 4], 0x13
mov dword [ebp - 0x1674], eax
cmp eax, ecx
je 0x1001c25c
push 0xffffffffffffffff
lea esi, [eax + 0xc]
push ebx
xor eax, eax
push esi
lea ecx, [ebp - 0x1140]
mov dword [ebp - 0x112c], 7
mov dword [ebp - 0x1130], ebx
mov word [ebp - 0x1140], ax
call fcn.10001600
push 0xffffffffffffffff
xor ecx, ecx
push ebx
mov word [ebp - 0x115c], cx
add esi, 0x1c
push esi
lea ecx, [ebp - 0x115c]
mov byte [ebp - 4], 0x14
mov dword [ebp - 0x1148], 7
mov dword [ebp - 0x114c], ebx
call fcn.10001600
mov eax, dword [ebp - 0x1108]
mov byte [ebp - 4], 0x15
cmp dword [ebp - 0x10f4], edi
jae 0x1001c0ca
lea eax, [ebp - 0x1108]
mov edx, dword [ebp - 0x10f8]
push edx
push eax
mov eax, dword [ebp - 0x1130]
push eax
push ebx
lea ecx, [ebp - 0x1140]
call fcn.10002920
test eax, eax
jne 0x1001c1f4
call fcn.100284d0
mov ecx, dword [eax + 0x120]
shr ecx, 0xa
test cl, 1
je 0x1001c16f
mov ecx, dword [ebp - 0x1140]
cmp dword [ebp - 0x112c], edi
jae 0x1001c114
lea ecx, [ebp - 0x1140]
mov eax, dword [ebp - 0x115c]
cmp dword [ebp - 0x1148], edi
jae 0x1001c128
lea eax, [ebp - 0x115c]
push ecx
push eax
push str._s_s
push 0x104
lea edx, [ebp - 0xab8]
push 0x104
push edx
call fcn.1002b989
lea eax, [ebp - 0xab8]
push eax
push str.szSrcFile:__s
call fcn.10027780
lea ecx, [ebp - 0x4a0]
push ecx
push str.szDstFile:__s
call fcn.10027780
add esp, 0x28
jmp 0x1001c1f4
push 0x218
lea edx, [ebp - 0x1400]
push ebx
push edx
call fcn.1002b6b0
add esp, 0xc
lea eax, [ebp - 0x6a8]
push eax
lea ecx, [ebp - 0x1400]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov edx, dword [ebp - 0x11f4]
mov eax, dword [ebp - 0x11f8]
push edx
push eax
lea ecx, [ebp - 0x16b4]
push ecx
lea ecx, [ebp - 0x11f8]
call fcn.10002f70
lea edx, [ebp - 0x1108]
push edx
lea ecx, [ebp - 0x11f8]
call fcn.10003180
mov eax, dword [ebp - 0x115c]
cmp dword [ebp - 0x1148], edi
jae 0x1001c1de
lea eax, [ebp - 0x115c]
lea ecx, [ebp - 0x1400]
push ecx
push eax
call fcn.100020b0
add esp, 8
mov dword [ebp - 0x167c], eax
cmp dword [ebp - 0x1148], edi
jb 0x1001c20b
mov edx, dword [ebp - 0x115c]
push edx
call fcn.1002a9de
add esp, 4
xor eax, eax
mov dword [ebp - 0x1148], 7
mov dword [ebp - 0x114c], ebx
mov word [ebp - 0x115c], ax
mov byte [ebp - 4], 0x13
cmp dword [ebp - 0x112c], edi
jb 0x1001c23f
mov ecx, dword [ebp - 0x1140]
push ecx
call fcn.1002a9de
add esp, 4
lea ecx, [ebp - 0x1674]
call fcn.10015830
mov eax, dword [ebp - 0x1674]
cmp eax, dword [ebp - 0x169c]
jne 0x1001c058
lea edx, [ebp - 0x4a0]
push edx
lea eax, [ebp - 0xab8]
push eax
call fcn.100142f0
add esp, 8
cmp eax, 0x50
jne 0x1001c324
lea ecx, [ebp - 0x1674]
push ecx
lea ecx, [ebp - 0x16b0]
mov dword [ebp - 0x1674], ebx
call fcn.1000ab30
lea ecx, [ebp - 0x1400]
call fcn.10017c60
cmp dword [ebp - 0x1164], edi
jb 0x1001c2b5
mov edx, dword [ebp - 0x1178]
push edx
call fcn.1002a9de
add esp, 4
xor eax, eax
mov esi, 7
mov dword [ebp - 0x1164], esi
mov dword [ebp - 0x1168], ebx
mov word [ebp - 0x1178], ax
cmp dword [ebp - 0x10d8], edi
jb 0x1001c2e6
mov ecx, dword [ebp - 0x10ec]
push ecx
call fcn.1002a9de
add esp, 4
xor edx, edx
mov dword [ebp - 0x10d8], esi
mov dword [ebp - 0x10dc], ebx
mov word [ebp - 0x10ec], dx
mov byte [ebp - 4], 0xf
cmp dword [ebp - 0x10f4], edi
jb 0x1001c316
mov eax, dword [ebp - 0x1108]
push eax
call fcn.1002a9de
add esp, 4
xor ecx, ecx
mov word [ebp - 0x1108], cx
jmp 0x1001c7ce
push 0x104
lea edx, [ebp - 0x218]
push ebx
push edx
call fcn.1002b6b0
xor eax, eax
add esp, 0xc
mov dword [ebp - 0x1180], 7
mov dword [ebp - 0x1184], ebx
mov word [ebp - 0x1194], ax
mov ecx, dword [ebp - 0x168c]
mov esi, dword [ecx]
mov byte [ebp - 4], 0x16
cmp esi, 0xffffffff
je 0x1001c398
mov edx, dword [ebp - 0x16d0]
cmp ecx, edx
je 0x1001c398
mov eax, dword [ebp - 0x11e8]
cmp dword [ebp - 0x11d4], edi
jae 0x1001c381
lea eax, [ebp - 0x11e8]
lea ecx, [ebp - 0x1194]
push ecx
push eax
push esi
call fcn.1001f580
mov ecx, eax
call fcn.1001f420
jmp 0x1001c3a9
push ebx
push 0x10043394
lea ecx, [ebp - 0x1194]
call fcn.10001820
mov eax, dword [ebp - 0x1194]
cmp dword [ebp - 0x1180], edi
jae 0x1001c3bd
lea eax, [ebp - 0x1194]
push eax
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
cmp esi, 0x101d0
je 0x1001c418
cmp esi, 0xb
je 0x1001c418
mov eax, dword [ebp - 0x10ec]
cmp dword [ebp - 0x10d8], edi
jae 0x1001c3f9
lea eax, [ebp - 0x10ec]
push eax
lea ecx, [ebp - 0x218]
push ecx
push str._s_s
push 0x104
push 0x104
mov edx, ecx
push edx
jmp 0x1001c55b
mov eax, dword [ebp + 0x1c]
cmp eax, 1
jne 0x1001c4b5
call fcn.100284d0
mov eax, dword [eax + 0x120]
shr eax, 3
test al, 1
jne 0x1001c48f
call fcn.100284d0
mov ecx, dword [eax + 0x120]
shr ecx, 4
test cl, 1
jne 0x1001c48f
call fcn.100284d0
mov edx, dword [eax + 0x120]
shr edx, 5
test dl, 1
jne 0x1001c48f
mov eax, dword [ebp - 0x10ec]
cmp dword [ebp - 0x10d8], edi
jae 0x1001c470
lea eax, [ebp - 0x10ec]
push eax
lea eax, [ebp - 0x218]
push eax
push str._s0_s
push 0x104
push 0x104
mov ecx, eax
push ecx
jmp 0x1001c55b
mov eax, dword [ebp - 0x10ec]
cmp dword [ebp - 0x10d8], edi
jae 0x1001c4a3
lea eax, [ebp - 0x10ec]
push eax
lea edx, [ebp - 0x218]
push edx
push str._s_s
jmp 0x1001c54a
cmp eax, 2
jne 0x1001c4ea
mov eax, dword [ebp - 0x10ec]
cmp dword [ebp - 0x10d8], edi
jae 0x1001c4ce
lea eax, [ebp - 0x10ec]
push eax
lea ecx, [ebp - 0x218]
push ecx
push str._s2_s
push 0x104
push 0x104
mov edx, ecx
push edx
jmp 0x1001c55b
cmp eax, 3
je 0x1001c529
cmp eax, 4
je 0x1001c529
cmp eax, 5
je 0x1001c529
mov eax, dword [ebp - 0x10ec]
cmp dword [ebp - 0x10d8], edi
jae 0x1001c50d
lea eax, [ebp - 0x10ec]
push eax
lea eax, [ebp - 0x218]
push eax
push str._s_s
push 0x104
push 0x104
mov ecx, eax
push ecx
jmp 0x1001c55b
mov eax, dword [ebp - 0x10ec]
cmp dword [ebp - 0x10d8], edi
jae 0x1001c53d
lea eax, [ebp - 0x10ec]
push eax
lea edx, [ebp - 0x218]
push edx
push str._s3_s
push 0x104
push 0x104
lea eax, [ebp - 0x218]
push eax
call fcn.1002b989
add esp, 0x18
cmp dword [ebp - 0x167c], ebx
jne 0x1001c625
call fcn.100284d0
mov ecx, dword [eax + 0x120]
shr ecx, 7
test cl, 1
je 0x1001c625
mov ecx, dword [ebp - 0x10ec]
cmp dword [ebp - 0x10d8], edi
jae 0x1001c59a
lea ecx, [ebp - 0x10ec]
mov eax, dword [ebp - 0x1124]
cmp dword [ebp - 0x1110], edi
jae 0x1001c5ae
lea eax, [ebp - 0x1124]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x1001c625
call fcn.100284d0
mov ecx, eax
call fcn.100042c0
push eax
lea ecx, [ebp - 0x1140]
call fcn.10001940
mov ecx, dword [ebp - 0x10ec]
cmp dword [ebp - 0x10d8], edi
jae 0x1001c5e6
lea ecx, [ebp - 0x10ec]
mov eax, dword [ebp - 0x1140]
cmp dword [ebp - 0x112c], edi
jae 0x1001c5fa
lea eax, [ebp - 0x1140]
push ecx
push eax
push 0x10045500
push 0x104
lea edx, [ebp - 0x218]
push 0x104
push edx
call fcn.1002b989
add esp, 0x18
lea ecx, [ebp - 0x1140]
call fcn.10001340
lea eax, [ebp - 0x4a0]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 1
je 0x1001c647
and eax, 0xfffffffe
push eax
lea ecx, [ebp - 0x4a0]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor esi, esi
mov dword [ebp - 0x1674], esi
cmp dword [ebp - 0x167c], ebx
jne 0x1001c6ae
lea edx, [ebp - 0x1674]
push edx
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x4a0]
push ecx
call fcn.10015480
mov esi, dword [ebp - 0x1674]
add esp, 0xc
mov dword [ebp - 0x167c], eax
cmp eax, ebx
jne 0x1001c6ae
cmp esi, 0xffffffff
jne 0x1001c6ae
push ebx
lea edx, [ebp - 0x4a0]
push edx
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x1001c6ae
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x167c], eax
mov ecx, dword [ebp + 0x1c]
push ecx
call fcn.10014360
add esp, 4
cmp eax, ebx
jne 0x1001c6ea
push ebx
push 0x80
push 3
push ebx
push ebx
push 0xc0000000
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x1001c989
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x1674]
push eax
lea ecx, [ebp - 0x16b0]
mov dword [ebp - 0x1674], ebx
call fcn.1000ab30
lea ecx, [ebp - 0x218]
push ecx
push str._unlock___s
call fcn.10027780
add esp, 8
cmp dword [ebp - 0x1180], edi
jb 0x1001c72d
mov edx, dword [ebp - 0x1194]
push edx
call fcn.1002a9de
add esp, 4
xor eax, eax
mov esi, 7
lea ecx, [ebp - 0x1400]
mov dword [ebp - 0x1180], esi
mov dword [ebp - 0x1184], ebx
mov word [ebp - 0x1194], ax
call fcn.10017c60
cmp dword [ebp - 0x1164], edi
jb 0x1001c769
mov ecx, dword [ebp - 0x1178]
push ecx
call fcn.1002a9de
add esp, 4
xor edx, edx
mov dword [ebp - 0x1164], esi
mov dword [ebp - 0x1168], ebx
mov word [ebp - 0x1178], dx
cmp dword [ebp - 0x10d8], edi
jb 0x1001c795
mov eax, dword [ebp - 0x10ec]
push eax
call fcn.1002a9de
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x10d8], esi
mov dword [ebp - 0x10dc], ebx
mov word [ebp - 0x10ec], cx
mov byte [ebp - 4], 0xf
cmp dword [ebp - 0x10f4], edi
jb 0x1001c7c5
mov edx, dword [ebp - 0x1108]
push edx
call fcn.1002a9de
add esp, 4
xor eax, eax
mov word [ebp - 0x1108], ax
mov eax, dword [ebp - 0x1680]
add dword [ebp - 0x168c], 4
mov ecx, 0x1c
add dword [ebp - 0x1684], ecx
add dword [ebp - 0x1688], ecx
add eax, ecx
mov dword [ebp - 0x10f8], ebx
mov dword [ebp - 0x10f4], esi
mov dword [ebp - 0x1680], eax
cmp eax, dword [ebp - 0x16c0]
jne 0x1001bf29
mov ecx, dword [ebp + 0x1c]
push ecx
sub esp, 0x1c
lea edx, [ebp - 0x1124]
mov ecx, esp
mov dword [ebp - 0x16b4], esp
push edx
call fcn.10002ae0
sub esp, 0x10
lea eax, [ebp - 0x16b0]
mov ecx, esp
mov dword [ebp - 0x1688], esp
push eax
mov byte [ebp - 4], 0x17
call fcn.10016320
sub esp, 0x10
lea edx, [ebp - 0x16d4]
mov ecx, esp
mov dword [ebp - 0x1684], esp
push edx
mov byte [ebp - 4], 0x18
call fcn.10016320
sub esp, 0x10
lea eax, [ebp - 0x16e4]
mov ecx, esp
mov dword [ebp - 0x1680], esp
push eax
mov byte [ebp - 4], 0x19
call fcn.10017820
sub esp, 0x10
lea edx, [ebp - 0x16c4]
mov ecx, esp
mov dword [ebp - 0x1690], esp
push edx
mov byte [ebp - 4], 0x1a
call fcn.10017820
sub esp, 0x1c
lea eax, [ebp - 0x11e8]
mov ecx, esp
mov dword [ebp - 0x1674], esp
push eax
mov byte [ebp - 4], 0x1b
call fcn.10002ae0
mov ecx, dword [ebp - 0x1678]
push ecx
lea edx, [ebp - 0x8b0]
push edx
mov byte [ebp - 4], 0xf
call fcn.10017cc0
add esp, 0x84
lea ecx, [ebp - 0x11e8]
mov edi, eax
mov byte [ebp - 4], 9
call fcn.10001340
mov esi, dword [ebp - 0x1678]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1001c8fb
push 0x100480e4
push esi
call fcn.10014600
add esp, 8
push edi
push str.DoCopyInfDriverFilesEx_End__d_
call fcn.10027780
add esp, 8
lea ecx, [ebp - 0x16a0]
mov byte [ebp - 4], 8
call fcn.10019190
lea ecx, [ebp - 0x16f8]
call fcn.10002e90
lea ecx, [ebp - 0x11cc]
call fcn.10001340
lea ecx, [ebp - 0x11b0]
call fcn.10001340
lea ecx, [ebp - 0x1124]
call fcn.10001340
lea ecx, [ebp - 0x16b0]
call fcn.100160c0
lea ecx, [ebp - 0x16d4]
call fcn.100160c0
lea ecx, [ebp - 0x16e4]
call fcn.10002e90
lea ecx, [ebp - 0x16c4]
call fcn.10002e90
lea ecx, [ebp - 0x1670]
mov dword [ebp - 4], 0xffffffff
call fcn.10013180
mov eax, edi
jmp 0x1001bc96
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x20
je 0x1001c9bd
cmp eax, 0x21
je 0x1001c9bd
lea edx, [ebp - 0x1674]
push edx
lea ecx, [ebp - 0x16b0]
mov dword [ebp - 0x1674], ebx
call fcn.1000ab30
lea eax, [ebp - 0x218]
push eax
jmp 0x1001c709
cmp esi, 2
je 0x1001c9f0
cmp esi, 1
je 0x1001c9f0
lea ecx, [ebp - 0x1674]
push ecx
lea ecx, [ebp - 0x16b0]
mov dword [ebp - 0x1674], ebx
call fcn.1000ab30
lea edx, [ebp - 0x218]
push edx
push str.__un_lock___s
jmp 0x1001c70e
mov eax, dword [ebp - 0x1690]
lea ecx, [ebp - 0x1674]
push ecx
lea ecx, [ebp - 0x16b0]
mov dword [eax], 1
mov dword [ebp - 0x1674], 1
call fcn.1000ab30
lea edx, [ebp - 0x218]
push edx
push str._lock___s
jmp 0x1001c70e
mov eax, dword [ebp - 0x169c]
mov ecx, dword [eax]
push eax
push ecx
lea eax, [ebp - 0x16b4]
push eax
lea ecx, [ebp - 0x16a0]
mov byte [ebp - 4], 0xa
call fcn.100175f0
mov ecx, dword [ebp - 0x169c]
push ecx
call fcn.1002a9de
mov esi, 8
add esp, 4
cmp dword [ebp - 0x11b8], esi
jb 0x1001ca74
mov edx, dword [ebp - 0x11cc]
push edx
call fcn.1002a9de
add esp, 4
xor eax, eax
mov edi, 7
mov dword [ebp - 0x11b8], edi
mov dword [ebp - 0x11bc], ebx
mov word [ebp - 0x11cc], ax
cmp dword [ebp - 0x119c], esi
jb 0x1001caa5
mov ecx, dword [ebp - 0x11b0]
push ecx
call fcn.1002a9de
add esp, 4
xor edx, edx
mov dword [ebp - 0x119c], edi
mov dword [ebp - 0x11a0], ebx
mov word [ebp - 0x11b0], dx
cmp dword [ebp - 0x1110], esi
jb 0x1001cad1
mov eax, dword [ebp - 0x1124]
push eax
call fcn.1002a9de
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x1110], edi
mov dword [ebp - 0x1114], ebx
mov word [ebp - 0x1124], cx
lea ecx, [ebp - 0x1670]
mov dword [ebp - 4], 0xe
call fcn.10012b90
lea ecx, [ebp - 0x14f8]
mov byte [ebp - 4], 0xd
call fcn.10010f10
lea ecx, [ebp - 0x1608]
mov byte [ebp - 4], 0xc
call fcn.10012fc0
lea ecx, [ebp - 0x1640]
mov byte [ebp - 4], 0xb
call fcn.10011170
lea ecx, [ebp - 0x1670]
mov dword [ebp - 4], 0xffffffff
call fcn.10012e30
jmp 0x1001bc91
lea edx, [ebp - 0x16e8]
push edx
lea ecx, [ebp - 0x1704]
mov dword [ebp - 0x16e8], ebx
call fcn.1002a89f
push 0x10051a08
lea eax, [ebp - 0x1704]
push eax
mov dword [ebp - method.std::bad_alloc.virtual_0], vtable.std::bad_alloc.0
call fcn.1002b141
int3