Function at 0x140047830
Capabilities:
Link many functions at runtime

Disassembly:
sub rsp, 0x6a8
mov rax, qword [0x1400d1010]
xor rax, rsp
mov qword [rsp + 0x670], rax
xor edx, edx
lea rcx, str.atiadlxx.dll
mov r8d, 0x800
call qword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov qword [0x1400dc928], rax
test rax, rax
jne 0x140047886
xor edx, edx
lea rcx, str.atiadlxy.dll
mov r8d, 0x800
call qword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov qword [0x1400dc928], rax
lea rdx, str.ADL2_Main_Control_Create
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400dc928]
lea rdx, str.ADL2_Main_Control_Destroy
mov qword [0x1400dcb90], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400dc928]
lea rdx, str.ADL2_Adapter_NumberOfAdapters_Get
mov qword [0x1400dcb78], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400dc928]
lea rdx, str.ADL2_Adapter_AdapterInfo_Get
mov qword [0x1400dcb98], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400dc928]
lea rdx, str.ADL2_Adapter_Active_Get
mov qword [0x1400dcb60], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400dc928]
lea rdx, str.ADL2_Overdrive_Caps
mov qword [0x1400dcb80], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400dc928]
lea rdx, str.ADL2_Overdrive6_CurrentPower_Get
mov qword [0x1400dcba0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400dc928]
lea rdx, str.ADL2_New_QueryPMLogData_Get
mov qword [0x1400dcb70], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400dc928]
lea rdx, str.ADL_Overdrive5_CurrentActivity_Get
mov qword [0x1400dcbb0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400dc928]
lea rdx, str.ADL_Overdrive6_CurrentStatus_Get
mov qword [0x1400dcb68], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400dc928]
lea rdx, str.ADL2_OverdriveN_PerformanceStatus_Get
mov qword [0x1400dcb88], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400dc928]
lea rdx, str.ADL2_OverdriveN_Temperature_Get
mov qword [0x1400dcbb8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp qword [0x1400dcb70], 0
mov qword [0x1400dc758], rax
jne 0x1400479ea
xor al, al
mov rcx, qword [rsp + 0x670]
xor rcx, rsp
call fcn.14004b110
add rsp, 0x6a8
ret
mov qword [rsp + 0x6b0], rbx
mov rbx, qword [0x1400dcb90]
mov rcx, rbx
call qword [fcn.140009620]
lea r8, [0x1400dcba8]
mov edx, 1
lea rcx, [0x140047820]
call rbx
test eax, eax
jne 0x140047a4a
mov rbx, qword [0x1400dcb98]
mov rcx, rbx
call qword [fcn.140009620]
mov rcx, qword [0x1400dcba8]
lea rdx, [0x1400dc924]
call rbx
test eax, eax
jne 0x140047a4a
movsxd rax, dword [0x1400dc924]
test eax, eax
jg 0x140047a51
xor al, al
jmp 0x140047cd9
mov rcx, rax
mov qword [rsp + 0x6b8], rbp
mov eax, 0x624
mov qword [rsp + 0x6a0], rdi
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.14005ba8c
movsxd rcx, dword [0x1400dc924]
xor edx, edx
imul r8, rcx, 0x624
mov rcx, rax
mov rbp, rax
call fcn.140051c10
mov rdi, qword [0x1400dcb60]
imul ebx, dword [0x1400dc924], 0x624
mov rcx, rdi
call qword [fcn.140009620]
mov rcx, qword [0x1400dcba8]
mov r8d, ebx
mov rdx, rbp
call rdi
test eax, eax
je 0x140047ace
xor al, al
jmp 0x140047cc9
xor eax, eax
mov qword [rsp + 0x6c0], rsi
mov qword [rsp + 0x690], r13
xor esi, esi
cmp dword [0x1400dc924], eax
mov r13d, esi
mov qword [rsp + 0x688], r14
mov qword [rsp + 0x680], r15
mov r15d, esi
mov qword [0x1400dcb40], rax
mov qword [0x1400dcb48], rax
mov qword [0x1400dcb50], rax
mov qword [0x1400dcb58], rax
jle 0x140047ca7
lea r14, [0x1400dcb40]
mov qword [rsp + 0x698], r12
mov r12, r14
nop dword [rax]
nop word [rax + rax]
mov dword [rsp + 0x660], esi
lea rax, [rsp + 0x30]
mov rcx, rbp
mov edx, 0xc
nop dword [rax]
nop dword [rax + rax]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x80]
movups xmmword [rax], xmm0
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rax + 0x10], xmm1
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rax + 0x20], xmm0
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rax + 0x30], xmm1
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rax + 0x40], xmm0
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rax + 0x50], xmm1
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rax + 0x60], xmm0
sub rax, 0xffffffffffffff80
movups xmmword [rax - 0x10], xmm1
sub rdx, 1
jne 0x140047b60
movups xmm0, xmmword [rcx]
mov rdi, qword [0x1400dcb80]
movups xmm1, xmmword [rcx + 0x10]
mov ecx, dword [rcx + 0x20]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm1
mov dword [rax + 0x20], ecx
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
shr rbx, 0x20
call qword [fcn.140009620]
mov rcx, qword [0x1400dcba8]
lea r8, [rsp + 0x660]
mov edx, ebx
call rdi
cmp dword [rsp + 0x660], esi
je 0x140047c14
cmp dword [rsp + 0x144], 0x3ea
jne 0x140047c14
mov eax, dword [rsp + 0x34]
inc r13d
mov dword [r12], eax
add r12, 4
inc r15d
add rbp, 0x624
cmp r15d, dword [0x1400dc924]
jl 0x140047b40
mov r12, qword [rsp + 0x698]
test r13d, r13d
je 0x140047ca7
mov dword [0x1400dc924], r13d
mov dword [rsp + 0x668], esi
mov dword [rsp + 0x664], esi
jle 0x140047ca3
lea rdi, [0x1400dc754]
nop word [rax + rax]
mov rbx, qword [0x1400dcba0]
mov rcx, rbx
call qword [fcn.140009620]
mov edx, dword [r14]
lea r9, [rsp + 0x664]
mov rcx, qword [0x1400dcba8]
lea r8, [rsp + 0x668]
mov qword [rsp + 0x20], rdi
call rbx
test eax, eax
jne 0x140047ca7
inc esi
add r14, 4
cmp esi, dword [0x1400dc924]
jl 0x140047c60
mov al, 1
jmp 0x140047ca9
xor al, al
mov r14, qword [rsp + 0x688]
mov r13, qword [rsp + 0x690]
mov rsi, qword [rsp + 0x6c0]
mov r15, qword [rsp + 0x680]
mov rbp, qword [rsp + 0x6b8]
mov rdi, qword [rsp + 0x6a0]
mov rbx, qword [rsp + 0x6b0]
mov rcx, qword [rsp + 0x670]
xor rcx, rsp
call fcn.14004b110
add rsp, 0x6a8
ret