Function at 0x10017b90
Capabilities:
Check if file exists
Copy file
Create directory
Get file attributes
Resolve function by parsing pe exports
Set file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1003b65b
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x16f4
call fcn.100333f0
mov eax, dword [0x1004f450]
xor eax, esp
mov dword [esp + 0x16f0], eax
push ebx
push esi
push edi
mov eax, dword [0x1004f450]
xor eax, esp
push eax
lea eax, [esp + 0x1708]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
push str.DoCopyInfDriverFilesEx_Start
mov esi, edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], ecx
call fcn.100269c0
add esp, 4
lea edx, [esp + 0x3cc]
push edx
call fcn.10011f50
xor edi, edi
mov dword [esp + 0x1710], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov eax, 7
xor ecx, ecx
mov dword [esp + 0x104], eax
mov dword [esp + 0x100], edi
mov word [esp + 0xf0], cx
xor edx, edx
mov dword [esp + 0x174], eax
mov dword [esp + 0x170], edi
mov word [esp + 0x160], dx
mov dword [esp + 0x190], eax
xor eax, eax
mov dword [esp + 0x18c], edi
mov word [esp + 0x17c], ax
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], edi
mov byte [esp + 0x1710], 8
push 0x48
mov dword [esp + 0x3c], edi
call fcn.10029712
add esp, 4
cmp eax, edi
je 0x10018d57
mov dword [esp + 0x34], eax
mov dword [eax], eax
mov eax, dword [esp + 0x34]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x34]
mov dword [eax + 8], eax
mov ecx, dword [esp + 0x34]
mov byte [ecx + 0x44], 1
mov edx, dword [esp + 0x34]
mov byte [edx + 0x45], 1
mov byte [esp + 0x1710], 9
cmp esi, edi
je 0x10018c20
cmp ebx, edi
je 0x10018c20
cmp dword [esp + 0x18], edi
je 0x10018c20
cmp dword [esp + 0x20], edi
je 0x10018c20
test dword [ebp + 0xc], 0xfffffffc
je 0x10017dbc
lea eax, [esp + 0x30]
push eax
mov byte [esp + 0x1714], 8
call fcn.1001ab50
lea esi, [esp + 0x80]
call fcn.10002e50
lea esi, [esp + 0x17c]
call fcn.10003540
lea esi, [esp + 0x160]
call fcn.10003540
lea esi, [esp + 0xf0]
call fcn.10003540
lea esi, [esp + 0x40]
call fcn.1001bb20
lea esi, [esp + 0x60]
call fcn.1001bb20
lea esi, [esp + 0x70]
call fcn.10002e50
lea esi, [esp + 0x50]
call fcn.10002e50
lea ecx, [esp + 0x3cc]
push ecx
mov dword [esp + 0x1714], 0xffffffff
call fcn.10010c70
mov eax, 0x57
mov ecx, dword [esp + 0x1708]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x16f0]
xor ecx, esp
call fcn.10028eba
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x10017e70
mov eax, dword [esp + 0x18]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x10017e79
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x30]
push ecx
mov edi, eax
mov byte [esp + 0x1714], 8
call fcn.1001ab50
lea esi, [esp + 0x80]
call fcn.10002e50
lea esi, [esp + 0x17c]
call fcn.10003540
lea esi, [esp + 0x160]
call fcn.10003540
lea esi, [esp + 0xf0]
call fcn.10003540
lea esi, [esp + 0x40]
call fcn.1001bb20
lea esi, [esp + 0x60]
call fcn.1001bb20
lea esi, [esp + 0x70]
call fcn.10002e50
lea esi, [esp + 0x50]
call fcn.10002e50
lea edx, [esp + 0x3cc]
push edx
mov dword [esp + 0x1714], 0xffffffff
call fcn.10010c70
mov eax, edi
jmp 0x10017d98
mov ecx, dword [esp + 0x18]
call fcn.100190c0
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x30]
push ecx
mov dword [eax], edi
lea edx, [esp + 0x84]
push edx
lea eax, [esp + 0x184]
push eax
lea ecx, [esp + 0x16c]
push ecx
mov ecx, dword [ebp + 0x20]
lea edx, [esp + 0x100]
push edx
mov edx, dword [ebp + 0x1c]
lea eax, [esp + 0x74]
push eax
mov eax, dword [ebp + 0x18]
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push eax
push ecx
push ebx
push esi
lea edx, [esp + 0xa0]
lea ecx, [esp + 0x80]
call fcn.10013030
mov ebx, eax
cmp ebx, edi
jne 0x10018b4c
xor edx, edx
mov dword [esp + 0x1ac], 7
mov dword [esp + 0x1a8], 0
mov word [esp + 0x198], dx
mov ecx, dword [ebp + 0x14]
lea eax, [esp + 0x198]
mov byte [esp + 0x1710], 0xf
call fcn.10018d90
push 0x20
mov dword [esp + 0x28], eax
lea eax, [esp + 0x848]
push eax
push 0x104
lea ecx, [esp + 0x1500]
push ecx
push 0x104
lea edx, [esp + 0x1300]
push edx
push 0x20
lea eax, [esp + 0x8a0]
push eax
push esi
call fcn.10029441
add esp, 0x24
push 0
push 0
lea ecx, [esp + 0x12f4]
push ecx
lea edx, [esp + 0x890]
push edx
lea eax, [esp + 0x10f4]
push 0x104
push eax
call fcn.100297d1
mov edi, dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
add esp, 0x18
lea ecx, [esp + 0x10e4]
push ecx
call edi
mov edx, dword [esp + 0x18]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyW]
push edx
lea eax, [esp + 0xad0]
push eax
call ebx
lea ecx, [esp + 0xacc]
push ecx
call edi
lea edx, [esp + 0xacc]
push edx
lea eax, [esp + 0xcd8]
push eax
call ebx
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatW]
lea ecx, [esp + 0x14f4]
push ecx
lea edx, [esp + 0xcd8]
push edx
call edi
lea eax, [esp + 0x844]
push eax
lea ecx, [esp + 0xcd8]
push ecx
call edi
push 0
lea edx, [esp + 0xcd8]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x80]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ecx
cmp eax, dword [esp + 0x54]
je 0x10018a44
lea esp, [esp]
mov eax, dword [esp + 0x2c]
xor esi, esi
push esi
xor edx, edx
push eax
mov ebx, 7
or eax, 0xffffffff
lea ecx, [esp + 0xc0]
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd0], esi
mov word [esp + 0xc0], dx
call fcn.10001820
mov byte [esp + 0x1710], 0x10
mov edx, dword [esp + 0x28]
xor ecx, ecx
push esi
mov word [esp + 0xa0], cx
push edx
or eax, 0xffffffff
lea ecx, [esp + 0xa4]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xb4], esi
call fcn.10001820
mov byte [esp + 0x1710], 0x11
mov ecx, dword [esp + 0x1c]
xor eax, eax
push esi
mov word [esp + 0xd8], ax
push ecx
or eax, 0xffffffff
lea ecx, [esp + 0xdc]
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xec], esi
call fcn.10001820
mov ecx, dword [esp + 0xb8]
mov edi, 8
cmp dword [esp + 0xcc], edi
jae 0x100180da
lea ecx, [esp + 0xb8]
mov eax, dword [esp + 0xd4]
cmp dword [esp + 0xe8], edi
jae 0x100180f1
lea eax, [esp + 0xd4]
push ecx
push eax
lea edx, [esp + 0x10ec]
push edx
push str._s_s_s
push 0x104
lea eax, [esp + 0xef0]
push 0x104
push eax
call fcn.100297b0
add esp, 0x1c
cmp dword [esp + 0xac], esi
jne 0x1001815c
mov eax, dword [esp + 0xb8]
cmp dword [esp + 0xcc], edi
jae 0x1001813a
lea eax, [esp + 0xb8]
push eax
lea ecx, [esp + 0xad0]
push ecx
push str._s_s
push 0x104
push 0x104
lea edx, [esp + 0x8d8]
push edx
jmp 0x10018193
mov eax, dword [esp + 0x9c]
cmp dword [esp + 0xb0], edi
jae 0x10018173
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0xad0]
push eax
push str._s_s
push 0x104
push 0x104
lea ecx, [esp + 0x8d8]
push ecx
call fcn.100297b0
add esp, 0x18
mov dword [esp + 0x3bc], esi
mov dword [esp + 0x3c0], esi
mov dword [esp + 0x3c4], esi
mov byte [esp + 0x1710], 0x13
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx]
mov dword [esp + 0x10], eax
cmp eax, ecx
je 0x100183e3
lea ebx, [ebx]
xor edi, edi
lea esi, [eax + 0xc]
push edi
xor edx, edx
push esi
or eax, 0xffffffff
lea ecx, [esp + 0x114]
mov dword [esp + 0x128], ebx
mov dword [esp + 0x124], edi
mov word [esp + 0x114], dx
call fcn.10001820
mov byte [esp + 0x1710], 0x14
xor eax, eax
push edi
mov word [esp + 0x12c], ax
add esi, 0x1c
push esi
or eax, 0xffffffff
lea ecx, [esp + 0x130]
mov dword [esp + 0x144], ebx
mov dword [esp + 0x140], edi
call fcn.10001820
mov byte [esp + 0x1710], 0x15
cmp dword [esp + 0xcc], 8
mov eax, dword [esp + 0xb8]
jae 0x10018252
lea eax, [esp + 0xb8]
mov edi, dword [esp + 0xc8]
push eax
mov eax, dword [esp + 0x120]
lea ecx, [esp + 0x110]
call fcn.10003570
test eax, eax
jne 0x10018371
call fcn.10027fe0
mov ecx, dword [eax + 0x120]
shr ecx, 0xa
test cl, 1
je 0x10018302
mov ecx, dword [esp + 0x10c]
mov esi, 8
cmp dword [esp + 0x120], esi
jae 0x100182a4
lea ecx, [esp + 0x10c]
mov eax, dword [esp + 0x128]
cmp dword [esp + 0x13c], esi
jae 0x100182bb
lea eax, [esp + 0x128]
push ecx
push eax
push str._s_s
push 0x104
lea edx, [esp + 0xeec]
push 0x104
push edx
call fcn.100297b0
lea eax, [esp + 0xef4]
push eax
push str.szSrcFile:__s
call fcn.100269c0
lea ecx, [esp + 0x8e4]
push ecx
push str.szDstFile:__s
call fcn.100269c0
add esp, 0x28
jmp 0x10018376
push 0x218
lea edx, [esp + 0x1b8]
push 0
push edx
call fcn.1002f900
add esp, 0xc
lea eax, [esp + 0xacc]
push eax
lea ecx, [esp + 0x1b8]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea esi, [esp + 0x3bc]
call fcn.10002f60
lea ecx, [esp + 0xb8]
mov edi, esi
call fcn.10002e80
cmp dword [esp + 0x13c], 8
mov eax, dword [esp + 0x128]
jae 0x10018361
lea eax, [esp + 0x128]
lea ecx, [esp + 0x1b4]
call fcn.100016b0
mov dword [esp + 0x24], eax
mov esi, 8
cmp dword [esp + 0x13c], esi
jb 0x1001838f
mov edx, dword [esp + 0x128]
push edx
call fcn.10029653
add esp, 4
xor eax, eax
mov byte [esp + 0x1710], 0x13
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x138], 0
mov word [esp + 0x128], ax
cmp dword [esp + 0x120], esi
jb 0x100183cc
mov ecx, dword [esp + 0x10c]
push ecx
call fcn.10029653
add esp, 4
lea eax, [esp + 0x10]
call fcn.1001c360
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x34]
jne 0x100181d0
lea edx, [esp + 0xedc]
push edx
lea esi, [esp + 0x8c8]
call fcn.10016f20
add esp, 4
cmp eax, 0x50
jne 0x10018493
lea eax, [esp + 0x10]
lea edi, [esp + 0x40]
mov dword [esp + 0x10], 0
call fcn.1001bc50
lea esi, [esp + 0x1b4]
call fcn.10016ed0
cmp dword [esp + 0xe8], 8
jb 0x1001843e
mov eax, dword [esp + 0xd4]
push eax
call fcn.10029653
add esp, 4
xor edi, edi
xor ecx, ecx
mov esi, 8
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xe4], edi
mov word [esp + 0xd4], cx
cmp dword [esp + 0xb0], esi
jb 0x10018476
mov edx, dword [esp + 0x9c]
push edx
call fcn.10029653
add esp, 4
xor eax, eax
mov byte [esp + 0x1710], 0xf
cmp dword [esp + 0xcc], esi
mov dword [esp + 0xac], edi
jmp 0x100189fd
push 0x104
lea edx, [esp + 0x640]
push 0
push edx
call fcn.1002f900
xor eax, eax
add esp, 0xc
mov dword [esp + 0x158], ebx
mov dword [esp + 0x154], 0
mov word [esp + 0x144], ax
mov byte [esp + 0x1710], 0x16
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
cmp edi, 0xffffffff
je 0x10018516
cmp eax, dword [esp + 0x64]
je 0x10018516
cmp dword [esp + 0x1ac], 8
mov esi, dword [esp + 0x198]
jae 0x100184f7
lea esi, [esp + 0x198]
call fcn.1001dd40
mov ecx, dword [eax]
mov eax, dword [ecx*4 + 0x10042730]
lea edx, [esp + 0x144]
push edx
push esi
push edi
call eax
add esp, 0xc
jmp 0x10018529
push 0
mov eax, 0x1003e860
lea esi, [esp + 0x148]
call fcn.10001a60
mov eax, dword [esp + 0x144]
mov esi, 8
cmp dword [esp + 0x158], esi
jae 0x10018545
lea eax, [esp + 0x144]
push eax
lea ecx, [esp + 0x640]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea edx, [esp + 0x63c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
cmp edi, 0x101d0
je 0x100185a6
cmp edi, 0xb
je 0x100185a6
mov eax, dword [esp + 0x9c]
cmp dword [esp + 0xb0], esi
jae 0x10018586
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0x640]
push eax
push str._s_s
push 0x104
push 0x104
mov ecx, eax
push ecx
jmp 0x100186fe
mov eax, dword [ebp + 0x14]
cmp eax, 1
jne 0x1001864b
call fcn.10027fe0
mov edx, dword [eax + 0x120]
shr edx, 3
test dl, 1
jne 0x10018621
call fcn.10027fe0
mov eax, dword [eax + 0x120]
shr eax, 4
test al, 1
jne 0x10018621
call fcn.10027fe0
mov ecx, dword [eax + 0x120]
shr ecx, 5
test cl, 1
jne 0x10018621
mov eax, dword [esp + 0x9c]
cmp dword [esp + 0xb0], esi
jae 0x10018601
lea eax, [esp + 0x9c]
push eax
lea edx, [esp + 0x640]
push edx
push str._s0_s
push 0x104
push 0x104
mov eax, edx
push eax
jmp 0x100186fe
mov eax, dword [esp + 0x9c]
cmp dword [esp + 0xb0], esi
jae 0x10018638
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x640]
push ecx
push str._s_s
jmp 0x100186ec
cmp eax, 2
jne 0x10018684
mov eax, dword [esp + 0x9c]
cmp dword [esp + 0xb0], esi
jae 0x10018667
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0x640]
push eax
push str._s2_s
push 0x104
push 0x104
mov ecx, eax
push ecx
jmp 0x100186fe
cmp eax, 3
je 0x100186c7
cmp eax, 4
je 0x100186c7
cmp eax, 5
je 0x100186c7
mov eax, dword [esp + 0x9c]
cmp dword [esp + 0xb0], esi
jae 0x100186aa
lea eax, [esp + 0x9c]
push eax
lea edx, [esp + 0x640]
push edx
push str._s_s
push 0x104
push 0x104
mov eax, edx
push eax
jmp 0x100186fe
mov eax, dword [esp + 0x9c]
cmp dword [esp + 0xb0], esi
jae 0x100186de
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x640]
push ecx
push str._s3_s
push 0x104
push 0x104
lea edx, [esp + 0x650]
push edx
call fcn.100297b0
mov ebx, dword [esp + 0x3c]
add esp, 0x18
test ebx, ebx
jne 0x100187da
call fcn.10027fe0
mov eax, dword [eax + 0x120]
shr eax, 7
test al, 1
je 0x100187da
mov ecx, dword [esp + 0x9c]
cmp dword [esp + 0xb0], esi
jae 0x1001873f
lea ecx, [esp + 0x9c]
mov eax, dword [esp + 0xf0]
cmp dword [esp + 0x104], esi
jae 0x10018756
lea eax, [esp + 0xf0]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x100187da
call fcn.10027fe0
add eax, 0x144
cmp dword [eax + 0x14], esi
jb 0x10018773
mov eax, dword [eax]
lea ecx, [esp + 0x10c]
call fcn.100016e0
mov ecx, dword [esp + 0x9c]
cmp dword [esp + 0xb0], esi
jae 0x10018796
lea ecx, [esp + 0x9c]
mov eax, dword [esp + 0x10c]
cmp dword [esp + 0x120], esi
jae 0x100187ad
lea eax, [esp + 0x10c]
push ecx
push eax
push 0x100402ac
push 0x104
lea ecx, [esp + 0x64c]
push 0x104
push ecx
call fcn.100297b0
add esp, 0x18
lea esi, [esp + 0x10c]
call fcn.10003540
lea edx, [esp + 0x8c4]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 1
je 0x100187fe
and eax, 0xfffffffe
push eax
lea eax, [esp + 0x8c8]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor edi, edi
mov dword [esp + 0x10], edi
test ebx, ebx
jne 0x10018850
lea esi, [esp + 0x10]
lea ecx, [esp + 0x63c]
lea ebx, [esp + 0x8c4]
call fcn.10018e10
mov edi, dword [esp + 0x10]
mov dword [esp + 0x24], eax
test eax, eax
jne 0x10018850
cmp edi, 0xffffffff
jne 0x10018850
push eax
mov ecx, ebx
push ecx
lea edx, [esp + 0x644]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x10018850
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x24], eax
mov ebx, dword [ebp + 0x14]
call fcn.10016fb0
xor esi, esi
cmp eax, esi
jne 0x1001892c
push esi
push 0x80
push 3
push esi
push esi
push 0xc0000000
lea eax, [esp + 0x654]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x100188a9
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [esp + 0x10]
lea edi, [esp + 0x40]
mov dword [esp + 0x10], esi
call fcn.1001bc50
lea ecx, [esp + 0x63c]
push ecx
jmp 0x10018945
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x20
je 0x100188d4
cmp eax, 0x21
je 0x100188d4
lea eax, [esp + 0x10]
lea edi, [esp + 0x40]
mov dword [esp + 0x10], esi
call fcn.1001bc50
lea edx, [esp + 0x63c]
push edx
jmp 0x10018945
cmp edi, 2
je 0x100188fe
cmp edi, 1
je 0x100188fe
lea eax, [esp + 0x10]
lea edi, [esp + 0x40]
mov dword [esp + 0x10], esi
call fcn.1001bc50
lea eax, [esp + 0x63c]
push eax
push str.__un_lock___s
jmp 0x1001894a
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x10]
lea edi, [esp + 0x40]
mov dword [ecx], 1
mov dword [esp + 0x10], 1
call fcn.1001bc50
lea edx, [esp + 0x63c]
push edx
push str._lock___s
jmp 0x1001894a
lea eax, [esp + 0x10]
lea edi, [esp + 0x40]
mov dword [esp + 0x10], esi
call fcn.1001bc50
lea eax, [esp + 0x63c]
push eax
push str._unlock___s
call fcn.100269c0
mov edi, 8
add esp, 8
cmp dword [esp + 0x158], edi
jb 0x10018970
mov ecx, dword [esp + 0x144]
push ecx
call fcn.10029653
add esp, 4
mov dword [esp + 0x154], esi
xor edx, edx
mov ebx, 7
lea esi, [esp + 0x1b4]
mov dword [esp + 0x158], ebx
mov word [esp + 0x144], dx
call fcn.10016ed0
cmp dword [esp + 0xe8], edi
jb 0x100189b2
mov eax, dword [esp + 0xd4]
push eax
call fcn.10029653
add esp, 4
xor esi, esi
xor ecx, ecx
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xe4], esi
mov word [esp + 0xd4], cx
cmp dword [esp + 0xb0], edi
jb 0x100189e5
mov edx, dword [esp + 0x9c]
push edx
call fcn.10029653
add esp, 4
xor eax, eax
mov byte [esp + 0x1710], 0xf
cmp dword [esp + 0xcc], edi
mov dword [esp + 0xac], esi
mov word [esp + 0x9c], ax
mov dword [esp + 0xb0], ebx
jb 0x10018a1e
mov ecx, dword [esp + 0xb8]
push ecx
call fcn.10029653
add esp, 4
mov eax, dword [esp + 0x2c]
add dword [esp + 0x14], 4
mov ecx, 0x1c
add dword [esp + 0x28], ecx
add dword [esp + 0x1c], ecx
add eax, ecx
mov dword [esp + 0x2c], eax
cmp eax, dword [esp + 0x54]
jne 0x10018020
mov edx, dword [ebp + 0x14]
push edx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
xor edi, edi
xor eax, eax
mov esi, 7
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], edi
push edi
lea edx, [esp + 0x114]
mov word [ecx], ax
push edx
or eax, 0xffffffff
call fcn.10001820
sub esp, 0x10
mov byte [esp + 0x1740], 0x17
mov eax, esp
mov dword [esp + 0x4c], esp
push eax
lea ecx, [esp + 0x74]
call fcn.1001ba60
sub esp, 0x10
mov ecx, esp
mov byte [esp + 0x1750], 0x18
mov dword [esp + 0x68], esp
push ecx
lea ecx, [esp + 0xa4]
call fcn.1001ba60
sub esp, 0x10
mov byte [esp + 0x1760], 0x19
mov edx, esp
mov dword [esp + 0x7c], esp
push edx
lea ecx, [esp + 0xc4]
call fcn.1001b980
sub esp, 0x10
mov byte [esp + 0x1770], 0x1a
mov eax, esp
mov dword [esp + 0x80], esp
push eax
lea ecx, [esp + 0xb4]
call fcn.1001b980
sub esp, 0x1c
mov byte [esp + 0x178c], 0x1b
mov ecx, esp
mov dword [esp + 0x8c], esp
push edi
lea eax, [esp + 0x218]
xor edx, edx
push eax
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], edi
or eax, 0xffffffff
mov word [ecx], dx
call fcn.10001820
lea ecx, [esp + 0xd50]
push ecx
mov ecx, dword [esp + 0x98]
mov byte [esp + 0x1790], 0xf
call fcn.10017330
add esp, 0x80
lea esi, [esp + 0x198]
mov ebx, eax
call fcn.10003540
mov esi, dword [esp + 0x18]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10018b62
mov ecx, esi
call fcn.100190c0
push ebx
push str.DoCopyInfDriverFilesEx_End__d_
call fcn.100269c0
add esp, 8
mov byte [esp + 0x1710], 0x1c
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
push eax
push ecx
lea edi, [esp + 0x1c]
lea esi, [esp + 0x38]
call fcn.1001c1f0
mov edx, dword [esp + 0x34]
push edx
call fcn.10029653
add esp, 4
lea esi, [esp + 0x80]
call fcn.10002e50
lea esi, [esp + 0x17c]
call fcn.10003540
lea esi, [esp + 0x160]
call fcn.10003540
lea esi, [esp + 0xf0]
call fcn.10003540
cmp dword [esp + 0x40], 0
je 0x10018bde
mov eax, dword [esp + 0x40]
push eax
call fcn.10029653
add esp, 4
mov eax, dword [esp + 0x60]
test eax, eax
je 0x10018bef
push eax
call fcn.10029653
add esp, 4
lea esi, [esp + 0x70]
call fcn.10002e50
lea esi, [esp + 0x50]
call fcn.10002e50
lea ecx, [esp + 0x3cc]
push ecx
mov dword [esp + 0x1714], 0xffffffff
call fcn.10010c70
mov eax, ebx
jmp 0x10017d98
mov byte [esp + 0x1710], 0xa
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
push eax
push ecx
lea edi, [esp + 0x1c]
lea esi, [esp + 0x38]
call fcn.1001c1f0
mov edx, dword [esp + 0x34]
push edx
call fcn.10029653
mov esi, 8
add esp, 4
cmp dword [esp + 0x190], esi
jb 0x10018c68
mov eax, dword [esp + 0x17c]
push eax
call fcn.10029653
add esp, 4
xor ebx, ebx
xor ecx, ecx
mov edi, 7
mov dword [esp + 0x190], edi
mov dword [esp + 0x18c], ebx
mov word [esp + 0x17c], cx
cmp dword [esp + 0x174], esi
jb 0x10018ca0
mov edx, dword [esp + 0x160]
push edx
call fcn.10029653
add esp, 4
xor eax, eax
mov dword [esp + 0x174], edi
mov dword [esp + 0x170], ebx
mov word [esp + 0x160], ax
cmp dword [esp + 0x104], esi
jb 0x10018cd1
mov ecx, dword [esp + 0xf0]
push ecx
call fcn.10029653
add esp, 4
xor edx, edx
mov dword [esp + 0x104], edi
mov dword [esp + 0x100], ebx
mov word [esp + 0xf0], dx
lea ebx, [esp + 0x3cc]
mov dword [esp + 0x1710], 0xe
call fcn.10010cf0
lea eax, [esp + 0x544]
push eax
mov byte [esp + 0x1714], 0xd
call fcn.100100e0
lea ecx, [esp + 0x434]
push ecx
mov byte [esp + 0x1714], 0xc
call fcn.10010430
lea edx, [esp + 0x3fc]
push edx
mov byte [esp + 0x1714], 0xb
call fcn.100102b0
mov eax, ebx
push eax
mov dword [esp + 0x1714], 0xffffffff
call fcn.1000a430
jmp 0x10017d93
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x94]
mov dword [esp + 0x18], edi
call fcn.1002901e
push 0x1004a358
lea edx, [esp + 0x94]
push edx
mov dword [esp + 0x98], vtable.std::bad_alloc.0
call fcn.1002b301
int3