Function at 0x4a9275
Capabilities:
Link many functions at runtime

Disassembly:
sub esp, 0x990
mov eax, dword [0x6015a8]
xor eax, esp
mov dword [esp + 0x98c], eax
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [esi + 0x10c], ebx
lea eax, [esi + 0x4f8]
mov ecx, 0xfa
lea esp, [esp]
mov dword [eax - 0x3e8], ebx
mov dword [eax], ebx
add eax, 4
sub ecx, 1
jne 0x4a9290
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.atiadlxx.dll
call edi
mov dword [esi + 0x108], eax
cmp eax, ebx
jne 0x4a92c4
push str.atiadlxy.dll
call edi
mov dword [esi + 0x108], eax
mov eax, dword [esi + 0x108]
cmp eax, ebx
je 0x4a9bc9
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.ADL_Main_Control_Create
push eax
call edi
mov dword [esi + 0x10b0], eax
mov eax, dword [esi + 0x108]
push str.ADL_Main_Control_Destroy
push eax
call edi
mov ecx, dword [esi + 0x108]
push str.ADL_Adapter_NumberOfAdapters_Get
push ecx
mov dword [esi + 0x10b4], eax
call edi
mov edx, dword [esi + 0x108]
push str.ADL_Adapter_AdapterInfo_Get
push edx
mov dword [esi + 0x10b8], eax
call edi
mov dword [esi + 0x10bc], eax
mov eax, dword [esi + 0x108]
push str.ADL_Adapter_Active_Get
push eax
call edi
mov ecx, dword [esi + 0x108]
push str.ADL_Display_ColorCaps_Get
push ecx
mov dword [esi + 0x10c0], eax
call edi
mov edx, dword [esi + 0x108]
push str.ADL_Display_Color_Get
push edx
mov dword [esi + 0x10c4], eax
call edi
mov dword [esi + 0x10c8], eax
mov eax, dword [esi + 0x108]
push str.ADL_Display_Color_Set
push eax
call edi
mov ecx, dword [esi + 0x108]
push str.ADL_Display_DisplayInfo_Get
push ecx
mov dword [esi + 0x10cc], eax
call edi
mov edx, dword [esi + 0x108]
push str.ADL_Adapter_MemoryInfo_Get
push edx
mov dword [esi + 0x10d0], eax
call edi
mov dword [esi + 0x10d4], eax
mov eax, dword [esi + 0x108]
push str.ADL_Adapter_MemoryInfo3_Get
push eax
call edi
mov ecx, dword [esi + 0x108]
push str.ADL_Adapter_ClockInfo_Get
push ecx
mov dword [esi + 0x10d8], eax
call edi
mov edx, dword [esi + 0x108]
push str.ADL2_Main_Control_Create
push edx
mov dword [esi + 0x10dc], eax
call edi
mov dword [esi + 0x10e0], eax
mov eax, dword [esi + 0x108]
push str.ADL2_Main_Control_Destroy
push eax
call edi
mov ecx, dword [esi + 0x108]
push str.ADL2_Adapter_Active_Get
push ecx
mov dword [esi + 0x10e4], eax
call edi
mov edx, dword [esi + 0x108]
push str.ADL2_Adapter_PMLog_Support_Get
push edx
mov dword [esi + 0x10e8], eax
call edi
mov dword [esi + 0x10ec], eax
push str.ADL2_Adapter_PMLog_Start
mov eax, dword [esi + 0x108]
push eax
call edi
mov ecx, dword [esi + 0x108]
push str.ADL2_Adapter_PMLog_Stop
push ecx
mov dword [esi + 0x10f0], eax
call edi
mov edx, dword [esi + 0x108]
push str.ADL2_Desktop_Device_Create
push edx
mov dword [esi + 0x10f4], eax
call edi
mov dword [esi + 0x10f8], eax
mov eax, dword [esi + 0x108]
push str.ADL2_Desktop_Device_Destroy
push eax
call edi
mov ecx, dword [esi + 0x108]
push str.ADL2_New_QueryPMLogData_Get
push ecx
mov dword [esi + 0x10fc], eax
call edi
mov edx, dword [esi + 0x108]
push str.ADL2_Adapter_VideoBiosInfo_Get
push edx
mov dword [esi + 0x1100], eax
call edi
mov dword [esi + 0x1104], eax
mov eax, dword [esi + 0x108]
push str.ADL2_Adapter_Graphic_Core_Info_Get
push eax
call edi
mov ecx, dword [esi + 0x108]
push str.ADL_Overdrive5_Temperature_Get
push ecx
mov dword [esi + 0x1108], eax
call edi
mov edx, dword [esi + 0x108]
push str.ADL_Overdrive5_FanSpeedInfo_Get
push edx
mov dword [esi + 0x110c], eax
call edi
mov dword [esi + 0x1110], eax
mov eax, dword [esi + 0x108]
push str.ADL_Overdrive5_FanSpeed_Get
push eax
call edi
mov ecx, dword [esi + 0x108]
push str.ADL_Overdrive5_CurrentActivity_Get
push ecx
mov dword [esi + 0x1114], eax
call edi
mov edx, dword [esi + 0x108]
push str.ADL_Overdrive5_ODParameters_Get
push edx
mov dword [esi + 0x1118], eax
call edi
mov dword [esi + 0x111c], eax
mov eax, dword [esi + 0x108]
push str.ADL_Overdrive5_ODPerformanceLevels_Get
push eax
call edi
mov ecx, dword [esi + 0x108]
push str.ADL_Overdrive5_PowerControl_Get
push ecx
mov dword [esi + 0x1120], eax
call edi
mov edx, dword [esi + 0x108]
push str.ADL_Overdrive6_CurrentStatus_Get
push edx
mov dword [esi + 0x1124], eax
call edi
mov dword [esi + 0x1128], eax
mov eax, dword [esi + 0x108]
push str.ADL_Overdrive6_FanSpeed_Get
push eax
call edi
mov ecx, dword [esi + 0x108]
mov dword [esi + 0x112c], eax
push str.ADL2_Overdrive6_CurrentPower_Get
push ecx
call edi
mov edx, dword [esi + 0x108]
push str.ADL2_Overdrive8_Init_Setting_Get
push edx
mov dword [esi + 0x1130], eax
call edi
mov dword [esi + 0x1134], eax
mov eax, dword [esi + 0x108]
push str.ADL2_Overdrive8_Init_SettingX2_Get
push eax
call edi
mov ecx, dword [esi + 0x108]
push str.ADL2_OverdriveN_Capabilities_Get
push ecx
mov dword [esi + 0x1138], eax
call edi
mov edx, dword [esi + 0x108]
push str.ADL2_OverdriveN_CapabilitiesX2_Get
push edx
mov dword [esi + 0x113c], eax
call edi
mov dword [esi + 0x1140], eax
mov eax, dword [esi + 0x108]
push str.ADL2_OverdriveN_PowerLimit_Get
push eax
call edi
mov dword [esi + 0x1144], eax
mov eax, dword [esi + 0x10b0]
cmp eax, ebx
je 0x4a9bc9
push 1
push 0x4a8dc0
call eax
add esp, 8
test eax, eax
jne 0x4a9bc9
mov ecx, dword [esi + 0x10b8]
mov dword [esp + 0xc], eax
cmp ecx, ebx
je 0x4a9608
lea edx, [esp + 0xc]
push edx
call ecx
mov eax, dword [esp + 0x10]
add esp, 4
mov ecx, dword [esi + 0x10e0]
cmp ecx, ebx
je 0x4a9629
lea eax, [esi + 0x10c]
push eax
push 1
push 0x4a8dc0
call ecx
mov eax, dword [esp + 0x18]
add esp, 0xc
cmp eax, ebx
jle 0x4a9bbd
imul eax, eax, 0x624
push ebp
push eax
call fcn.0056411b
mov ebp, eax
mov eax, dword [esp + 0x14]
imul eax, eax, 0x624
push eax
push ebx
push ebp
mov dword [esp + 0x28], ebp
call fcn.005635a0
mov eax, dword [esi + 0x10bc]
add esp, 0x10
cmp eax, ebx
je 0x4a9674
mov ecx, dword [esp + 0x10]
imul ecx, ecx, 0x624
push ecx
push ebp
call eax
add esp, 8
cmp dword [esp + 0x10], ebx
mov dword [esp + 0x1c], ebx
jle 0x4a9b92
lea ebx, [ebp + 0x110]
mov dword [esp + 0x14], ebx
lea esp, [esp]
mov eax, dword [esi + 0x10c0]
mov edi, dword [ebx - 0x10c]
test eax, eax
je 0x4a9b75
lea edx, [esp + 0x20]
push edx
push edi
mov dword [esp + 0x28], 0
call eax
add esp, 8
test eax, eax
jne 0x4a9b75
call fcn.00461b70
mov ecx, eax
call fcn.0045dc90
test eax, eax
je 0x4a9b75
mov eax, dword [ebx]
mov ecx, dword [ebx - 4]
mov edx, dword [ebx - 8]
push eax
push ecx
push edx
call fcn.00461b70
mov ecx, eax
call fcn.0045dc90
mov ecx, eax
call fcn.00471e90
mov ebp, eax
test ebp, ebp
je 0x4a9b71
mov ecx, ebp
call fcn.0047ce30
cmp eax, 0x1002
jne 0x4a9b71
push edi
push esi
mov ecx, ebp
call fcn.0047abc0
mov eax, dword [esp + 0x14]
add eax, 8
push eax
lea edi, [ebp + 0x10]
push 0x100
push edi
call fcn.00564635
add esp, 0xc
mov ecx, ebp
call fcn.0047ac60
mov ebx, eax
test ebx, ebx
je case.0x4a99d8.29606
mov eax, dword [ebx + 0x18]
mov ecx, 0x687f
cmp word [eax + 6], cx
jne 0x4a977d
movzx eax, byte [eax + 0xc]
sub eax, 0xc0
je 0x4a976a
sub eax, 1
je 0x4a976a
sub eax, 2
jne 0x4a977d
push str.AMD_Radeon_RX_Vega_56
jmp 0x4a976f
push str.AMD_Radeon_RX_Vega_64
push 0x100
push edi
call fcn.00564635
add esp, 0xc
mov edx, dword [ebx + 0x18]
movzx eax, word [edx + 6]
cmp eax, 0x7340
jg 0x4a99c5
je case.0x4a99d8.29605
cmp eax, 0x164e
jg 0x4a9892
je case.0x4a99d8.29605
cmp eax, 0x15dd
jg 0x4a9881
je 0x4a98b5
cmp eax, 0x1506
je case.0x4a99d8.29605
cmp eax, 0x15bf
jne case.0x4a99d8.29606
cmp dword [esi + 0x10c], 0
je case.0x4a99d8.29606
cmp dword [esi + 0x10ec], 0
je case.0x4a99d8.29606
cmp dword [esi + 0x1100], 0
je case.0x4a99d8.29606
push esi
mov ecx, ebp
call fcn.0047ac10
mov edi, eax
xor ebx, ebx
cmp dword [esi + edi*4 + 0x8e0], ebx
jne case.0x4a99d8.29606
push 0x240
call fcn.00551d80
push eax
mov dword [esi + edi*4 + 0x8e0], eax
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x10ec]
push edi
push eax
call ecx
add esp, 0x10
test eax, eax
jne 0x4a99df
cmp dword [esi + edi*4 + 0xcc8], ebx
jne case.0x4a99d8.29606
push 0x804
call fcn.00551d80
push eax
mov dword [esi + edi*4 + 0xcc8], eax
mov edx, dword [esi + 0x10c]
mov eax, dword [esi + 0x1100]
push edi
push edx
call eax
add esp, 0x10
test eax, eax
je case.0x4a99d8.29606
mov ecx, dword [esi + edi*4 + 0xcc8]
push ecx
call fcn.00551dba
mov dword [esi + edi*4 + 0xcc8], ebx
jmp 0x4a99f3
sub eax, 0x1636
je 0x4a98b5
sub eax, 2
je 0x4a98b5
jmp case.0x4a99d8.29606
cmp eax, 0x687f
jg 0x4a99b8
je 0x4a98b5
cmp eax, 0x1681
je case.0x4a99d8.29605
cmp eax, 0x66af
jne case.0x4a99d8.29606
cmp dword [esi + 0x10f8], 0
je case.0x4a99d8.29606
cmp dword [esi + 0x10ec], 0
je case.0x4a99d8.29606
cmp dword [esi + 0x10f0], 0
je case.0x4a99d8.29606
cmp dword [esi + 0x10f4], 0
je case.0x4a99d8.29606
push esi
mov ecx, ebp
call fcn.0047ac10
mov edi, eax
cmp dword [esi + edi*4 + 0x110], 0
lea ebx, [esi + edi*4 + 0x110]
jne case.0x4a99d8.29606
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x10f8]
push ebx
push edi
push eax
call ecx
add esp, 0xc
test eax, eax
jne case.0x4a99d8.29606
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x10ec]
lea edx, [esp + 0x75c]
push edx
push edi
push eax
call ecx
add esp, 0xc
test eax, eax
jne case.0x4a99d8.29606
mov cx, word [esp + 0x75c]
xor edx, edx
test cx, cx
je 0x4a9979
movzx ecx, cx
lea esp, [esp]
inc edx
mov word [esp + eax + 0x45c], cx
lea eax, [edx + edx]
movzx ecx, word [esp + eax + 0x75c]
test cx, cx
jne 0x4a9960
mov edx, dword [ebx]
push edx
mov edx, dword [esi + 0x10c]
lea eax, [esp + 0x34]
push eax
mov eax, dword [esi + 0x10f0]
lea ecx, [esp + 0x464]
push ecx
push edi
push edx
mov dword [esp + 0x670], 0x3e8
call eax
add esp, 0x14
test eax, eax
jne case.0x4a99d8.29606
mov ecx, dword [esp + 0x30]
mov dword [esi + edi*4 + 0x4f8], ecx
jmp case.0x4a99d8.29606
cmp eax, 0x731f
je case.0x4a99d8.29605
jmp case.0x4a99d8.29606
sub eax, 0x73a5
cmp eax, 0xdb
ja case.0x4a99d8.29606
movzx edx, byte [eax + 0x4a9c04]
jmp dword [edx*4 + 0x4a9bfc]
mov edx, dword [esi + edi*4 + 0x8e0]
push edx
call fcn.00551dba
mov dword [esi + edi*4 + 0x8e0], ebx
add esp, 4
cmp dword [esi + 0x1134], 0
je 0x4a9a44
push 0x278
lea eax, [esp + 0x1e8]
push 0
push eax
call fcn.005635a0
add esp, 0xc
lea ecx, [esp + 0x1e4]
push ecx
push esi
mov ecx, ebp
mov dword [esp + 0x1ec], 0x27
call fcn.0047ac10
mov edx, dword [esi + 0x10c]
push eax
mov eax, dword [esi + 0x1134]
push edx
call eax
add esp, 0xc
cmp dword [esi + 0x1104], 0
je 0x4a9a70
lea ecx, [esp + 0x45c]
push ecx
push esi
mov ecx, ebp
call fcn.0047ac10
mov edx, dword [esi + 0x10c]
push eax
mov eax, dword [esi + 0x1104]
push edx
call eax
add esp, 0xc
cmp dword [esi + 0x1108], 0
je 0x4a9ab6
lea ecx, [esp + 0x30]
push ecx
push esi
mov ecx, ebp
call fcn.0047ac10
mov edx, dword [esi + 0x10c]
push eax
mov eax, dword [esi + 0x1108]
push edx
call eax
add esp, 0xc
test eax, eax
jne 0x4a9ab6
mov edx, dword [esp + 0x38]
imul edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
mov dword [ebp + 0x4b8], ecx
mov dword [ebp + 0x4bc], edx
cmp dword [esi + 0x113c], 0
je 0x4a9af3
push 0xa4
lea eax, [esp + 0x74]
push 0
push eax
call fcn.005635a0
add esp, 0xc
lea ecx, [esp + 0x70]
push ecx
push esi
mov ecx, ebp
call fcn.0047ac10
mov edx, dword [esi + 0x10c]
push eax
mov eax, dword [esi + 0x113c]
push edx
call eax
add esp, 0xc
cmp dword [esi + 0x1140], 0
je 0x4a9b36
push 0xd0
lea ecx, [esp + 0x118]
push 0
push ecx
call fcn.005635a0
add esp, 0xc
lea edx, [esp + 0x114]
push edx
push esi
mov ecx, ebp
call fcn.0047ac10
mov ecx, dword [esi + 0x1140]
push eax
mov eax, dword [esi + 0x10c]
push eax
call ecx
add esp, 0xc
cmp dword [esi + 0x1144], 0
je 0x4a9b6d
lea edx, [esp + 0x24]
xor eax, eax
push edx
push esi
mov ecx, ebp
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
call fcn.0047ac10
mov ecx, dword [esi + 0x1144]
push eax
mov eax, dword [esi + 0x10c]
push eax
call ecx
add esp, 0xc
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc eax
add ebx, 0x624
cmp eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebx
jl 0x4a9690
test ebp, ebp
je 0x4a9b9f
push ebp
call fcn.00564225
add esp, 4
pop ebp
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x98c]
xor ecx, esp
call fcn.00562d51
add esp, 0x990
ret
mov eax, dword [esi + 0x10b4]
cmp eax, ebx
je 0x4a9bc9
call eax
mov eax, dword [esi + 0x108]
cmp eax, ebx
je 0x4a9be0
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [esi + 0x108], ebx
mov ecx, dword [esp + 0x998]
pop edi
pop esi
mov eax, ebx
pop ebx
xor ecx, esp
call fcn.00562d51
add esp, 0x990
ret