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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5f09c7
mov eax, dword fs:[0]
push eax
sub esp, 0xe94
mov eax, dword [0x677010]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x664], eax
mov dword [ebp - 0x5c0], 0
lea ecx, [ebp - 0x5a0]
call fcn.00407a4a
mov dword [ebp - 4], 0
mov byte [ebp - 0x5a4], 0
push 0x642c08
lea ecx, [ebp - 0x5a0]
call fcn.00414ef0
mov dword [ebp - 4], 1
call fcn.0041db40
cmp dword [eax + 4], 4
jl 0x45f2ed
push ecx
lea ecx, [ebp - 0x5a4]
call fcn.00412cf0
cmp byte [esi + 0x20], 0
jne 0x45f30c
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5a4]
call fcn.00414900
xor al, al
jmp 0x46131d
cmp dword [esi + 0x1c], 0
je 0x45f2f3
mov byte [ebp - 0x5c5], 0
mov dword [ebp - 0x5ec], 0
mov dword [ebp - 0x5d4], 0
mov byte [ebp - 4], 2
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax]
lea edx, [ebp - 0x5ec]
push edx
push eax
call dword [ecx + 0x10]
test eax, eax
jns 0x45f34e
mov byte [ebp - 4], 1
jmp 0x4612d1
mov eax, dword [ebp - 0x5ec]
mov ecx, dword [eax]
lea edx, [ebp - 0x5d4]
push edx
push str.DxDiag_DisplayDevices
push eax
call dword [ecx + 0x14]
test eax, eax
jns 0x45f373
mov byte [ebp - 4], 1
jmp 0x4612d1
mov dword [ebp - 0x624], 0
mov eax, dword [ebp - 0x5d4]
mov ecx, dword [eax]
lea edx, [ebp - 0x624]
push edx
push eax
call dword [ecx + 0xc]
test eax, eax
jns 0x45f39d
mov byte [ebp - 4], 1
jmp 0x4612d1
xor edi, edi
mov dword [ebp - 0x5f4], edi
cmp edi, dword [ebp - 0x624]
jae 0x4612ca
lea ecx, [ebp - 0x7b0]
call fcn.00424220
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x5d4]
mov ecx, dword [eax]
push 0x100
lea edx, [ebp - 0x33c]
push edx
push edi
push eax
call dword [ecx + 0x10]
test eax, eax
jns 0x45f3ef
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x7b0]
call fcn.00426e00
inc edi
jmp 0x45f39f
call fcn.0041db40
cmp dword [eax + 4], 3
jl 0x45f9cd
call fcn.0041db40
mov edi, eax
mov dword [ebp - 0x5cc], edi
sub esp, 8
lea ecx, [ebp - 0x920]
call fcn.00415be0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x570]
call fcn.00407a4a
mov byte [ebp - 4], 5
push str.TRACE
lea ecx, [ebp - 0x570]
call fcn.00414ef0
lea ecx, [ebp - 0x3f0]
call fcn.00407a4a
mov byte [ebp - 4], 6
xor esi, esi
mov dword [ebp - 0x628], esi
cmp esi, dword [edi + 0xc]
jge 0x45f4de
cmp esi, 0xa
jge 0x45f4de
mov ecx, dword [ebp - 0x3e0]
mov edx, dword [ebp - 0x3dc]
mov eax, edx
sub eax, ecx
cmp eax, 2
jb 0x45f4b7
lea edi, [ecx + 2]
mov dword [ebp - 0x3e0], edi
lea esi, [ebp - 0x3f0]
cmp edx, 8
cmovae esi, dword [ebp - 0x3f0]
push 4
push 0x63e4c4
lea eax, [esi + ecx*2]
push eax
call fcn.005bfc60
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
mov esi, dword [ebp - 0x628]
mov edi, dword [ebp - 0x5cc]
inc esi
jmp 0x45f44d
mov byte [ebp - 0x650], 0
push 2
push 0x63e4c4
push dword [ebp - 0x650]
push 2
lea ecx, [ebp - 0x3f0]
call fcn.0041ea00
inc esi
jmp 0x45f44d
lea ecx, [ebp - 0x480]
call fcn.00407a4a
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x3a8]
call fcn.00407a4a
mov byte [ebp - 4], 8
call fcn.005c8926
push 0xb
lea eax, [ebp - 0x44]
push eax
call fcn.005c8a22
add esp, 8
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x480]
call fcn.00414ef0
sub esp, 8
lea ecx, [ebp - 0xbe0]
call fcn.00415be0
mov byte [ebp - 4], 9
cmp dword [edi + 0x10], 0
jne 0x45f54e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x10], eax
push 0
lea ecx, [ebp - 0xbd0]
call fcn.004101b0
jmp 0x45f57e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0x10]
movd xmm0, eax
cvtdq2pd xmm1, xmm0
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x644390]
divsd xmm1, qword [0x644330]
lea ecx, [ebp - 0xbd0]
call fcn.0041e250
lea eax, [ebp - 0x498]
push eax
lea ecx, [ebp - 0xbc8]
call fcn.00416830
or dword [ebp - 0x5c0], 1
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x394]
cmp eax, 8
jb 0x45f5f4
inc eax
mov ecx, dword [ebp - 0x3a8]
cmp eax, 0x7fffffff
ja 0x45f704
add eax, eax
cmp eax, 0x1000
jb 0x45f5eb
test cl, 0x1f
jne 0x45f704
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x45f704
sub ecx, eax
cmp ecx, 4
jb 0x45f704
cmp ecx, 0x23
ja 0x45f704
mov ecx, eax
push ecx
call fcn.00476ee1
add esp, 4
mov dword [ebp - 0x398], 0
mov dword [ebp - 0x394], 7
xor eax, eax
mov word [ebp - 0x3a8], ax
movups xmm0, xmmword [ebp - 0x498]
movups xmmword [ebp - 0x3a8], xmm0
movq xmm0, qword [ebp - 0x488]
movq qword [ebp - 0x398], xmm0
mov dword [ebp - 0x488], eax
mov dword [ebp - 0x484], 7
mov word [ebp - 0x498], ax
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x498]
call fcn.004075ab
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xbe0]
call fcn.00415840
lea eax, [ebp - 0x3f0]
cmp dword [ebp - 0x3dc], 8
cmovae eax, dword [ebp - 0x3f0]
mov dword [ebp - 0x5cc], eax
push 0x2040
lea eax, [ebp - 0x6d4]
push eax
call fcn.005be8d1
mov ecx, dword [ebp - 0x910]
mov ecx, dword [ecx + 4]
lea edx, [ebp - 0x910]
add ecx, edx
push dword [eax + 4]
push ecx
mov eax, dword [eax]
call eax
add esp, 0x10
mov eax, dword [ebp - 0x470]
mov byte [ebp - 4], 0xb
lea edx, [ebp - 0x480]
cmp dword [ebp - 0x46c], 8
cmovae edx, dword [ebp - 0x480]
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0x910]
call fcn.004137f0
mov esi, eax
push 0x10
lea eax, [ebp - 0x6cc]
push eax
call fcn.005be8d1
add esp, 0xc
mov edi, eax
mov edx, 0x63e114
mov ecx, esi
call fcn.00413320
mov esi, eax
test esi, esi
jne 0x45f709
xor ecx, ecx
jmp 0x45f710
call fcn.005c3f14
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
push dword [edi + 4]
push ecx
mov eax, dword [edi]
call eax
push 0
push 6
lea eax, [ebp - 0x7d0]
push eax
call fcn.005be8ff
mov edx, eax
mov ecx, esi
call fcn.0041e9d0
mov esi, eax
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov eax, 0x30
mov word [ecx + esi + 0x40], ax
push 0
push 3
lea eax, [ebp - 0x7e0]
push eax
call fcn.005be8e5
add esp, 0x20
mov edx, eax
mov ecx, esi
call fcn.0041e9d0
mov ecx, dword [ebp - 0x398]
mov byte [ebp - 4], 0xc
lea edx, [ebp - 0x3a8]
cmp dword [ebp - 0x394], 8
cmovae edx, dword [ebp - 0x3a8]
mov byte [ebp - 4], 8
push ecx
mov ecx, eax
call fcn.004137f0
mov edi, eax
push 0
push 5
lea eax, [ebp - 0x7f0]
push eax
call fcn.005be8ff
mov esi, eax
mov edx, 0x63e114
mov ecx, edi
call fcn.00413320
mov edx, esi
mov ecx, eax
call fcn.0041e9d0
mov esi, eax
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov eax, 0x20
mov word [ecx + esi + 0x40], ax
push 0x40
lea eax, [ebp - 0x6c4]
push eax
call fcn.005be8d1
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
push dword [eax + 4]
push ecx
mov eax, dword [eax]
call eax
add esp, 0x20
mov eax, dword [ebp - 0x560]
mov byte [ebp - 4], 0xd
lea edx, [ebp - 0x570]
cmp dword [ebp - 0x55c], 8
cmovae edx, dword [ebp - 0x570]
mov byte [ebp - 4], 8
push eax
mov ecx, esi
call fcn.004137f0
add esp, 4
mov edx, 0x63e504
mov ecx, eax
call fcn.00413320
mov edx, dword [ebp - 0x5cc]
mov ecx, eax
call fcn.00413320
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x6835d0]
cmp eax, dword [ecx + 4]
jle 0x45f874
push 0x6835d0
call fcn.005bcd79
add esp, 4
cmp dword [0x6835d0], 0xffffffff
jne 0x45f874
mov ecx, 0x6835d4
call fcn.00407a4a
push 0x5ff870
call fcn.005bc9d9
push 0x6835d0
call fcn.005bcd3a
add esp, 8
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x908]
call fcn.00416830
or dword [ebp - 0x5c0], 2
mov byte [ebp - 4], 0xe
mov eax, dword [0x6835e8]
cmp eax, 8
jb 0x45f8e9
inc eax
mov ecx, dword [0x6835d4]
cmp eax, 0x7fffffff
ja 0x45f704
add eax, eax
cmp eax, 0x1000
jb 0x45f8e0
test cl, 0x1f
jne 0x45f704
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x45f704
sub ecx, eax
cmp ecx, 4
jb 0x45f704
cmp ecx, 0x23
ja 0x45f704
mov ecx, eax
push ecx
call fcn.00476ee1
add esp, 4
mov dword [0x6835e4], 0
mov dword [0x6835e8], 7
xor eax, eax
mov word [0x6835d4], ax
movups xmm0, xmmword [ebp - 0x420]
movups xmmword [0x6835d4], xmm0
movq xmm0, qword [ebp - 0x410]
movq qword [0x6835e4], xmm0
mov dword [ebp - 0x410], eax
mov dword [ebp - 0x40c], 7
mov word [ebp - 0x420], ax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x420]
call fcn.004075ab
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x3a8]
call fcn.004075ab
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x480]
call fcn.004075ab
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x3f0]
call fcn.004075ab
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x570]
call fcn.004075ab
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x920]
call fcn.00415840
call fcn.0041db40
mov edx, 0x6835d4
mov ecx, eax
call fcn.00413a60
mov edx, str.Container:
mov ecx, eax
call fcn.00413320
lea edx, [ebp - 0x33c]
mov ecx, eax
call fcn.00413320
push eax
call fcn.00414850
add esp, 4
mov edi, dword [ebp - 0x5f4]
mov dword [ebp - 0x5c4], 0
mov eax, dword [ebp - 0x5d4]
mov ecx, dword [eax]
lea edx, [ebp - 0x5c4]
push edx
lea edx, [ebp - 0x33c]
push edx
push eax
call dword [ecx + 0x14]
test eax, eax
jns 0x45fa0a
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x7b0]
call fcn.00426e00
inc edi
jmp 0x45f39f
mov dword [ebp - 0x62c], 0
mov eax, dword [ebp - 0x5c4]
mov ecx, dword [eax]
lea edx, [ebp - 0x62c]
push edx
push eax
call dword [ecx + 0x18]
xor esi, esi
mov dword [ebp - 0x620], esi
cmp esi, dword [ebp - 0x62c]
jae 0x46004d
mov eax, dword [ebp - 0x5c4]
mov ecx, dword [eax]
push 0x64
lea edx, [ebp - 0x13c]
push edx
push esi
push eax
call dword [ecx + 0x1c]
call fcn.0041db40
cmp dword [eax + 4], 3
jl 0x460047
call fcn.0041db40
mov edi, eax
mov dword [ebp - 0x5cc], edi
sub esp, 8
lea ecx, [ebp - 0xb30]
call fcn.00415be0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x528]
call fcn.00407a4a
mov byte [ebp - 4], 0x10
push str.TRACE
lea ecx, [ebp - 0x528]
call fcn.00414ef0
lea ecx, [ebp - 0x3d8]
call fcn.00407a4a
mov byte [ebp - 4], 0x11
xor esi, esi
mov dword [ebp - 0x630], esi
cmp esi, dword [edi + 0xc]
jge 0x45fb40
cmp esi, 0xa
jge 0x45fb40
mov ecx, dword [ebp - 0x3c8]
mov edx, dword [ebp - 0x3c4]
mov eax, edx
sub eax, ecx
cmp eax, 2
jb 0x45fb19
lea edi, [ecx + 2]
mov dword [ebp - 0x3c8], edi
lea esi, [ebp - 0x3d8]
cmp edx, 8
cmovae esi, dword [ebp - 0x3d8]
push 4
push 0x63e4c4
lea eax, [esi + ecx*2]
push eax
call fcn.005bfc60
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
mov esi, dword [ebp - 0x630]
mov edi, dword [ebp - 0x5cc]
inc esi
jmp 0x45faaf
mov byte [ebp - 0x644], 0
push 2
push 0x63e4c4
push dword [ebp - 0x644]
push 2
lea ecx, [ebp - 0x3d8]
call fcn.0041ea00
inc esi
jmp 0x45faaf
lea ecx, [ebp - 0x540]
call fcn.00407a4a
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x390]
call fcn.00407a4a
mov byte [ebp - 4], 0x13
call fcn.005c8926
push 0xb
lea eax, [ebp - 0x5c]
push eax
call fcn.005c8a22
add esp, 8
lea eax, [ebp - 0x5c]
push eax
lea ecx, [ebp - 0x540]
call fcn.00414ef0
sub esp, 8
lea ecx, [ebp - 0xc90]
call fcn.00415be0
mov byte [ebp - 4], 0x14
cmp dword [edi + 0x10], 0
jne 0x45fbb0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x10], eax
push 0
lea ecx, [ebp - 0xc80]
call fcn.004101b0
jmp 0x45fbe0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0x10]
movd xmm0, eax
cvtdq2pd xmm1, xmm0
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x644390]
divsd xmm1, qword [0x644330]
lea ecx, [ebp - 0xc80]
call fcn.0041e250
lea eax, [ebp - 0x4b0]
push eax
lea ecx, [ebp - 0xc78]
call fcn.00416830
or dword [ebp - 0x5c0], 4
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x37c]
cmp eax, 8
jb 0x45fc56
inc eax
mov ecx, dword [ebp - 0x390]
cmp eax, 0x7fffffff
ja 0x45f704
add eax, eax
cmp eax, 0x1000
jb 0x45fc4d
test cl, 0x1f
jne 0x45f704
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x45f704
sub ecx, eax
cmp ecx, 4
jb 0x45f704
cmp ecx, 0x23
ja 0x45f704
mov ecx, eax
push ecx
call fcn.00476ee1
add esp, 4
mov dword [ebp - 0x380], 0
mov dword [ebp - 0x37c], 7
xor eax, eax
mov word [ebp - 0x390], ax
movups xmm0, xmmword [ebp - 0x4b0]
movups xmmword [ebp - 0x390], xmm0
movq xmm0, qword [ebp - 0x4a0]
movq qword [ebp - 0x380], xmm0
mov dword [ebp - 0x4a0], eax
mov dword [ebp - 0x49c], 7
mov word [ebp - 0x4b0], ax
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x4b0]
call fcn.004075ab
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0xc90]
call fcn.00415840
lea eax, [ebp - 0x3d8]
cmp dword [ebp - 0x3c4], 8
cmovae eax, dword [ebp - 0x3d8]
mov dword [ebp - 0x5cc], eax
push 0x2040
lea eax, [ebp - 0x68c]
push eax
call fcn.005be8d1
mov ecx, dword [ebp - 0xb20]
mov ecx, dword [ecx + 4]
lea edx, [ebp - 0xb20]
add ecx, edx
push dword [eax + 4]
push ecx
mov eax, dword [eax]
call eax
add esp, 0x10
mov eax, dword [ebp - 0x530]
mov byte [ebp - 4], 0x16
lea edx, [ebp - 0x540]
cmp dword [ebp - 0x52c], 8
cmovae edx, dword [ebp - 0x540]
mov byte [ebp - 4], 0x13
push eax
lea ecx, [ebp - 0xb20]
call fcn.004137f0
mov esi, eax
push 0x10
lea eax, [ebp - 0x6bc]
push eax
call fcn.005be8d1
add esp, 0xc
mov edi, eax
mov edx, 0x63e114
mov ecx, esi
call fcn.00413320
mov esi, eax
test esi, esi
jne 0x45fd66
xor ecx, ecx
jmp 0x45fd6d
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
push dword [edi + 4]
push ecx
mov eax, dword [edi]
call eax
push 0
push 6
lea eax, [ebp - 0x800]
push eax
call fcn.005be8ff
mov edx, eax
mov ecx, esi
call fcn.0041e9d0
mov esi, eax
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov eax, 0x30
mov word [ecx + esi + 0x40], ax
push 0
push 3
lea eax, [ebp - 0x810]
push eax
call fcn.005be8e5
add esp, 0x20
mov edx, eax
mov ecx, esi
call fcn.0041e9d0
mov ecx, dword [ebp - 0x380]
mov byte [ebp - 4], 0x17
lea edx, [ebp - 0x390]
cmp dword [ebp - 0x37c], 8
cmovae edx, dword [ebp - 0x390]
mov byte [ebp - 4], 0x13
push ecx
mov ecx, eax
call fcn.004137f0
mov edi, eax
push 0
push 5
lea eax, [ebp - 0x820]
push eax
call fcn.005be8ff
mov esi, eax
mov edx, 0x63e114
mov ecx, edi
call fcn.00413320
mov edx, esi
mov ecx, eax
call fcn.0041e9d0
mov esi, eax
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov eax, 0x20
mov word [ecx + esi + 0x40], ax
push 0x40
lea eax, [ebp - 0x6b4]
push eax
call fcn.005be8d1
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
push dword [eax + 4]
push ecx
mov eax, dword [eax]
call eax
add esp, 0x20
mov eax, dword [ebp - 0x518]
mov byte [ebp - 4], 0x18
lea edx, [ebp - 0x528]
cmp dword [ebp - 0x514], 8
cmovae edx, dword [ebp - 0x528]
mov byte [ebp - 4], 0x13
push eax
mov ecx, esi
call fcn.004137f0
add esp, 4
mov edx, 0x63e504
mov ecx, eax
call fcn.00413320
mov edx, dword [ebp - 0x5cc]
mov ecx, eax
call fcn.00413320
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x6835d0]
cmp eax, dword [ecx + 4]
jle 0x45fed1
push 0x6835d0
call fcn.005bcd79
add esp, 4
cmp dword [0x6835d0], 0xffffffff
jne 0x45fed1
mov ecx, 0x6835d4
call fcn.00407a4a
push 0x5ff870
call fcn.005bc9d9
push 0x6835d0
call fcn.005bcd3a
add esp, 8
lea eax, [ebp - 0x558]
push eax
lea ecx, [ebp - 0xb18]
call fcn.00416830
or dword [ebp - 0x5c0], 8
mov byte [ebp - 4], 0x19
mov eax, dword [0x6835e8]
cmp eax, 8
jb 0x45ff46
inc eax
mov ecx, dword [0x6835d4]
cmp eax, 0x7fffffff
ja 0x45f704
add eax, eax
cmp eax, 0x1000
jb 0x45ff3d
test cl, 0x1f
jne 0x45f704
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x45f704
sub ecx, eax
cmp ecx, 4
jb 0x45f704
cmp ecx, 0x23
ja 0x45f704
mov ecx, eax
push ecx
call fcn.00476ee1
add esp, 4
mov dword [0x6835e4], 0
mov dword [0x6835e8], 7
xor eax, eax
mov word [0x6835d4], ax
movups xmm0, xmmword [ebp - 0x558]
movups xmmword [0x6835d4], xmm0
movq xmm0, qword [ebp - 0x548]
movq qword [0x6835e4], xmm0
mov dword [ebp - 0x548], eax
mov dword [ebp - 0x544], 7
mov word [ebp - 0x558], ax
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x558]
call fcn.004075ab
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x390]
call fcn.004075ab
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x540]
call fcn.004075ab
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x3d8]
call fcn.004075ab
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x528]
call fcn.004075ab
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xb30]
call fcn.00415840
call fcn.0041db40
mov ecx, dword [0x6835e4]
mov byte [ebp - 4], 0x1a
mov edx, 0x6835d4
cmp dword [0x6835e8], 8
cmovae edx, dword [0x6835d4]
mov byte [ebp - 4], 3
push ecx
mov ecx, eax
call fcn.004137f0
mov edx, str.Name:
mov ecx, eax
call fcn.00413320
lea edx, [ebp - 0x13c]
mov ecx, eax
call fcn.00413320
push eax
call fcn.00414850
add esp, 8
mov esi, dword [ebp - 0x620]
inc esi
jmp 0x45fa29
lea eax, [ebp - 0x5e4]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [ebp - 0x5c4]
mov ecx, dword [eax]
lea edx, [ebp - 0x5e4]
push edx
push str.szDescription
push eax
call dword [ecx + 0x20]
test eax, eax
js 0x4600be
lea eax, [ebp - 0x5e4]
push eax
lea ecx, [ebp - 0x634]
call fcn.004502c0
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0x634]
push eax
lea ecx, [ebp - 0x7ac]
call fcn.00410610
lea eax, [ebp - 0x5e4]
push eax
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
call esi
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x634]
call fcn.0040d260
jmp 0x4600c4
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x5c4]
mov ecx, dword [eax]
lea edx, [ebp - 0x5e4]
push edx
push str.szChipType
push eax
call dword [ecx + 0x20]
test eax, eax
js 0x460120
lea eax, [ebp - 0x5e4]
push eax
lea ecx, [ebp - 0x638]
call fcn.004502c0
mov byte [ebp - 4], 0x1c
lea eax, [ebp - 0x638]
push eax
lea ecx, [ebp - 0x7a4]
call fcn.00410610
lea eax, [ebp - 0x5e4]
push eax
call esi
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x638]
call fcn.0040d260
call fcn.0041db40
cmp dword [eax + 4], 3
jl 0x460703
call fcn.0041db40
mov edi, eax
mov dword [ebp - 0x5cc], edi
sub esp, 8
lea ecx, [ebp - 0x9d0]
call fcn.00415be0
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x588]
call fcn.00407a4a
mov byte [ebp - 4], 0x1e
push str.TRACE
lea ecx, [ebp - 0x588]
call fcn.00414ef0
lea ecx, [ebp - 0x3c0]
call fcn.00407a4a
mov byte [ebp - 4], 0x1f
xor esi, esi
mov dword [ebp - 0x63c], esi
cmp esi, dword [edi + 0xc]
jge 0x46020f
cmp esi, 0xa
jge 0x46020f
mov ecx, dword [ebp - 0x3b0]
mov edx, dword [ebp - 0x3ac]
mov eax, edx
sub eax, ecx
cmp eax, 2
jb 0x4601e8
lea edi, [ecx + 2]
mov dword [ebp - 0x3b0], edi
lea esi, [ebp - 0x3c0]
cmp edx, 8
cmovae esi, dword [ebp - 0x3c0]
push 4
push 0x63e4c4
lea eax, [esi + ecx*2]
push eax
call fcn.005bfc60
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
mov esi, dword [ebp - 0x63c]
mov edi, dword [ebp - 0x5cc]
inc esi
jmp 0x46017e
mov byte [ebp - 0x654], 0
push 2
push 0x63e4c4
push dword [ebp - 0x654]
push 2
lea ecx, [ebp - 0x3c0]
call fcn.0041ea00
inc esi
jmp 0x46017e
lea ecx, [ebp - 0x4e0]
call fcn.00407a4a
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x378]
call fcn.00407a4a
mov byte [ebp - 4], 0x21
call fcn.005c8926
push 0xb
lea eax, [ebp - 0x74]
push eax
call fcn.005c8a22
add esp, 8
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0x4e0]
call fcn.00414ef0
sub esp, 8
lea ecx, [ebp - 0xdf0]
call fcn.00415be0
mov byte [ebp - 4], 0x22
cmp dword [edi + 0x10], 0
jne 0x46027f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x10], eax
push 0
lea ecx, [ebp - 0xde0]
call fcn.004101b0
jmp 0x4602af
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0x10]
movd xmm0, eax
cvtdq2pd xmm1, xmm0
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x644390]
divsd xmm1, qword [0x644330]
lea ecx, [ebp - 0xde0]
call fcn.0041e250
lea eax, [ebp - 0x510]
push eax
lea ecx, [ebp - 0xdd8]
call fcn.00416830
or dword [ebp - 0x5c0], 0x10
mov byte [ebp - 4], 0x23
mov eax, dword [ebp - 0x364]
cmp eax, 8
jb 0x460325
inc eax
mov ecx, dword [ebp - 0x378]
cmp eax, 0x7fffffff
ja 0x45f704
add eax, eax
cmp eax, 0x1000
jb 0x46031c
test cl, 0x1f
jne 0x45f704
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x45f704
sub ecx, eax
cmp ecx, 4
jb 0x45f704
cmp ecx, 0x23
ja 0x45f704
mov ecx, eax
push ecx
call fcn.00476ee1
add esp, 4
mov dword [ebp - 0x368], 0
mov dword [ebp - 0x364], 7
xor eax, eax
mov word [ebp - 0x378], ax
movups xmm0, xmmword [ebp - 0x510]
movups xmmword [ebp - 0x378], xmm0
movq xmm0, qword [ebp - 0x500]
movq qword [ebp - 0x368], xmm0
mov dword [ebp - 0x500], eax
mov dword [ebp - 0x4fc], 7
mov word [ebp - 0x510], ax
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x510]
call fcn.004075ab
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0xdf0]
call fcn.00415840
lea eax, [ebp - 0x3c0]
cmp dword [ebp - 0x3ac], 8
cmovae eax, dword [ebp - 0x3c0]
mov dword [ebp - 0x5cc], eax
push 0x2040
lea eax, [ebp - 0x684]
push eax
call fcn.005be8d1
mov ecx, dword [ebp - 0x9c0]
mov ecx, dword [ecx + 4]
lea edx, [ebp - 0x9c0]
add ecx, edx
push dword [eax + 4]
push ecx
mov eax, dword [eax]
call eax
add esp, 0x10
mov eax, dword [ebp - 0x4d0]
mov byte [ebp - 4], 0x24
lea edx, [ebp - 0x4e0]
cmp dword [ebp - 0x4cc], 8
cmovae edx, dword [ebp - 0x4e0]
mov byte [ebp - 4], 0x21
push eax
lea ecx, [ebp - 0x9c0]
call fcn.004137f0
mov esi, eax
push 0x10
lea eax, [ebp - 0x6ac]
push eax
call fcn.005be8d1
add esp, 0xc
mov edi, eax
mov edx, 0x63e114
mov ecx, esi
call fcn.00413320
mov esi, eax
test esi, esi
jne 0x460435
xor ecx, ecx
jmp 0x46043c
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
push dword [edi + 4]
push ecx
mov eax, dword [edi]
call eax
push 0
push 6
lea eax, [ebp - 0x830]
push eax
call fcn.005be8ff
mov edx, eax
mov ecx, esi
call fcn.0041e9d0
mov esi, eax
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov eax, 0x30
mov word [ecx + esi + 0x40], ax
push 0
push 3
lea eax, [ebp - 0x840]
push eax
call fcn.005be8e5
add esp, 0x20
mov edx, eax
mov ecx, esi
call fcn.0041e9d0
mov ecx, dword [ebp - 0x368]
mov byte [ebp - 4], 0x25
lea edx, [ebp - 0x378]
cmp dword [ebp - 0x364], 8
cmovae edx, dword [ebp - 0x378]
mov byte [ebp - 4], 0x21
push ecx
mov ecx, eax
call fcn.004137f0
mov edi, eax
push 0
push 5
lea eax, [ebp - 0x870]
push eax
call fcn.005be8ff
mov esi, eax
mov edx, 0x63e114
mov ecx, edi
call fcn.00413320
mov edx, esi
mov ecx, eax
call fcn.0041e9d0
mov esi, eax
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov eax, 0x20
mov word [ecx + esi + 0x40], ax
push 0x40
lea eax, [ebp - 0x6a4]
push eax
call fcn.005be8d1
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
push dword [eax + 4]
push ecx
mov eax, dword [eax]
call eax
add esp, 0x20
mov eax, dword [ebp - 0x578]
mov byte [ebp - 4], 0x26
lea edx, [ebp - 0x588]
cmp dword [ebp - 0x574], 8
cmovae edx, dword [ebp - 0x588]
mov byte [ebp - 4], 0x21
push eax
mov ecx, esi
call fcn.004137f0
add esp, 4
mov edx, 0x63e504
mov ecx, eax
call fcn.00413320
mov edx, dword [ebp - 0x5cc]
mov ecx, eax
call fcn.00413320
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x6835d0]
cmp eax, dword [ecx + 4]
jle 0x4605a0
push 0x6835d0
call fcn.005bcd79
add esp, 4
cmp dword [0x6835d0], 0xffffffff
jne 0x4605a0
mov ecx, 0x6835d4
call fcn.00407a4a
push 0x5ff870
call fcn.005bc9d9
push 0x6835d0
call fcn.005bcd3a
add esp, 8
lea eax, [ebp - 0x4f8]
push eax
lea ecx, [ebp - 0x9b8]
call fcn.00416830
or dword [ebp - 0x5c0], 0x20
mov byte [ebp - 4], 0x27
mov eax, dword [0x6835e8]
cmp eax, 8
jb 0x460615
inc eax
mov ecx, dword [0x6835d4]
cmp eax, 0x7fffffff
ja 0x45f704
add eax, eax
cmp eax, 0x1000
jb 0x46060c
test cl, 0x1f
jne 0x45f704
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x45f704
sub ecx, eax
cmp ecx, 4
jb 0x45f704
cmp ecx, 0x23
ja 0x45f704
mov ecx, eax
push ecx
call fcn.00476ee1
add esp, 4
mov dword [0x6835e4], 0
mov dword [0x6835e8], 7
xor eax, eax
mov word [0x6835d4], ax
movups xmm0, xmmword [ebp - 0x4f8]
movups xmmword [0x6835d4], xmm0
movq xmm0, qword [ebp - 0x4e8]
movq qword [0x6835e4], xmm0
mov dword [ebp - 0x4e8], eax
mov dword [ebp - 0x4e4], 7
mov word [ebp - 0x4f8], ax
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x4f8]
call fcn.004075ab
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x378]
call fcn.004075ab
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x4e0]
call fcn.004075ab
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x3c0]
call fcn.004075ab
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x588]
call fcn.004075ab
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x9d0]
call fcn.00415840
call fcn.0041db40
mov ecx, dword [0x6835e4]
mov byte [ebp - 4], 0x28
mov edx, 0x6835d4
cmp dword [0x6835e8], 8
cmovae edx, dword [0x6835d4]
mov byte [ebp - 4], 3
push ecx
mov ecx, eax
call fcn.004137f0
mov edx, str.Getting_Device_ID:
mov ecx, eax
call fcn.00413320
push eax
call fcn.00414850
add esp, 8
mov eax, dword [ebp - 0x5c4]
mov ecx, dword [eax]
lea edx, [ebp - 0x5e4]
push edx
push str.szKeyDeviceID
push eax
call dword [ecx + 0x20]
test eax, eax
js 0x460d26
lea eax, [ebp - 0x5e4]
push eax
lea ecx, [ebp - 0x5f8]
call fcn.004502c0
mov byte [ebp - 4], 0x29
call fcn.0041db40
cmp dword [eax + 4], 3
jl 0x460cd5
call fcn.0041db40
mov edi, eax
mov dword [ebp - 0x5cc], edi
sub esp, 8
lea ecx, [ebp - 0xa80]
call fcn.00415be0
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x468]
call fcn.00407a4a
mov byte [ebp - 4], 0x2b
push str.TRACE
lea ecx, [ebp - 0x468]
call fcn.00414ef0
lea ecx, [ebp - 0x408]
call fcn.00407a4a
mov byte [ebp - 4], 0x2c
xor esi, esi
mov dword [ebp - 0x640], esi
cmp esi, dword [edi + 0xc]
jge 0x460828
cmp esi, 0xa
jge 0x460828
mov ecx, dword [ebp - 0x3f8]
mov edx, dword [ebp - 0x3f4]
mov eax, edx
sub eax, ecx
cmp eax, 2
jb 0x460801
lea edi, [ecx + 2]
mov dword [ebp - 0x3f8], edi
lea esi, [ebp - 0x408]
cmp edx, 8
cmovae esi, dword [ebp - 0x408]
push 4
push 0x63e4c4
lea eax, [esi + ecx*2]
push eax
call fcn.005bfc60
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
mov esi, dword [ebp - 0x640]
mov edi, dword [ebp - 0x5cc]
inc esi
jmp 0x460797
mov byte [ebp - 0x660], 0
push 2
push 0x63e4c4
push dword [ebp - 0x660]
push 2
lea ecx, [ebp - 0x408]
call fcn.0041ea00
inc esi
jmp 0x460797
lea ecx, [ebp - 0x450]
call fcn.00407a4a
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x360]
call fcn.00407a4a
mov byte [ebp - 4], 0x2e
call fcn.005c8926
push 0xb
lea eax, [ebp - 0x2c]
push eax
call fcn.005c8a22
add esp, 8
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x450]
call fcn.00414ef0
sub esp, 8
lea ecx, [ebp - 0xd40]
call fcn.00415be0
mov byte [ebp - 4], 0x2f
cmp dword [edi + 0x10], 0
jne 0x460898
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x10], eax
push 0
lea ecx, [ebp - 0xd30]
call fcn.004101b0
jmp 0x4608c8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0x10]
movd xmm0, eax
cvtdq2pd xmm1, xmm0
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x644390]
divsd xmm1, qword [0x644330]
lea ecx, [ebp - 0xd30]
call fcn.0041e250
lea eax, [ebp - 0x438]
push eax
lea ecx, [ebp - 0xd28]
call fcn.00416830
or dword [ebp - 0x5c0], 0x40
mov byte [ebp - 4], 0x30
mov eax, dword [ebp - 0x34c]
cmp eax, 8
jb 0x46093e
inc eax
mov ecx, dword [ebp - 0x360]
cmp eax, 0x7fffffff
ja 0x45f704
add eax, eax
cmp eax, 0x1000
jb 0x460935
test cl, 0x1f
jne 0x45f704
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x45f704
sub ecx, eax
cmp ecx, 4
jb 0x45f704
cmp ecx, 0x23
ja 0x45f704
mov ecx, eax
push ecx
call fcn.00476ee1
add esp, 4
mov dword [ebp - 0x350], 0
mov dword [ebp - 0x34c], 7
xor eax, eax
mov word [ebp - 0x360], ax
movups xmm0, xmmword [ebp - 0x438]
movups xmmword [ebp - 0x360], xmm0
movq xmm0, qword [ebp - 0x428]
movq qword [ebp - 0x350], xmm0
mov dword [ebp - 0x428], eax
mov dword [ebp - 0x424], 7
mov word [ebp - 0x438], ax
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0x438]
call fcn.004075ab
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0xd40]
call fcn.00415840
lea eax, [ebp - 0x408]
cmp dword [ebp - 0x3f4], 8
cmovae eax, dword [ebp - 0x408]
mov dword [ebp - 0x5cc], eax
push 0x2040
lea eax, [ebp - 0x69c]
push eax
call fcn.005be8d1
mov ecx, dword [ebp - 0xa70]
mov ecx, dword [ecx + 4]
lea edx, [ebp - 0xa70]
add ecx, edx
push dword [eax + 4]
push ecx
mov eax, dword [eax]
call eax
add esp, 0x10
mov eax, dword [ebp - 0x440]
mov byte [ebp - 4], 0x31
lea edx, [ebp - 0x450]
cmp dword [ebp - 0x43c], 8
cmovae edx, dword [ebp - 0x450]
mov byte [ebp - 4], 0x2e
push eax
lea ecx, [ebp - 0xa70]
call fcn.004137f0
mov esi, eax
push 0x10
lea eax, [ebp - 0x694]
push eax
call fcn.005be8d1
add esp, 0xc
mov edi, eax
mov edx, 0x63e114
mov ecx, esi
call fcn.00413320
mov esi, eax
test esi, esi
jne 0x460a4e
xor ecx, ecx
jmp 0x460a55
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
push dword [edi + 4]
push ecx
mov eax, dword [edi]
call eax
push 0
push 6
lea eax, [ebp - 0x860]
push eax
call fcn.005be8ff
mov edx, eax
mov ecx, esi
call fcn.0041e9d0
mov esi, eax
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov eax, 0x30
mov word [ecx + esi + 0x40], ax
push 0
push 3
lea eax, [ebp - 0x850]
push eax
call fcn.005be8e5
add esp, 0x20
mov edx, eax
mov ecx, esi
call fcn.0041e9d0
mov ecx, dword [ebp - 0x350]
mov byte [ebp - 4], 0x32
lea edx, [ebp - 0x360]
cmp dword [ebp - 0x34c], 8
cmovae edx, dword [ebp - 0x360]
mov byte [ebp - 4], 0x2e
push ecx
mov ecx, eax
call fcn.004137f0
mov edi, eax
push 0
push 5
lea eax, [ebp - 0x7c0]
push eax
call fcn.005be8ff
mov esi, eax
mov edx, 0x63e114
mov ecx, edi
call fcn.00413320
mov edx, esi
mov ecx, eax
call fcn.0041e9d0
mov esi, eax
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov eax, 0x20
mov word [ecx + esi + 0x40], ax
push 0x40
lea eax, [ebp - 0x67c]
push eax
call fcn.005be8d1
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
push dword [eax + 4]
push ecx
mov eax, dword [eax]
call eax
add esp, 0x20
mov eax, dword [ebp - 0x458]
mov byte [ebp - 4], 0x33
lea edx, [ebp - 0x468]
cmp dword [ebp - 0x454], 8
cmovae edx, dword [ebp - 0x468]
mov byte [ebp - 4], 0x2e
push eax
mov ecx, esi
call fcn.004137f0
add esp, 4
mov edx, 0x63e504
mov ecx, eax
call fcn.00413320
mov edx, dword [ebp - 0x5cc]
mov ecx, eax
call fcn.00413320
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x6835d0]
cmp eax, dword [ecx + 4]
jle 0x460bb9
push 0x6835d0
call fcn.005bcd79
add esp, 4
cmp dword [0x6835d0], 0xffffffff
jne 0x460bb9
mov ecx, 0x6835d4
call fcn.00407a4a
push 0x5ff870
call fcn.005bc9d9
push 0x6835d0
call fcn.005bcd3a
add esp, 8
lea eax, [ebp - 0x4c8]
push eax
lea ecx, [ebp - 0xa68]
call fcn.00416830
or dword [ebp - 0x5c0], 0x80
mov byte [ebp - 4], 0x34
mov eax, dword [0x6835e8]
cmp eax, 8
jb 0x460bf5
inc eax
push 2
push eax
push dword [0x6835d4]
call fcn.0040626d
add esp, 0xc
mov dword [0x6835e4], 0
mov dword [0x6835e8], 7
xor eax, eax
mov word [0x6835d4], ax
movups xmm0, xmmword [ebp - 0x4c8]
movups xmmword [0x6835d4], xmm0
movq xmm0, qword [ebp - 0x4b8]
movq qword [0x6835e4], xmm0
mov dword [ebp - 0x4b8], eax
mov dword [ebp - 0x4b4], 7
mov word [ebp - 0x4c8], ax
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x4c8]
call fcn.004075ab
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x360]
call fcn.004075ab
mov byte [ebp - 4], 0x2c
lea ecx, [ebp - 0x450]
call fcn.004075ab
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x408]
call fcn.004075ab
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x468]
call fcn.004075ab
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0xa80]
call fcn.00415840
call fcn.0041db40
mov edx, 0x6835d4
mov ecx, eax
call fcn.00413a60
mov edx, str.Got_Device_ID:
mov ecx, eax
call fcn.00413320
mov esi, eax
mov edx, dword [ebp - 0x5f8]
mov ecx, esi
call fcn.00413320
push esi
call fcn.00414850
add esp, 4
lea eax, [ebp - 0x5f8]
push eax
lea ecx, [ebp - 0x6f0]
call fcn.0045d280
mov byte [ebp - 4], 0x35
push eax
lea ecx, [ebp - 0x738]
call fcn.0045f1a0
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0x6f0]
call fcn.0045d3e0
lea eax, [ebp - 0x5e4]
push eax
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
call edi
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x5f8]
call fcn.0040d260
jmp 0x460d2c
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x5c4]
mov ecx, dword [eax]
lea edx, [ebp - 0x5e4]
push edx
push str.szDACType
push eax
call dword [ecx + 0x20]
test eax, eax
js 0x460dad
lea eax, [ebp - 0x5e4]
push eax
lea ecx, [ebp - 0x65c]
call fcn.004502c0
mov byte [ebp - 4], 0x36
lea eax, [ebp - 0x5e4]
push eax
lea ecx, [ebp - 0x5fc]
call fcn.004502c0
mov byte [ebp - 4], 0x37
lea eax, [ebp - 0x5fc]
push eax
lea ecx, [ebp - 0x794]
call fcn.00410610
mov byte [ebp - 4], 0x36
lea ecx, [ebp - 0x5fc]
call fcn.0040d260
lea eax, [ebp - 0x5e4]
push eax
call edi
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x65c]
call fcn.0040d260
mov eax, dword [ebp - 0x5c4]
mov ecx, dword [eax]
lea edx, [ebp - 0x5e4]
push edx
push str.szDriverVersion
push eax
call dword [ecx + 0x20]
test eax, eax
js 0x460e09
lea eax, [ebp - 0x5e4]
push eax
lea ecx, [ebp - 0x600]
call fcn.004502c0
mov byte [ebp - 4], 0x38
lea eax, [ebp - 0x600]
push eax
lea ecx, [ebp - 0x784]
call fcn.00410610
lea eax, [ebp - 0x5e4]
push eax
call edi
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x600]
call fcn.0040d260
mov eax, dword [ebp - 0x5c4]
mov ecx, dword [eax]
lea edx, [ebp - 0x5e4]
push edx
push str.szDriverDateEnglish
push eax
call dword [ecx + 0x20]
test eax, eax
js 0x461090
lea eax, [ebp - 0x5e4]
push eax
lea ecx, [ebp - 0x5e8]
call fcn.004502c0
mov byte [ebp - 4], 0x39
lea eax, [ebp - 0x5e4]
push eax
call edi
mov dword [ebp - 0x604], 0
xor esi, esi
mov dword [ebp - 0x658], esi
push fcn.0040d260
push fcn.004106d0
push 3
push 4
lea eax, [ebp - 0x348]
push eax
call fcn.005bcf61
mov byte [ebp - 4], 0x3a
lea eax, [ebp - 0x604]
push eax
push str..__
lea eax, [ebp - 0x5f0]
push eax
lea ecx, [ebp - 0x5e8]
call fcn.00418ab0
mov byte [ebp - 4], 0x3b
nop word [eax + eax]
mov ecx, 0x63abd4
mov eax, dword [ebp - 0x5f0]
nop dword [eax + eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x460ed6
test dx, dx
je 0x460ed2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x460ed6
add eax, 4
add ecx, 4
test dx, dx
jne 0x460eb0
xor eax, eax
jmp 0x460edb
sbb eax, eax
or eax, 1
test eax, eax
setne al
test al, al
je 0x460f47
cmp esi, 3
jge 0x460f47
lea eax, [ebp - 0x5f0]
push eax
lea ecx, [ebp - 0x348]
lea ecx, [ecx + esi*4]
call fcn.00410610
inc esi
mov dword [ebp - 0x658], esi
lea eax, [ebp - 0x604]
push eax
push str..__
lea eax, [ebp - 0x64c]
push eax
lea ecx, [ebp - 0x5e8]
call fcn.00418ab0
mov byte [ebp - 4], 0x3c
push eax
lea ecx, [ebp - 0x5f0]
call fcn.00410610
mov byte [ebp - 4], 0x3b
lea ecx, [ebp - 0x64c]
call fcn.0040d260
jmp 0x460ea0
cmp esi, 2
jl 0x461047
lea eax, [ebp - 0x348]
push eax
lea ecx, [ebp - 0x618]
call fcn.00411050
mov byte [ebp - 4], 0x3d
lea eax, [ebp - 0x344]
push eax
lea ecx, [ebp - 0x614]
call fcn.00411050
mov byte [ebp - 4], 0x3e
lea eax, [ebp - 0x340]
push eax
lea ecx, [ebp - 0x610]
call fcn.00411050
mov byte [ebp - 4], 0x3f
push dword [ebp - 0x610]
call fcn.005c8075
mov edi, eax
push dword [ebp - 0x618]
call fcn.005c8075
mov esi, eax
mov dword [ebp - 0x608], esi
push dword [ebp - 0x614]
call fcn.005c8075
add esp, 0xc
mov edx, eax
mov dword [ebp - 0x60c], edx
cmp esi, 0x1f
jle 0x460fdb
mov ecx, edi
mov edi, esi
mov esi, ecx
mov dword [ebp - 0x608], esi
jmp 0x460fec
cmp edx, 0x1f
jle 0x460fec
mov eax, edi
mov edi, edx
mov edx, eax
mov dword [ebp - 0x60c], edx
cmp esi, 0xc
jle 0x460ffd
mov dword [ebp - 0x608], esi
mov dword [ebp - 0x60c], edx
push edi
push edx
push esi
push str._d__d__d
lea eax, [ebp - 0x5e8]
push eax
call fcn.00443a90
add esp, 0x14
mov byte [ebp - 4], 0x3e
lea ecx, [ebp - 0x610]
call fcn.0040d260
mov byte [ebp - 4], 0x3d
lea ecx, [ebp - 0x614]
call fcn.0040d260
mov byte [ebp - 4], 0x3b
lea ecx, [ebp - 0x618]
call fcn.0040d260
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp - 0x5e8]
push eax
lea ecx, [ebp - 0x77c]
call fcn.00410610
mov byte [ebp - 4], 0x3a
lea ecx, [ebp - 0x5f0]
call fcn.0040d260
mov byte [ebp - 4], 0x39
push fcn.0040d260
push 3
push 4
lea eax, [ebp - 0x348]
push eax
call fcn.005bce7a
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x5e8]
call fcn.0040d260
mov eax, dword [ebp - 0x5c4]
mov ecx, dword [eax]
lea edx, [ebp - 0x5e4]
push edx
push str.szDisplayMemoryEnglish
push eax
call dword [ecx + 0x20]
test eax, eax
js 0x46122a
mov dword [ebp - 0x61c], 0
lea eax, [ebp - 0x61c]
push eax
push dword [ebp - 0x5dc]
call fcn.005cd953
add esp, 8
fstp qword [ebp - 0x5d0]
mov eax, dword [ebp - 0x61c]
cmp eax, dword [ebp - 0x5dc]
je 0x46121a
mov eax, 2
mov dword [ebp - 0x648], eax
movsd xmm0, qword [ebp - 0x5d0]
movsd qword [ebp - 0x5d0], xmm0
movsd xmm2, qword [0x644308]
nop word [eax + eax]
cmp eax, 0x400
jg 0x46113f
movd xmm1, eax
cvtdq2pd xmm1, xmm1
comisd xmm1, xmm0
jbe 0x461279
addsd xmm0, xmm2
comisd xmm0, xmm1
jb 0x461271
movsd qword [ebp - 0x5d0], xmm1
sub esp, 8
lea ecx, [ebp - 0xea0]
call fcn.00415be0
mov byte [ebp - 4], 0x40
movsd xmm1, qword [ebp - 0x5d0]
lea ecx, [ebp - 0xe90]
call fcn.0041e250
mov edx, 0x642dd0
mov ecx, eax
call fcn.00411d70
lea eax, [ebp - 0x5bc]
push eax
lea ecx, [ebp - 0xe88]
call fcn.00416830
or dword [ebp - 0x5c0], 0x100
mov byte [ebp - 4], 0x41
mov dword [ebp - method.srl::Value.virtual_0], vtable.srl::Value.0
mov dword [ebp - method.srl::Speed.virtual_0], vtable.srl::Size.0
lea eax, [ebp - 0x5bc]
cmp dword [ebp - 0x5a8], 8
cmovae eax, dword [ebp - 0x5bc]
push eax
lea ecx, [ebp - 0x674]
call fcn.0046c200
mov byte [ebp - 4], 0x42
mov eax, dword [ebp - 0x66c]
mov dword [ebp - 0x740], eax
mov eax, dword [ebp - 0x668]
mov dword [ebp - 0x73c], eax
mov byte [ebp - 4], 0x43
mov dword [ebp - method.srl::Speed.virtual_0], vtable.srl::Size.0
mov byte [ebp - 4], 0x44
mov dword [ebp - method.srl::Value.virtual_0], vtable.srl::Value.0
mov byte [ebp - 4], 0x40
lea ecx, [ebp - 0x5bc]
call fcn.004075ab
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xea0]
call fcn.00415840
lea eax, [ebp - 0x5e4]
push eax
call edi
mov byte [ebp - 0x5c5], 1
lea eax, [ebp - 0x7b0]
push eax
mov ecx, dword [ebp - 0x664]
call fcn.004264b0
mov ecx, dword [ebp - 0x5c4]
test ecx, ecx
je 0x461256
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x5c4], 0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x7b0]
call fcn.00426e00
mov edi, dword [ebp - 0x5f4]
inc edi
jmp 0x45f39f
movsd xmm0, qword [ebp - 0x5d0]
add eax, eax
mov dword [ebp - 0x648], eax
jmp 0x461110
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x5ec]
test ecx, ecx
je 0x4612eb
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x5ec], 0
mov edx, dword [ebp - 0x5d4]
test edx, edx
je 0x461305
mov ecx, dword [edx]
push edx
call dword [ecx + 8]
mov dword [ebp - 0x5d4], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5a4]
call fcn.00414900
mov al, byte [ebp - 0x5c5]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.005bc745
mov esp, ebp
pop ebp
ret 4