Function at 0x41d69f
Capabilities:
Link many functions at runtime

Disassembly:
xor eax, eax
push ebx
mov ebx, ecx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push edi
lea edi, [ebx + 0x24]
mov dword [ebx + 0x28], eax
push str.atiadlxx.dll
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x20], eax
mov dword [edi], eax
mov dword [ebx + 0x54], eax
mov dword [ebx + 0x4c], eax
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x34], eax
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0x40], eax
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x48], eax
call esi
mov dword [ebx], eax
test eax, eax
jne 0x41d6f6
push str.atiadlxy.dll
call esi
mov dword [ebx], eax
test eax, eax
je 0x41d95d
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.ADL_Main_Control_Create
push eax
call esi
push str.ADL_Main_Control_Destroy
push dword [ebx]
mov dword [ebx + 4], eax
call esi
push str.ADL_Adapter_NumberOfAdapters_Get
push dword [ebx]
mov dword [ebx + 8], eax
call esi
push str.ADL_Adapter_AdapterInfo_Get
push dword [ebx]
mov dword [ebx + 0xc], eax
call esi
push str.ADL_Adapter_Active_Get
push dword [ebx]
mov dword [ebx + 0x10], eax
call esi
push str.ADL_Overdrive5_Temperature_Get
push dword [ebx]
mov dword [ebx + 0x14], eax
call esi
push str.ADL_Adapter_ID_Get
push dword [ebx]
mov dword [ebx + 0x18], eax
call esi
mov ecx, dword [ebx + 4]
mov dword [ebx + 0x1c], eax
test ecx, ecx
je 0x41d95d
xor esi, esi
cmp dword [ebx + 8], esi
je 0x41d95d
cmp dword [ebx + 0xc], esi
je 0x41d95d
cmp dword [ebx + 0x10], esi
je 0x41d95d
cmp dword [ebx + 0x14], esi
je 0x41d95d
cmp dword [ebx + 0x18], esi
je 0x41d95d
test eax, eax
je 0x41d95d
push 1
push 0x41fcf1
call ecx
pop ecx
pop ecx
test eax, eax
jne 0x41d95d
push edi
call dword [ebx + 0xc]
pop ecx
test eax, eax
jne 0x41d95d
mov eax, dword [edi]
test eax, eax
jle 0x41d95d
imul eax, eax, 0x624
push eax
call fcn.00646fc3
mov dword [ebx + 0x20], eax
pop ecx
test eax, eax
je 0x41d95d
imul ecx, dword [edi], 0x624
push ecx
push esi
push eax
call fcn.00624a40
imul eax, dword [edi], 0x624
push eax
push dword [ebx + 0x20]
call dword [ebx + 0x10]
add esp, 0x14
test eax, eax
jne 0x41d95d
mov eax, dword [edi]
xor ecx, ecx
push 4
pop esi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00450bc4
mov dword [ebx + 0x2c], eax
xor ecx, ecx
mov eax, dword [edi]
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00450bc4
mov esi, dword [edi]
xor ecx, ecx
mov dword [ebx + 0x30], eax
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00450bc4
add esp, 0xc
test eax, eax
je 0x41d868
test esi, esi
je 0x41d86a
and dword [eax], 0
lea ecx, [esi*8 - 5]
and dword [eax + 4], 0
lea edi, [eax + 8]
shr ecx, 2
mov esi, eax
rep movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x24]
jmp 0x41d86a
xor eax, eax
mov esi, dword [edi]
xor ecx, ecx
mov dword [ebx + 0x3c], eax
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00450bc4
pop ecx
test eax, eax
je 0x41d8ab
test esi, esi
je 0x41d8ad
and dword [eax], 0
lea ecx, [esi*8 - 5]
and dword [eax + 4], 0
lea edi, [eax + 8]
shr ecx, 2
mov esi, eax
rep movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x24]
jmp 0x41d8ad
xor eax, eax
mov dword [ebx + 0x40], eax
xor ecx, ecx
mov eax, dword [edi]
push 4
pop esi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00450bc4
mov dword [ebx + 0x44], eax
xor ecx, ecx
mov eax, dword [edi]
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00450bc4
pop ecx
pop ecx
xor ecx, ecx
mov dword [ebx + 0x48], eax
cmp dword [ebx + 0x2c], ecx
je 0x41d95d
cmp dword [ebx + 0x30], ecx
je 0x41d95d
cmp dword [ebx + 0x3c], ecx
je 0x41d95d
cmp dword [ebx + 0x40], ecx
je 0x41d95d
cmp dword [ebx + 0x44], ecx
je 0x41d95d
test eax, eax
je 0x41d95d
mov esi, ecx
cmp dword [edi], ecx
jle 0x41d943
mov eax, dword [ebx + 0x2c]
push ecx
mov dword [eax + esi*4], 0x100
mov eax, dword [ebx + 0x30]
mov dword [eax + esi*4], ecx
call fcn.00647c75
pop ecx
mov ecx, dword [ebx + 0x40]
push 0
mov dword [ecx + esi*8], eax
mov dword [ecx + esi*8 + 4], edx
mov eax, dword [ebx + 0x40]
mov ecx, dword [eax + esi*8]
mov edx, dword [eax + esi*8 + 4]
mov eax, dword [ebx + 0x3c]
mov dword [eax + esi*8], ecx
mov dword [eax + esi*8 + 4], edx
inc esi
pop ecx
cmp esi, dword [edi]
jl 0x41d906
mov dword [ebx + 0x34], ecx
mov ecx, ebx
mov dword [ebx + 0x50], 1
call fcn.004328d5
neg eax
sbb eax, eax
neg eax
mov dword [ebx + 0x28], eax
pop edi
pop esi
mov eax, ebx
pop ebx
ret