Function at 0x408970
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x48892a
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebp
push esi
push edi
mov eax, dword [0x504a70]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x40]
push 0x4f1164
push ecx
mov dword [esp + 0x18], 0
mov ecx, esp
mov dword [esp + 0x24], esp
push str.CardName
call fcn.00403e00
lea edi, [esp + 0x18]
mov ecx, ebp
call fcn.0040cfa0
push eax
call fcn.00407ca0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
or esi, 0xffffffff
add esp, 8
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4089f2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
je 0x408a50
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.CardName
call fcn.00403e00
lea edi, [esp + 0x14]
mov ecx, ebp
call fcn.0040cfa0
mov dword [esp + 0x38], 0
mov eax, dword [eax]
lea ecx, [ebx + 0x144]
push eax
call fcn.0045c3f0
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408a60
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x408a60
lea ecx, [ebx + 0x144]
push 0x4f218c
call fcn.0045c3f0
push 0x4f1164
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.GPUName
call fcn.00403e00
lea edi, [esp + 0x18]
mov ecx, ebp
call fcn.0040cfa0
push eax
call fcn.00407ca0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
add esp, 8
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408aad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
je 0x408b0b
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.GPUName
call fcn.00403e00
lea edi, [esp + 0x14]
mov ecx, ebp
call fcn.0040cfa0
mov dword [esp + 0x38], 1
mov eax, dword [eax]
push eax
lea ecx, [ebx + 0x198]
call fcn.0045c3f0
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408b1b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x408b1b
push 0x4f218c
lea ecx, [ebx + 0x198]
call fcn.0045c3f0
push 0x4f1164
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.GPURevision
call fcn.00403e00
lea edi, [esp + 0x18]
mov ecx, ebp
call fcn.0040cfa0
push eax
call fcn.00407ca0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
add esp, 8
lea ecx, [eax + 0xc]
lock xadd dword [ecx], esi
dec esi
test esi, esi
jg 0x408b66
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
je 0x408be1
lea esi, [ebx + 0x1ec]
push 1
mov ecx, esi
call fcn.0045c4ab
push 1
lea ecx, [ebx + 0xa20]
call fcn.0045c4ab
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.GPURevision
call fcn.00403e00
lea edi, [esp + 0x14]
mov ecx, ebp
call fcn.0040cfa0
mov dword [esp + 0x38], 2
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.0045c3f0
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408c09
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x408c09
lea edi, [ebx + 0x1ec]
push 0
mov ecx, edi
call fcn.0045c4ab
push 0
lea ecx, [ebx + 0xa20]
call fcn.0045c4ab
push 0x4f21c4
mov ecx, edi
call fcn.0045c3f0
push 0x4f21cc
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x4f21d0
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
mov esi, 3
mov dword [esp + 0x3c], esi
push eax
mov dword [esp + 0x18], 1
call fcn.00407ca0
add esp, 8
test al, al
je 0x408c7f
push 0x4f1164
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push 0x4f21d0
call fcn.00403e00
lea edi, [esp + 0x1c]
mov ecx, ebp
call fcn.0040cfa0
push eax
mov dword [esp + 0x18], esi
call fcn.00407ca0
add esp, 8
test al, al
mov byte [esp + 0x40], 1
jne 0x408c84
mov byte [esp + 0x40], 0
test byte [esp + 0x10], 2
je 0x408cb0
mov eax, dword [esp + 0x14]
and dword [esp + 0x10], 0xfffffffd
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408cb0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], 0xffffffff
test byte [esp + 0x10], 1
je 0x408ce4
mov eax, dword [esp + 0x18]
and dword [esp + 0x10], 0xfffffffe
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408ce4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
lea esi, [ebx + 0x240]
mov ecx, esi
je 0x408d93
push 1
call fcn.0045c4ab
push 0x4f21e8
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x4f21d0
call fcn.00403e00
lea edi, [esp + 0x1c]
mov ecx, ebp
call fcn.0040cfa0
push eax
lea ecx, [esp + 0x20]
push ecx
mov dword [esp + 0x44], 4
call fcn.00404010
add esp, 0xc
mov byte [esp + 0x38], 5
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.0045c3f0
mov byte [esp + 0x38], 4
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x408d69
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408da6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x408da6
push 0
call fcn.0045c4ab
push 0x4f218c
mov ecx, esi
call fcn.0045c3f0
push 0x4f21cc
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.DieSize
call fcn.00403e00
lea edi, [esp + 0x1c]
mov ecx, ebp
call fcn.0040cfa0
mov dword [esp + 0x3c], 6
or dword [esp + 0x14], 4
push eax
call fcn.00407ca0
add esp, 8
test al, al
je 0x408e19
push 0x4f1164
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push str.DieSize
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
or dword [esp + 0x14], 8
push eax
call fcn.00407ca0
add esp, 8
test al, al
mov byte [esp + 0x40], 1
jne 0x408e1e
mov byte [esp + 0x40], 0
test byte [esp + 0x10], 8
je 0x408e4a
mov eax, dword [esp + 0x18]
and dword [esp + 0x10], 0xfffffff7
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408e4a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], 0xffffffff
test byte [esp + 0x10], 4
je 0x408e79
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408e79
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
lea esi, [ebx + 0x294]
mov ecx, esi
je 0x408f28
push 1
call fcn.0045c4ab
push 0x4f2200
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.DieSize
call fcn.00403e00
lea edi, [esp + 0x1c]
mov ecx, ebp
call fcn.0040cfa0
push eax
lea ecx, [esp + 0x20]
push ecx
mov dword [esp + 0x44], 7
call fcn.00404010
add esp, 0xc
mov byte [esp + 0x38], 8
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.0045c3f0
mov byte [esp + 0x38], 7
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x408efe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408f3b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x408f3b
push 0
call fcn.0045c4ab
push 0x4f218c
mov ecx, esi
call fcn.0045c3f0
push 0x4f1164
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.BIOSVersion
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
push eax
call fcn.00407ca0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408f89
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
lea esi, [ebx + 0x2e8]
mov ecx, esi
je 0x408ff7
push 1
call fcn.0045c4ab
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.BIOSVersion
call fcn.00403e00
lea edi, [esp + 0x1c]
mov ecx, ebp
call fcn.0040cfa0
mov dword [esp + 0x38], 9
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.0045c3f0
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40900a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40900a
push 0
call fcn.0045c4ab
push 0x4f218c
mov ecx, esi
call fcn.0045c3f0
push 0x4f21cc
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.NumROPs
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
push eax
call fcn.00407ca0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409058
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
lea esi, [ebx + 0x33c]
mov ecx, esi
je 0x4090c6
push 1
call fcn.0045c4ab
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.NumROPs
call fcn.00403e00
lea edi, [esp + 0x1c]
mov ecx, ebp
call fcn.0040cfa0
mov dword [esp + 0x38], 0xa
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.0045c3f0
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4090d9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4090d9
push 0
call fcn.0045c4ab
push 0x4f218c
mov ecx, esi
call fcn.0045c3f0
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.DeviceID
call fcn.00403e00
lea edi, [esp + 0x14]
mov ecx, ebp
call fcn.0040cfa0
mov dword [esp + 0x38], 0xb
mov ecx, dword [eax]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push str.VendorID
call fcn.00403e00
lea edi, [esp + 0x1c]
mov ecx, ebp
call fcn.0040cfa0
mov byte [esp + 0x3c], 0xc
mov edx, dword [eax]
push edx
push str._s____s
lea esi, [esp + 0x24]
call fcn.00412cd0
add esp, 0xc
mov byte [esp + 0x38], 0xd
mov eax, dword [eax]
push eax
lea ecx, [ebx + 0x390]
call fcn.0045c3f0
mov byte [esp + 0x38], 0xc
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40916d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x38], 0xb
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409192
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4091ba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.SubvendorID
call fcn.00403e00
lea edi, [esp + 0x14]
mov ecx, ebp
call fcn.0040cfa0
mov dword [esp + 0x38], 0xe
mov ecx, dword [eax]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push str.Subvendor
call fcn.00403e00
lea edi, [esp + 0x1c]
mov ecx, ebp
call fcn.0040cfa0
mov byte [esp + 0x3c], 0xf
mov edx, dword [eax]
push edx
push str._s___s_
lea esi, [esp + 0x24]
call fcn.00412cd0
add esp, 0xc
mov byte [esp + 0x38], 0x10
mov eax, dword [eax]
lea ecx, [ebx + 0x87c]
push eax
call fcn.0045c3f0
mov byte [esp + 0x38], 0xf
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40924e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x38], 0xe
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
or esi, 0xffffffff
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409275
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409298
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.BusInterface
call fcn.00403e00
lea edi, [esp + 0x1c]
mov ecx, ebp
call fcn.0040cfa0
mov dword [esp + 0x38], 0x11
mov eax, dword [eax]
push eax
lea ecx, [ebx + 0x3e4]
call fcn.0045c3f0
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4092ed
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4f1164
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.NumShadersVertex
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
push eax
call fcn.00407ca0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 8
lea ecx, [eax + 0xc]
lock xadd dword [ecx], esi
dec esi
test esi, esi
jg 0x409338
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
je 0x40940a
push str.NumShadersVertex
call fcn.00403e00
lea edi, [esp + 0x14]
mov ecx, ebp
call fcn.0040cfa0
mov dword [esp + 0x38], 0x12
mov ecx, dword [eax]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push str.NumShadersPixel
call fcn.00403e00
lea edi, [esp + 0x1c]
mov ecx, ebp
call fcn.0040cfa0
mov byte [esp + 0x3c], 0x13
mov edx, dword [eax]
push edx
push 0x4f22ec
lea esi, [esp + 0x24]
call fcn.00412cd0
add esp, 0xc
mov byte [esp + 0x38], 0x14
mov eax, dword [eax]
push eax
lea ecx, [ebx + 0x438]
call fcn.0045c3f0
mov byte [esp + 0x38], 0x13
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4093d7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x38], 0x12
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4093fc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x10]
jmp 0x40947f
push str.NumShadersUnified
call fcn.00403e00
lea edi, [esp + 0x18]
mov ecx, ebp
call fcn.0040cfa0
mov dword [esp + 0x38], 0x15
mov ecx, dword [eax]
push ecx
push str._s_Unified
lea esi, [esp + 0x20]
call fcn.00412cd0
add esp, 8
mov byte [esp + 0x38], 0x16
mov eax, dword [eax]
push eax
lea ecx, [ebx + 0x438]
call fcn.0045c3f0
mov byte [esp + 0x38], 0x15
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x409473
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40949b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4f1164
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.DirectXSupport
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
push eax
call fcn.00407ca0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4094e9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
lea esi, [ebx + 0x48c]
mov ecx, esi
je 0x409617
push 1
call fcn.0045c4ab
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.ShaderModel
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
push eax
push str.___SM
push ecx
mov dword [esp + 0x44], 0x17
mov ecx, esp
mov dword [esp + 0x4c], esp
push str.DirectXSupport
call fcn.00403e00
lea edi, [esp + 0x1c]
mov ecx, ebp
call fcn.0040cfa0
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x48], 0x18
call fcn.00404010
add esp, 0xc
push eax
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x44], 0x19
call fcn.00403f50
add esp, 0xc
mov byte [esp + 0x38], 0x1a
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.0045c3f0
mov byte [esp + 0x38], 0x19
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4095a3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x38], 0x18
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4095c8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x38], 0x17
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4095ed
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40962a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40962a
push 0
call fcn.0045c4ab
push 0x4f218c
mov ecx, esi
call fcn.0045c3f0
push 0x4f2398
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.FillratePixel
call fcn.00403e00
lea edi, [esp + 0x24]
mov ecx, ebp
call fcn.0040cfa0
push eax
call fcn.00407ca0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409678
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
lea esi, [ebx + 0x4e0]
mov ecx, esi
je 0x409727
push 1
call fcn.0045c4ab
push str._GPixel_s
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.FillratePixel
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
push eax
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x44], 0x1b
call fcn.00404010
add esp, 0xc
mov byte [esp + 0x38], 0x1c
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.0045c3f0
mov byte [esp + 0x38], 0x1b
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4096fd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40973a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40973a
push 0
call fcn.0045c4ab
push 0x4f218c
mov ecx, esi
call fcn.0045c3f0
push 0x4f2398
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.FillrateTexel
call fcn.00403e00
lea edi, [esp + 0x24]
mov ecx, ebp
call fcn.0040cfa0
push eax
call fcn.00407ca0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409788
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
lea esi, [ebx + 0x534]
mov ecx, esi
je 0x409837
push 1
call fcn.0045c4ab
push str._GTexel_s
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.FillrateTexel
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
push eax
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x44], 0x1d
call fcn.00404010
add esp, 0xc
mov byte [esp + 0x38], 0x1e
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.0045c3f0
mov byte [esp + 0x38], 0x1d
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40980d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40984a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40984a
push 0
call fcn.0045c4ab
push 0x4f218c
mov ecx, esi
call fcn.0045c3f0
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.MemType
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
mov dword [esp + 0x38], 0x1f
mov eax, dword [eax]
push eax
lea ecx, [ebx + 0x588]
call fcn.0045c3f0
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4098a4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4f21cc
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.MemBusWidth
call fcn.00403e00
lea edi, [esp + 0x24]
mov ecx, ebp
call fcn.0040cfa0
push eax
call fcn.00407ca0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4098f2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
lea esi, [ebx + 0x5dc]
mov ecx, esi
je 0x4099a1
push 1
call fcn.0045c4ab
push str._Bit
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.MemBusWidth
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
push eax
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x44], 0x20
call fcn.00404010
add esp, 0xc
mov byte [esp + 0x38], 0x21
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.0045c3f0
mov byte [esp + 0x38], 0x20
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x409977
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4099b4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4099b4
push 0
call fcn.0045c4ab
push 0x4f218c
mov ecx, esi
call fcn.0045c3f0
push 0x4f2424
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.MemSize
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
push eax
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x44], 0x22
call fcn.00404010
add esp, 0xc
mov byte [esp + 0x38], 0x23
mov eax, dword [eax]
push eax
lea ecx, [ebx + 0x630]
call fcn.0045c3f0
mov byte [esp + 0x38], 0x22
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x409a23
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409a4b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4f2398
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.MemBandwidth
call fcn.00403e00
lea edi, [esp + 0x24]
mov ecx, ebp
call fcn.0040cfa0
push eax
call fcn.00407ca0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409a99
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
lea esi, [ebx + 0x684]
mov ecx, esi
je 0x409b46
push 1
call fcn.0045c4ab
push str._GB_s
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.MemBandwidth
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
push eax
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x44], 0x24
call fcn.00404010
add esp, 0xc
mov byte [esp + 0x38], 0x25
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.0045c3f0
mov byte [esp + 0x38], 0x24
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x409b1e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
or esi, 0xffffffff
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409b5c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x409b5c
push 0
call fcn.0045c4ab
push 0x4f218c
mov ecx, esi
call fcn.0045c3f0
or esi, 0xffffffff
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.DriverVersion
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
mov dword [esp + 0x38], 0x26
mov eax, dword [eax]
push eax
lea ecx, [ebx + 0x6d8]
call fcn.0045c3f0
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409bb1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str._MHz
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.ClockGPU
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
push eax
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x44], 0x27
call fcn.00404010
add esp, 0xc
mov byte [esp + 0x38], 0x28
mov eax, dword [eax]
push eax
lea ecx, [ebx + 0x72c]
call fcn.0045c3f0
mov byte [esp + 0x38], 0x27
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
mov ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x409c1f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409c42
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str._MHz
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.ClockMem
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
push eax
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x44], 0x29
call fcn.00404010
add esp, 0xc
mov byte [esp + 0x38], 0x2a
mov eax, dword [eax]
push eax
lea ecx, [ebx + 0x780]
call fcn.0045c3f0
mov byte [esp + 0x38], 0x29
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
mov ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x409cb0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409cd3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4f1164
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.ClockShader
call fcn.00403e00
lea edi, [esp + 0x24]
mov ecx, ebp
call fcn.0040cfa0
push eax
call fcn.00407ca0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 8
lea ecx, [eax + 0xc]
lock xadd dword [ecx], esi
dec esi
test esi, esi
jg 0x409d1e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
lea esi, [ebx + 0x7d4]
mov ecx, esi
je 0x409dd8
push 1
call fcn.0045c4ab
push 1
lea ecx, [ebx + 0xa74]
call fcn.0045c4ab
push str._MHz
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.ClockShader
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
push eax
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x44], 0x2b
call fcn.00404010
add esp, 0xc
mov byte [esp + 0x38], 0x2c
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.0045c3f0
mov byte [esp + 0x38], 0x2b
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x409db0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
or esi, 0xffffffff
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409df8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x409df8
push 0
call fcn.0045c4ab
push 0
lea ecx, [ebx + 0xa74]
call fcn.0045c4ab
push 0
mov ecx, esi
call fcn.0045c3f0
or esi, 0xffffffff
push str._MHz
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.ClockGPUDefault
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
push eax
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x44], 0x2d
call fcn.00404010
add esp, 0xc
mov byte [esp + 0x38], 0x2e
mov eax, dword [eax]
push eax
lea ecx, [ebx + 0x924]
call fcn.0045c3f0
mov byte [esp + 0x38], 0x2d
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
mov ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x409e66
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409e89
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str._MHz
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.ClockMemDefault
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
push eax
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x44], 0x2f
call fcn.00404010
add esp, 0xc
mov byte [esp + 0x38], 0x30
mov eax, dword [eax]
push eax
lea ecx, [ebx + 0x978]
call fcn.0045c3f0
mov byte [esp + 0x38], 0x2f
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
mov ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x409ef7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409f1a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4f1164
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.ClockShaderDefault
call fcn.00403e00
lea edi, [esp + 0x24]
mov ecx, ebp
call fcn.0040cfa0
push eax
call fcn.00407ca0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 8
lea ecx, [eax + 0xc]
lock xadd dword [ecx], esi
dec esi
test esi, esi
jg 0x409f65
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
lea esi, [ebx + 0x9cc]
mov ecx, esi
je 0x40a021
push 1
call fcn.0045c4ab
push 1
lea ecx, [ebx + 0xac8]
call fcn.0045c4ab
push str._MHz
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.ClockShaderDefault
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
push eax
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x44], 0x31
call fcn.00404010
add esp, 0xc
mov byte [esp + 0x38], 0x32
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.0045c3f0
mov byte [esp + 0x38], 0x31
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x409ff7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a03e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40a03e
push 0
call fcn.0045c4ab
push 0
lea ecx, [ebx + 0xac8]
call fcn.0045c4ab
push 0
mov ecx, esi
call fcn.0045c3f0
push 0x4f1164
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.MultiGPUName
call fcn.00403e00
lea edi, [esp + 0x24]
mov ecx, ebp
call fcn.0040cfa0
push eax
call fcn.00407ca0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a08c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
lea esi, [ebx + 0x8d0]
mov ecx, esi
je 0x40a1d0
push 1
call fcn.0045c4ab
lea ecx, [ebx + 0xbc4]
push 1
call fcn.0045c4ab
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.MultiGPUName
call fcn.00403e00
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
mov dword [esp + 0x38], 0x33
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.0045c3f0
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a109
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.0045e8af
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40a123
push 0x80004005
call fcn.00401440
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x40], eax
push 0
lea ecx, [esp + 0x44]
push str.MultiGPU_d
push ecx
mov dword [esp + 0x44], 0x34
call fcn.00405230
mov esi, dword [esp + 0x4c]
add esp, 8
mov dword [esp + 0x20], esp
add esi, 0xfffffff0
mov edi, esp
push esi
call fcn.00404c60
add eax, 0x10
mov dword [edi], eax
add esp, 4
lea edi, [esp + 0x20]
mov ecx, ebp
call fcn.0040cfa0
mov byte [esp + 0x38], 0x35
mov eax, dword [eax]
push eax
lea ecx, [ebx + 0xbc4]
call fcn.0045c3f0
mov byte [esp + 0x38], 0x34
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40a1ad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], 0xffffffff
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a1fe
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
jmp 0x40a1fe
push str.Multi_GPU
call fcn.0045c3f0
push 1
mov ecx, esi
call fcn.0045c4ab
lea esi, [ebx + 0xbc4]
push str.___not_available___
mov ecx, esi
call fcn.0045c3f0
push 0
mov ecx, esi
call fcn.0045c4ab
push str.1002
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.VendorID
call fcn.00403e00
lea edi, [esp + 0x24]
mov ecx, ebp
call fcn.0040cfa0
push eax
call fcn.004041e0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a24c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
mov esi, dword [sym.imp.USER32.dll_LoadBitmapW]
je 0x40a27e
push 0x89
push 0
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
push eax
call esi
mov ecx, dword [ebx + 0x848]
push eax
push 0
push 0x172
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
push str.10DE
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.VendorID
call fcn.00403e00
lea edi, [esp + 0x24]
mov ecx, ebp
call fcn.0040cfa0
push eax
call fcn.004041e0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 8
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40a2cc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
je 0x40a2f8
push 0x8b
push 0
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
push eax
call esi
mov ecx, dword [ebx + 0x848]
push eax
push 0
push 0x172
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
push str.8086
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.VendorID
call fcn.00403e00
lea edi, [esp + 0x24]
mov ecx, ebp
call fcn.0040cfa0
push eax
call fcn.004041e0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 8
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40a346
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
je 0x40a372
push 0x8a
push 0
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
push eax
call esi
mov ecx, dword [ebx + 0x848]
push eax
push 0
push 0x172
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
push str.5333
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.VendorID
call fcn.00403e00
lea edi, [esp + 0x24]
mov ecx, ebp
call fcn.0040cfa0
push eax
call fcn.004041e0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 8
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40a3c0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x40], 0
je 0x40a3ec
push 0x98
push 0
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
push eax
call esi
mov ecx, dword [ebx + 0x848]
push eax
push 0
push 0x172
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [ebx + 0x144]
mov ecx, eax
test ecx, ecx
lea eax, [ebx + 0x2e8]
mov dword [esp + 0x24], eax
lea eax, [ebx + 0x87c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0
je 0x40a4a2
lea ebp, [esp + 0x20]
mov esi, 0x36
call fcn.0045e8af
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x40a119
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x40], eax
mov dword [esp + 0x38], esi
mov edi, dword [ebp]
lea ecx, [esp + 0x40]
push ecx
mov ecx, edi
call fcn.0045a5cb
mov edx, dword [esp + 0x40]
push 0
push 0
push edx
push edi
lea ecx, [ebx + 0xc20]
call fcn.0045f9a9
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a499
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebp, 4
cmp dword [ebp], 0
jne 0x40a425
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
add esp, 0x2c
ret 4