Function at 0x14000ddd0
Capabilities:
Link many functions at runtime

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x178
lea rbp, [rsp + 0x30]
mov rax, qword [0x140105358]
xor rax, rbp
mov qword [rbp + 0x130], rax
mov rbx, qword [rcx + 8]
mov qword [rbp + 8], rcx
mov rcx, qword [rbp + 0x1b0]
mov r15d, edx
mov qword [rbp + 0x10], rcx
movsxd rdi, r8d
lea rdx, str.ADL2_OverdriveN_Capabilities_Get
mov rcx, rbx
mov qword [rbp + 0x18], r9
mov dword [rbp + 4], edi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL2_OverdriveN_FanControl_Get
mov rcx, rbx
mov r13, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL2_OverdriveN_FanControl_Set
mov rcx, rbx
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL2_OverdriveN_PowerLimit_Get
mov rcx, rbx
mov r12, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL2_OverdriveN_PowerLimit_Set
mov rcx, rbx
mov qword [rbp + 0x38], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL2_OverdriveN_Temperature_Get
mov rcx, rbx
mov qword [rbp + 0x28], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL2_OverdriveN_SystemClocks_Get
mov rcx, rbx
mov r14, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL2_OverdriveN_SystemClocks_Set
mov rcx, rbx
mov qword [rbp + 0x30], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL2_OverdriveN_MemoryClocks_Get
mov rcx, rbx
mov qword [rbp + 0x40], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL2_OverdriveN_MemoryClocks_Set
mov rcx, rbx
mov qword [rbp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbp + 0x48], rax
test r13, r13
je 0x14000e4bf
test rsi, rsi
je 0x14000e4bf
test r12, r12
je 0x14000e4bf
cmp qword [rbp + 0x38], 0
je 0x14000e4bf
cmp qword [rbp + 0x28], 0
je 0x14000e4bf
test r14, r14
je 0x14000e4bf
cmp qword [rbp + 0x30], 0
je 0x14000e4bf
cmp qword [rbp + 0x40], 0
je 0x14000e4bf
cmp qword [rbp + 0x20], 0
je 0x14000e4bf
test rax, rax
je 0x14000e4bf
lea rcx, [rbp + 0x80]
xor edx, edx
mov r8d, 0xa4
call fcn.14008d370
lea r8, [rbp + 0x80]
mov edx, r15d
xor ecx, ecx
call r13
test eax, eax
je 0x14000df75
lea rdx, str.Failed_to_get_OverdriveN_capabilities__n
jmp 0x14000e4c6
xor eax, eax
lea r8, [rbp + 0x58]
mov edx, r15d
xor ecx, ecx
mov qword [rbp + 0x58], rax
mov qword [rbp + 0x60], rax
mov qword [rbp + 0x68], rax
mov qword [rbp + 0x70], rax
call rsi
test eax, eax
je 0x14000dfa2
lea rdx, str.Failed_to_get_fan_info__n
jmp 0x14000e4c6
movzx ebx, byte [rbp + 0x1b8]
lea r13, sym.NsCpuCNMiner.exe__6j_:_nxZkVi0F7Aj_TnR__ExM0:aC_l_.YJ_q_FiyMRMH
test bl, bl
jne 0x14000e011
mov rax, qword [rbp + 8]
mov ecx, dword [rax + 0x78]
cmp ecx, 2
jge 0x14000dfd2
mov eax, dword [r13 + rdi*4 + 0x130850]
cdq
xor eax, edx
sub eax, edx
cmp eax, 5
jg 0x14000dfd6
test ecx, ecx
jns 0x14000e011
lea rdx, str.OC_v7__Reset_control_for_GPU__d__close_miner_right_now_if_you_want_to_use_default_control_from_Catalyst__n
mov r8d, r15d
mov ecx, 2
call fcn.140014e30
lea r8, [rbp + 0x58]
mov edx, r15d
xor ecx, ecx
mov dword [rbp + 0x58], 2
call r12
test eax, eax
je 0x14000e4a2
lea rdx, str.Failed_to_set_fan_info__n
jmp 0x14000e4c6
lea r9, [rbp]
mov r8d, 1
mov edx, r15d
xor ecx, ecx
mov dword [rbp], 0xfffe7578
call r14
mov eax, 0x10624dd3
imul dword [rbp]
mov r11d, edx
sar r11d, 6
mov eax, r11d
shr eax, 0x1f
add r11d, eax
mov dword [rbp], r11d
lea eax, [r11 + 0x64]
cmp eax, 0x15e
ja 0x14000e4a9
test bl, bl
jne 0x14000e0b8
mov eax, dword [r13 + rdi*4 + 0x1305b0]
test eax, eax
je 0x14000e0b8
jle 0x14000e1b7
cmp r11d, eax
jl 0x14000e0b8
cmp byte [rdi + r13 + 0x1306d8], bl
jne 0x14000e194
mov dword [rsp + 0x28], eax
lea r8, str.GPU__d_reached_STOP_temperature___d____d___stop_mining_on_this_GPU._n
mov r9d, edi
mov edx, 3
xor ecx, ecx
mov dword [rsp + 0x20], r11d
call fcn.140015030
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov byte [rdi + r13 + 0x1306d8], 1
mov qword [r13 + rdi*8 + 0x130bd0], rax
mov r11d, dword [rbp]
mov eax, dword [rbp + 0x64]
mov r8d, dword [rbp + 0x104]
mov ecx, 0x64
lea r13, [rdi*4]
imul eax, eax, 0x64
cdq
idiv r8d
cmp eax, ecx
mov esi, eax
mov eax, dword [rbp + 0x68]
cmovg esi, ecx
imul eax, eax, 0x64
cdq
idiv r8d
cmp eax, ecx
mov r9d, eax
mov rax, qword [rbp + 0x18]
cmovg r9d, ecx
lea rcx, sym.NsCpuCNMiner.exe__6j_:_nxZkVi0F7Aj_TnR__ExM0:aC_l_.YJ_q_FiyMRMH
mov dword [r13 + rcx + 0x130ad0], r11d
test rax, rax
je 0x14000e119
mov dword [rax], r11d
mov rax, qword [rbp + 0x10]
mov dword [rax], esi
test bl, bl
je 0x14000e4a2
lea r14, [rcx + 0x130850]
mov ecx, dword [rcx + r13 + 0x130850]
cmp ecx, 5
jg 0x14000e1c7
test bl, bl
jne 0x14000e1c7
test ecx, ecx
jns 0x14000e24b
imul ecx, r8d
mov eax, 0xae147ae1
lea r8, [rbp + 0x58]
imul ecx
xor ecx, ecx
mov dword [rbp + 0x58], 3
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rbp + 0x74], edx
mov dword [rbp + 0x68], edx
mov edx, r15d
call r12
test eax, eax
je 0x14000e24b
mov r8d, dword [r14 + r13]
lea rdx, str.Failed_to_set_new_fan_speed__d__n
mov ecx, 2
neg r8d
call fcn.140014e30
jmp 0x14000e4d0
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov rcx, qword [r13 + rdi*8 + 0x130bd0]
add rcx, 0x7530
cmp rax, rcx
jbe 0x14000e0b4
jmp 0x14000e4f5
neg eax
cmp r11d, eax
jl 0x14000e0b8
jmp 0x14000e52f
cmp esi, 0xffffffff
jne 0x14000e1e3
test bl, bl
jne 0x14000e1e3
lea r8, str.Cannot_get_current_fan_speed_n
lea edx, [rsi + 4]
xor ecx, ecx
call fcn.140015030
jmp 0x14000e24b
mov r8d, r11d
mov edx, edi
mov byte [rsp + 0x20], bl
call fcn.14000ce30
lea rdx, str.GPU__d_temp___d__old_fan_speed___d__new_fan_speed___d__r_n
mov r9d, r11d
mov dword [rsp + 0x28], eax
mov r8d, r15d
mov ecx, 2
mov dword [rsp + 0x20], esi
mov ebx, eax
call fcn.140014e30
imul ebx, dword [rbp + 0x104]
mov eax, 0x51eb851f
lea r8, [rbp + 0x58]
xor ecx, ecx
mov dword [rbp + 0x58], 3
imul ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rbp + 0x74], edx
mov dword [rbp + 0x68], edx
mov edx, r15d
call r12
test eax, eax
jne 0x14000e005
lea rcx, sym.NsCpuCNMiner.exe__6j_:_nxZkVi0F7Aj_TnR__ExM0:aC_l_.YJ_q_FiyMRMH
mov r14d, dword [r13 + rcx + 0x130530]
mov eax, dword [r13 + rcx + 0x130630]
mov esi, dword [r13 + rcx + 0x1308d0]
mov r12d, dword [r13 + rcx + 0x130a50]
mov r13d, dword [r13 + rcx + 0x1309d0]
mov dword [rbp + 0x18], eax
test r14d, r14d
jne 0x14000e299
test esi, esi
jne 0x14000e299
cmp eax, 0xffffff9c
jne 0x14000e299
test r12d, r12d
jne 0x14000e299
test r13d, r13d
je 0x14000e4a2
mov eax, dword [rbp + 0x80]
inc eax
lea eax, [rax + rax*2]
shl eax, 2
movsxd rcx, eax
mov dword [rbp + 0x10], eax
lea rax, [rcx + 0xf]
mov qword [rbp + 8], rcx
cmp rax, rcx
ja 0x14000e2c4
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.140096ce0
sub rsp, rax
xor edi, edi
lea rbx, [rsp + 0x30]
test r14d, r14d
jg 0x14000e2e5
test r12d, r12d
jle 0x14000e3d0
mov r8, rcx
xor edx, edx
mov rcx, rbx
call fcn.14008d370
mov eax, dword [rbp + 0x10]
mov r8, rbx
mov dword [rbx], eax
mov eax, dword [rbp + 0x80]
mov edx, r15d
xor ecx, ecx
mov dword [rbx + 8], eax
call qword [rbp + 0x30]
test eax, eax
je 0x14000e31b
lea rdx, str.Failed_to_get_sysclocks_n
jmp 0x14000e4c6
test r14d, r14d
jle 0x14000e33e
mov eax, edi
cmp dword [rbx + 8], eax
jle 0x14000e33e
imul r14d, r14d, 0x64
lea rcx, [rbx + 0xc]
nop
mov dword [rcx], r14d
inc eax
lea rcx, [rcx + 0xc]
cmp eax, dword [rbx + 8]
jl 0x14000e330
test r12d, r12d
jle 0x14000e35e
mov ecx, edi
cmp dword [rbx + 8], ecx
jle 0x14000e35e
lea rax, [rbx + 0x10]
nop
mov dword [rax], r12d
inc ecx
lea rax, [rax + 0xc]
cmp ecx, dword [rbx + 8]
jl 0x14000e350
mov r8, rbx
mov edx, r15d
xor ecx, ecx
mov dword [rbx + 4], 3
call qword [rbp + 0x40]
mov r14d, dword [rbp + 4]
test eax, eax
je 0x14000e389
lea rdx, str.Failed_to_set_new_effective_core_clock_for_GPU__d_r_n
mov r8d, r14d
xor ecx, ecx
call fcn.140014e30
mov rcx, qword [rbp + 8]
test esi, esi
jg 0x14000e39a
test r13d, r13d
jle 0x14000e445
mov r8, rcx
xor edx, edx
mov rcx, rbx
call fcn.14008d370
mov eax, dword [rbp + 0x10]
mov r8, rbx
mov dword [rbx], eax
mov eax, dword [rbp + 0x80]
mov edx, r15d
xor ecx, ecx
mov dword [rbx + 8], eax
call qword [rbp + 0x20]
test eax, eax
je 0x14000e3d6
lea rdx, str.Failed_to_get_memclocks_n
jmp 0x14000e4c6
mov r14d, dword [rbp + 4]
jmp 0x14000e38d
test esi, esi
jle 0x14000e3fd
mov eax, edi
cmp dword [rbx + 8], eax
jle 0x14000e3fd
imul esi, esi, 0x64
lea rcx, [rbx + 0xc]
nop dword [rax + rax]
mov dword [rcx], esi
inc eax
lea rcx, [rcx + 0xc]
cmp eax, dword [rbx + 8]
jl 0x14000e3f0
test r13d, r13d
jle 0x14000e41e
cmp dword [rbx + 8], edi
jle 0x14000e41e
lea rax, [rbx + 0x10]
nop dword [rax + rax]
mov dword [rax], r13d
inc edi
lea rax, [rax + 0xc]
cmp edi, dword [rbx + 8]
jl 0x14000e410
mov r8, rbx
mov edx, r15d
xor ecx, ecx
mov dword [rbx + 4], 3
call qword [rbp + 0x48]
test eax, eax
je 0x14000e445
lea rdx, str.Failed_to_set_new_effective_memory_clock_for_GPU__d_r_n
mov r8d, r14d
xor ecx, ecx
call fcn.140014e30
mov ebx, dword [rbp + 0x18]
cmp ebx, 0xffffff9c
je 0x14000e4a2
xor eax, eax
lea r8, [rbp + 0x48]
mov edx, r15d
xor ecx, ecx
mov qword [rbp + 0x48], rax
mov dword [rbp + 0x50], eax
call qword [rbp + 0x38]
xor ecx, ecx
test eax, eax
je 0x14000e479
lea rdx, str.Power_control_failed_for_GPU__d_n
mov r8d, r14d
call fcn.140014e30
jmp 0x14000e4d0
lea r8, [rbp + 0x48]
mov edx, r15d
mov dword [rbp + 0x48], 3
mov dword [rbp + 0x4c], ebx
call qword [rbp + 0x28]
test eax, eax
je 0x14000e4a2
lea rdx, str.Failed_to_set_new_Power_Control_treshold_for_GPU__d_n
mov r8d, r14d
xor ecx, ecx
call fcn.140014e30
mov eax, 1
jmp 0x14000e4d2
lea rdx, str.Got_incorrect_temperature__d__ignore_n
mov r8d, r11d
mov ecx, 2
call fcn.140014e30
jmp 0x14000e4d0
lea rdx, str.ADL2s_API_is_missing__n
mov ecx, 2
call fcn.140014e30
xor eax, eax
mov rcx, qword [rbp + 0x130]
xor rcx, rbp
call fcn.140084a30
lea rsp, [rbp + 0x148]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea r8, str.GPU__d_reached_STOP_temperature_and_was_stopped__but_it_is_still_overheated._Probably_wrong_card_was_turned_off__check__KNOWN_ISSUES__section_of_readme_file_for_details._n
mov r9d, edi
mov edx, 3
xor ecx, ecx
call fcn.140015030
lea r8, str.Miner_will_be_closed_n
mov edx, 3
xor ecx, ecx
call fcn.140015030
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
call fcn.140035330
int3
mov dword [rsp + 0x28], eax
lea r8, str.GPU__d_reached_CLOSE_temperature___d____d_._n
mov r9d, edi
mov edx, 3
xor ecx, ecx
mov dword [rsp + 0x20], r11d
call fcn.140015030
lea r8, str.Miner_will_be_closed_n
mov edx, 3
xor ecx, ecx
call fcn.140015030
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
call fcn.140035330
int3