Function at 0x10014820
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x1004f8d7
mov eax, dword fs:[0]
push eax
sub esp, 0xdc
mov eax, dword [0x1006b2c8]
xor eax, esp
mov dword [esp + 0xd8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1006b2c8]
xor eax, esp
push eax
lea eax, [esp + 0xf0]
mov dword fs:[0], eax
mov esi, dword [esp + 0x100]
mov ebp, dword [esp + 0x104]
mov edi, ecx
push str.CInfInstallSection::GetData___Start
mov dword [esp + 0x44], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x18], ebp
call fcn.10034080
add esp, 4
mov ecx, edi
call fcn.10013040
push edi
push str.CopyFiles
push ebp
push esi
mov ecx, edi
call fcn.10014380
test eax, eax
mov dword [esp + 0x24], eax
je 0x100148b5
push 0x3d9
push str.._sourceInfFile.cpp
push eax
call fcn.10034250
add esp, 0xc
push str.____Copy_Files____
call fcn.10034080
mov esi, dword [edi + 4]
add esp, 4
cmp esi, dword [edi + 8]
jbe 0x100148d0
call fcn.100370ab
nop
mov ebx, dword [edi + 8]
cmp dword [edi + 4], ebx
jbe 0x100148dd
call fcn.100370ab
test edi, edi
je 0x100148e5
cmp edi, edi
je 0x100148ea
call fcn.100370ab
cmp esi, ebx
je 0x10014941
test edi, edi
jne 0x100148f7
call fcn.100370ab
cmp esi, dword [edi + 8]
jb 0x10014901
call fcn.100370ab
mov eax, 8
cmp dword [esi + 0x3c], eax
jb 0x10014910
mov ecx, dword [esi + 0x28]
jmp 0x10014913
lea ecx, [esi + 0x28]
cmp dword [esi + 0x20], eax
jb 0x1001491d
mov eax, dword [esi + 0xc]
jmp 0x10014920
lea eax, [esi + 0xc]
push ecx
push eax
push str.Dest:_s__Src:_s
call fcn.10034080
add esp, 0xc
cmp esi, dword [edi + 8]
jb 0x10014939
call fcn.100370ab
add esi, 0x94
jmp 0x100148d0
push str.____Copy_Files____
call fcn.10034080
push 0x100533f4
call fcn.10034080
add esp, 8
xor esi, esi
push esi
push 0x100533f4
lea ecx, [esp + 0x84]
mov dword [esp + 0x9c], 7
mov dword [esp + 0x98], esi
mov word [esp + 0x88], si
call fcn.100017e0
mov ebx, dword [esp + 0x20]
lea eax, [esp + 0x7c]
push eax
push str.DataSection
push ebp
push ebx
mov dword [esp + 0x108], esi
call fcn.100103c0
add esp, 0x10
cmp dword [esp + 0x90], esi
je 0x10014b82
push esi
push 0x100533f4
lea ecx, [esp + 0x68]
mov dword [esp + 0x80], 7
mov dword [esp + 0x7c], esi
mov word [esp + 0x6c], si
call fcn.100017e0
lea ecx, [esp + 0x60]
push ecx
push str.Include
push ebp
push ebx
mov byte [esp + 0x108], 1
call fcn.100103c0
add esp, 0x10
cmp dword [esp + 0x74], esi
je 0x10014b6e
push 0xffffffffffffffff
push esi
lea edx, [esp + 0x68]
push edx
lea ecx, [edi + 0xf0]
call fcn.100016f0
cmp dword [esp + 0x78], 8
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1c], esi
jae 0x10014a21
lea eax, [esp + 0x64]
lea ecx, [esp + 0x1c]
push ecx
push 2
push esi
push eax
call dword [sym.imp.SETUPAPI.dll_SetupOpenInfFileW]
mov ecx, eax
cmp ecx, 0xffffffff
mov dword [esp + 0x18], ecx
je 0x10014be4
mov dword [esp + 0xd4], esi
mov dword [esp + 0xd8], esi
mov dword [esp + 0xdc], esi
cmp dword [esp + 0x94], 8
mov eax, dword [esp + 0x80]
mov byte [esp + 0xf8], 2
jae 0x10014a74
lea eax, [esp + 0x80]
push 1
lea edx, [esp + 0xd4]
push edx
push esi
push eax
push ecx
mov ecx, edi
call fcn.10013880
cmp eax, esi
mov dword [esp + 0x24], eax
jne 0x10014b1c
mov esi, dword [esp + 0xd4]
mov eax, dword [esp + 0xd8]
cmp esi, eax
jbe 0x10014ab2
call fcn.100370ab
mov eax, dword [esp + 0xd8]
lea ebx, [esp + 0xd0]
lea esp, [esp]
cmp dword [esp + 0xd4], eax
mov ebp, eax
jbe 0x10014ad0
call fcn.100370ab
test ebx, ebx
je 0x10014adf
lea eax, [esp + 0xd0]
cmp ebx, eax
je 0x10014ae4
call fcn.100370ab
cmp esi, ebp
je 0x10014b1c
test ebx, ebx
jne 0x10014af1
call fcn.100370ab
cmp esi, dword [ebx + 8]
jb 0x10014afb
call fcn.100370ab
push esi
mov ecx, edi
call fcn.100131c0
cmp esi, dword [ebx + 8]
jb 0x10014b0d
call fcn.100370ab
mov eax, dword [esp + 0xd8]
add esi, 0x94
jmp 0x10014ac0
mov ecx, dword [esp + 0x18]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
mov esi, dword [esp + 0xd4]
test esi, esi
mov byte [esp + 0xf8], 1
je 0x10014b66
mov ebx, dword [esp + 0xd8]
cmp esi, ebx
je 0x10014b5d
mov ecx, esi
call fcn.1000fea0
add esi, 0x94
cmp esi, ebx
jne 0x10014b45
mov esi, dword [esp + 0xd4]
push esi
call fcn.10036ea6
add esp, 4
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
cmp dword [esp + 0x78], 8
jb 0x10014b82
mov edx, dword [esp + 0x64]
push edx
call fcn.10036ea6
add esp, 4
cmp dword [esp + 0x94], 8
jb 0x10014b9c
mov eax, dword [esp + 0x80]
push eax
call fcn.10036ea6
add esp, 4
xor esi, esi
mov dword [esp + 0x5c], 7
mov dword [esp + 0x58], esi
mov word [esp + 0x48], si
lea ecx, [esp + 0x44]
push ecx
push str.DataFile
push ebp
push ebx
mov dword [esp + 0x108], 3
call fcn.10011ab0
add esp, 0x10
test eax, eax
jne 0x10014bf3
push 0xffffffffffffffff
push esi
lea edx, [esp + 0x4c]
push edx
lea ecx, [edi + 0x10]
call fcn.100016f0
jmp 0x10014c19
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x24], eax
jmp 0x10014b6e
mov eax, ebp
lea edx, [eax + 2]
jmp 0x10014c00
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x10014c00
sub eax, edx
sar eax, 1
push eax
push ebp
lea ecx, [edi + 0x48]
call fcn.100017e0
push str.____Data_File____
call fcn.10034080
mov eax, dword [esp + 0x4c]
add esp, 4
cmp dword [esp + 0x5c], 8
jae 0x10014c35
lea eax, [esp + 0x48]
push eax
push 0x1005392c
call fcn.10034080
push str.____Data_File____
call fcn.10034080
push 0x100533f4
call fcn.10034080
add esp, 0x10
cmp dword [esp + 0x5c], 8
jb 0x10014c6b
mov eax, dword [esp + 0x48]
push eax
call fcn.10036ea6
add esp, 4
mov dword [esp + 0xb0], 7
mov dword [esp + 0xac], esi
mov word [esp + 0x9c], si
lea ecx, [esp + 0x98]
push ecx
push str.DriverFile
push ebp
push ebx
mov dword [esp + 0x108], 4
call fcn.10011ab0
add esp, 0x10
test eax, eax
jne 0x10014cc0
push 0xffffffffffffffff
push esi
lea edx, [esp + 0xa0]
push edx
lea ecx, [edi + 0x2c]
call fcn.100016f0
jmp 0x10014cde
mov eax, ebp
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x10014cc5
sub eax, edx
sar eax, 1
push eax
push ebp
lea ecx, [edi + 0x48]
call fcn.100017e0
push str.____Driver_File____
call fcn.10034080
mov eax, dword [esp + 0xa0]
add esp, 4
cmp dword [esp + 0xb0], 8
jae 0x10014d03
lea eax, [esp + 0x9c]
push eax
push 0x1005392c
call fcn.10034080
push str.____Driver_File____
call fcn.10034080
push 0x100533f4
call fcn.10034080
mov dword [esp + 0x6c], 7
mov dword [esp + 0x68], esi
mov word [esp + 0x58], si
lea eax, [esp + 0x54]
push eax
push str.ConfigFile
push ebp
push ebx
mov byte [esp + 0x118], 5
call fcn.10011ab0
add esp, 0x20
test eax, eax
push 0xffffffffffffffff
push esi
jne 0x10014d5d
lea ecx, [esp + 0x4c]
push ecx
jmp 0x10014d65
lea edx, [esp + 0xa0]
push edx
lea ecx, [edi + 0x48]
call fcn.100016f0
push str.____Config_File____
call fcn.10034080
mov eax, dword [esp + 0x4c]
mov esi, 8
add esp, 4
cmp dword [esp + 0x5c], esi
jae 0x10014d8d
lea eax, [esp + 0x48]
push eax
push 0x1005392c
call fcn.10034080
push str.____Config_File____
call fcn.10034080
push 0x100533f4
call fcn.10034080
add esp, 0x10
cmp dword [esp + 0x5c], esi
mov byte [esp + 0xf8], 4
jb 0x10014dca
mov eax, dword [esp + 0x48]
push eax
call fcn.10036ea6
add esp, 4
lea esi, [edi + 0x64]
push esi
push str.HelpFile
push ebp
push ebx
call fcn.10011ab0
push str.____Help_File____
call fcn.10034080
add esp, 0x14
cmp dword [esi + 0x18], 8
jb 0x10014df2
mov esi, dword [esi + 4]
jmp 0x10014df5
add esi, 4
push esi
push 0x1005392c
call fcn.10034080
push str.____Help_File____
call fcn.10034080
push 0x100533f4
call fcn.10034080
lea ecx, [edi + 0x9c]
push ecx
lea edx, [edi + 0x80]
push edx
push ebp
push ebx
call fcn.100129f0
lea esi, [edi + 0xb8]
push esi
push str.DefaultDataType
push ebp
push ebx
call fcn.10011ab0
push str.____DefaultDataType____
call fcn.10034080
add esp, 0x34
cmp dword [esi + 0x18], 8
jb 0x10014e54
mov esi, dword [esi + 4]
jmp 0x10014e57
add esi, 4
push esi
push 0x1005392c
call fcn.10034080
push str.____DefaultDataType____
call fcn.10034080
push 0x100533f4
call fcn.10034080
lea eax, [edi + 0xd8]
push eax
lea ecx, [edi + 0xd4]
push ecx
push ebp
push ebx
call fcn.10011cd0
xor eax, eax
mov dword [esp + 0xec], 7
mov dword [esp + 0xe8], eax
mov word [esp + 0xd8], ax
lea edx, [esp + 0xd4]
push edx
push str.DriverVer
push str.Version
push ebx
mov byte [esp + 0x128], 6
call fcn.100103c0
add esp, 0x30
test eax, eax
jne 0x1001526a
xor ebx, ebx
mov eax, 7
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], ebx
mov word [esp + 0x48], bx
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], ebx
mov word [esp + 0x64], bx
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x4c]
mov byte [esp + 0x100], 8
call fcn.10001210
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x68]
call fcn.10001210
push 1
push ebx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0xc0]
mov dword [esp + 0x20], 0x2c
call fcn.10006480
mov esi, eax
cmp esi, 0xffffffff
lea ecx, [esp + 0xb4]
jne 0x10014f51
push eax
push ebx
push ecx
lea ecx, [esp + 0x50]
call fcn.100016f0
lea ebp, [ebx + 8]
jmp 0x10014feb
push esi
push ebx
lea edx, [esp + 0x84]
push edx
call fcn.100037b0
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x50]
mov byte [esp + 0x104], 9
call fcn.100016f0
mov ebp, 8
cmp dword [esp + 0x94], ebp
mov byte [esp + 0xf8], 8
jb 0x10014f9b
mov eax, dword [esp + 0x80]
push eax
call fcn.10036ea6
add esp, 4
push 0xffffffffffffffff
add esi, 1
push esi
lea ecx, [esp + 0xd8]
push ecx
lea ecx, [esp + 0xc0]
call fcn.100037b0
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x6c]
mov byte [esp + 0x104], 0xa
call fcn.100016f0
cmp dword [esp + 0xe8], ebp
mov byte [esp + 0xf8], 8
jb 0x10014feb
mov edx, dword [esp + 0xd4]
push edx
call fcn.10036ea6
add esp, 4
xor eax, eax
xor esi, esi
cmp dword [esp + 0x5c], ebp
mov dword [esp + 0xd2], eax
mov dword [esp + 0xd6], eax
mov word [esp + 0xda], ax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x18], 0x2f
mov word [esp + 0xd0], bx
mov dword [esp + 0x1c], ebx
jae 0x10015027
lea eax, [esp + 0x48]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x1c]
push edx
push eax
call fcn.10038914
add esp, 0xc
cmp eax, ebx
je 0x1001506b
mov edi, edi
push eax
call fcn.100380d0
movzx ecx, si
lea edx, [esp + 0x20]
mov word [esp + ecx*2 + 0xd4], ax
push edx
lea eax, [esp + 0x20]
push eax
push ebx
add esi, 1
call fcn.10038914
add esp, 0x10
cmp eax, ebx
jne 0x10015040
mov cx, word [esp + 0xd0]
mov dx, word [esp + 0xd2]
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov ax, word [esp + 0xd4]
mov word [esp + 0x2a], cx
lea ecx, [esp + 0x38]
mov word [esp + 0x2e], dx
mov word [esp + 0x28], ax
xor eax, eax
push ecx
lea edx, [esp + 0x2c]
push edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
test eax, eax
je 0x100150d6
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov dword [edi + 0xec], eax
mov dword [edi + 0xe8], ecx
push str.____DriverDate____
call fcn.10034080
movzx edx, word [esp + 0x2c]
movzx eax, word [esp + 0x32]
movzx ecx, word [esp + 0x2e]
push edx
push eax
push ecx
push str._d__d__d
call fcn.10034080
push str.____DriverDate____
call fcn.10034080
push 0x100533f4
call fcn.10034080
add esp, 0x1c
cmp dword [esp + 0x74], ebx
je 0x10015231
xor eax, eax
xor esi, esi
cmp dword [esp + 0x78], ebp
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], 0x2e
jae 0x1001514c
lea eax, [esp + 0x64]
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x1c]
push ecx
push eax
call fcn.10038914
add esp, 0xc
cmp eax, ebx
je 0x1001518e
push eax
call fcn.100380d0
movzx edx, si
mov word [esp + edx*2 + 0xd4], ax
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
push ecx
push ebx
add esi, 1
call fcn.10038914
add esp, 0x10
cmp eax, ebx
jne 0x10015163
movzx edi, word [esp + 0xd0]
movzx ebp, word [esp + 0xd2]
movzx ebx, word [esp + 0xd4]
movzx ecx, word [esp + 0xd6]
mov eax, edi
shl eax, 0x10
push 1
or eax, ebp
cdq
push 0
mov esi, ebx
push edx
shl esi, 0x10
push eax
or esi, ecx
call fcn.10038a00
mov ecx, eax
mov eax, edx
mov dword [esp + 0x14], eax
mov eax, esi
cdq
add ecx, eax
mov eax, dword [esp + 0x14]
adc eax, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x40]
mov dword [eax + 0xe0], ecx
mov ecx, dword [esp + 0x14]
push str.____DriverVer____
mov dword [eax + 0xe4], ecx
call fcn.10034080
movzx eax, word [esp + 0xda]
push eax
push ebx
push ebp
push edi
push str._d._d._d._d
call fcn.10034080
push str.____DriverVer____
call fcn.10034080
push 0x100533f4
call fcn.10034080
add esp, 0x20
xor ebx, ebx
mov ebp, 8
cmp dword [esp + 0x78], ebp
jb 0x10015244
mov edx, dword [esp + 0x64]
push edx
call fcn.10036ea6
add esp, 4
cmp dword [esp + 0x5c], ebp
mov dword [esp + 0x78], 7
mov dword [esp + 0x74], ebx
mov word [esp + 0x64], bx
jb 0x1001526f
mov eax, dword [esp + 0x48]
push eax
call fcn.10036ea6
add esp, 4
jmp 0x1001526f
mov ebp, 8
cmp dword [esp + 0xcc], ebp
mov byte [esp + 0xf8], 4
jb 0x10015290
mov ecx, dword [esp + 0xb8]
push ecx
call fcn.10036ea6
add esp, 4
mov esi, dword [esp + 0x24]
push esi
push str.CInfInstallSection::GetData___End__d_
call fcn.10034080
add esp, 8
cmp dword [esp + 0xb0], ebp
jb 0x100152bb
mov edx, dword [esp + 0x9c]
push edx
call fcn.10036ea6
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0xf0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.1003754f
add esp, 0xe8
ret 8