Function at 0x100e2030
Capabilities:
Enumerate pe sections
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x9ac
mov eax, dword [0x10206870]
xor eax, esp
mov dword [esp + 0x9a8], eax
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x108]
xor ebx, ebx
push edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], eax
cmp eax, ebx
jne 0x100e207a
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x9a8]
xor ecx, esp
call fcn.1003dc89
mov esp, ebp
pop ebp
ret
mov eax, dword [eax + 4]
cmp dword [eax + 0x1c], ebx
je 0x100e2063
mov dword [esi + 0x110], ebx
lea eax, [esi + 0x4fc]
mov ecx, 0xfa
mov dword [eax - 0x3e8], ebx
mov dword [eax], ebx
add eax, 4
sub ecx, 1
jne 0x100e2093
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.atiadlxx.dll
call edi
mov dword [esi + 0x10c], eax
cmp eax, ebx
jne 0x100e20c7
push str.atiadlxy.dll
call edi
mov dword [esi + 0x10c], eax
mov eax, dword [esi + 0x10c]
cmp eax, ebx
je 0x100e29d9
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.ADL_Main_Control_Create
push eax
call edi
mov ecx, dword [esi + 0x10c]
push str.ADL_Main_Control_Destroy
push ecx
mov dword [esi + 0x10b4], eax
call edi
mov edx, dword [esi + 0x10c]
push str.ADL_Adapter_NumberOfAdapters_Get
push edx
mov dword [esi + 0x10b8], eax
call edi
mov dword [esi + 0x10bc], eax
mov eax, dword [esi + 0x10c]
push str.ADL_Adapter_AdapterInfo_Get
push eax
call edi
mov ecx, dword [esi + 0x10c]
push str.ADL_Adapter_Active_Get
push ecx
mov dword [esi + 0x10c0], eax
call edi
mov edx, dword [esi + 0x10c]
push str.ADL_Display_ColorCaps_Get
push edx
mov dword [esi + 0x10c4], eax
call edi
mov dword [esi + 0x10c8], eax
mov eax, dword [esi + 0x10c]
push str.ADL_Display_Color_Get
push eax
call edi
mov ecx, dword [esi + 0x10c]
push str.ADL_Display_Color_Set
push ecx
mov dword [esi + 0x10cc], eax
call edi
mov edx, dword [esi + 0x10c]
push str.ADL_Display_DisplayInfo_Get
push edx
mov dword [esi + 0x10d0], eax
call edi
mov dword [esi + 0x10d4], eax
mov eax, dword [esi + 0x10c]
push str.ADL_Adapter_MemoryInfo_Get
push eax
call edi
mov ecx, dword [esi + 0x10c]
push str.ADL_Adapter_MemoryInfo3_Get
push ecx
mov dword [esi + 0x10d8], eax
call edi
mov edx, dword [esi + 0x10c]
push str.ADL_Adapter_ClockInfo_Get
push edx
mov dword [esi + 0x10dc], eax
call edi
mov dword [esi + 0x10e0], eax
mov eax, dword [esi + 0x10c]
push str.ADL2_Main_Control_Create
push eax
call edi
mov ecx, dword [esi + 0x10c]
push str.ADL2_Main_Control_Destroy
push ecx
mov dword [esi + 0x10e4], eax
call edi
mov edx, dword [esi + 0x10c]
push str.ADL2_Adapter_Active_Get
push edx
mov dword [esi + 0x10e8], eax
call edi
mov dword [esi + 0x10ec], eax
mov eax, dword [esi + 0x10c]
push str.ADL2_Adapter_PMLog_Support_Get
push eax
call edi
mov dword [esi + 0x10f0], eax
push str.ADL2_Adapter_PMLog_Start
mov ecx, dword [esi + 0x10c]
push ecx
call edi
mov edx, dword [esi + 0x10c]
push str.ADL2_Adapter_PMLog_Stop
push edx
mov dword [esi + 0x10f4], eax
call edi
mov dword [esi + 0x10f8], eax
mov eax, dword [esi + 0x10c]
push str.ADL2_Desktop_Device_Create
push eax
call edi
mov ecx, dword [esi + 0x10c]
push str.ADL2_Desktop_Device_Destroy
push ecx
mov dword [esi + 0x10fc], eax
call edi
mov edx, dword [esi + 0x10c]
push str.ADL2_New_QueryPMLogData_Get
push edx
mov dword [esi + 0x1100], eax
call edi
mov dword [esi + 0x1104], eax
mov eax, dword [esi + 0x10c]
push str.ADL2_Adapter_VideoBiosInfo_Get
push eax
call edi
mov ecx, dword [esi + 0x10c]
push str.ADL2_Adapter_Graphic_Core_Info_Get
push ecx
mov dword [esi + 0x1108], eax
call edi
mov edx, dword [esi + 0x10c]
push str.ADL_Overdrive5_Temperature_Get
push edx
mov dword [esi + 0x110c], eax
call edi
mov dword [esi + 0x1110], eax
mov eax, dword [esi + 0x10c]
push str.ADL_Overdrive5_FanSpeedInfo_Get
push eax
call edi
mov ecx, dword [esi + 0x10c]
push str.ADL_Overdrive5_FanSpeed_Get
push ecx
mov dword [esi + 0x1114], eax
call edi
mov edx, dword [esi + 0x10c]
push str.ADL_Overdrive5_CurrentActivity_Get
push edx
mov dword [esi + 0x1118], eax
call edi
mov dword [esi + 0x111c], eax
mov eax, dword [esi + 0x10c]
push str.ADL_Overdrive5_ODParameters_Get
push eax
call edi
mov ecx, dword [esi + 0x10c]
push str.ADL_Overdrive5_ODPerformanceLevels_Get
push ecx
mov dword [esi + 0x1120], eax
call edi
mov edx, dword [esi + 0x10c]
push str.ADL_Overdrive5_PowerControl_Get
push edx
mov dword [esi + 0x1124], eax
call edi
mov dword [esi + 0x1128], eax
mov eax, dword [esi + 0x10c]
push str.ADL_Overdrive6_CurrentStatus_Get
push eax
call edi
mov ecx, dword [esi + 0x10c]
push str.ADL_Overdrive6_FanSpeed_Get
push ecx
mov dword [esi + 0x112c], eax
call edi
mov edx, dword [esi + 0x10c]
mov dword [esi + 0x1130], eax
push str.ADL2_Overdrive6_CurrentPower_Get
push edx
call edi
mov dword [esi + 0x1134], eax
mov eax, dword [esi + 0x10c]
push str.ADL2_Overdrive8_Init_Setting_Get
push eax
call edi
mov ecx, dword [esi + 0x10c]
push str.ADL2_Overdrive8_Init_SettingX2_Get
push ecx
mov dword [esi + 0x1138], eax
call edi
mov edx, dword [esi + 0x10c]
push str.ADL2_OverdriveN_Capabilities_Get
push edx
mov dword [esi + 0x113c], eax
call edi
mov dword [esi + 0x1140], eax
mov eax, dword [esi + 0x10c]
push str.ADL2_OverdriveN_CapabilitiesX2_Get
push eax
call edi
mov ecx, dword [esi + 0x10c]
push str.ADL2_OverdriveN_PowerLimit_Get
push ecx
mov dword [esi + 0x1144], eax
call edi
mov dword [esi + 0x1148], eax
mov eax, dword [esi + 0x10b4]
cmp eax, ebx
je 0x100e29d9
push 1
push 0x100dfa40
call eax
add esp, 8
test eax, eax
jne 0x100e29d9
mov ecx, dword [esi + 0x10bc]
mov dword [esp + 0x10], eax
cmp ecx, ebx
je 0x100e240b
lea edx, [esp + 0x10]
push edx
call ecx
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esi + 0x10e4]
cmp ecx, ebx
je 0x100e242c
lea eax, [esi + 0x110]
push eax
push 1
push 0x100dfa40
call ecx
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp eax, ebx
jle 0x100e29cd
imul eax, eax, 0x624
push eax
mov dword [esp + 0x20], 1
call fcn.1003e892
mov edi, eax
mov eax, dword [esp + 0x14]
imul eax, eax, 0x624
add esp, 4
push eax
push ebx
push edi
mov dword [esp + 0x2c], edi
call fcn.1003f7d0
mov eax, dword [esi + 0x10c0]
add esp, 0xc
cmp eax, ebx
je 0x100e2481
mov ecx, dword [esp + 0x10]
imul ecx, ecx, 0x624
push ecx
push edi
call eax
add esp, 8
cmp dword [esp + 0x10], ebx
mov dword [esp + 0x24], ebx
jle 0x100e29a0
mov ebx, dword [esp + 0x20]
add ebx, 0x110
mov dword [esp + 0x18], ebx
lea ecx, [ecx]
mov eax, dword [esi + 0x10c4]
mov ecx, dword [ebx - 0x10c]
mov dword [esp + 0x2c], ecx
test eax, eax
je 0x100e2983
lea edx, [esp + 0x30]
push edx
push ecx
mov dword [esp + 0x38], 0
call eax
add esp, 8
test eax, eax
jne 0x100e2983
mov eax, dword [ebx - 4]
mov ecx, dword [ebx - 8]
mov edi, dword [ebx]
push eax
mov eax, dword [esp + 0x2c]
push ecx
call fcn.1007d590
mov dword [esp + 0x14], eax
test eax, eax
je 0x100e2983
mov ecx, eax
call fcn.100e3800
cmp eax, 0x1002
jne 0x100e2983
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
push edx
mov eax, ebx
call fcn.100e3830
mov eax, dword [esp + 0x18]
add eax, 8
push eax
lea edi, [ebx + 0x10]
push 0x100
push edi
call fcn.1003dc98
add esp, 0xc
mov eax, ebx
call fcn.100e3710
mov ebx, eax
test ebx, ebx
je case.0x100e27ea.29606
mov eax, dword [ebx + 0x18]
mov ecx, 0x687f
cmp word [eax + 6], cx
jne 0x100e2582
movzx eax, byte [eax + 0xc]
sub eax, 0xc0
je 0x100e256f
sub eax, 1
je 0x100e2568
sub eax, 2
jne 0x100e2582
push str.AMD_Radeon_RX_Vega_56
jmp 0x100e2574
push str.AMD_Radeon_RX_Vega_64
jmp 0x100e2574
push 0x101c92e8
push 0x100
push edi
call fcn.1003dc98
add esp, 0xc
mov edx, dword [ebx + 0x18]
movzx eax, word [edx + 6]
cmp eax, 0x7340
jg 0x100e27d7
je case.0x100e27ea.29605
cmp eax, 0x1638
jg 0x100e279c
je 0x100e269f
cmp eax, 0x15c8
jg 0x100e268f
je case.0x100e27ea.29605
cmp eax, 0x1506
je case.0x100e27ea.29605
cmp eax, 0x15bf
jne case.0x100e27ea.29606
cmp dword [esi + 0x110], 0
je case.0x100e27ea.29606
cmp dword [esi + 0x10f0], 0
je case.0x100e27ea.29606
cmp dword [esi + 0x1104], 0
je case.0x100e27ea.29606
mov eax, dword [esp + 0x14]
mov edx, esi
call fcn.100e34a0
mov edi, eax
xor ebx, ebx
cmp dword [esi + edi*4 + 0x8e4], ebx
jne case.0x100e27ea.29606
push 0x240
call fcn.1003ddbb
add esp, 4
push eax
mov dword [esi + edi*4 + 0x8e4], eax
mov edx, dword [esi + 0x110]
mov eax, dword [esi + 0x10f0]
push edi
push edx
call eax
add esp, 0xc
test eax, eax
jne 0x100e27f1
cmp dword [esi + edi*4 + 0xccc], ebx
jne case.0x100e27ea.29606
push 0x804
call fcn.1003ddbb
add esp, 4
push eax
mov dword [esi + edi*4 + 0xccc], eax
mov ecx, dword [esi + 0x110]
mov edx, dword [esi + 0x1104]
push edi
push ecx
call edx
add esp, 0xc
test eax, eax
je case.0x100e27ea.29606
mov eax, dword [esi + edi*4 + 0xccc]
push eax
call fcn.1003dc7e
mov dword [esi + edi*4 + 0xccc], ebx
jmp 0x100e2805
sub eax, 0x15dd
je 0x100e269f
sub eax, 0x59
jne case.0x100e27ea.29606
cmp dword [esi + 0x10fc], 0
je case.0x100e27ea.29606
cmp dword [esi + 0x10f0], 0
je case.0x100e27ea.29606
cmp dword [esi + 0x10f4], 0
je case.0x100e27ea.29606
cmp dword [esi + 0x10f8], 0
je case.0x100e27ea.29606
mov eax, dword [esp + 0x14]
mov edx, esi
call fcn.100e34a0
mov edi, eax
cmp dword [esi + edi*4 + 0x114], 0
lea ebx, [esi + edi*4 + 0x114]
jne case.0x100e27ea.29606
mov eax, dword [esi + 0x110]
push ebx
push edi
push eax
call dword [esi + 0x10fc]
add esp, 0xc
test eax, eax
jne case.0x100e27ea.29606
mov edx, dword [esi + 0x110]
mov eax, dword [esi + 0x10f0]
lea ecx, [esp + 0x470]
push ecx
push edi
push edx
call eax
add esp, 0xc
test eax, eax
jne case.0x100e27ea.29606
mov cx, word [esp + 0x470]
xor edx, edx
test cx, cx
je 0x100e275d
movzx ecx, cx
inc edx
mov word [esp + eax + 0x6b0], cx
lea eax, [edx + edx]
movzx ecx, word [esp + eax + 0x470]
test cx, cx
jne 0x100e2744
mov ecx, dword [ebx]
push ecx
mov ecx, dword [esi + 0x110]
lea edx, [esp + 0x44]
push edx
mov edx, dword [esi + 0x10f4]
lea eax, [esp + 0x6b8]
push eax
push edi
push ecx
mov dword [esp + 0x8c4], 0x3e8
call edx
add esp, 0x14
test eax, eax
jne case.0x100e27ea.29606
mov eax, dword [esp + 0x40]
mov dword [esi + edi*4 + 0x4fc], eax
jmp case.0x100e27ea.29606
cmp eax, 0x66af
jg 0x100e27bf
je 0x100e269f
sub eax, 0x164e
je case.0x100e27ea.29605
sub eax, 0x33
je case.0x100e27ea.29605
jmp case.0x100e27ea.29606
cmp eax, 0x687f
je 0x100e269f
cmp eax, 0x731f
je case.0x100e27ea.29605
jmp case.0x100e27ea.29606
sub eax, 0x73a5
cmp eax, 0xdb
ja case.0x100e27ea.29606
movzx ecx, byte [eax + 0x100e2a14]
jmp dword [ecx*4 + 0x100e2a0c]
mov ecx, dword [esi + edi*4 + 0x8e4]
push ecx
call fcn.1003dc7e
mov dword [esi + edi*4 + 0x8e4], ebx
add esp, 4
mov ebx, dword [esi + 0x1138]
test ebx, ebx
je 0x100e2858
push 0x278
lea edx, [esp + 0x1fc]
push 0
push edx
call fcn.1003f7d0
mov edi, dword [esp + 0x20]
add esp, 0xc
lea eax, [esp + 0x1f8]
push eax
mov edx, esi
mov eax, edi
mov dword [esp + 0x1fc], 0x27
call fcn.100e34a0
mov ecx, dword [esi + 0x110]
push eax
push ecx
call ebx
add esp, 0xc
jmp 0x100e285c
mov edi, dword [esp + 0x14]
mov ebx, dword [esi + 0x1108]
test ebx, ebx
je 0x100e2884
lea edx, [esp + 0x6b0]
push edx
mov edx, esi
mov eax, edi
call fcn.100e34a0
push eax
mov eax, dword [esi + 0x110]
push eax
call ebx
add esp, 0xc
mov ebx, dword [esi + 0x110c]
test ebx, ebx
je 0x100e28c6
lea ecx, [esp + 0x40]
push ecx
mov edx, esi
mov eax, edi
call fcn.100e34a0
mov edx, dword [esi + 0x110]
push eax
push edx
call ebx
add esp, 0xc
test eax, eax
jne 0x100e28c6
mov ecx, dword [esp + 0x48]
imul ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x50]
mov dword [edi + 0x398], eax
mov dword [edi + 0x39c], ecx
mov ebx, dword [esi + 0x1140]
test ebx, ebx
je 0x100e2905
push 0xa4
lea edx, [esp + 0x84]
push 0
push edx
call fcn.1003f7d0
add esp, 0xc
lea eax, [esp + 0x80]
push eax
mov edx, esi
mov eax, edi
call fcn.100e34a0
mov ecx, dword [esi + 0x110]
push eax
push ecx
call ebx
add esp, 0xc
mov ebx, dword [esi + 0x1144]
test ebx, ebx
je 0x100e2944
push 0xd0
lea edx, [esp + 0x12c]
push 0
push edx
call fcn.1003f7d0
add esp, 0xc
lea eax, [esp + 0x128]
push eax
mov edx, esi
mov eax, edi
call fcn.100e34a0
mov ecx, dword [esi + 0x110]
push eax
push ecx
call ebx
add esp, 0xc
mov ebx, dword [esi + 0x1148]
test ebx, ebx
je 0x100e2977
xor eax, eax
lea edx, [esp + 0x34]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
push edx
mov edx, esi
mov eax, edi
call fcn.100e34a0
push eax
mov eax, dword [esi + 0x110]
push eax
call ebx
add esp, 0xc
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x1c], 1
mov eax, dword [esp + 0x24]
inc eax
add ebx, 0x624
cmp eax, dword [esp + 0x10]
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], ebx
jl 0x100e24a0
cmp dword [esp + 0x20], 0
je 0x100e29f0
mov ecx, dword [esp + 0x20]
push ecx
call fcn.1003e7b5
mov eax, dword [esp + 0x20]
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x9a8]
xor ecx, esp
call fcn.1003dc89
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x10b8]
cmp eax, ebx
je 0x100e29d9
call eax
mov eax, dword [esi + 0x10c]
cmp eax, ebx
je 0x100e29f0
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [esi + 0x10c], ebx
mov ecx, dword [esp + 0x9b4]
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1003dc89
mov esp, ebp
pop ebp
ret