Function at 0x140042bc0
Capabilities:
Link many functions at runtime
Print debug messages

Disassembly:
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r12
push r13
sub rsp, 0x50
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov r12d, r8d
mov r13d, edx
mov rbx, rcx
cmp dword [rcx + 0x10], 0
je 0x140042bfb
mov eax, 1
jmp 0x1400430fd
mov ecx, 0x10
call fcn.14007de08
mov rsi, rax
test rax, rax
je 0x140042c2c
lea rax, [0x1400a6010]
mov qword [rsi], rax
lea rcx, str.Atiedu64.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [rsi + 8], rax
xor edi, edi
jmp 0x140042c31
xor edi, edi
mov rsi, rdi
mov qword [rbx + 8], rsi
jmp 0x140042c51
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x1400430f7
mov eax, edi
cmp qword [rcx + 8], 0
setne al
mov dword [rbx + 0x10], eax
test eax, eax
je 0x1400430e8
mov rcx, qword [rcx + 8]
test rcx, rcx
je 0x140042c8b
lea rdx, str.AtiEDUThermalEnableInterrupt
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140042c8e
mov rax, rdi
mov qword [0x1400e3b98], rax
test rax, rax
jne 0x140042c9d
mov dword [rbx + 0x10], edi
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140042cb9
lea rdx, str.AtiEDUThermalDisableInterrupt
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140042cbc
mov rax, rdi
mov qword [0x1400e3ba0], rax
test rax, rax
jne 0x140042ccb
mov dword [rbx + 0x10], edi
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140042ce7
lea rdx, str.AtiEDUEnumSupportedExternalDevices
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140042cea
mov rax, rdi
mov qword [0x1400e3ba8], rax
test rax, rax
jne 0x140042cf9
mov dword [rbx + 0x10], edi
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140042d15
lea rdx, str.AtiEDUEnumApiSupportedDevices
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140042d18
mov rax, rdi
mov qword [0x1400e3bb0], rax
test rax, rax
jne 0x140042d27
mov dword [rbx + 0x10], edi
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140042d43
lea rdx, str.AtiEDUOpenAdapterHandle
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140042d46
mov rax, rdi
mov qword [0x1400e3bb8], rax
test rax, rax
jne 0x140042d55
mov dword [rbx + 0x10], edi
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140042d71
lea rdx, str.AtiEDUCloseAdapterHandle
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140042d74
mov rax, rdi
mov qword [0x1400e3bc0], rax
test rax, rax
jne 0x140042d83
mov dword [rbx + 0x10], edi
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140042d9f
lea rdx, str.AtiEDUGetThermalApiVersion
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140042da2
mov rax, rdi
mov qword [0x1400e3bc8], rax
test rax, rax
jne 0x140042db1
mov dword [rbx + 0x10], edi
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140042dcd
lea rdx, str.AtiEDUGetExtDeviceInfo
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140042dd0
mov rax, rdi
mov qword [0x1400e3bd0], rax
test rax, rax
jne 0x140042ddf
mov dword [rbx + 0x10], edi
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140042dfb
lea rdx, str.AtiEDUSetThermalRemoteTemperatureOffset
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140042dfe
mov rax, rdi
mov qword [0x1400e3bd8], rax
test rax, rax
jne 0x140042e0d
mov dword [rbx + 0x10], edi
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140042e29
lea rdx, str.AtiEDUGetThermalRemoteTemperatureOffset
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140042e2c
mov rax, rdi
mov qword [0x1400e3bf8], rax
test rax, rax
jne 0x140042e3b
mov dword [rbx + 0x10], edi
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140042e57
lea rdx, str.AtiEDUSetThermalRemoteTemperatureHighSetPoint
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140042e5a
mov rax, rdi
mov qword [0x1400e3be0], rax
test rax, rax
jne 0x140042e69
mov dword [rbx + 0x10], edi
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140042e85
lea rdx, str.AtiEDUGetThermalRemoteTemperatureHighSetPoint
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140042e88
mov rax, rdi
mov qword [0x1400e3c00], rax
test rax, rax
jne 0x140042e97
mov dword [rbx + 0x10], edi
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140042eb3
lea rdx, str.AtiEDUSetThermalRemoteTemperatureLowSetPoint
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140042eb6
mov rax, rdi
mov qword [0x1400e3be8], rax
test rax, rax
jne 0x140042ec5
mov dword [rbx + 0x10], edi
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140042ee1
lea rdx, str.AtiEDUGetThermalRemoteTemperatureLowSetPoint
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140042ee4
mov rax, rdi
mov qword [0x1400e3c08], rax
test rax, rax
jne 0x140042ef3
mov dword [rbx + 0x10], edi
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140042f0f
lea rdx, str.AtiEDUSetThermalRemoteTemperatureCriticalSetPoint
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140042f12
mov rax, rdi
mov qword [0x1400e3bf0], rax
test rax, rax
jne 0x140042f21
mov dword [rbx + 0x10], edi
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140042f3d
lea rdx, str.AtiEDUGetThermalRemoteTemperatureCriticalSetPoint
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140042f40
mov rax, rdi
mov qword [0x1400e3c10], rax
test rax, rax
jne 0x140042f4f
mov dword [rbx + 0x10], edi
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140042f6b
lea rdx, str.AtiEDUGetThermalRemoteTemperature
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140042f6e
mov rax, rdi
mov qword [0x1400e3c18], rax
test rax, rax
jne 0x140042f7d
mov dword [rbx + 0x10], edi
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140042f99
lea rdx, str.AtiEDUInitializeThermal
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140042f9c
mov rax, rdi
mov qword [0x1400e3c20], rax
test rax, rax
jne 0x140042fab
mov dword [rbx + 0x10], edi
test r12d, r12d
je 0x1400430fa
cmp dword [rbx + 0x10], 0
je 0x1400430fa
mov esi, edi
lea rcx, [0x1400e0890]
call fcn.14003a290
test eax, eax
je 0x1400430fa
lea r12, [rbx + 0x18]
nop
nop
mov dword [rsp + 0x80], 0xffffffff
mov edx, esi
lea rcx, [0x1400e0890]
call fcn.14003a760
mov rcx, rax
call fcn.140047110
mov edx, eax
mov dword [rsp + 0x20], 1
lea r9, [rsp + 0x80]
xor r8d, r8d
lea rcx, [0x1400e0890]
call fcn.14003a3b0
test eax, eax
jne 0x14004304b
mov eax, dword [rbx + 0x144]
test dword [0x1400dd138], eax
je 0x1400430cb
mov edx, esi
lea rcx, str.CEdu::Init__g_aDispDevMan.EnumAtiDevIndexOnAdapter_failed_on_adater_index__d__n
call fcn.14000cbb0
jmp 0x1400430cb
mov eax, dword [rsp + 0x80]
cmp eax, dword [0x1400e1a88]
jb 0x140043078
mov eax, dword [rbx + 0x144]
test dword [0x1400dd138], eax
je 0x1400430cb
mov edx, esi
lea rcx, str.CEdu::Init__g_aDispDevMan.EnumAtiDevIndexOnAdapter_get_invalid_device_index_on_adater_index__d__n
call fcn.14000cbb0
jmp 0x1400430cb
mov r9, qword [0x1400e3bb8]
test r9, r9
je 0x1400430a0
cmp qword [r12], 0
jne 0x1400430a7
xor r8d, r8d
xor edx, edx
mov ecx, eax
call r9
mov qword [r12], rax
mov eax, dword [rsp + 0x80]
cmp qword [r12], 0
je 0x1400430cb
test r13d, r13d
je 0x1400430cb
mov dword [rsp + 0x38], 8
mov dword [rsp + 0x3c], edi
mov dword [rsp + 0x40], edi
lea r8, [rsp + 0x38]
mov edx, eax
mov rcx, rbx
call fcn.140042750
add esi, 1
add r12, 0x28
lea rcx, [0x1400e0890]
call fcn.14003a290
cmp esi, eax
jb 0x140042fe0
jmp 0x1400430fa
lea rcx, str.EEU:_Unable_to_load_EDU_DLL_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x1400430fa
mov dword [rbx + 0x10], edi
mov eax, dword [rbx + 0x10]
add rsp, 0x50
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret