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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x55d46c
mov eax, dword fs:[0]
push eax
sub esp, 0x74
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5c8810]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
mov dword [esp + 0x6c], ecx
xor edi, edi
or ebp, 0xffffffff
call fcn.00416b80
mov ecx, eax
call fcn.00413330
test eax, eax
je 0x45b06e
call fcn.00416b80
mov ecx, eax
call fcn.00413330
mov eax, dword [eax + 8]
test eax, eax
je 0x45b06e
mov ebx, dword [eax + 4]
mov dword [esp + 0x80], ebx
test ebx, ebx
je 0x45b06e
mov esi, dword [ebx + 4]
test esi, esi
je 0x45b06e
mov ecx, esi
call fcn.004440d0
cmp eax, 0x1002
jne 0x45b04f
mov ecx, esi
call fcn.00441f00
mov ebx, eax
test ebx, ebx
je case.0x45afac.39170
cmp byte [ebx + 0x12], 0
jne case.0x45afac.39170
lea eax, [esp + 0x18]
push eax
push 0x10
mov ecx, ebx
call fcn.0044a4d0
test eax, eax
je 0x459b6a
mov eax, dword [esp + 0x18]
test al, 1
jne 0x459b6a
mov ecx, eax
shr ecx, 1
and ecx, 3
sub ecx, 2
je 0x459adb
and eax, 0xfffffff0
mov dword [esp + 0x74], eax
jbe 0x459b6a
push 0x2000000
push eax
push 0
call fcn.00416b80
mov ecx, eax
call fcn.00415c90
mov edi, eax
test edi, edi
jne 0x459b64
push 0x14
call fcn.005120bc
add esp, 4
mov dword [esp + 0x70], eax
mov dword [esp + 0x90], 1
test eax, eax
je 0x459b49
mov ecx, dword [esp + 0x74]
push 0xffffffffffffffff
push ecx
push edi
mov ecx, eax
call fcn.0046ac10
mov edi, eax
jmp 0x459b4b
lea edx, [esp + 0x78]
push edx
and eax, 0xfffffff0
push 0x14
mov ecx, ebx
mov dword [esp + 0x7c], eax
call fcn.0044a4d0
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
test eax, eax
ja 0x459b00
test ecx, ecx
jbe 0x459b6a
push 0x2000000
push eax
push ecx
call fcn.00416b80
mov ecx, eax
call fcn.00415c90
mov edi, eax
test edi, edi
jne 0x459b64
push 0x14
call fcn.005120bc
add esp, 4
mov dword [esp + 0x70], eax
mov dword [esp + 0x90], edi
test eax, eax
je 0x459b49
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
push 0xffffffffffffffff
push ecx
push edx
mov ecx, eax
call fcn.0046ac10
mov edi, eax
jmp 0x459b4b
xor edi, edi
mov dword [esp + 0x90], 0xffffffff
call fcn.00416b80
mov ecx, dword [eax + 0x20]
push edi
call fcn.0042a6d0
mov dword [esi + 0x634], edi
lea eax, [esp + 0x18]
push eax
push 0x18
mov ecx, ebx
call fcn.0044a4d0
test eax, eax
je 0x459c8a
mov eax, dword [esp + 0x18]
test al, 1
jne 0x459c8a
mov ecx, eax
shr ecx, 1
and ecx, 3
sub ecx, 2
je 0x459bf7
and eax, 0xfffffff0
mov dword [esp + 0x74], eax
jbe 0x459c8a
push 0x2000000
push eax
push 0
call fcn.00416b80
mov ecx, eax
call fcn.00415c90
mov edi, eax
test edi, edi
jne 0x459c84
push 0x14
call fcn.005120bc
add esp, 4
mov dword [esp + 0x70], eax
mov dword [esp + 0x90], 3
test eax, eax
je 0x459c69
mov ecx, dword [esp + 0x74]
push 0xffffffffffffffff
push ecx
push edi
mov ecx, eax
call fcn.0046ac10
mov edi, eax
jmp 0x459c6b
lea edx, [esp + 0x78]
push edx
and eax, 0xfffffff0
push 0x1c
mov ecx, ebx
mov dword [esp + 0x7c], eax
call fcn.0044a4d0
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
test eax, eax
ja 0x459c1c
test ecx, ecx
jbe 0x459c8a
push 0x2000000
push eax
push ecx
call fcn.00416b80
mov ecx, eax
call fcn.00415c90
mov edi, eax
test edi, edi
jne 0x459c84
push 0x14
call fcn.005120bc
add esp, 4
mov dword [esp + 0x70], eax
mov dword [esp + 0x90], 2
test eax, eax
je 0x459c69
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
push 0xffffffffffffffff
push ecx
push edx
mov ecx, eax
call fcn.0046ac10
mov edi, eax
jmp 0x459c6b
xor edi, edi
mov dword [esp + 0x90], 0xffffffff
call fcn.00416b80
mov ecx, dword [eax + 0x20]
push edi
call fcn.0042a6d0
mov dword [esi + 0x63c], edi
mov eax, 0x6978
mov dword [esi + 0x590], eax
mov dword [esi + 0x58c], eax
mov eax, dword [esp + 0x6c]
push 0xffffffffffffffff
push eax
mov ecx, esi
call fcn.00441e60
cmp dword [esi + 0x4b0], 0xffffffff
jne 0x459cbc
mov dword [esi + 0x4b0], 0x2000000
mov edi, 1
cmp ebp, 0xffffffff
jne 0x459d43
call fcn.00416b80
cmp dword [eax + 0x1c], 0
je 0x459d43
call fcn.00416b80
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [eax + 0x1c]
push 0
push 0xc0000
push 0
call fcn.0054c338
mov eax, dword [esp + 0x18]
mov edx, eax
and edx, 0xff00
cmp edx, 0xaa00
jne 0x459d0b
cmp al, 0x55
jne 0x459d0b
mov ebp, 0xc0000
jmp 0x459d43
call fcn.00416b80
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [eax + 0x1c]
push 0
push 0xe0000
push 0
call fcn.0054c338
mov eax, dword [esp + 0x18]
mov edx, eax
and edx, 0xff00
cmp edx, 0xaa00
jne 0x459d43
cmp al, 0x55
jne 0x459d43
mov ebp, 0xe0000
mov eax, dword [ebx + 0x14]
movzx eax, word [eax + 6]
cmp eax, 0x7103
jg 0x45a2b1
cmp eax, 0x7100
jge case.0x45a30d.29248
cmp eax, 0x5549
jg 0x459f60
je 0x459e04
cmp eax, 0x4a4e
jg 0x459e13
je 0x459e89
cmp eax, 0x4148
jg 0x459dc5
je 0x459e89
cmp eax, 0x3154
jg 0x459db5
je 0x459e89
sub eax, 0x3150
je 0x459e89
sub eax, 2
je 0x459e89
jmp case.0x45a369.38154
cmp eax, 0x4146
je 0x459e89
jmp case.0x45a369.38154
cmp eax, 0x4a4a
jg 0x459df9
cmp eax, 0x4a49
jge 0x459e04
cmp eax, 0x4150
jl case.0x45a369.38154
cmp eax, 0x4152
jle 0x459e89
cmp eax, 0x4155
je 0x459e89
jmp case.0x45a369.38154
cmp eax, 0x4a4d
jne case.0x45a369.38154
mov dword [esi + 0x4b0], 0x2040000
jmp case.0x45a369.38154
cmp eax, 0x4e52
jg 0x459e5f
cmp eax, 0x4e50
jge 0x459e89
cmp eax, 0x4e46
jg 0x459e48
je 0x459e89
cmp eax, 0x4b49
jl case.0x45a369.38154
cmp eax, 0x4b4c
jle 0x459e04
cmp eax, 0x4e44
je 0x459e89
jmp case.0x45a369.38154
cmp eax, 0x4e48
jl case.0x45a369.38154
cmp eax, 0x4e4a
jle 0x459e89
jmp case.0x45a369.38154
cmp eax, 0x5462
jg 0x459e7e
cmp eax, 0x5460
jge 0x459e89
sub eax, 0x4e54
je 0x459e89
sub eax, 2
je 0x459e89
jmp case.0x45a369.38154
cmp eax, 0x5464
jne case.0x45a369.38154
mov dword [esi + 0x4b0], 0x2030000
cmp ebp, 0xffffffff
je case.0x45a369.38154
call fcn.00416b80
cmp dword [eax + 0x1c], 0
je case.0x45a369.38154
call fcn.00416b80
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [eax + 0x1c]
push 0x48
push ebp
push 0
call fcn.0054c338
mov eax, dword [esp + 0x40]
and eax, 0xffff
mov dword [esp + 0x40], eax
dec eax
cmp eax, 0x6ffe
ja case.0x45a369.38154
call fcn.00416b80
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x44]
push edx
add ecx, 0x30
push ecx
mov ecx, dword [eax + 0x1c]
push ebp
push 0
call fcn.0054c338
mov eax, dword [esp + 0x44]
and eax, 0xffff
mov dword [esp + 0x44], eax
dec eax
cmp eax, 0x6ffe
ja case.0x45a369.38154
call fcn.00416b80
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0x18]
push edx
add ecx, 0x26
push ecx
mov ecx, dword [eax + 0x1c]
push ebp
push 0
call fcn.0054c338
mov eax, dword [esp + 0x18]
and eax, 0xffff
lea edx, [eax - 0xb]
mov dword [esp + 0x18], eax
cmp edx, 0x2704
ja case.0x45a369.38154
lea eax, [eax + eax*4]
add eax, eax
mov dword [esi + 0x590], eax
mov dword [esi + 0x58c], eax
jmp case.0x45a369.38154
cmp eax, 0x5d52
jg 0x45a0fa
je 0x459e04
cmp eax, 0x5653
jg 0x459fe1
cmp eax, 0x5652
jge 0x459e04
cmp eax, 0x5551
jg 0x459fbb
cmp eax, 0x5550
jge 0x459e04
cmp eax, 0x554b
je 0x459e04
cmp eax, 0x554c
jle case.0x45a369.38154
cmp eax, 0x554e
jle 0x459e04
jmp case.0x45a369.38154
cmp eax, 0x564a
jl case.0x45a369.38154
cmp eax, 0x564b
jle 0x459e04
cmp eax, 0x564f
je 0x459e04
jmp case.0x45a369.38154
cmp eax, 0x5d4e
jg 0x45a0ea
cmp eax, 0x5d4d
jge 0x459e04
cmp eax, 0x5960
je 0x45a019
cmp eax, 0x5d47
jle case.0x45a369.38154
cmp eax, 0x5d4a
jle 0x459e04
jmp case.0x45a369.38154
mov dword [esi + 0x4b0], 0x2020000
cmp ebp, 0xffffffff
je case.0x45a369.38154
call fcn.00416b80
cmp dword [eax + 0x1c], 0
je case.0x45a369.38154
call fcn.00416b80
lea ecx, [esp + 0x48]
push ecx
mov ecx, dword [eax + 0x1c]
push 0x48
push ebp
push 0
call fcn.0054c338
mov eax, dword [esp + 0x48]
and eax, 0xffff
mov dword [esp + 0x48], eax
dec eax
cmp eax, 0x6ffe
ja case.0x45a369.38154
call fcn.00416b80
mov ecx, dword [esp + 0x48]
lea edx, [esp + 0x4c]
push edx
add ecx, 0x30
push ecx
mov ecx, dword [eax + 0x1c]
push ebp
push 0
call fcn.0054c338
mov eax, dword [esp + 0x4c]
and eax, 0xffff
mov dword [esp + 0x4c], eax
dec eax
cmp eax, 0x6ffe
ja case.0x45a369.38154
call fcn.00416b80
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x18]
push edx
add ecx, 0x26
push ecx
mov ecx, dword [eax + 0x1c]
push ebp
push 0
call fcn.0054c338
mov eax, dword [esp + 0x18]
and eax, 0xffff
lea edx, [eax - 0xb]
mov dword [esp + 0x18], eax
cmp edx, 0x2704
ja case.0x45a369.38154
lea eax, [eax + eax*4]
add eax, eax
mov dword [esi + 0x58c], eax
jmp case.0x45a369.38154
cmp eax, 0x5d50
je 0x459e04
jmp case.0x45a369.38154
cmp eax, 0x689e
jg 0x45a295
je case.0x45a2aa.26808
cmp eax, 0x6739
jg 0x45a26f
cmp eax, 0x6738
jge case.0x45a2aa.26808
cmp eax, 0x5e48
je 0x459e04
cmp eax, 0x6718
jne case.0x45a369.38154
cmp ebp, 0xffffffff
je 0x45a246
call fcn.00416b80
cmp dword [eax + 0x1c], 0
je 0x45a246
call fcn.00416b80
mov ecx, dword [eax + 0x1c]
lea edx, [esp + 0x20]
push edx
push 0x48
push ebp
push 0
call fcn.0054c338
and dword [esp + 0x20], 0xffff
call fcn.00416b80
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [eax + 0x1c]
add edx, 4
push edx
push ebp
push 0
call fcn.0054c338
cmp dword [esp + 0x1c], 0x4d4f5441
jne 0x45a246
call fcn.00416b80
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x50]
push ecx
mov ecx, dword [eax + 0x1c]
add edx, 0x20
push edx
push ebp
push 0
call fcn.0054c338
and dword [esp + 0x50], 0xffff
call fcn.00416b80
mov edx, dword [esp + 0x50]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [eax + 0x1c]
add edx, 0xc
push edx
push ebp
push 0
call fcn.0054c338
and dword [esp + 0x24], 0xffff
call fcn.00416b80
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [eax + 0x1c]
add edx, 0x52
push edx
push ebp
push 0
call fcn.0054c338
movzx eax, word [esp + 0x1c]
lea eax, [eax + eax*4]
add eax, eax
mov dword [esp + 0x1c], eax
mov dword [esi + 0x590], eax
mov dword [esi + 0x58c], eax
call fcn.00416b80
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [eax + 0x1c]
add edx, 0x54
push edx
push ebp
push 0
call fcn.0054c338
movzx eax, word [esp + 0x1c]
lea eax, [eax + eax*4]
add eax, eax
mov dword [esp + 0x1c], eax
shr eax, 2
mov dword [esi + 0x590], eax
mov eax, dword [ebx + 0x14]
xor edx, edx
mov ecx, 0x6718
cmp word [eax + 6], cx
setne dl
dec edx
and edx, 0x10000
add edx, 0x20c0000
mov dword [esi + 0x4b0], edx
jmp case.0x45a369.38154
cmp eax, 0x6898
jl case.0x45a369.38154
cmp eax, 0x6899
jle case.0x45a2aa.26808
cmp eax, 0x689c
je case.0x45a2aa.26808
jmp case.0x45a369.38154
sub eax, 0x68b8
cmp eax, 0x20
ja case.0x45a369.38154
movzx ecx, byte [eax + 0x45b090]
jmp dword [ecx*4 + 0x45b088]
cmp eax, 0x7211
jg 0x45a2dd
cmp eax, 0x7210
jge case.0x45a30d.29248
sub eax, 0x7105
cmp eax, 0xd9
ja case.0x45a369.38154
movzx eax, byte [eax + 0x45b0bc]
jmp dword [eax*4 + 0x45b0b4]
cmp eax, 0x9501
jg 0x45a341
je case.0x45a369.38148
cmp eax, 0x9403
jg 0x45a323
cmp eax, 0x9400
jge case.0x45a369.38148
sub eax, 0x7240
cmp eax, 0x53
ja case.0x45a369.38154
movzx ecx, byte [eax + 0x45b1a0]
jmp dword [ecx*4 + 0x45b198]
mov dword [esi + 0x4b0], 0x2050000
jmp case.0x45a369.38154
sub eax, 0x9405
cmp eax, 0xc7
ja case.0x45a369.38154
movzx edx, byte [eax + 0x45b200]
jmp dword [edx*4 + 0x45b1f4]
cmp eax, 0x9610
jg 0x45a53e
je 0x45a555
sub eax, 0x9504
cmp eax, 0xcb
ja case.0x45a369.38154
movzx eax, byte [eax + 0x45b2d4]
jmp dword [eax*4 + 0x45b2c8]
cmp ebp, 0xffffffff
je 0x45a638
call fcn.00416b80
cmp dword [eax + 0x1c], 0
je 0x45a638
call fcn.00416b80
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [eax + 0x1c]
push 0x48
push ebp
push 0
call fcn.0054c338
and dword [esp + 0x28], 0xffff
call fcn.00416b80
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x2c]
push edx
add ecx, 4
push ecx
mov ecx, dword [eax + 0x1c]
push ebp
push 0
call fcn.0054c338
cmp dword [esp + 0x2c], 0x4d4f5441
jne 0x45a638
call fcn.00416b80
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x54]
push edx
add ecx, 0x20
push ecx
mov ecx, dword [eax + 0x1c]
push ebp
push 0
call fcn.0054c338
and dword [esp + 0x54], 0xffff
call fcn.00416b80
mov ecx, dword [esp + 0x54]
lea edx, [esp + 0x58]
push edx
add ecx, 0xc
push ecx
mov ecx, dword [eax + 0x1c]
push ebp
push 0
call fcn.0054c338
and dword [esp + 0x58], 0xffff
call fcn.00416b80
mov ecx, dword [esp + 0x58]
lea edx, [esp + 0x2c]
push edx
add ecx, 0x52
push ecx
mov ecx, dword [eax + 0x1c]
push ebp
push 0
call fcn.0054c338
movzx eax, word [esp + 0x2c]
lea eax, [eax + eax*4]
add eax, eax
mov dword [esp + 0x2c], eax
jmp 0x45a62c
cmp ebp, 0xffffffff
je 0x45a52f
call fcn.00416b80
cmp dword [eax + 0x1c], 0
je 0x45a52f
call fcn.00416b80
mov ecx, dword [eax + 0x1c]
lea edx, [esp + 0x30]
push edx
push 0x48
push ebp
push 0
call fcn.0054c338
and dword [esp + 0x30], 0xffff
call fcn.00416b80
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [eax + 0x1c]
add edx, 4
push edx
push ebp
push 0
call fcn.0054c338
cmp dword [esp + 0x34], 0x4d4f5441
jne 0x45a52f
call fcn.00416b80
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x5c]
push ecx
mov ecx, dword [eax + 0x1c]
add edx, 0x20
push edx
push ebp
push 0
call fcn.0054c338
and dword [esp + 0x5c], 0xffff
call fcn.00416b80
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x60]
push ecx
mov ecx, dword [eax + 0x1c]
add edx, 0xc
push edx
push ebp
push 0
call fcn.0054c338
and dword [esp + 0x60], 0xffff
call fcn.00416b80
mov edx, dword [esp + 0x60]
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [eax + 0x1c]
add edx, 0x52
push edx
push ebp
push 0
call fcn.0054c338
movzx eax, word [esp + 0x34]
lea eax, [eax + eax*4]
add eax, eax
mov dword [esp + 0x34], eax
mov dword [esi + 0x590], eax
mov dword [esi + 0x58c], eax
mov dword [esi + 0x4b0], 0x2070000
jmp case.0x45a369.38154
sub eax, 0x9612
je 0x45a555
sub eax, 2
je 0x45a555
sub eax, 0xfc
jne case.0x45a369.38154
cmp ebp, 0xffffffff
je 0x45a638
call fcn.00416b80
cmp dword [eax + 0x1c], 0
je 0x45a638
call fcn.00416b80
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [eax + 0x1c]
push 0x48
push ebp
push 0
call fcn.0054c338
and dword [esp + 0x38], 0xffff
call fcn.00416b80
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x3c]
push edx
add ecx, 4
push ecx
mov ecx, dword [eax + 0x1c]
push ebp
push 0
call fcn.0054c338
cmp dword [esp + 0x3c], 0x4d4f5441
jne 0x45a638
call fcn.00416b80
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x64]
push edx
add ecx, 0x20
push ecx
mov ecx, dword [eax + 0x1c]
push ebp
push 0
call fcn.0054c338
and dword [esp + 0x64], 0xffff
call fcn.00416b80
mov ecx, dword [esp + 0x64]
lea edx, [esp + 0x68]
push edx
add ecx, 0xc
push ecx
mov ecx, dword [eax + 0x1c]
push ebp
push 0
call fcn.0054c338
and dword [esp + 0x68], 0xffff
call fcn.00416b80
mov ecx, dword [esp + 0x68]
lea edx, [esp + 0x3c]
push edx
add ecx, 0x52
push ecx
mov ecx, dword [eax + 0x1c]
push ebp
push 0
call fcn.0054c338
movzx eax, word [esp + 0x3c]
lea eax, [eax + eax*4]
add eax, eax
mov dword [esp + 0x3c], eax
mov dword [esi + 0x58c], eax
mov dword [esi + 0x590], eax
mov dword [esi + 0x4b0], 0x2060000
mov ecx, dword [ebx + 0x14]
movzx eax, word [ecx + 6]
cmp eax, 0x6898
jg 0x45aa42
je 0x45aa2f
cmp eax, 0x6640
jg 0x45a78f
je 0x45a785
cmp eax, 0x4750
jg 0x45a6f7
je 0x45a6e4
cmp eax, 0x1316
jg 0x45a6b7
je 0x45a6a4
sub eax, 0x130f
je 0x45a691
sub eax, 4
jne case.0x45afac.39170
push str.AMD_Radeon_R7
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.AMD_Radeon_R5
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
sub eax, 0x4744
je 0x45a6d1
sub eax, 5
jne case.0x45afac.39170
push str.ATI_Mach64_GI__Rage_Pro_
jmp 0x45b02d
push str.ATI_Mach64_GD__Rage_Pro_
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.ATI_Mach64_GP__Rage_Pro_
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
cmp eax, 0x515e
jg 0x45a74f
je 0x45a745
sub eax, 0x4751
je 0x45a732
sub eax, 1
je 0x45a71f
sub eax, 3
jne case.0x45afac.39170
push str.ATI_Mach64_GT__Rage_II_
jmp 0x45b02d
push str.ATI_Mach64_GR__Rage_XL_XC_
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.ATI_Mach64_GQ__Rage_Pro_
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.ATI_ES1000
jmp 0x45b02d
sub eax, 0x5964
je 0x45a772
sub eax, 1
jne case.0x45afac.39170
push str.ATI_FireMV_2200_PCI
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.ATI_Radeon_9200_SE
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.AMD_Radeon_HD_8950
jmp 0x45b02d
cmp eax, 0x6798
jg 0x45a90f
je 0x45a905
sub eax, 0x6646
cmp eax, 0xf3
ja case.0x45afac.39170
movzx edx, byte [eax + 0x45b3d4]
jmp dword [edx*4 + 0x45b3a0]
cmp byte [ecx + 0xc], 0x80
jne 0x45a7da
push str.AMD_Radeon_R9_M385
lea eax, [esi + 0x10]
push 0x100
push eax
call fcn.00531f88
add esp, 0xc
push str.AMD_Radeon_R9_M280X
jmp 0x45b02d
cmp byte [ecx + 0xc], 0x80
jne 0x45a800
push str.AMD_Radeon_R9_M380
lea edx, [esi + 0x10]
push 0x100
push edx
call fcn.00531f88
add esp, 0xc
push str.AMD_Radeon_R9_M270X
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.AMD_FirePro_W5100
jmp 0x45b02d
push str.AMD_Radeon_R7_200
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.AMD_Radeon_HD_7700
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.AMD_Radeon_R7_200
jmp 0x45b02d
push str.AMD_Radeon_R7_300
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
movzx eax, byte [ecx + 0xc]
sub eax, 0x81
je 0x45a883
sub eax, 2
je 0x45a899
push str.AMD_Radeon_HD_8600M
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.AMD_Radeon_R5_M335
lea eax, [esi + 0x10]
push 0x100
push eax
call fcn.00531f88
add esp, 0xc
push str.AMD_Radeon_R5_M330
lea ecx, [esi + 0x10]
push 0x100
push ecx
call fcn.00531f88
add esp, 0xc
push str.AMD_Radeon_HD_8600M
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.AMD_Radeon_VII
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.AMD_Radeon_HD_6850
jmp 0x45b02d
push str.AMD_Radeon_HD_6870
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.AMD_Radeon_HD_6970
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.AMD_Radeon_HD_7970
jmp 0x45b02d
sub eax, 0x6810
cmp eax, 0x6f
ja case.0x45afac.39170
movzx edx, byte [eax + 0x45b4f0]
jmp dword [edx*4 + 0x45b4c8]
cmp byte [ecx + 0xc], 0
jne 0x45a947
push str.AMD_Radeon_HD_8800
lea eax, [esi + 0x10]
push 0x100
push eax
call fcn.00531f88
add esp, 0xc
push str.AMD_Radeon_R9_270
jmp 0x45b02d
cmp byte [ecx + 0xc], 0
jne 0x45a96d
push str.AMD_Radeon_HD_8800
lea edx, [esi + 0x10]
push 0x100
push edx
call fcn.00531f88
add esp, 0xc
push str.AMD_Radeon_R7_300
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.AMD_Radeon_HD_7800
jmp 0x45b02d
push str.AMD_Radeon_HD_7800
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.AMD_Radeon_HD_7700M
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.AMD_Radeon_HD_7730M
jmp 0x45b02d
push str.AMD_Radeon_HD_7700
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.AMD_Radeon_HD_7600M
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
movzx eax, byte [ecx + 0xc]
sub eax, 0xc0
je 0x45aa25
sub eax, 1
je 0x45aa12
sub eax, 2
je 0x45a9ff
push str.AMD_Radeon_RX_Vega
jmp 0x45b02d
push str.AMD_Radeon_RX_Vega_56
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.AMD_Radeon_RX_Vega_64
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.AMD_Radeon_RX_Vega_64
jmp 0x45b02d
push str.ATI_Radeon_HD_5870
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
cmp eax, 0x9440
jg 0x45ae35
je 0x45ae2b
cmp eax, 0x7188
jg 0x45ab5a
je 0x45ab47
cmp eax, 0x68c1
jg 0x45aae9
je 0x45aad6
sub eax, 0x6899
cmp eax, 0x25
ja case.0x45afac.39170
movzx eax, byte [eax + 0x45b578]
jmp dword [eax*4 + 0x45b560]
push str.ATI_Radeon_HD_5850
jmp 0x45b02d
push str.ATI_Radeon_HD_5900
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.ATI_Radeon_HD_5830
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.ATI_Radeon_HD_5770
jmp 0x45b02d
push str.ATI_Radeon_HD_5750
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.ATI_Mobility_Radeon_HD_5650
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
cmp eax, 0x6939
jg 0x45ab32
je 0x45ab1f
sub eax, 0x68d8
je 0x45ab0c
sub eax, 0x60
jne case.0x45afac.39170
push str.ATI_Radeon_R9_380X
jmp 0x45b02d
push str.ATI_Radeon_HD_5670
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.ATI_Radeon_R9_380
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
cmp eax, 0x6fdf
jne case.0x45afac.39170
push str.AMD_Radeon_RX_580_2048SP
jmp 0x45b02d
push str.ATI_Mobility_Radeon_X2300
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
cmp eax, 0x73df
jg 0x45acee
je 0x45acbd
cmp eax, 0x7340
jg 0x45ac51
je 0x45abf7
cmp eax, 0x71c0
je 0x45abe4
cmp eax, 0x731f
jne case.0x45afac.39170
movzx eax, byte [ecx + 0xc]
add eax, 0xffffff40
cmp eax, 0xa
ja case.0x45afac.39170
movzx eax, byte [eax + 0x45b5b4]
jmp dword [eax*4 + 0x45b5a0]
push str.AMD_Radeon_RX_5700_XT
jmp 0x45b02d
push str.AMD_Radeon_RX_5700_XT
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.AMD_Radeon_RX_5700
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.AMD_Radeon_RX_5600_XT
jmp 0x45b02d
push str.ATI_Radeon_X1600
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
movzx eax, byte [ecx + 0xc]
add eax, 0xffffff3f
cmp eax, 0xe
ja case.0x45afac.39170
movzx eax, byte [eax + 0x45b5d4]
jmp dword [eax*4 + 0x45b5c0]
push str.AMD_Radeon_RX_5500M
jmp 0x45b02d
push str.AMD_Radeon_RX_5500_XT
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.AMD_Radeon_RX_5500
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.AMD_Radeon_RX_5300
jmp 0x45b02d
sub eax, 0x73af
je 0x45acaa
sub eax, 0x10
jne case.0x45afac.39170
movzx eax, byte [ecx + 0xc]
sub eax, 0xc0
je 0x45aca0
sub eax, 1
je 0x45ac8d
sub eax, 2
jne case.0x45afac.39170
push str.AMD_Radeon_RX_6800
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.AMD_Radeon_RX_6800_XT
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.AMD_Radeon_RX_6900_XT
jmp 0x45b02d
push str.AMD_Radeon_RX_6900_XT
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
movzx eax, byte [ecx + 0xc]
sub eax, 0xc1
je 0x45ace4
sub eax, 1
jne case.0x45afac.39170
push str.AMD_Radeon_RX_6850M_XT
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.AMD_Radeon_RX_6700_XT
jmp 0x45b02d
sub eax, 0x73ef
cmp eax, 0x5d
ja case.0x45afac.39170
movzx edx, byte [eax + 0x45b5f8]
jmp dword [edx*4 + 0x45b5e4]
movzx eax, byte [ecx + 0xc]
add eax, 0xffffff40
cmp eax, 4
ja case.0x45afac.39170
jmp dword [eax*4 + 0x45b658]
push str.AMD_Radeon_RX_6800S
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.AMD_Radeon_RX_6700S
jmp 0x45b02d
push str.AMD_Radeon_RX_6650M
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.AMD_Radeon_RX_6650M_XT
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
movzx eax, byte [ecx + 0xc]
sub eax, 0xc1
je 0x45ad84
sub eax, 6
jne case.0x45afac.39170
push str.AMD_Radeon_RX_6600
jmp 0x45b02d
push str.AMD_Radeon_RX_6600_XT
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
movzx eax, byte [ecx + 0xc]
add eax, 0xffffff3f
cmp eax, 0xe
ja case.0x45afac.39170
movzx eax, byte [eax + 0x45b680]
jmp dword [eax*4 + 0x45b66c]
push str.AMD_Radeon_RX_6500_XT
jmp 0x45b02d
push str.AMD_Radeon_RX_6500M
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.AMD_Radeon_RX_6400
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.AMD_Radeon_RX_6300M
jmp 0x45b02d
movzx eax, byte [ecx + 0xc]
sub eax, 0xc8
je 0x45ae18
sub eax, 4
jne case.0x45afac.39170
push str.AMD_Radeon_RX_7900_XT
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.AMD_Radeon_RX_7900_XTX
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.ATI_Radeon_HD_4870
jmp 0x45b02d
cmp eax, 0x9802
jg 0x45af3e
je 0x45af34
cmp eax, 0x9490
jg 0x45aecb
je 0x45aeb8
sub eax, 0x9441
cmp eax, 0x1f
ja case.0x45afac.39170
movzx edx, byte [eax + 0x45b6a8]
jmp dword [edx*4 + 0x45b690]
push str.ATI_Radeon_HD_4870_X2
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.ATI_Radeon_HD_4850
jmp 0x45b02d
push str.ATI_Radeon_HD_4850_X2
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.ATI_Radeon_HD_4830
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.ATI_Radeon_HD_4890
jmp 0x45b02d
push str.ATI_Radeon_HD_4670
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
cmp eax, 0x9610
jg 0x45af16
je 0x45af03
cmp eax, 0x9498
je 0x45aef9
cmp eax, 0x954f
jne case.0x45afac.39170
push str.ATI_Radeon_HD_4350
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.ATI_Radeon_HD_4650
jmp 0x45b02d
push str.AMD_Radeon_HD_3200
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
cmp eax, 0x9644
jne case.0x45afac.39170
push str.AMD_Radeon_HD_6410D
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.AMD_Radeon_HD_6310
jmp 0x45b02d
cmp eax, 0x9900
jg 0x45af95
je 0x45af82
sub eax, 0x9803
je 0x45af34
sub eax, 1
je 0x45af6f
sub eax, 1
jne case.0x45afac.39170
push str.AMD_Radeon_HD_6250
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.AMD_Radeon_HD_6250
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.AMD_Radeon_HD_7660G
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
sub eax, 0x9901
cmp eax, 0x9c
ja case.0x45afac.39170
movzx eax, byte [eax + 0x45b6f4]
jmp dword [eax*4 + 0x45b6c8]
push str.AMD_Radeon_HD_7660D
jmp 0x45b02d
push str.AMD_Radeon_HD_8650G
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.AMD_Radeon_HD_8670D
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.AMD_Radeon_HD_8550G
jmp 0x45b02d
push str.AMD_Radeon_HD_8570D
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.AMD_Radeon_HD_8610G
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.AMD_Radeon_HD_8410G
jmp 0x45b02d
push str.AMD_Radeon_HD_8310G
push 0x100
lea edx, [esi + 0x10]
push edx
jmp 0x45b036
push str.AMD_Radeon_HD_8650D
push 0x100
lea eax, [esi + 0x10]
push eax
jmp 0x45b036
push str.AMD_Radeon_HD_8550D
push 0x100
lea ecx, [esi + 0x10]
push ecx
call fcn.00531f88
add esp, 0xc
mov ecx, dword [esp + 0x6c]
push esi
call fcn.00456f80
mov ebx, dword [esp + 0x80]
test ebx, ebx
je 0x45b06e
mov eax, dword [ebx + 8]
test eax, eax
je 0x45b06e
mov esi, dword [eax + 4]
mov ebx, eax
mov dword [esp + 0x80], ebx
test esi, esi
jne 0x459a21
mov eax, edi
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret