Function at 0x2e3cce200
Capabilities:
Link many functions at runtime

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x218
mov dword [rsp + 0x268], edx
mov r12, rcx
mov rsi, r8
mov rbx, r9
test r9, r9
je 0x2e3cce923
lea r13, [r9 + 8]
mov rcx, r9
lea rax, [r9 + 0x2a0]
mov qword [r9], 0
mov rdi, r13
mov qword [rsp + 0x28], rax
xor eax, eax
mov qword [r9 + 0x290], 0
and rdi, 0xfffffffffffffff8
sub rcx, rdi
add ecx, 0x298
shr ecx, 3
rep stosq qword [rdi], rax
test r8, r8
je 0x2e3cced20
cmp qword [rsi + 0x20], 0
mov rax, qword [rsi + 0x38]
je 0x2e3cce9c0
test rax, rax
je 0x2e3cce923
cmp qword [rsi + 0x28], 0
je 0x2e3cce918
movdqu xmm2, xmmword [rsi + 0x20]
movups xmmword [rbx + 0x100], xmm2
movdqu xmm3, xmmword [rsi + 0x30]
movups xmmword [rbx + 0x110], xmm3
mov r15, qword [rsi]
test r15, r15
je 0x2e3ccee80
mov qword [rbx + 0x70], r15
mov eax, dword [rsi + 8]
mov rcx, r15
lea r9, str.ole32.dll
lea r8, str.Loading_library:__s_n
mov edx, 4
lea rdi, str.ole32.dll
mov dword [rbx + 0xe8], eax
mov rax, qword [rsi + 0x10]
mov qword [rbx + 0xf0], rax
mov rax, qword [rsi + 0x18]
mov qword [rbx + 0xf8], rax
call fcn.2e3e45ec0
mov rbp, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rcx, rdi
call rbp
mov r15, rax
test rax, rax
je 0x2e3ccea18
mov qword [rbx + 0x228], rax
mov rcx, qword [rbx + 0x70]
lea r9, str.CoInitializeEx
lea r8, str.Loading_symbol:__s_n
mov edx, 4
call fcn.2e3e45ec0
lea r9, str.CoInitializeEx
mov rcx, r15
mov rdi, qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdx, r9
call rdi
lea r9, str.CoInitializeEx
test rax, rax
mov r15, rax
je 0x2e3ccea50
mov qword [rbx + 0x230], r15
mov rcx, qword [rbx + 0x70]
lea r9, str.CoUninitialize
lea r8, str.Loading_symbol:__s_n
mov r14, qword [rbx + 0x228]
mov edx, 4
lea r15, str.CoUninitialize
call fcn.2e3e45ec0
mov rcx, r14
mov rdx, r15
call rdi
mov r14, rax
test rax, rax
je 0x2e3ccea70
mov qword [rbx + 0x238], r14
mov rcx, qword [rbx + 0x70]
lea r9, str.CoCreateInstance
lea r8, str.Loading_symbol:__s_n
mov r14, qword [rbx + 0x228]
mov edx, 4
lea r15, str.CoCreateInstance
call fcn.2e3e45ec0
mov rcx, r14
mov rdx, r15
call rdi
mov r14, rax
test rax, rax
je 0x2e3ccea90
mov qword [rbx + 0x240], r14
mov rcx, qword [rbx + 0x70]
lea r9, str.CoTaskMemFree
lea r8, str.Loading_symbol:__s_n
mov r14, qword [rbx + 0x228]
mov edx, 4
lea r15, str.CoTaskMemFree
call fcn.2e3e45ec0
mov rcx, r14
mov rdx, r15
call rdi
mov r14, rax
test rax, rax
je 0x2e3cceab0
mov qword [rbx + 0x248], r14
mov rcx, qword [rbx + 0x70]
lea r9, str.PropVariantClear
lea r8, str.Loading_symbol:__s_n
mov r14, qword [rbx + 0x228]
mov edx, 4
lea r15, str.PropVariantClear
call fcn.2e3e45ec0
mov rcx, r14
mov rdx, r15
call rdi
mov r14, rax
test rax, rax
je 0x2e3ccead0
mov qword [rbx + 0x250], r14
mov rcx, qword [rbx + 0x70]
lea r9, str.StringFromGUID2
lea r8, str.Loading_symbol:__s_n
mov r14, qword [rbx + 0x228]
mov edx, 4
lea r15, str.StringFromGUID2
call fcn.2e3e45ec0
mov rcx, r14
mov rdx, r15
call rdi
mov r14, rax
test rax, rax
je 0x2e3cceaf0
mov qword [rbx + 0x258], r14
mov rcx, qword [rbx + 0x70]
lea r9, str.user32.dll
lea r8, str.Loading_library:__s_n
mov edx, 4
lea r14, str.user32.dll
call fcn.2e3e45ec0
mov rcx, r14
call rbp
mov r15, rax
test rax, rax
je 0x2e3cceb10
mov qword [rbx + 0x260], rax
mov rcx, qword [rbx + 0x70]
lea r9, str.GetForegroundWindow
lea r8, str.Loading_symbol:__s_n
mov edx, 4
call fcn.2e3e45ec0
lea r9, str.GetForegroundWindow
mov rcx, r15
mov rdx, r9
call rdi
lea r9, str.GetForegroundWindow
test rax, rax
mov r15, rax
je 0x2e3cceb40
mov qword [rbx + 0x268], r15
mov rcx, qword [rbx + 0x70]
lea r9, str.GetDesktopWindow
lea r8, str.Loading_symbol:__s_n
mov r14, qword [rbx + 0x260]
mov edx, 4
lea r15, str.GetDesktopWindow
call fcn.2e3e45ec0
mov rcx, r14
mov rdx, r15
call rdi
mov r14, rax
test rax, rax
je 0x2e3cceb60
mov qword [rbx + 0x270], r14
mov rcx, qword [rbx + 0x70]
mov edx, 4
lea r9, str.advapi32.dll
lea r8, str.Loading_library:__s_n
lea r15, str.advapi32.dll
call fcn.2e3e45ec0
mov rcx, r15
call rbp
mov rdx, rax
test rax, rax
je 0x2e3cceb80
mov qword [rbx + 0x278], rax
lea r8, str.RegOpenKeyExA
mov rcx, rbx
lea rbp, str.RegQueryValueExA
call fcn.2e3cc20a0
mov rdx, qword [rbx + 0x278]
lea r8, str.RegCloseKey
mov rcx, rbx
mov qword [rbx + 0x280], rax
call fcn.2e3cc20a0
mov r15, qword [rbx + 0x278]
mov rcx, qword [rbx + 0x70]
lea r9, str.RegQueryValueExA
mov qword [rbx + 0x288], rax
lea r8, str.Loading_symbol:__s_n
mov edx, 4
call fcn.2e3e45ec0
mov rdx, rbp
mov rcx, r15
call rdi
mov rdi, rax
test rax, rax
je 0x2e3ccebb0
mov qword [rbx + 0x290], rdi
xor edx, edx
xor ecx, ecx
call qword [rbx + 0x230]
movdqa xmm0, xmmword [0x2e3edf540]
mov rax, qword [0x2e3edf6c0]
mov dword [rsp + 0x158], 0xe
movaps xmmword [rsp + 0x120], xmm0
movdqa xmm0, xmmword [0x2e3edf6a0]
mov qword [rsp + 0x150], rax
movaps xmmword [rsp + 0x130], xmm0
movdqa xmm0, xmmword [0x2e3edf6b0]
movaps xmmword [rsp + 0x140], xmm0
test r12, r12
je 0x2e3ccebd0
mov eax, dword [rsp + 0x268]
test eax, eax
je 0x2e3cce787
lea rax, [rbx + 0x70]
xor r14d, r14d
xor ebp, ebp
mov qword [rsp + 0x20], rax
nop dword [rax]
mov rdi, r13
mov rcx, rbx
mov r15d, dword [r12 + r14*4]
mov qword [rbx], rbp
and rdi, 0xfffffffffffffff8
mov rax, qword [rsp + 0x20]
sub rcx, rdi
add ecx, 0x68
mov qword [rax - 0x10], rbp
mov rax, rbp
shr ecx, 3
rep stosq qword [rdi], rax
cmp r15d, 0xe
ja case.0x2e3cce6f8.3
lea rdx, [0x2e3edea04]
mov eax, r15d
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
lea r10d, [r15 - 3]
cmp r10d, 0xb
ja case.default.0x2e3cce71c
lea rdx, [0x2e3edea40]
movsxd rax, dword [rdx + r10*4]
add rax, rdx
jmp rax
mov rax, qword [0x2e3f0f690]
mov rcx, qword [rbx + 0x70]
lea r8, str.Attempting_to_initialize__s_backend..._n
mov edx, 4
lea r9, [0x2e3ede7b2]
mov qword [rbx], rax
call fcn.2e3e45ec0
mov r8, rbx
mov rdx, rsi
mov rcx, rbx
call qword [rbx]
test eax, eax
je 0x2e3ccec40
lea r9, [0x2e3ede7b2]
mov rcx, qword [rbx + 0x70]
lea r8, str.Failed_to_initialize__s_backend._n
mov edx, 4
add r14, 1
call fcn.2e3e45ec0
cmp dword [rsp + 0x268], r14d
ja 0x2e3cce6b8
mov rdi, r13
mov qword [rbx], 0
mov rax, qword [rsp + 0x28]
mov r12d, 0xffffff99
and rdi, 0xfffffffffffffff8
sub rbx, rdi
mov qword [rax - 0x10], 0
xor eax, eax
lea ecx, [rbx + 0x298]
shr ecx, 3
rep stosq qword [rdi], rax
mov eax, r12d
add rsp, 0x218
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movdqu xmm1, xmmword [rsi + 0x80]
movups xmmword [rbx], xmm1
movdqu xmm2, xmmword [rsi + 0x90]
cmp qword [rbx], 0
movups xmmword [rbx + 0x10], xmm2
movdqu xmm3, xmmword [rsi + 0xa0]
movups xmmword [rbx + 0x20], xmm3
movdqu xmm4, xmmword [rsi + 0xb0]
movups xmmword [rbx + 0x30], xmm4
movdqu xmm5, xmmword [rsi + 0xc0]
movups xmmword [rbx + 0x40], xmm5
movdqu xmm1, xmmword [rsi + 0xd0]
movups xmmword [rbx + 0x50], xmm1
mov rax, qword [rsi + 0xe0]
mov qword [rbx + 0x60], rax
jne 0x2e3ccec10
lea r9, [0x2e3ede7ab]
jmp 0x2e3cce760
lea rax, [0x2e3cccc80]
mov rcx, qword [rbx + 0x70]
lea r8, str.Attempting_to_initialize__s_backend..._n
mov edx, 4
mov qword [rbx], rax
lea r9, [0x2e3ede74b]
call fcn.2e3e45ec0
mov r8, rbx
mov rdx, rsi
mov rcx, rbx
call qword [rbx]
test eax, eax
je 0x2e3ccec40
lea r9, [0x2e3ede74b]
jmp 0x2e3cce760
lea rax, [0x2e3ccaed0]
mov rcx, qword [rbx + 0x70]
lea r8, str.Attempting_to_initialize__s_backend..._n
mov edx, 4
mov qword [rbx], rax
lea r9, [0x2e3ede744]
call fcn.2e3e45ec0
mov r8, rbx
mov rdx, rsi
mov rcx, rbx
call qword [rbx]
test eax, eax
je 0x2e3ccec40
lea r9, [0x2e3ede744]
jmp 0x2e3cce760
lea rax, [0x2e3ccd9a0]
mov rcx, qword [rbx + 0x70]
lea r8, str.Attempting_to_initialize__s_backend..._n
mov edx, 4
mov qword [rbx], rax
lea r9, [0x2e3ede757]
call fcn.2e3e45ec0
mov r8, rbx
mov rdx, rsi
mov rcx, rbx
call qword [rbx]
test eax, eax
je 0x2e3ccec40
lea r9, [0x2e3ede757]
jmp 0x2e3cce760
cmp qword [rsi + 0x30], 0
jne 0x2e3cce295
mov r12d, 0xfffffffe
jmp 0x2e3cce7b9
lea r9, [0x2e3ede790]
jmp 0x2e3cce760
lea r9, [0x2e3ede78b]
jmp 0x2e3cce760
lea r9, [0x2e3ede786]
jmp 0x2e3cce760
lea r9, [0x2e3ede797]
jmp 0x2e3cce760
lea r9, [0x2e3ede77b]
jmp 0x2e3cce760
lea r9, [0x2e3ede777]
jmp 0x2e3cce760
lea r9, [0x2e3ede76e]
jmp 0x2e3cce760
lea r9, [0x2e3ede7a1]
jmp 0x2e3cce760
lea r9, [0x2e3ede7b7]
jmp 0x2e3cce760
test rax, rax
jne 0x2e3cce28a
cmp qword [rsi + 0x28], 0
jne 0x2e3cce923
cmp qword [rsi + 0x30], 0
jne 0x2e3cce923
lea rax, [0x2e3cb9860]
lea rdi, [0x2e3cb9850]
movq xmm4, rax
movq xmm0, rdi
mov rax, qword [0x2e3f0f610]
punpcklqdq xmm0, xmm4
mov qword [rbx + 0x118], rax
movups xmmword [rbx + 0x108], xmm0
jmp 0x2e3cce2ad
mov rcx, qword [rbx + 0x70]
mov r9, rdi
mov edx, 3
lea r8, str.Failed_to_load_library:__s_n
mov r12d, 0xfffffed4
call fcn.2e3cbd820
mov qword [rbx + 0x228], 0
jmp 0x2e3cce7b9
mov rcx, qword [rbx + 0x70]
lea r8, str.Failed_to_load_symbol:__s_n
mov edx, 2
call fcn.2e3e45e80
jmp 0x2e3cce362
mov rcx, qword [rbx + 0x70]
mov r9, r15
mov edx, 2
lea r8, str.Failed_to_load_symbol:__s_n
call fcn.2e3e45e80
jmp 0x2e3cce3a7
mov rcx, qword [rbx + 0x70]
mov r9, r15
mov edx, 2
lea r8, str.Failed_to_load_symbol:__s_n
call fcn.2e3e45e80
jmp 0x2e3cce3ec
mov rcx, qword [rbx + 0x70]
mov r9, r15
mov edx, 2
lea r8, str.Failed_to_load_symbol:__s_n
call fcn.2e3e45e80
jmp 0x2e3cce431
mov rcx, qword [rbx + 0x70]
mov r9, r15
mov edx, 2
lea r8, str.Failed_to_load_symbol:__s_n
call fcn.2e3e45e80
jmp 0x2e3cce476
mov rcx, qword [rbx + 0x70]
mov r9, r15
mov edx, 2
lea r8, str.Failed_to_load_symbol:__s_n
call fcn.2e3e45e80
jmp 0x2e3cce4bb
mov rcx, qword [rbx + 0x70]
mov r9, r14
mov edx, 3
lea r8, str.Failed_to_load_library:__s_n
mov r12d, 0xfffffed4
call fcn.2e3cbd820
mov qword [rbx + 0x260], 0
jmp 0x2e3cce7b9
mov rcx, qword [rbx + 0x70]
lea r8, str.Failed_to_load_symbol:__s_n
mov edx, 2
call fcn.2e3e45e80
jmp 0x2e3cce53b
mov rcx, qword [rbx + 0x70]
mov r9, r15
mov edx, 2
lea r8, str.Failed_to_load_symbol:__s_n
call fcn.2e3e45e80
jmp 0x2e3cce580
mov rcx, qword [rbx + 0x70]
mov r9, r15
mov edx, 3
lea r8, str.Failed_to_load_library:__s_n
mov r12d, 0xfffffed4
call fcn.2e3cbd820
mov qword [rbx + 0x278], 0
jmp 0x2e3cce7b9
mov rcx, qword [rbx + 0x70]
mov r9, rbp
mov edx, 2
lea r8, str.Failed_to_load_symbol:__s_n
call fcn.2e3e45e80
jmp 0x2e3cce633
mov dword [rsp + 0x268], 0xf
lea r12, [rsp + 0x120]
jmp 0x2e3cce6a6
lea r9, [0x2e3ede768]
jmp 0x2e3cce760
lea r9, [0x2e3ede75d]
jmp 0x2e3cce760
mov rcx, qword [rbx + 0x70]
lea r8, str.Attempting_to_initialize__s_backend..._n
mov edx, 4
lea r9, [0x2e3ede7ab]
call fcn.2e3e45ec0
mov r8, rbx
mov rdx, rsi
mov rcx, rbx
call qword [rbx]
test eax, eax
jne case.0x2e3cce71c.13
nop
mov rsi, qword [sym.imp.KERNEL32.dll_CreateEventW]
xor r9d, r9d
xor edx, edx
xor ecx, ecx
mov r8d, 1
call rsi
mov qword [rbx + 0x120], rax
test rax, rax
je 0x2e3ccef36
xor r9d, r9d
mov r8d, 1
xor edx, edx
xor ecx, ecx
call rsi
xor r12d, r12d
mov qword [rbx + 0x128], rax
test rax, rax
je 0x2e3ccef04
mov rcx, qword [rbx + 0x70]
lea r8, str.System_Architecture:_n
mov edx, 4
call fcn.2e3e45ec0
mov rcx, qword [rbx + 0x70]
mov edx, 4
lea r9, [0x2e3ede986]
lea r8, str.__Endian:__s_n
call fcn.2e3e45ec0
mov rcx, qword [rbx + 0x70]
mov edx, 4
lea r9, [0x2e3ede997]
lea r8, str.__SSE2:____s_n
call fcn.2e3e45ec0
mov rcx, qword [rbx + 0x70]
mov edx, 4
lea r9, [0x2e3ede9a9]
lea r8, str.__AVX2:____s_n
call fcn.2e3e45ec0
mov rcx, qword [rbx + 0x70]
mov edx, 4
lea r9, [0x2e3ede9a9]
lea r8, str.__NEON:____s_n
call fcn.2e3e45ec0
mov dword [rbx + 0x68], r15d
jmp 0x2e3cce7b9
lea rdi, [rsp + 0x120]
mov ecx, 0x1d
mov rax, r8
mov qword [rsp + 0x30], 0
rep stosq qword [rdi], rax
lea rsi, [rsp + 0x30]
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 0
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0xe8], 0
mov qword [rsp + 0xf0], 0
mov qword [rsp + 0xf8], 0
mov qword [rsp + 0x100], 0
mov qword [rsp + 0x108], 0
mov qword [rsp + 0x110], 0
jmp 0x2e3cce272
lea r15, [rbx + 0x78]
lea rdi, [rbx + 0x80]
xor eax, eax
mov qword [rbx + 0x78], 0
and rdi, 0xfffffffffffffff8
mov rcx, r15
mov qword [rbx + 0xe0], 0
lea rdx, [rbx + 0x100]
sub rcx, rdi
add ecx, 0x70
shr ecx, 3
rep stosq qword [rdi], rax
lea rcx, [rbx + 0xc0]
call fcn.2e3cbd3c0
xor r9d, r9d
mov r8d, 1
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rbx + 0xe0], rax
mov rdi, rax
test rax, rax
jne 0x2e3cce2b9
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.2e3cbd8d0
test eax, eax
cmovne r15, rdi
jmp 0x2e3cce2b9
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.2e3cbd8d0
mov r12d, eax
test eax, eax
je 0x2e3ccec88
mov rcx, qword [rbx + 0x70]
lea r8, str.Failed_to_initialize_mutex_for_device_info_retrieval._ma_context_get_device_info___is_not_thread_safe._n
mov edx, 2
call fcn.2e3e45e80
jmp 0x2e3ccec88
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.2e3cbd8d0
test eax, eax
je 0x2e3ccec66
mov rcx, qword [rbx + 0x70]
lea r8, str.Failed_to_initialize_mutex_for_device_enumeration._ma_context_get_devices___is_not_thread_safe._n
mov edx, 2
call fcn.2e3e45e80
jmp 0x2e3ccec66