Function at 0x14005c6c0
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 [0x1402d4850]
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 0x14005c75c
lea rcx, [rsp + 0x840]
call fcn.140016100
cmp byte [r15 + 0x28], 0
je 0x14005e16d
mov qword [rsp + 0x48], rsi
lea r8, [rsp + 0x48]
lea rdx, [0x1402bc520]
mov rcx, r15
call fcn.140060f40
test al, al
je 0x14005e117
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 [0x1402d4800]
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 0x14005e109
test r12b, r12b
jne 0x14005e109
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.14005fae0
test al, al
jne 0x14005c818
mov r12b, 1
jmp 0x14005c7c0
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 0x14005e1ae
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.1400606f0
test al, al
je 0x14005c8a6
mov rdx, qword [rsp + 0x30]
cmp dword [rdx - 0x10], 0
jne 0x14005c8f2
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, str.DeviceDesc
xor r8d, r8d
mov rdx, rbx
call fcn.14005fcb0
test al, al
je 0x14005c8d1
mov rdx, qword [rsp + 0x30]
cmp dword [rdx - 0x10], 0
jne 0x14005c8f2
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, str.DeviceDesc
xor r8d, r8d
mov rdx, rdi
call fcn.14005fcb0
mov rdx, qword [rsp + 0x30]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0xa8]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14005c95d
cmp dword [rbx + 0x10], 0
jl 0x14005c94c
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14005c94c
call fcn.140002d2c
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14005c939
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 0x14005c95d
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0xa8]
call fcn.140002b6c
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [0x1402d24d0]
xor r8d, r8d
mov rdx, rdi
call fcn.14005fcb0
test al, al
je 0x14005c988
mov rdx, qword [rsp + 0x30]
cmp dword [rdx - 0x10], 0
jne 0x14005c9a9
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, str.DriverVersion
xor r8d, r8d
mov rdx, rdi
call fcn.14005fcb0
mov rdx, qword [rsp + 0x30]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0xf8]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14005ca14
cmp dword [rbx + 0x10], 0
jl 0x14005ca03
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14005ca03
call fcn.140002d2c
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14005c9f0
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 0x14005ca14
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.14005fcb0
test al, al
je 0x14005ca43
mov rdx, qword [rsp + 0x30]
cmp dword [rdx - 0x10], 0
jne 0x14005ca64
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, str.HardwareInformation.ChipType
xor r8d, r8d
mov rdx, rdi
call fcn.14005fcb0
mov rdx, qword [rsp + 0x30]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0xb8]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14005cacf
cmp dword [rbx + 0x10], 0
jl 0x14005cabe
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14005cabe
call fcn.140002d2c
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14005caab
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 0x14005cacf
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.14005fcb0
test al, al
jne 0x14005cb0f
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, str.HardwareInformation.DacType
xor r8d, r8d
mov rdx, rdi
call fcn.14005fcb0
mov rdx, qword [rsp + 0x30]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0xd8]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14005cb7f
cmp dword [rbx + 0x10], 0
jl 0x14005cb6e
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14005cb6e
call fcn.140002d2c
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14005cb5b
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 0x14005cb7f
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.14005fcb0
mov rbx, qword [rsp + 0x30]
lea rcx, [rbx - 0x18]
mov rdi, qword [rsp + 0xc8]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14005cc0e
cmp dword [rdi + 0x10], 0
jl 0x14005cbfa
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14005cbfa
call fcn.140002d2c
mov rbx, rax
mov ecx, 0xffffffff
lock xadd dword [rdi + 0x10], ecx
sub ecx, 1
jg 0x14005cbe7
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 0x14005cc0e
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
lea rcx, [rsp + 0xc8]
call fcn.140002b6c
call fcn.140020e90
cmp dword [rax + 8], 3
jl 0x14005d2ef
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 0x14005cd39
cmp edi, 0xa
jge 0x14005cd39
mov rax, r8
sub rax, rdx
lea rcx, [rsp + 0x720]
cmp rax, 2
jb 0x14005cd05
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 0x14005cca3
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 0x14005cca3
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.1402320cc
mov edx, VariantTimeToDosDateTime
lea rcx, [rsp + 0x8e0]
call fcn.14023221c
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 0x14005cde0
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsi + 0x14], eax
xor edx, edx
lea rcx, [rsp + 0x4f0]
call fcn.140012dc0
jmp 0x14005ce02
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 0x14005ce63
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x740]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005ce5e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005e1b9
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.1402237f8
mov rsi, rax
mov edx, 0x2040
lea rcx, [rsp + 0x220]
call fcn.1402237f8
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.140223820
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.14022380c
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.140223820
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.1402237f8
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 0x14005e1bf
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 0x14005d0e7
lea rdx, [rdx*2 + 2]
mov rcx, qword [0x14031c620]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005d0e2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005e21a
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 0x14005d14d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x740]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005d148
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005e220
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 0x14005d1b1
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x780]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005d1ac
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005e226
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 0x14005d215
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x720]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005d210
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005e22c
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 0x14005d279
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x7a0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005d274
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005e232
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.14005fcb0
test al, al
je 0x14005d360
mov rdx, qword [rsp + 0x30]
lea rcx, [rsp + 0x868]
call fcn.1400092fc
nop
lea rcx, [rsp + 0x868]
call fcn.140063850
mov qword [rsp + 0x158], rax
mov r8, qword [rsp + 0x880]
cmp r8, 7
jbe 0x14005d360
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.1400606f0
test al, al
je 0x14005d398
mov rbx, qword [rsp + 0x30]
cmp dword [rbx - 0x10], 5
jge 0x14005d495
call fcn.140020e90
cmp dword [rax + 8], 3
jl 0x14005d3ed
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 0x14005d3ca
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.14005fcb0
test al, al
je 0x14005d41d
mov rbx, qword [rsp + 0x30]
cmp dword [rbx - 0x10], 0
jne 0x14005d495
call fcn.140020e90
cmp dword [rax + 8], 3
jl 0x14005d472
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 0x14005d44f
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.14005fcb0
mov rbx, qword [rsp + 0x30]
call fcn.140020e90
cmp dword [rax + 8], 3
jl 0x14005db70
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 0x14005d5c6
cmp edi, 0xa
jge 0x14005d5c6
mov rax, r8
sub rax, rdx
lea rcx, [rsp + 0x700]
cmp rax, 2
jb 0x14005d592
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 0x14005d530
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 0x14005d530
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.1402320cc
mov edx, VariantTimeToDosDateTime
lea rcx, [rsp + 0x8c8]
call fcn.14023221c
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 0x14005d66d
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsi + 0x14], eax
xor edx, edx
lea rcx, [rsp + 0x5f0]
call fcn.140012dc0
jmp 0x14005d68f
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 0x14005d6cb
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.1402237f8
mov rsi, rax
mov edx, 0x2040
lea rcx, [rsp + 0x280]
call fcn.1402237f8
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.140223820
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.14022380c
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.140223820
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.1402237f8
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 0x14005e238
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 0x14005d96d
lea rdx, [rdx*2 + 2]
mov rcx, qword [0x14031c620]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005d968
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005e293
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 0x14005d9ef
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x6e0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005d9ea
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005e299
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 0x14005da53
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x7c0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005da4e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005e29f
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 0x14005dab7
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x700]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005dab2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005e2a5
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 0x14005daf6
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 0x14005e2ab
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.140063a20
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 0x14005dc24
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 0x14005e2b6
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.140063a20
nop
cmp dword [rsp + 0x208], 0x8086
jne 0x14005ddee
call fcn.140020e90
cmp dword [rax + 8], 3
jl 0x14005dcc8
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 0x14005dca5
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.14005fcb0
test al, al
je 0x14005ddee
call fcn.140020e90
cmp dword [rax + 8], 3
jl 0x14005dd55
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 0x14005dd20
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 0x14005dd5a
mov rbx, qword [rsp + 0x30]
mov r8, rbx
lea rdx, [rsp + 0x1f8]
mov rcx, r15
call fcn.140061770
mov byte [rsp + 0x1d0], al
call fcn.140020e90
cmp dword [rax + 8], 3
jl 0x14005ddee
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 0x14005dda6
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
mov rcx, rax
call fcn.140016b40
mov rdi, rax
lea rcx, [rsp + 0x1c8]
call fcn.14004c530
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 0x14005de12
lea rdx, [rsp + 0xa0]
mov rcx, rax
call fcn.140028530
add qword [r13 + 8], 0x138
jmp 0x14005de26
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 0x14005de4b
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 0x14005de6d
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 0x14005dec8
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 0x14005df1b
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 0x14005df4f
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 0x14005df8a
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 0x14005dfc5
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 0x14005e000
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 0x14005e034
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 0x14005e068
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 0x14005e09c
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 0x14005e0d0
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 0x14005e0e9
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
mov rcx, qword [rsp + 0x1e0]
test rcx, rcx
mov edi, dword [rsp + 0x38]
je 0x14005c7c0
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x14005c7c0
mov rcx, qword [rsp + 0x48]
call qword [r15 + 0x88]
jmp 0x14005e16d
call fcn.140020e90
cmp dword [rax + 8], 2
jl 0x14005e16d
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 0x14005e149
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.140220eb0
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.14022a650
nop
lea rcx, [0x14032b0dc]
call fcn.1402211e4
xor esi, esi
cmp dword [0x14032b0dc], 0xffffffff
jne 0x14005d088
xorps xmm0, xmm0
movups xmmword [0x14031c620], xmm0
mov qword [0x14031c630], rsi
mov qword [reloc.OLEAUT32.dll_VariantInit], 7
mov word [0x14031c620], si
lea rcx, [0x14026f950]
call fcn.1402210f8
lea rcx, [0x14032b0dc]
call fcn.140221178
jmp 0x14005d088
call fcn.14022a650
nop
call fcn.14022a650
nop
call fcn.14022a650
nop
call fcn.14022a650
nop
call fcn.14022a650
nop
lea rcx, [0x14032b0dc]
call fcn.1402211e4
xor esi, esi
cmp dword [0x14032b0dc], 0xffffffff
jne 0x14005d90e
xorps xmm0, xmm0
movups xmmword [0x14031c620], xmm0
mov qword [0x14031c630], rsi
mov qword [reloc.OLEAUT32.dll_VariantInit], 7
mov word [0x14031c620], si
lea rcx, [0x14026f950]
call fcn.1402210f8
lea rcx, [0x14032b0dc]
call fcn.140221178
jmp 0x14005d90e
call fcn.14022a650
nop
call fcn.14022a650
nop
call fcn.14022a650
nop
call fcn.14022a650
nop
mov ecx, 0x80004005
call fcn.140002e3c
nop
mov ecx, 0x80004005
call fcn.140002e3c
int3