Function at 0x14005c2c0
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x910
movaps xmmword [rsp + 0x900], xmm6
mov rax, qword [0x14031b940]
xor rax, rsp
mov qword [rsp + 0x8f8], rax
mov r13, rdx
mov r15, rcx
xor esi, esi
mov r14d, esi
mov dword [rsp + 0x38], esi
xorps xmm0, xmm0
movups xmmword [rsp + 0x848], xmm0
movdqa xmm1, xmmword [0x1402d4800]
movdqu xmmword [rsp + 0x858], xmm1
mov word [rsp + 0x848], si
mov byte [rsp + 0x840], sil
lea rdx, str.srl::SetupLib::GetGpuInfo
lea rcx, [rsp + 0x848]
call fcn.1400182b0
nop
call fcn.140020e90
cmp dword [rax + 8], 4
jl 0x14005c35c
lea rcx, [rsp + 0x840]
call fcn.140016100
cmp byte [r15 + 0x28], 0
je 0x14005dd6d
mov qword [rsp + 0x48], rsi
lea r8, [rsp + 0x48]
lea rdx, [0x1402bc520]
mov rcx, r15
call fcn.140060b40
test al, al
je 0x14005dd17
mov edi, esi
xorps xmm0, xmm0
movups xmmword [rsp + 0x7e0], xmm0
movups xmmword [rsp + 0x7f0], xmm0
mov eax, 0x20
mov dword [rsp + 0x7e0], eax
xor r12b, r12b
movsd xmm6, qword [0x1402d47b0]
nop dword [rax]
nop dword [rax + rax]
lea r8, [rsp + 0x7e0]
mov edx, edi
mov rbx, qword [rsp + 0x48]
mov rcx, rbx
call qword [r15 + 0x40]
test eax, eax
je 0x14005dd09
test r12b, r12b
jne 0x14005dd09
inc edi
mov dword [rsp + 0x38], edi
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x68]
mov r8, rbx
lea rdx, [rsp + 0x7e0]
mov rcx, r15
call fcn.14005f6e0
test al, al
jne 0x14005c418
mov r12b, 1
jmp 0x14005c3c0
mov rbx, qword [rsp + 0x68]
mov qword [rsp + 0x1e0], rbx
mov dword [rsp + 0x1e8], esi
mov qword [rsp + 0x1f0], rsi
mov rdi, qword [rsp + 0x40]
mov qword [rsp + 0x50], rdi
mov dword [rsp + 0x58], esi
mov qword [rsp + 0x60], rsi
lea rcx, [rsp + 0xa0]
call fcn.140026370
nop
call fcn.140010070
mov rcx, rax
test rax, rax
je 0x14005ddae
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, qword [rsp + 0x48]
lea rdx, [rsp + 0x7e0]
mov rcx, r15
call fcn.1400602f0
test al, al
je 0x14005c4a6
mov rdx, qword [rsp + 0x30]
cmp dword [rdx - 0x10], 0
jne 0x14005c4f2
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, str.DeviceDesc
xor r8d, r8d
mov rdx, rbx
call fcn.14005f8b0
test al, al
je 0x14005c4d1
mov rdx, qword [rsp + 0x30]
cmp dword [rdx - 0x10], 0
jne 0x14005c4f2
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, str.DeviceDesc
xor r8d, r8d
mov rdx, rdi
call fcn.14005f8b0
mov rdx, qword [rsp + 0x30]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0xa8]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14005c55d
cmp dword [rbx + 0x10], 0
jl 0x14005c54c
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14005c54c
call fcn.140002d2c
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14005c539
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0xa8], rax
mov rdi, qword [rsp + 0x40]
jmp 0x14005c55d
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0xa8]
call fcn.140002b6c
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [0x1402d2480]
xor r8d, r8d
mov rdx, rdi
call fcn.14005f8b0
test al, al
je 0x14005c588
mov rdx, qword [rsp + 0x30]
cmp dword [rdx - 0x10], 0
jne 0x14005c5a9
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, str.DriverVersion
xor r8d, r8d
mov rdx, rdi
call fcn.14005f8b0
mov rdx, qword [rsp + 0x30]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0xf8]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14005c614
cmp dword [rbx + 0x10], 0
jl 0x14005c603
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14005c603
call fcn.140002d2c
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14005c5f0
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0xf8], rax
mov rdi, qword [rsp + 0x40]
jmp 0x14005c614
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0xf8]
call fcn.140002b6c
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, str.ChipType
lea r8, str.info
mov rdx, rdi
call fcn.14005f8b0
test al, al
je 0x14005c643
mov rdx, qword [rsp + 0x30]
cmp dword [rdx - 0x10], 0
jne 0x14005c664
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, str.HardwareInformation.ChipType
xor r8d, r8d
mov rdx, rdi
call fcn.14005f8b0
mov rdx, qword [rsp + 0x30]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0xb8]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14005c6cf
cmp dword [rbx + 0x10], 0
jl 0x14005c6be
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14005c6be
call fcn.140002d2c
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14005c6ab
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0xb8], rax
mov rdi, qword [rsp + 0x40]
jmp 0x14005c6cf
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0xb8]
call fcn.140002b6c
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, str.DACType
lea r8, str.info
mov rdx, rdi
call fcn.14005f8b0
test al, al
jne 0x14005c70f
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, str.HardwareInformation.DacType
xor r8d, r8d
mov rdx, rdi
call fcn.14005f8b0
mov rdx, qword [rsp + 0x30]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0xd8]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14005c77f
cmp dword [rbx + 0x10], 0
jl 0x14005c76e
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14005c76e
call fcn.140002d2c
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14005c75b
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0xd8], rax
mov rdi, qword [rsp + 0x40]
jmp 0x14005c77f
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0xd8]
call fcn.140002b6c
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, str.DriverDesc
xor r8d, r8d
mov rdx, rdi
call fcn.14005f8b0
mov rbx, qword [rsp + 0x30]
lea rcx, [rbx - 0x18]
mov rdi, qword [rsp + 0xc8]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14005c80e
cmp dword [rdi + 0x10], 0
jl 0x14005c7fa
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14005c7fa
call fcn.140002d2c
mov rbx, rax
mov ecx, 0xffffffff
lock xadd dword [rdi + 0x10], ecx
sub ecx, 1
jg 0x14005c7e7
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rbx + 0x18]
mov qword [rsp + 0xc8], rax
mov rbx, qword [rsp + 0x30]
jmp 0x14005c80e
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
lea rcx, [rsp + 0xc8]
call fcn.140002b6c
call fcn.140020e90
cmp dword [rax + 8], 3
jl 0x14005ceef
call fcn.140020e90
mov rsi, rax
lea rcx, [rsp + 0x2e0]
call fcn.140019350
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x7a0], xmm0
xor eax, eax
mov qword [rsp + 0x7b0], rax
mov qword [rsp + 0x7b8], 7
mov word [rsp + 0x7a0], ax
lea rdx, str.TRACE
lea rcx, [rsp + 0x7a0]
call fcn.1400182b0
xorps xmm0, xmm0
movups xmmword [rsp + 0x720], xmm0
xor r9d, r9d
mov edx, r9d
mov qword [rsp + 0x730], rdx
mov r8d, 7
mov qword [rsp + 0x738], r8
mov word [rsp + 0x720], r9w
mov edi, r9d
cmp edi, dword [rsi + 0x10]
jge 0x14005c939
cmp edi, 0xa
jge 0x14005c939
mov rax, r8
sub rax, rdx
lea rcx, [rsp + 0x720]
cmp rax, 2
jb 0x14005c905
lea rax, [rdx + 2]
mov qword [rsp + 0x730], rax
cmp r8, 7
cmova rcx, qword [rsp + 0x720]
mov eax, dword [0x1402cda80]
mov dword [rcx + rdx*2], eax
mov word [rcx + rdx*2 + 4], r9w
inc edi
mov r8, qword [rsp + 0x738]
mov rdx, qword [rsp + 0x730]
jmp 0x14005c8a3
mov qword [rsp + 0x20], 2
lea r9, [0x1402cda80]
mov edx, 2
call fcn.140021e20
xor r9d, r9d
inc edi
mov r8, qword [rsp + 0x738]
mov rdx, qword [rsp + 0x730]
jmp 0x14005c8a3
xorps xmm0, xmm0
movups xmmword [rsp + 0x780], xmm0
mov qword [rsp + 0x790], r9
mov qword [rsp + 0x798], 7
mov word [rsp + 0x780], r9w
movups xmmword [rsp + 0x740], xmm0
mov qword [rsp + 0x750], r9
mov qword [rsp + 0x758], 7
mov word [rsp + 0x740], r9w
call fcn.140231ccc
mov edx, VariantTimeToDosDateTime
lea rcx, [rsp + 0x8e0]
call fcn.140231e1c
lea rdx, [rsp + 0x8e0]
lea rcx, [rsp + 0x780]
call fcn.1400182b0
lea rcx, [rsp + 0x4e0]
call fcn.140019350
nop
cmp dword [rsi + 0x14], 0
jne 0x14005c9e0
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsi + 0x14], eax
xor edx, edx
lea rcx, [rsp + 0x4f0]
call fcn.140012dc0
jmp 0x14005ca02
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [rsi + 0x14]
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
divsd xmm1, xmm6
lea rcx, [rsp + 0x4f0]
call fcn.140021890
lea rdx, [rsp + 0x888]
lea rcx, [rsp + 0x4f8]
call fcn.140019f80
or r14d, 2
mov rdx, qword [rsp + 0x758]
cmp rdx, 7
jbe 0x14005ca63
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x740]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005ca5e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005ddb9
call fcn.140003e94
movups xmm0, xmmword [rsp + 0x888]
movups xmmword [rsp + 0x740], xmm0
movups xmm1, xmmword [rsp + 0x898]
movups xmmword [rsp + 0x750], xmm1
lea rcx, [rsp + 0x4e0]
call fcn.140019240
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rcx, [rsp + 0x2d0]
call fcn.1402233f8
mov rsi, rax
mov edx, 0x2040
lea rcx, [rsp + 0x220]
call fcn.1402233f8
mov rcx, qword [rsp + 0x2f0]
movsxd rdx, dword [rcx + 4]
lea rcx, [rsp + 0x2f0]
add rcx, rdx
mov edx, dword [rax + 8]
call qword [rax]
lea rdx, [rsp + 0x780]
cmp qword [rsp + 0x798], 7
cmova rdx, qword [rsp + 0x780]
mov r8, qword [rsp + 0x790]
lea rcx, [rsp + 0x2f0]
call fcn.140016b40
lea rdx, [0x1402cd5bc]
mov rcx, rax
call fcn.140016880
mov rdi, rax
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
add rcx, rdi
mov edx, dword [rsi + 8]
call qword [rsi]
mov edx, 6
lea rcx, [rsp + 0x230]
call fcn.140223420
mov rcx, qword [rdi]
movsxd rcx, dword [rcx + 4]
add rcx, rdi
mov rdx, qword [rax + 8]
call qword [rax]
mov rax, qword [rdi]
movsxd rcx, dword [rax + 4]
mov word [rcx + rdi + 0x58], 0x30
mov edx, 3
lea rcx, [rsp + 0x240]
call fcn.14022340c
mov rcx, qword [rdi]
movsxd rcx, dword [rcx + 4]
add rcx, rdi
mov rdx, qword [rax + 8]
call qword [rax]
lea rdx, [rsp + 0x740]
cmp qword [rsp + 0x758], 7
cmova rdx, qword [rsp + 0x740]
mov r8, qword [rsp + 0x750]
mov rcx, rdi
call fcn.140016b40
mov rdi, rax
mov edx, 5
lea rcx, [rsp + 0x250]
call fcn.140223420
mov rsi, rax
lea rdx, [0x1402cd5bc]
mov rcx, rdi
call fcn.140016880
mov rdi, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov rdx, qword [rsi + 8]
call qword [rsi]
mov rax, qword [rdi]
movsxd rcx, dword [rax + 4]
mov word [rcx + rdi + 0x58], 0x20
mov edx, 0x40
lea rcx, [rsp + 0x260]
call fcn.1402233f8
mov rcx, qword [rdi]
movsxd rcx, dword [rcx + 4]
add rcx, rdi
mov edx, dword [rax + 8]
call qword [rax]
lea rdx, [rsp + 0x7a0]
cmp qword [rsp + 0x7b8], 7
cmova rdx, qword [rsp + 0x7a0]
mov r8, qword [rsp + 0x7b0]
mov rcx, rdi
call fcn.140016b40
lea rdi, [rsp + 0x720]
cmp qword [rsp + 0x738], 7
cmova rdi, qword [rsp + 0x720]
lea rdx, [0x1402cdad0]
mov rcx, rax
call fcn.140016880
mov rdx, rdi
mov rcx, rax
call fcn.140016880
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x14032b0dc], eax
jg 0x14005ddbf
xor esi, esi
lea rdx, [rsp + 0x8a8]
lea rcx, [rsp + 0x2f8]
call fcn.140019f80
or r14d, 1
mov rdx, qword [reloc.OLEAUT32.dll_VariantInit]
cmp rdx, 7
jbe 0x14005cce7
lea rdx, [rdx*2 + 2]
mov rcx, qword [0x14031c620]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005cce2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005de1a
call fcn.140003e94
movups xmm0, xmmword [rsp + 0x8a8]
movups xmmword [0x14031c620], xmm0
movups xmm1, xmmword [rsp + 0x8b8]
movups xmmword [0x14031c630], xmm1
mov rdx, qword [rsp + 0x758]
cmp rdx, 7
jbe 0x14005cd4d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x740]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005cd48
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005de20
call fcn.140003e94
mov qword [rsp + 0x750], rsi
mov qword [rsp + 0x758], 7
mov word [rsp + 0x740], si
mov rdx, qword [rsp + 0x798]
cmp rdx, 7
jbe 0x14005cdb1
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x780]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005cdac
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005de26
call fcn.140003e94
mov qword [rsp + 0x790], rsi
mov qword [rsp + 0x798], 7
mov word [rsp + 0x780], si
mov rdx, qword [rsp + 0x738]
cmp rdx, 7
jbe 0x14005ce15
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x720]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005ce10
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005de2c
call fcn.140003e94
mov qword [rsp + 0x730], rsi
mov qword [rsp + 0x738], 7
mov word [rsp + 0x720], si
mov rdx, qword [rsp + 0x7b8]
cmp rdx, 7
jbe 0x14005ce79
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x7a0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005ce74
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005de32
call fcn.140003e94
mov qword [rsp + 0x7b0], rsi
mov qword [rsp + 0x7b8], 7
mov word [rsp + 0x7a0], si
lea rcx, [rsp + 0x2e0]
call fcn.140019240
call fcn.140020e90
lea rdx, [0x14031c620]
cmp qword [reloc.OLEAUT32.dll_VariantInit], 7
cmova rdx, qword [0x14031c620]
mov r8, qword [0x14031c630]
mov rcx, rax
call fcn.140016b40
lea rdx, str.DriverDesc:
mov rcx, rax
call fcn.140016880
mov rdx, rbx
mov rcx, rax
call fcn.140016880
mov rcx, rax
call fcn.140017a70
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, str.VideoMemory
lea r8, str.info
mov rdx, qword [rsp + 0x50]
call fcn.14005f8b0
test al, al
je 0x14005cf60
mov rdx, qword [rsp + 0x30]
lea rcx, [rsp + 0x868]
call fcn.1400092fc
nop
lea rcx, [rsp + 0x868]
call fcn.140063450
mov qword [rsp + 0x158], rax
mov r8, qword [rsp + 0x880]
cmp r8, 7
jbe 0x14005cf60
mov rdx, qword [rsp + 0x868]
lea rcx, [rsp + 0x868]
call fcn.140009718
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov r9d, 1
mov r8, qword [rsp + 0x48]
lea rdx, [rsp + 0x7e0]
mov rcx, r15
call fcn.1400602f0
test al, al
je 0x14005cf98
mov rbx, qword [rsp + 0x30]
cmp dword [rbx - 0x10], 5
jge 0x14005d095
call fcn.140020e90
cmp dword [rax + 8], 3
jl 0x14005cfed
call fcn.140020e90
mov edx, 3
mov rcx, rax
call fcn.1400211b0
mov rbx, rax
call fcn.140020e90
mov rdx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x14005cfca
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
mov rcx, rax
call fcn.140016b40
lea rdx, str.oops1
mov rcx, rax
call fcn.140014ab0
mov rcx, rax
call fcn.140017a70
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, str.MatchingDeviceID
xor r8d, r8d
mov rdx, qword [rsp + 0x1e0]
call fcn.14005f8b0
test al, al
je 0x14005d01d
mov rbx, qword [rsp + 0x30]
cmp dword [rbx - 0x10], 0
jne 0x14005d095
call fcn.140020e90
cmp dword [rax + 8], 3
jl 0x14005d072
call fcn.140020e90
mov edx, 3
mov rcx, rax
call fcn.1400211b0
mov rbx, rax
call fcn.140020e90
mov rdx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x14005d04f
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
mov rcx, rax
call fcn.140016b40
lea rdx, str.oops2
mov rcx, rax
call fcn.140014ab0
mov rcx, rax
call fcn.140017a70
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, str.MatchingDeviceID
xor r8d, r8d
mov rdx, qword [rsp + 0x50]
call fcn.14005f8b0
mov rbx, qword [rsp + 0x30]
call fcn.140020e90
cmp dword [rax + 8], 3
jl 0x14005d770
call fcn.140020e90
mov rsi, rax
lea rcx, [rsp + 0x3e0]
call fcn.140019350
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x760], xmm0
xor eax, eax
mov qword [rsp + 0x770], rax
mov qword [rsp + 0x778], 7
mov word [rsp + 0x760], ax
lea rdx, str.TRACE
lea rcx, [rsp + 0x760]
call fcn.1400182b0
xorps xmm0, xmm0
movups xmmword [rsp + 0x700], xmm0
xor r9d, r9d
mov edx, r9d
mov qword [rsp + 0x710], rdx
mov r8d, 7
mov qword [rsp + 0x718], r8
mov word [rsp + 0x700], r9w
mov edi, r9d
nop word [rax + rax]
cmp edi, dword [rsi + 0x10]
jge 0x14005d1c6
cmp edi, 0xa
jge 0x14005d1c6
mov rax, r8
sub rax, rdx
lea rcx, [rsp + 0x700]
cmp rax, 2
jb 0x14005d192
lea rax, [rdx + 2]
mov qword [rsp + 0x710], rax
cmp r8, 7
cmova rcx, qword [rsp + 0x700]
mov eax, dword [0x1402cda80]
mov dword [rcx + rdx*2], eax
mov word [rcx + rdx*2 + 4], r9w
inc edi
mov r8, qword [rsp + 0x718]
mov rdx, qword [rsp + 0x710]
jmp 0x14005d130
mov qword [rsp + 0x20], 2
lea r9, [0x1402cda80]
mov edx, 2
call fcn.140021e20
xor r9d, r9d
inc edi
mov r8, qword [rsp + 0x718]
mov rdx, qword [rsp + 0x710]
jmp 0x14005d130
xorps xmm0, xmm0
movups xmmword [rsp + 0x7c0], xmm0
mov qword [rsp + 0x7d0], r9
mov qword [rsp + 0x7d8], 7
mov word [rsp + 0x7c0], r9w
movups xmmword [rsp + 0x6e0], xmm0
mov qword [rsp + 0x6f0], r9
mov qword [rsp + 0x6f8], 7
mov word [rsp + 0x6e0], r9w
call fcn.140231ccc
mov edx, VariantTimeToDosDateTime
lea rcx, [rsp + 0x8c8]
call fcn.140231e1c
lea rdx, [rsp + 0x8c8]
lea rcx, [rsp + 0x7c0]
call fcn.1400182b0
lea rcx, [rsp + 0x5e0]
call fcn.140019350
nop
cmp dword [rsi + 0x14], 0
jne 0x14005d26d
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsi + 0x14], eax
xor edx, edx
lea rcx, [rsp + 0x5f0]
call fcn.140012dc0
jmp 0x14005d28f
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [rsi + 0x14]
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
divsd xmm1, xmm6
lea rcx, [rsp + 0x5f0]
call fcn.140021890
lea rdx, [rsp + 0x800]
lea rcx, [rsp + 0x5f8]
call fcn.140019f80
or r14d, 8
mov r8, qword [rsp + 0x6f8]
cmp r8, 7
jbe 0x14005d2cb
mov rdx, qword [rsp + 0x6e0]
lea rcx, [rsp + 0x6e0]
call fcn.140009718
movups xmm0, xmmword [rsp + 0x800]
movups xmmword [rsp + 0x6e0], xmm0
movups xmm1, xmmword [rsp + 0x810]
movups xmmword [rsp + 0x6f0], xmm1
xor eax, eax
mov qword [rsp + 0x810], rax
mov qword [rsp + 0x818], 7
mov word [rsp + 0x800], ax
lea rcx, [rsp + 0x5e0]
call fcn.140019240
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rcx, [rsp + 0x270]
call fcn.1402233f8
mov rsi, rax
mov edx, 0x2040
lea rcx, [rsp + 0x280]
call fcn.1402233f8
mov rcx, qword [rsp + 0x3f0]
movsxd rdx, dword [rcx + 4]
lea rcx, [rsp + 0x3f0]
add rcx, rdx
mov edx, dword [rax + 8]
call qword [rax]
lea rdx, [rsp + 0x7c0]
cmp qword [rsp + 0x7d8], 7
cmova rdx, qword [rsp + 0x7c0]
mov r8, qword [rsp + 0x7d0]
lea rcx, [rsp + 0x3f0]
call fcn.140016b40
lea rdx, [0x1402cd5bc]
mov rcx, rax
call fcn.140016880
mov rdi, rax
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
add rcx, rdi
mov edx, dword [rsi + 8]
call qword [rsi]
mov edx, 6
lea rcx, [rsp + 0x290]
call fcn.140223420
mov rcx, qword [rdi]
movsxd rcx, dword [rcx + 4]
add rcx, rdi
mov rdx, qword [rax + 8]
call qword [rax]
mov rax, qword [rdi]
movsxd rcx, dword [rax + 4]
mov word [rcx + rdi + 0x58], 0x30
mov edx, 3
lea rcx, [rsp + 0x2a0]
call fcn.14022340c
mov rcx, qword [rdi]
movsxd rcx, dword [rcx + 4]
add rcx, rdi
mov rdx, qword [rax + 8]
call qword [rax]
lea rdx, [rsp + 0x6e0]
cmp qword [rsp + 0x6f8], 7
cmova rdx, qword [rsp + 0x6e0]
mov r8, qword [rsp + 0x6f0]
mov rcx, rdi
call fcn.140016b40
mov rdi, rax
mov edx, 5
lea rcx, [rsp + 0x2b0]
call fcn.140223420
mov rsi, rax
lea rdx, [0x1402cd5bc]
mov rcx, rdi
call fcn.140016880
mov rdi, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov rdx, qword [rsi + 8]
call qword [rsi]
mov rax, qword [rdi]
movsxd rcx, dword [rax + 4]
mov word [rcx + rdi + 0x58], 0x20
mov edx, 0x40
lea rcx, [rsp + 0x2c0]
call fcn.1402233f8
mov rcx, qword [rdi]
movsxd rcx, dword [rcx + 4]
add rcx, rdi
mov edx, dword [rax + 8]
call qword [rax]
lea rdx, [rsp + 0x760]
cmp qword [rsp + 0x778], 7
cmova rdx, qword [rsp + 0x760]
mov r8, qword [rsp + 0x770]
mov rcx, rdi
call fcn.140016b40
lea rdi, [rsp + 0x700]
cmp qword [rsp + 0x718], 7
cmova rdi, qword [rsp + 0x700]
lea rdx, [0x1402cdad0]
mov rcx, rax
call fcn.140016880
mov rdx, rdi
mov rcx, rax
call fcn.140016880
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x14032b0dc], eax
jg 0x14005de38
xor esi, esi
lea rdx, [rsp + 0x820]
lea rcx, [rsp + 0x3f8]
call fcn.140019f80
or r14d, 4
mov rdx, qword [reloc.OLEAUT32.dll_VariantInit]
cmp rdx, 7
jbe 0x14005d56d
lea rdx, [rdx*2 + 2]
mov rcx, qword [0x14031c620]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005d568
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005de93
call fcn.140003e94
movups xmm0, xmmword [rsp + 0x820]
movups xmmword [0x14031c620], xmm0
movups xmm1, xmmword [rsp + 0x830]
movups xmmword [0x14031c630], xmm1
mov qword [rsp + 0x830], rsi
mov qword [rsp + 0x838], 7
mov word [rsp + 0x820], si
mov rdx, qword [rsp + 0x6f8]
cmp rdx, 7
jbe 0x14005d5ef
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x6e0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005d5ea
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005de99
call fcn.140003e94
mov qword [rsp + 0x6f0], rsi
mov qword [rsp + 0x6f8], 7
mov word [rsp + 0x6e0], si
mov rdx, qword [rsp + 0x7d8]
cmp rdx, 7
jbe 0x14005d653
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x7c0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005d64e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005de9f
call fcn.140003e94
mov qword [rsp + 0x7d0], rsi
mov qword [rsp + 0x7d8], 7
mov word [rsp + 0x7c0], si
mov rdx, qword [rsp + 0x718]
cmp rdx, 7
jbe 0x14005d6b7
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x700]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005d6b2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005dea5
call fcn.140003e94
mov qword [rsp + 0x710], rsi
mov qword [rsp + 0x718], 7
mov word [rsp + 0x700], si
mov r8, qword [rsp + 0x778]
cmp r8, 7
jbe 0x14005d6f6
mov rdx, qword [rsp + 0x760]
lea rcx, [rsp + 0x760]
call fcn.140009718
mov qword [rsp + 0x770], rsi
mov qword [rsp + 0x778], 7
mov word [rsp + 0x760], si
lea rcx, [rsp + 0x3e0]
call fcn.140019240
call fcn.140020e90
lea rdx, [0x14031c620]
cmp qword [reloc.OLEAUT32.dll_VariantInit], 7
cmova rdx, qword [0x14031c620]
mov r8, qword [0x14031c630]
mov rcx, rax
call fcn.140016b40
lea rdx, str.Got_device_ID:
mov rcx, rax
call fcn.140016880
mov rdi, rax
mov rdx, rbx
mov rcx, rax
call fcn.140016880
mov rcx, rdi
call fcn.140017a70
nop
lea rdi, vtable.srl::DeviceID.0
mov qword [rsp + 0x70], rdi
call fcn.140010070
mov rcx, rax
test rax, rax
je 0x14005deab
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x78], rax
mov rdx, rbx
lea rcx, [rsp + 0x70]
call fcn.140063620
nop
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0x168]
call fcn.140002c9c
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x170], eax
mov eax, dword [rsp + 0x84]
mov dword [rsp + 0x174], eax
mov eax, dword [rsp + 0x88]
mov dword [rsp + 0x178], eax
mov eax, dword [rsp + 0x8c]
mov dword [rsp + 0x17c], eax
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0x180], eax
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005d824
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov qword [rsp + 0x1f8], rdi
call fcn.140010070
mov rcx, rax
test rax, rax
je 0x14005deb6
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x200], rax
mov rdx, qword [rsp + 0x30]
lea rcx, [rsp + 0x1f8]
call fcn.140063620
nop
cmp dword [rsp + 0x208], 0x8086
jne 0x14005d9ee
call fcn.140020e90
cmp dword [rax + 8], 3
jl 0x14005d8c8
call fcn.140020e90
mov edx, 3
mov rcx, rax
call fcn.1400211b0
mov rbx, rax
call fcn.140020e90
mov rdx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x14005d8a5
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
mov rcx, rax
call fcn.140016b40
lea rdx, str.Is_Intel.
mov rcx, rax
call fcn.140016880
mov rcx, rax
call fcn.140017a70
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, str.InfPath
xor r8d, r8d
mov rdx, qword [rsp + 0x50]
call fcn.14005f8b0
test al, al
je 0x14005d9ee
call fcn.140020e90
cmp dword [rax + 8], 3
jl 0x14005d955
call fcn.140020e90
mov edx, 3
mov rcx, rax
call fcn.1400211b0
mov rbx, rax
call fcn.140020e90
mov rdx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x14005d920
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
mov rcx, rax
call fcn.140016b40
lea rdx, str.Inf_Path:
mov rcx, rax
call fcn.140016880
mov rbx, qword [rsp + 0x30]
mov rdx, rbx
mov rcx, rax
call fcn.140016880
mov rcx, rax
call fcn.140017a70
jmp 0x14005d95a
mov rbx, qword [rsp + 0x30]
mov r8, rbx
lea rdx, [rsp + 0x1f8]
mov rcx, r15
call fcn.140061370
mov byte [rsp + 0x1d0], al
call fcn.140020e90
cmp dword [rax + 8], 3
jl 0x14005d9ee
call fcn.140020e90
mov edx, 3
mov rcx, rax
call fcn.1400211b0
mov rbx, rax
call fcn.140020e90
mov rdx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x14005d9a6
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
mov rcx, rax
call fcn.140016b40
mov rdi, rax
lea rcx, [rsp + 0x1c8]
call fcn.14004c360
mov rbx, rax
lea rdx, str.Got_2ID:
mov rcx, rdi
call fcn.140016880
mov rdx, rbx
mov rcx, rax
call fcn.140016880
mov rcx, rax
call fcn.140017a70
lea rdi, vtable.srl::DeviceID.0
mov rax, qword [r13 + 8]
cmp rax, qword [r13 + 0x10]
je 0x14005da12
lea rdx, [rsp + 0xa0]
mov rcx, rax
call fcn.140028530
add qword [r13 + 8], 0x138
jmp 0x14005da26
lea r8, [rsp + 0xa0]
mov rdx, rax
mov rcx, r13
call fcn.140028040
nop
mov rdx, qword [rsp + 0x200]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005da4b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005da6d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rbx, vtable.srl::Value.0
mov qword [rsp + 0x1c8], rbx
mov qword [rsp + 0x1b8], rbx
mov qword [rsp + 0x1a8], rbx
mov qword [rsp + 0x198], rbx
mov qword [rsp + 0x188], rbx
mov qword [rsp + 0x160], rdi
mov rdx, qword [rsp + 0x168]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005dac8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov qword [rsp + 0x160], rbx
mov qword [rsp + 0x150], rbx
mov qword [rsp + 0x140], rbx
mov qword [rsp + 0x130], rbx
lea rdi, vtable.srl::Version.0
mov qword [rsp + 0x120], rdi
mov rdx, qword [rsp + 0x128]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005db1b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov qword [rsp + 0x120], rbx
mov qword [rsp + 0x110], rdi
mov rdx, qword [rsp + 0x118]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005db4f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov qword [rsp + 0x110], rbx
lea rdi, vtable.srl::Name.0
mov qword [rsp + 0x100], rdi
mov rdx, qword [rsp + 0x108]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005db8a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov qword [rsp + 0x100], rbx
lea rax, vtable.srl::Version.0
mov qword [rsp + 0xf0], rax
mov rdx, qword [rsp + 0xf8]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005dbc5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov qword [rsp + 0xf0], rbx
lea rax, vtable.srl::Version.0
mov qword [rsp + 0xe0], rax
mov rdx, qword [rsp + 0xe8]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005dc00
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov qword [rsp + 0xe0], rbx
mov qword [rsp + 0xd0], rdi
mov rdx, qword [rsp + 0xd8]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005dc34
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov qword [rsp + 0xd0], rbx
mov qword [rsp + 0xc0], rdi
mov rdx, qword [rsp + 0xc8]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005dc68
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0xb0], rdi
mov rdx, qword [rsp + 0xb8]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005dc9c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0xa0], rdi
mov rdx, qword [rsp + 0xa8]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14005dcd0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov qword [rsp + 0xa0], rbx
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14005dce9
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
mov rcx, qword [rsp + 0x1e0]
test rcx, rcx
mov edi, dword [rsp + 0x38]
je 0x14005c3c0
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x14005c3c0
mov rcx, qword [rsp + 0x48]
call qword [r15 + 0x88]
jmp 0x14005dd6d
call fcn.140020e90
cmp dword [rax + 8], 2
jl 0x14005dd6d
call fcn.140020e90
mov edx, 2
mov rcx, rax
call fcn.1400211b0
mov rbx, rax
call fcn.140020e90
mov rdx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x14005dd49
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
mov rcx, rax
call fcn.140016b40
lea rdx, str.Failed_call_to_GetDeviceSet_for_GetGpuInfo
mov rcx, rax
call fcn.140016880
mov rcx, rax
call fcn.140017a70
nop
lea rcx, [rsp + 0x840]
call fcn.140017b00
xor al, al
mov rcx, qword [rsp + 0x8f8]
xor rcx, rsp
call fcn.140220ab0
lea r11, [rsp + 0x910]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov ecx, 0x80004005
call fcn.140002e3c
nop
call fcn.14022a250
nop
lea rcx, [0x14032b0dc]
call fcn.140220de4
xor esi, esi
cmp dword [0x14032b0dc], 0xffffffff
jne 0x14005cc88
xorps xmm0, xmm0
movups xmmword [0x14031c620], xmm0
mov qword [0x14031c630], rsi
mov qword [reloc.OLEAUT32.dll_VariantInit], 7
mov word [0x14031c620], si
lea rcx, [0x14026f550]
call fcn.140220cf8
lea rcx, [0x14032b0dc]
call fcn.140220d78
jmp 0x14005cc88
call fcn.14022a250
nop
call fcn.14022a250
nop
call fcn.14022a250
nop
call fcn.14022a250
nop
call fcn.14022a250
nop
lea rcx, [0x14032b0dc]
call fcn.140220de4
xor esi, esi
cmp dword [0x14032b0dc], 0xffffffff
jne 0x14005d50e
xorps xmm0, xmm0
movups xmmword [0x14031c620], xmm0
mov qword [0x14031c630], rsi
mov qword [reloc.OLEAUT32.dll_VariantInit], 7
mov word [0x14031c620], si
lea rcx, [0x14026f550]
call fcn.140220cf8
lea rcx, [0x14032b0dc]
call fcn.140220d78
jmp 0x14005d50e
call fcn.14022a250
nop
call fcn.14022a250
nop
call fcn.14022a250
nop
call fcn.14022a250
nop
mov ecx, 0x80004005
call fcn.140002e3c
nop
mov ecx, 0x80004005
call fcn.140002e3c
int3