Function at 0x3000837c
Capabilities:
Link many functions at runtime

Disassembly:
push rdi
movabs rax, 0x20
call sub.KERNEL32.dll___chkstk
sub rsp, rax
mov qword [0x30089a38], 0xffffffffffffffff
mov qword [0x30085480], 0
mov qword [0x30089a20], 0
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov qword [0x30089a30], rax
mov dword [0x30089c60], 0
mov qword [0x30085490], 0
lea rdi, [0x300867e0]
xor eax, eax
movabs rcx, 0x1f88
rep stosb byte [rdi], al
lea rcx, [0x30086820]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call fcn.30008268
lea rdi, [0x30085a90]
xor eax, eax
movabs rcx, 0xd50
rep stosb byte [rdi], al
lea rdi, [0x30085510]
movabs rcx, 0x580
rep stosb byte [rdi], al
lea rcx, [0x300853c0]
mov qword [0x30085a78], rcx
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [0x30085418]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rdi, [0x300891f0]
xor eax, eax
movabs rcx, 0x800
rep stosb byte [rdi], al
lea rdi, [0x300889f0]
movabs rcx, 0x800
rep stosb byte [rdi], al
lea rcx, [0x30086150]
call fcn.30009730
lea rcx, [0x30086170]
call fcn.30009730
lea rcx, [0x30086190]
call fcn.30009730
mov edx, 0x106
mov ecx, 0x18
call fcn.30021110
test rax, rax
je 0x300084be
mov word [rax], 0
mov word [rax + 2], 0
mov word [rax + 4], 8
mov qword [rax + 0x10], 0
jmp 0x300084c0
xor eax, eax
mov qword [0x30085478], rax
test rax, rax
je 0x300084e5
mov r9d, 2
mov r8d, pe_nt_image_headers64
mov edx, 0x10
mov rcx, rax
call fcn.3002d190
xor r9d, r9d
lea r8, [0x300899f8]
xor edx, edx
mov ecx, 0x30
call qword [sym.imp.USER32.dll_SystemParametersInfoA]
call fcn.30008204
test eax, eax
je 0x300085c9
lea rcx, str.BTLog.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x30089cb8], rax
test rax, rax
je 0x300085c9
lea rdx, str.BTLogSetOptions
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x30089c98], rax
lea rdx, str.BTLogStart
mov rcx, qword [0x30089cb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x30089ca0], rax
lea rdx, str.BTLogStatus
mov rcx, qword [0x30089cb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x30089ca8], rax
lea rdx, str.BTLogEnd
mov rcx, qword [0x30089cb8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x30089cb0], rax
cmp qword [0x30089c98], 0
je 0x300085b1
cmp qword [0x30089ca0], 0
je 0x300085b1
cmp qword [0x30089ca8], 0
je 0x300085b1
test rax, rax
jne 0x300085c9
mov rcx, qword [0x30089cb8]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [0x30089cb8], 0
lea rcx, str.imm32.dll
call fcn.3000bfd4
mov qword [0x30085468], rax
test rax, rax
je 0x30008615
lea rdx, str.ImmDisableIME
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x30085470], rax
test rax, rax
jne 0x30008615
mov rcx, qword [0x30085468]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [0x30085468], 0
lea rcx, str.ole32.dll
call fcn.3000bfd4
mov qword [0x30085440], rax
test rax, rax
je 0x300086d4
lea rdx, str.CoInitializeSecurity
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x30085460], rax
lea rdx, str.CoCreateInstance
mov rcx, qword [0x30085440]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x30085458], rax
lea rdx, str.CoInitializeEx
mov rcx, qword [0x30085440]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x30085450], rax
lea rdx, str.CoUninitialize
mov rcx, qword [0x30085440]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x30085448], rax
cmp qword [0x30085460], 0
je 0x300086bc
cmp qword [0x30085458], 0
je 0x300086bc
cmp qword [0x30085450], 0
je 0x300086bc
test rax, rax
jne 0x300086d4
mov rcx, qword [0x30085440]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [0x30085440], 0
add rsp, 0x20
pop rdi
ret