Function at 0x14004b040
Capabilities:
Link many functions at runtime

Disassembly:
sub rsp, 0x6a8
mov rax, qword [0x1400d9040]
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 [0x1400e4ac8], rax
test rax, rax
jne 0x14004b096
xor edx, edx
lea rcx, str.atiadlxy.dll
mov r8d, 0x800
call qword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov qword [0x1400e4ac8], rax
lea rdx, str.ADL2_Main_Control_Create
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400e4ac8]
lea rdx, str.ADL2_Main_Control_Destroy
mov qword [0x1400e4ee8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400e4ac8]
lea rdx, str.ADL2_Adapter_NumberOfAdapters_Get
mov qword [0x1400e4ef0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400e4ac8]
lea rdx, str.ADL2_Adapter_AdapterInfo_Get
mov qword [0x1400e4f08], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400e4ac8]
lea rdx, str.ADL2_Adapter_Active_Get
mov qword [0x1400e4eb8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400e4ac8]
lea rdx, str.ADL2_Overdrive_Caps
mov qword [0x1400e4f10], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400e4ac8]
lea rdx, str.ADL2_Overdrive6_CurrentPower_Get
mov qword [0x1400e4f28], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400e4ac8]
lea rdx, str.ADL2_New_QueryPMLogData_Get
mov qword [0x1400e4eb0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400e4ac8]
lea rdx, str.ADL_Overdrive5_CurrentActivity_Get
mov qword [0x1400e4f00], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400e4ac8]
lea rdx, str.ADL_Overdrive6_CurrentStatus_Get
mov qword [0x1400e4ee0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400e4ac8]
lea rdx, str.ADL2_OverdriveN_PerformanceStatus_Get
mov qword [0x1400e4ef8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1400e4ac8]
lea rdx, str.ADL2_OverdriveN_Temperature_Get
mov qword [0x1400e4f30], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp qword [0x1400e4eb0], 0
mov qword [0x1400e4c98], rax
jne 0x14004b1fa
xor al, al
mov rcx, qword [rsp + 0x670]
xor rcx, rsp
call fcn.140051640
add rsp, 0x6a8
ret
mov qword [rsp + 0x6b0], rbx
mov rbx, qword [0x1400e4ee8]
mov rcx, rbx
call qword [fcn.1400072c0]
lea r8, [0x1400e4f18]
mov edx, 1
lea rcx, [0x14004b030]
call rbx
test eax, eax
jne 0x14004b25a
mov rbx, qword [0x1400e4f08]
mov rcx, rbx
call qword [fcn.1400072c0]
mov rcx, qword [0x1400e4f18]
lea rdx, [0x1400e4f20]
call rbx
test eax, eax
jne 0x14004b25a
movsxd rax, dword [0x1400e4f20]
test eax, eax
jg 0x14004b261
xor al, al
jmp 0x14004b4e9
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.14006227c
movsxd rcx, dword [0x1400e4f20]
xor edx, edx
imul r8, rcx, 0x624
mov rcx, rax
mov rbp, rax
call fcn.1400581c0
mov rdi, qword [0x1400e4eb8]
imul ebx, dword [0x1400e4f20], 0x624
mov rcx, rdi
call qword [fcn.1400072c0]
mov rcx, qword [0x1400e4f18]
mov r8d, ebx
mov rdx, rbp
call rdi
test eax, eax
je 0x14004b2de
xor al, al
jmp 0x14004b4d9
xor eax, eax
mov qword [rsp + 0x6c0], rsi
mov qword [rsp + 0x690], r13
xor esi, esi
cmp dword [0x1400e4f20], eax
mov r13d, esi
mov qword [rsp + 0x688], r14
mov qword [rsp + 0x680], r15
mov r15d, esi
mov qword [0x1400e4ec0], rax
mov qword [0x1400e4ec8], rax
mov qword [0x1400e4ed0], rax
mov qword [0x1400e4ed8], rax
jle 0x14004b4b7
lea r14, [0x1400e4ec0]
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 0x14004b370
movups xmm0, xmmword [rcx]
mov rdi, qword [0x1400e4f10]
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.1400072c0]
mov rcx, qword [0x1400e4f18]
lea r8, [rsp + 0x660]
mov edx, ebx
call rdi
cmp dword [rsp + 0x660], esi
je 0x14004b424
cmp dword [rsp + 0x144], 0x3ea
jne 0x14004b424
mov eax, dword [rsp + 0x34]
inc r13d
mov dword [r12], eax
add r12, 4
inc r15d
add rbp, 0x624
cmp r15d, dword [0x1400e4f20]
jl 0x14004b350
mov r12, qword [rsp + 0x698]
test r13d, r13d
je 0x14004b4b7
mov dword [0x1400e4f20], r13d
mov dword [rsp + 0x668], esi
mov dword [rsp + 0x664], esi
jle 0x14004b4b3
lea rdi, [0x1400e4c94]
nop word [rax + rax]
mov rbx, qword [0x1400e4f28]
mov rcx, rbx
call qword [fcn.1400072c0]
mov edx, dword [r14]
lea r9, [rsp + 0x664]
mov rcx, qword [0x1400e4f18]
lea r8, [rsp + 0x668]
mov qword [rsp + 0x20], rdi
call rbx
test eax, eax
jne 0x14004b4b7
inc esi
add r14, 4
cmp esi, dword [0x1400e4f20]
jl 0x14004b470
mov al, 1
jmp 0x14004b4b9
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.140051640
add rsp, 0x6a8
ret