Function at 0x406d8c
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
lea edx, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_HeapSetInformation]
xor edi, edi
lea rax, [0x00412250]
mov dword [rsp + 0xc0], edi
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x48], rax
mov rbx, rdi
mov qword [rsp + 0xc8], rdi
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x38], rdi
call fcn.0040de68
lea r9, [rsp + 0x38]
cmp eax, 1
lea rcx, str.alink.dll
sete byte [0x00415ae5]
xor r8d, r8d
xor edx, edx
call sub.mscoree.dll_LoadLibraryShim
lea r15, [0x00414670]
cmp eax, edi
mov esi, eax
jge 0x406e36
mov edx, eax
mov rcx, r15
call fcn.00401b18
mov edx, 0xe
jmp 0x407035
mov rcx, qword [rsp + 0x38]
lea rdx, str.GetALinkMessageDll
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsp + 0x38]
lea rdx, str.CreateALink
mov rbp, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r12, rax
cmp rbp, rdi
je 0x407043
cmp rax, rdi
je 0x407043
call rbp
lea r9, [0x00411850]
lea r8, str.alinkui.dll
mov rdx, rax
mov rcx, r15
mov qword [0x00415af0], rax
call fcn.0040143c
cmp al, dil
jne 0x406ea3
mov eax, 1
jmp 0x4072f3
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0xc0]
lea rcx, [0x00414048]
call fcn.00403d10
cmp al, dil
je 0x407043
mov rdx, qword [rsp + 0x40]
mov ecx, dword [rsp + 0xc0]
call fcn.00404334
cmp byte [0x00414670], dil
jne 0x407043
cmp byte [0x00415ae0], dil
jne 0x406ef4
mov rcx, r15
call fcn.00401e34
cmp byte [0x00415ae2], dil
je 0x406f13
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitializeEx]
cmp eax, edi
mov esi, eax
jl 0x406e22
cmp byte [0x00415ae1], dil
je 0x406f3c
call fcn.00404210
mov esi, eax
jmp 0x407043
mov rdx, qword [rsp + 0x40]
mov ecx, dword [rsp + 0xc0]
call fcn.00404cac
cmp eax, edi
mov esi, eax
jl 0x406e22
cmp byte [0x00414670], dil
jne 0x407043
lea rdx, [rsp + 0x30]
lea rcx, [0x004114f8]
call r12
cmp eax, edi
mov esi, eax
jl 0x407017
xor edx, edx
lea rax, [rsp + 0xc8]
lea r9, [0x00412310]
lea r8d, [rdx + 0x15]
lea rcx, [0x004122c0]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, edi
mov esi, eax
jl 0x407017
mov rcx, qword [rsp + 0xc8]
call fcn.0040741c
cmp eax, edi
mov esi, eax
jl 0x407017
call fcn.00407314
mov rbx, rax
cmp rax, rdi
je 0x407017
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0xc8]
lea r8, [rsp + 0x48]
mov r9, qword [rcx]
call qword [r9 + 0x18]
cmp eax, edi
mov esi, eax
jl 0x407017
cmp byte [0x00414670], dil
jne 0x407043
cmp byte [0x00415ae4], dil
je 0x407043
mov r8, qword [rsp + 0x30]
mov rdx, qword [rsp + 0xc8]
lea r9, [rsp + 0x48]
mov rcx, rbx
call fcn.004074d8
jmp 0x407043
cmp esi, edi
je 0x407043
mov ecx, esi
call fcn.004088e4
cmp eax, edi
jge 0x407043
mov edx, esi
mov rcx, r15
call fcn.00401b18
mov edx, 4
mov r9, rax
xor r8d, r8d
mov rcx, r15
call fcn.004019ac
mov rcx, qword [rsp + 0x30]
cmp rcx, rdi
je 0x407053
mov rax, qword [rcx]
call qword [rax + 0x10]
cmp rbx, rdi
je 0x40706e
lea rcx, [rsp + 0xc0]
mov qword [rsp + 0xc0], rbx
call qword [0x00415b08]
mov rcx, qword [0x00415af8]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, qword [rsp + 0xc8]
cmp rcx, rdi
je 0x4070ef
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x4070ef
mov rax, qword [rbx + 0x18]
mov qword [0x00415ac8], rax
mov rbp, qword [rbx]
cmp rbp, rdi
je 0x4070b7
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbp
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbp, qword [rbx + 8]
cmp rbp, rdi
je 0x4070d4
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbp
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbx + 8], rdi
mov qword [rbx], rdi
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [0x00415ac8]
cmp rbx, rdi
jne 0x407090
cmp qword [0x00415aa0], rdi
je 0x40711c
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, qword [0x00415aa0]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp qword [0x00415aa8], rdi
je 0x40713d
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, qword [0x00415aa8]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp qword [0x00415ab0], rdi
je 0x40715e
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, qword [0x00415ab0]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp qword [0x00415ac0], rdi
je 0x40717f
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, qword [0x00415ac0]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp qword [0x00415ab8], rdi
je 0x4071c8
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, qword [0x00415ab8]
jmp 0x4071bd
mov rax, qword [rbx + 8]
mov qword [0x00415ad0], rax
cmp qword [rbx], rdi
je 0x4071b4
mov rcx, qword [rbx]
mov edx, 1
call fcn.00404c0c
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [0x00415ad0]
cmp rbx, rdi
jne 0x407197
lea rcx, [0x00414048]
call fcn.00403508
lea rbp, [0x004158d0]
mov r14d, Ordinal_22
mov r12, rbp
cmp word [rbp], di
je 0x40724a
mov eax, 0x4000
cmp word [rbp], ax
jne 0x407241
mov r13, qword [rbp + 8]
cmp r13, rdi
je 0x407237
mov rbx, qword [r13 + 0x18]
mov rcx, r13
mov qword [r13 + 0x18], rdi
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r13
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r13, rbx
cmp rbx, rdi
jne 0x40720a
mov word [rbp], di
mov qword [rbp + 8], rdi
jmp 0x40724a
mov rcx, r12
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
add r12, 0x18
add rbp, 0x18
sub r14, 1
jne 0x4071f0
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
call qword [sym.imp.ole32.dll_CoUninitialize]
cmp byte [0x00415ae2], dil
je 0x4072b1
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov r11, qword [rsp + 0x50]
lea rcx, str._nElapsed_time:__.4g_seconds_n
sub r11, qword [rsp + 0x58]
pxor xmm1, xmm1
pxor xmm0, xmm0
cvtsi2sd xmm0, qword [rsp + 0x60]
cvtsi2sd xmm1, r11
divsd xmm1, xmm0
movq rdx, xmm1
call qword [sym.imp.MSVCR90.dll_printf]
cmp byte [0x004156b0], dil
je 0x4072df
cmp byte [0x004156b2], dil
je 0x4072cb
mov rcx, r15
call fcn.004033a8
mov rcx, qword [0x004156a8]
call qword [sym.imp.MSVCR90.dll_fclose]
mov byte [0x004156b0], dil
cmp esi, edi
jne 0x4072ec
cmp byte [0x00414670], dil
je 0x4072f1
mov edi, 1
mov eax, edi
mov rbx, qword [rsp + 0xb0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret