Function at 0x140003810
Capabilities:
Link many functions at runtime

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x38]
sub rsp, 0x138
mov rax, qword [0x140061740]
xor rax, rsp
mov qword [rbp + 0x28], rax
mov rbx, qword [rcx + 8]
mov qword [rsp + 0x38], rcx
mov rcx, qword [rbp + 0xa0]
mov r14d, edx
mov qword [rbp - 0x68], rcx
lea rdx, str.ADL_Overdrive5_ThermalDevices_Enum
xor esi, esi
mov rcx, rbx
mov qword [rbp - 0x60], r9
movsxd r15, r8d
mov dword [rsp + 0x40], esi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL_Overdrive5_ODParameters_Get
mov rcx, rbx
mov qword [rbp - 0x80], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL_Overdrive5_Temperature_Get
mov rcx, rbx
mov qword [rsp + 0x70], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL_Overdrive5_FanSpeed_Get
mov rcx, rbx
mov qword [rsp + 0x68], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL_Overdrive5_FanSpeedInfo_Get
mov rcx, rbx
mov qword [rbp - 0x70], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL_Overdrive5_ODPerformanceLevels_Get
mov rcx, rbx
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL_Overdrive5_CurrentActivity_Get
mov rcx, rbx
mov qword [rsp + 0x58], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL_Overdrive5_FanSpeed_Set
mov rcx, rbx
mov qword [rsp + 0x60], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL_Overdrive5_ODPerformanceLevels_Set
mov rcx, rbx
mov qword [rsp + 0x48], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL_Overdrive5_PowerControl_Caps
mov rcx, rbx
mov qword [rsp + 0x50], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL_Overdrive5_PowerControlInfo_Get
mov rcx, rbx
mov qword [rsp + 0x78], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL_Overdrive5_PowerControl_Get
mov rcx, rbx
mov r12, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL_Overdrive5_PowerControl_Set
mov rcx, rbx
mov r13, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ADL_Overdrive5_FanSpeedToDefault_Set
mov rcx, rbx
mov qword [rbp - 0x78], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r9, qword [rbp - 0x80]
mov rbx, rax
test r9, r9
je 0x140003f2b
cmp qword [rsp + 0x68], rsi
je 0x140003f2b
test rdi, rdi
je 0x140003f2b
cmp qword [rsp + 0x58], rsi
je 0x140003f2b
cmp qword [rsp + 0x70], rsi
je 0x140003f2b
cmp qword [rsp + 0x60], rsi
je 0x140003f2b
cmp qword [rsp + 0x48], rsi
je 0x140003f2b
cmp qword [rsp + 0x50], rsi
je 0x140003f2b
cmp qword [rsp + 0x78], rsi
je 0x140003f2b
test r12, r12
je 0x140003f2b
test r13, r13
je 0x140003f2b
cmp qword [rbp - 0x78], rsi
je 0x140003f2b
test rax, rax
je 0x140003f2b
movzx r13d, byte [rbp + 0xa8]
lea rdx, sym.NsGpuCNMiner.exe_8_e_FT___30Dcpnn_XO00j_y7o3WE34G6t9IPnCn
test r13b, r13b
jne 0x140003a5a
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax + 0x78]
cmp ecx, 2
jge 0x140003a31
mov eax, dword [rdx + r15*4 + 0x68330]
cdq
xor eax, edx
sub eax, edx
cmp eax, 5
jg 0x140003a35
test ecx, ecx
jns 0x140003a5a
lea rdx, str.OC_v5__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.14000ee60
xor edx, edx
mov ecx, r14d
call rbx
mov eax, 1
jmp 0x140003f3e
or ebx, 0xffffffff
xor ecx, ecx
mov dword [rbp - reloc.WS2_32.dll_recv], 0x10
mov qword [rbp - 0xc], rcx
mov dword [rbp - 4], ecx
mov dword [rsp + 0x30], ebx
mov edi, esi
lea r8, [rbp - 0x10]
mov edx, edi
mov ecx, r14d
call r9
cmp eax, 0xffffff9c
je 0x140003bee
cmp dword [rbp - 0xc], 1
jne 0x140003bb6
lea r8, [rsp + 0x38]
mov edx, edi
mov ecx, r14d
mov qword [rsp + 0x38], 8
call qword [rsp + 0x68]
test eax, eax
jne 0x140003be2
mov eax, 0x10624dd3
imul dword [rsp + 0x3c]
mov ebx, edx
sar ebx, 6
mov eax, ebx
shr eax, 0x1f
add ebx, eax
cmp ebx, 0xffffff9c
jl 0x140003bc6
cmp ebx, 0xfa
jg 0x140003bc6
test r13b, r13b
jne 0x140003b7b
lea rax, sym.NsGpuCNMiner.exe_8_e_FT___30Dcpnn_XO00j_y7o3WE34G6t9IPnCn
mov ecx, dword [rax + r15*4 + 0x68190]
test ecx, ecx
je 0x140003b7b
jle 0x140003b6f
cmp ebx, ecx
jl 0x140003b7b
cmp byte [r15 + rax + 0x68310], sil
jne 0x140003b49
mov dword [rsp + 0x28], ecx
lea r8, str.GPU__d_reached_STOP_temperature___d____d___stop_mining_on_this_GPU._n
mov r9d, r15d
mov edx, 3
xor ecx, ecx
mov dword [rsp + 0x20], ebx
call fcn.14000f050
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
lea rcx, sym.NsGpuCNMiner.exe_8_e_FT___30Dcpnn_XO00j_y7o3WE34G6t9IPnCn
mov qword [rcx + r15*8 + 0x68630], rax
mov byte [r15 + rcx + 0x68310], 1
jmp 0x140003b7b
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
lea rcx, sym.NsGpuCNMiner.exe_8_e_FT___30Dcpnn_XO00j_y7o3WE34G6t9IPnCn
mov rcx, qword [rcx + r15*8 + 0x68630]
add rcx, 0x7530
cmp rax, rcx
jbe 0x140003b7b
jmp 0x140003f5e
mov eax, ecx
neg eax
cmp ebx, eax
jge 0x140003f98
xor eax, eax
mov qword [rbp - 0x20], rsi
lea r8, [rbp - 0x20]
mov edx, edi
mov ecx, r14d
mov dword [rbp - 0x1c], 1
mov qword [rbp - 0x18], rax
call qword [rbp - 0x70]
test eax, eax
je 0x140003baf
lea rdx, str.Failed_to_get_fan_speed_n
mov ecx, 2
call fcn.14000ee60
jmp 0x140003bb6
mov eax, dword [rbp - 0x18]
mov dword [rsp + 0x30], eax
inc edi
cmp edi, 0xa
jge 0x140003bee
mov r9, qword [rbp - 0x80]
jmp 0x140003a73
lea rdx, str.GPU__d:_got_incorrect_temperature__d__ignore_n
mov r9d, ebx
mov r8d, r15d
mov ecx, 2
call fcn.14000ee60
jmp 0x140003f3c
lea rdx, str.Failed_to_get_thermal_devices_temperature_n
jmp 0x140003f32
xor edx, edx
lea rcx, [rbp - 0x54]
lea r8d, [rdx + 0x34]
call fcn.140035a80
lea rdx, [rbp - 0x58]
mov ecx, r14d
mov dword [rbp - 0x58], 0x38
call qword [rsp + WSAStartup]
test eax, eax
je 0x140003c1f
lea rdx, str.Failed_to_get_overdrive_parameters_n
jmp 0x140003f32
xor eax, eax
lea rdx, [rbp]
mov ecx, r14d
mov qword [rbp + 4], rax
mov qword [rbp + 0xc], rax
mov qword [rbp + 0x14], rax
mov qword [rbp + 0x1c], rax
mov dword [rbp + 0x24], eax
mov dword [rbp], 0x28
call qword [rsp + 0x60]
test eax, eax
je 0x140003c56
lea rdx, str.Failed_to_get_current_GPU_activity.___n
jmp 0x140003f32
mov rax, qword [rbp - 0x60]
mov ecx, dword [rsp + 0x30]
lea rdi, [r15*4]
lea rdx, sym.NsGpuCNMiner.exe_8_e_FT___30Dcpnn_XO00j_y7o3WE34G6t9IPnCn
mov dword [rdi + rdx + 0x685b0], ebx
test rax, rax
je 0x140003c8a
mov dword [rax], ebx
mov rax, qword [rbp - 0x68]
mov dword [rax], ecx
test r13b, r13b
je 0x140003a50
mov eax, dword [rdx + rdi + 0x68330]
lea r12, [rdx + 0x68330]
cmp eax, 5
jg 0x140003cf2
test r13b, r13b
jne 0x140003cf2
test eax, eax
jns 0x140003d83
xor ecx, ecx
neg eax
mov qword [rbp - 0x20], rsi
mov qword [rbp - 0x18], rcx
lea r8, [rbp - 0x20]
xor edx, edx
mov ecx, r14d
mov dword [rbp - 0x1c], 1
mov dword [rbp - 0x18], eax
call qword [rsp + 0x48]
test eax, eax
je 0x140003d83
mov r8d, dword [r12 + rdi]
lea rdx, str.Failed_to_set_new_Fan_speed__d.__n
mov ecx, 2
neg r8d
call fcn.14000ee60
jmp 0x140003f3c
cmp ecx, 0xffffffff
jne 0x140003d0f
test r13b, r13b
jne 0x140003d0f
lea edx, [rcx + 4]
lea r8, str.Cannot_get_current_fan_speed_n
xor ecx, ecx
call fcn.14000f050
jmp 0x140003d83
mov r9d, ecx
mov r8d, ebx
mov edx, r15d
mov byte [rsp + 0x20], r13b
call fcn.140003780
mov qword [rbp - 0x20], rsi
mov r12d, eax
xor eax, eax
lea r8, [rbp - 0x20]
mov qword [rbp - 0x18], rax
xor edx, edx
mov ecx, r14d
mov dword [rbp - 0x18], r12d
mov dword [rbp - 0x1c], 1
call qword [rsp + 0x48]
mov ecx, 2
test eax, eax
je 0x140003d64
lea rdx, str.Failed_to_set_new_Fan_speed__d.__n
mov r8d, r12d
call fcn.14000ee60
jmp 0x140003f3c
mov eax, dword [rsp + 0x30]
lea rdx, str.GPU__d_temp___d__old_fan_speed___d____new_fan_speed___d____r_n
mov r9d, ebx
mov r8d, r15d
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], eax
call fcn.14000ee60
lea rax, sym.NsGpuCNMiner.exe_8_e_FT___30Dcpnn_XO00j_y7o3WE34G6t9IPnCn
mov r13d, dword [rdi + rax + 0x68110]
mov ebx, dword [rdi + rax + 0x68210]
mov r12d, dword [rdi + rax + 0x683b0]
mov dword [rsp + 0x30], ebx
test r13d, r13d
jne 0x140003db8
test r12d, r12d
jne 0x140003db8
cmp ebx, 0xffffff9c
je 0x140003a50
mov eax, dword [rbp - 0x54]
test eax, eax
jle 0x140003e1b
lea eax, [rax + rax*2]
lea edi, [rax*4 + 8]
movsxd rbx, edi
mov rcx, rbx
call fcn.14002edb0
mov r8, rbx
xor edx, edx
mov rcx, rax
mov rsi, rax
call fcn.140035a80
mov r8, rsi
xor edx, edx
mov ecx, r14d
mov dword [rsi], edi
call qword [rsp + 0x58]
test eax, eax
je 0x140003e14
lea rdx, str.Failed_to_get_information_about_supported_performance_levels_for_GPU__d.__r_n
mov r8d, r15d
xor ecx, ecx
call fcn.14000ee60
mov rcx, rsi
call fcn.14002ed70
jmp 0x140003f3c
mov eax, dword [rbp - 0x54]
mov ebx, dword [rsp + 0x30]
mov rdi, qword [rsp + 0x50]
test r13d, r13d
jle 0x140003e6a
cdqe
imul r13d, r13d, 0x64
mov rdx, rsi
lea rcx, [rax + rax*2]
mov dword [rsi + rcx*4 - 4], r13d
mov ecx, r14d
call rdi
test eax, eax
je 0x140003e67
lea rdx, str.Failed_to_set_new_Engine_Clock_for_GPU__d.__r_n
mov r8d, r15d
xor ecx, ecx
call fcn.14000ee60
test rsi, rsi
je 0x140003f3c
mov rcx, rsi
call fcn.14002ed70
jmp 0x140003f3c
mov eax, dword [rbp - 0x54]
test r12d, r12d
jle 0x140003eb0
cdqe
imul r12d, r12d, 0x64
mov rdx, rsi
lea rcx, [rax + rax*2]
mov dword [rsi + rcx*4], r12d
mov ecx, r14d
call rdi
test eax, eax
je 0x140003eb0
lea rdx, str.Failed_to_set_new_Memory_Clock_for_GPU__d.__r_n
mov r8d, r15d
xor ecx, ecx
call fcn.14000ee60
test rsi, rsi
je 0x140003f3c
mov rcx, rsi
call fcn.14002ed70
jmp 0x140003f3c
test rsi, rsi
je 0x140003ebd
mov rcx, rsi
call fcn.14002ed70
cmp ebx, 0xffffff9c
je 0x140003a50
lea rdx, [rsp + 0x40]
mov ecx, r14d
call qword [rsp + 0x78]
test eax, eax
je 0x140003ee9
lea rdx, str.Power_control_failed_for_GPU__d_n
mov r8d, r15d
xor ecx, ecx
call fcn.14000ee60
jmp 0x140003f3c
cmp dword [rsp + 0x40], 0
je 0x140003f13
mov edx, ebx
mov ecx, r14d
call qword [rbp - 0x78]
test eax, eax
je 0x140003a50
lea rdx, str.Failed_to_set_new_Power_Control_treshold_for_GPU__d_n
mov r8d, r15d
xor ecx, ecx
call fcn.14000ee60
jmp 0x140003f3c
lea rdx, str.Power_control_is_unsupported_for_GPU__d_n
mov r8d, r15d
xor ecx, ecx
call fcn.14000ee60
mov eax, 1
jmp 0x140003f3e
lea rdx, str.ADLs_API_5_is_missing__n
mov ecx, 2
call fcn.14000ee60
xor eax, eax
mov rcx, qword [rbp + 0x28]
xor rcx, rsp
call fcn.14002e450
add rsp, 0x138
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, r15d
mov edx, 3
xor ecx, ecx
call fcn.14000f050
lea r8, str.Miner_will_be_closed_n
mov edx, 3
xor ecx, ecx
call fcn.14000f050
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
call fcn.14001bfc0
int3
neg ecx
lea r8, str.GPU__d_reached_CLOSE_temperature___d____d_._n
mov r9d, r15d
mov dword [rsp + 0x28], ecx
xor ecx, ecx
mov edx, 3
mov dword [rsp + 0x20], ebx
call fcn.14000f050
lea r8, str.Miner_will_be_closed_n
mov edx, 3
xor ecx, ecx
call fcn.14000f050
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
call fcn.14001bfc0
int3