Function at 0x1400e7050
Capabilities:
Check for time delay via queryperformancecounter
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov rsi, rcx
mov rax, qword [0x140287028]
xor rax, rsp
mov qword [rsp + 0xa0], rax
movabs r13, 0x8000000000000001
mov dword [rsp + 0x2c], 0xaaaaaaaa
mov rdi, qword [rdx]
lea rcx, [r13 - 2]
mov eax, 0xffffffff
cmp rdi, rcx
je 0x1400e7126
mov rax, qword [rdx + 8]
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x80], rcx
test rax, rax
je 0x1400e7dff
xor ecx, ecx
cmp rdi, rax
setns cl
movabs rdx, 0x7fffffffffffffff
add rdx, rcx
sub rdi, rax
cmovo rdi, rdx
lea rax, [rdi + r13]
cmp rax, 2
jb 0x1400e7117
movabs rcx, 0x20c49ba5e353f7cf
mov rax, rdi
imul rcx
mov rax, rdx
shr rax, 0x3f
sar rdx, 7
add rdx, rax
imul rax, rdx, 0x3e8
xor ecx, ecx
cmp rdi, rax
setg cl
add rcx, rdx
mov rdi, rcx
mov rax, rdi
shr rax, 0x20
jne 0x1400e7e56
mov eax, edi
mov dword [rsp + 0x2c], eax
lea rcx, [rsp + 0x2c]
call fcn.1400f24c0
mov eax, dword [rsp + 0x2c]
lea rdx, [rsp + 0x40]
xorpd xmm0, xmm0
movapd xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x80], 0
mov rcx, qword [rsi + 0x18]
mov dword [rsp + 0x20], eax
lea r8, [rsp + 0x50]
lea r12, [rsp + 0x80]
mov r9, r12
call qword [sym.imp.KERNEL32.dll_GetQueuedCompletionStatus]
test eax, eax
je 0x1400e7996
mov rbx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x30]
mov rax, qword [0x14028a5a0]
and rax, rcx
cmp rax, qword [0x14028a588]
je 0x1400e8205
mov rax, qword [0x14028a5a0]
and rax, rbx
cmp rax, qword [0x14028a588]
jne 0x1400e71c7
mov rcx, rbx
call fcn.1400eaf60
mov qword [rsp + 0x30], rbx
mov rbx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x38]
mov rax, qword [0x14028a5a0]
and rax, rcx
cmp rax, qword [0x14028a588]
je 0x1400e820f
mov rax, qword [0x14028a5a0]
and rax, rbx
cmp rax, qword [0x14028a588]
jne 0x1400e720b
mov rcx, rbx
call fcn.1400eaf60
mov qword [rsp + 0x38], rbx
cmp rbx, rsi
jne 0x1400e7220
cmp qword [rsp + 0x30], rsi
je 0x1400e7dd7
mov rax, qword [rsi + 0x10]
mov rsi, qword [rax]
mov rax, qword [rsi]
mov rax, qword [rax + 0x20]
lea rcx, [fcn.1400ee2a0]
cmp rax, rcx
jne 0x1400e8219
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x90], rax
movapd xmm0, xmmword [0x140261350]
movapd xmmword [rsp + 0x80], xmm0
mov rax, qword [rsi - 0xc0]
mov byte [rsp + 0x80], 0
mov qword [rsp + 0x98], rax
cmp byte [rsi + 0x120], 0
je 0x1400e7350
mov eax, dword [0x1402a19a0]
mov ecx, dword [0x140296f94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400e8120
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400e7350
mov rcx, qword [0x1402a1990]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1402a1998]
jne 0x1400e7350
mov rdi, qword [rax + rcx]
test rdi, rdi
je 0x1400e7350
cmp byte [rsi + 0x128], 0
je 0x1400e7350
mov rax, qword [rdi]
test rax, rax
js 0x1400e81d5
cmp dword [rdi + 0x14], 1
jne 0x1400e8302
cmp qword [rdi + 8], 0
jne 0x1400e8351
movabs rax, 0xbfffffffffffffff
lock and qword [rdi], rax
mov rbx, qword [rsi + 0x130]
cmp qword [rdi + 8], 0
jne 0x1400e832d
mov rax, qword [rdi]
movabs rcx, 0x4000000000000000
and rax, rcx
movabs rcx, 0xffffffffffffff
and rbx, rcx
or rbx, rax
mov qword [rdi], rbx
dec dword [rdi + 0x14]
mov qword [rsi + 0x130], 0
mov byte [rsi + 0x138], 0
mov byte [rsi + 0x128], 0
mov byte [rsi + 0x120], 1
mov rax, qword [rsi + 0xf0]
mov ecx, dword [rax]
inc ecx
je 0x1400e8227
mov dword [rax], ecx
mov rax, qword [rsi - 0x10]
cmp qword [rsi - 0x18], rax
je 0x1400e7517
mov eax, dword [rax - 0x38]
test eax, eax
je 0x1400e74ed
cmp eax, 2
je 0x1400e82d4
cmp qword [rsi - 0x58], 0
je 0x1400e74f8
cmp qword [rsi - 0x70], 0
je 0x1400e74f8
mov rax, qword [rsi - 0x28]
test rax, rax
je 0x1400e847a
mov rcx, qword [rax + 0xa8]
sub rcx, qword [rax + 0xa0]
cmp rcx, 0x38
jne 0x1400e74f8
cmp byte [rsp + 0x80], 0
jne 0x1400e7dca
mov rax, qword [fcn.140158d50]
lea rcx, [0x140171950]
cmp rax, rcx
jne 0x1400e8198
lea rbx, [rsp + 0x50]
mov qword [rbx], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rbx]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x1400e8557
imul rax, rax, 0xf4240
cqo
idiv qword [0x14029b670]
mov rbx, rax
cmp byte [rsp + 0x80], 0
mov qword [rsp + 0x88], rbx
jne 0x1400e745d
mov byte [rsp + 0x80], 1
mov rax, qword [rsi - 0x70]
xor edx, edx
cmp rbx, rax
setns dl
movabs rdi, 0x7fffffffffffffff
add rdx, rdi
mov rcx, rbx
sub rcx, rax
cmovo rcx, rdx
cmp rcx, 0x1c9c37f
jg 0x1400e74d1
lea rax, [rcx + r13]
mov rdx, qword [rsi - 0xa8]
cmp rax, 1
jbe 0x1400e847d
lea rax, [rdx + rcx]
sar rax, 0x3f
btc rax, 0x3f
add rdx, rcx
cmovo rdx, rax
mov qword [rsi - 0xa8], rdx
cmp rdx, 0x186a0
jge 0x1400e8076
cmp qword [rsi - 0x28], 0
je 0x1400e849b
mov al, byte [0x140289970]
test al, 9
setne dil
jne 0x1400e849e
mov byte [rsi - 0x30], dil
mov qword [rsi - 0x70], rbx
jmp 0x1400e74f8
cmp qword [rsi - 0x58], 0
jne 0x1400e7ce9
mov rdi, qword [rsi - 0x10]
cmp qword [rsi - 0x18], rdi
je 0x1400e8231
cmp dword [rdi - 0x38], 0
mov dword [rdi - 0x38], 2
je 0x1400e79b8
mov rax, qword [0x14029b528]
test rax, rax
je 0x1400e7ef2
test byte [rax], 0x19
jne 0x1400e7c95
mov rbx, qword [rsp + 0x30]
mov rax, qword [0x14028a5a0]
and rax, rbx
mov rcx, rbx
cmp rax, qword [0x14028a588]
jne 0x1400e7558
mov rcx, rbx
call fcn.1400eaf60
mov rcx, qword [rsp + 0x30]
mov rax, qword [0x14028a5a0]
and rax, rcx
cmp rax, qword [0x14028a588]
jne 0x1400e7570
call fcn.1400ebe70
mov qword [rsp + 0x30], 0
mov ebp, dword [rsp + 0x44]
mov r15d, dword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
mov rax, qword [0x14028a5a0]
and rax, r14
mov rcx, r14
cmp rax, qword [0x14028a588]
jne 0x1400e75aa
mov rcx, r14
call fcn.1400eaf60
mov rcx, qword [rsp + 0x38]
mov rax, qword [0x14028a5a0]
and rax, rcx
cmp rax, qword [0x14028a588]
jne 0x1400e75c2
call fcn.1400ebe70
mov qword [rsp + 0x38], 0
mov rax, qword [rbx]
mov rax, qword [rax + 8]
mov rcx, rbx
mov rdx, r14
mov r8d, r15d
mov r9d, ebp
call qword [case.0x1401d7990.0]
mov rax, qword [0x14028a5a0]
and rax, r14
cmp rax, qword [0x14028a588]
jne 0x1400e75ff
mov rcx, r14
call fcn.1400e5d90
mov rax, qword [0x14028a5a0]
and rax, rbx
cmp rax, qword [0x14028a588]
jne 0x1400e761a
mov rcx, rbx
call fcn.1400e5d90
mov rax, qword [0x14029b530]
test rax, rax
je 0x1400e7f0a
test byte [rax], 0x19
jne 0x1400e7cbf
test rsi, rsi
je 0x1400e7930
mov rax, qword [rsi]
mov rax, qword [rax + 0x28]
lea rcx, [fcn.1400eda30]
cmp rax, rcx
jne 0x1400e8234
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x90], rax
movapd xmm0, xmmword [0x140261350]
movapd xmmword [rsp + 0x80], xmm0
mov rax, qword [rsi - 0xc0]
mov byte [rsp + 0x80], 0
mov qword [rsp + 0x98], rax
cmp byte [rsi + 0x120], 0
je 0x1400e7765
mov eax, dword [0x1402a19a0]
mov ecx, dword [0x140296f94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400e80d2
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400e7765
mov rcx, qword [0x1402a1990]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1402a1998]
jne 0x1400e7765
mov rdi, qword [rax + rcx]
test rdi, rdi
je 0x1400e7765
cmp byte [rsi + 0x128], 0
je 0x1400e7765
mov rax, qword [rdi]
test rax, rax
js 0x1400e81c4
cmp dword [rdi + 0x14], 1
jne 0x1400e8261
cmp qword [rdi + 8], 0
jne 0x1400e82b0
movabs rax, 0xbfffffffffffffff
lock and qword [rdi], rax
mov rbx, qword [rsi + 0x130]
cmp qword [rdi + 8], 0
jne 0x1400e828c
mov rax, qword [rdi]
movabs rcx, 0x4000000000000000
and rax, rcx
movabs rcx, 0xffffffffffffff
and rbx, rcx
or rbx, rax
mov qword [rdi], rbx
dec dword [rdi + 0x14]
mov qword [rsi + 0x130], 0
mov byte [rsi + 0x138], 0
mov byte [rsi + 0x128], 0
mov byte [rsi + 0x120], 1
mov rax, qword [rsi + 0xf0]
mov ecx, dword [rax]
inc ecx
je 0x1400e8242
mov dword [rax], ecx
mov rax, qword [rsi - 0x10]
cmp qword [rsi - 0x18], rax
je 0x1400e7930
cmp dword [rax - 0x38], 2
jne 0x1400e824c
cmp qword [rsi - 0x58], 0
je 0x1400e7911
cmp qword [rsi - 0x70], 0
je 0x1400e7911
mov rax, qword [rsi - 0x28]
test rax, rax
je 0x1400e8375
mov rcx, qword [rax + 0xa8]
sub rcx, qword [rax + 0xa0]
cmp rcx, 0x38
jne 0x1400e7911
mov r14b, byte [rsi - 0x60]
mov ebx, 3
test r14b, r14b
jne 0x1400e7802
mov byte [rsi - 0x60], 1
mov ebx, 5
cmp byte [rsp + 0x80], 0
jne 0x1400e7c88
mov rax, qword [fcn.140158d50]
lea rcx, [0x140171950]
cmp rax, rcx
jne 0x1400e8182
lea rdi, [rsp + 0x50]
mov qword [rdi], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rdi]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x1400e852a
imul rax, rax, 0xf4240
cqo
idiv qword [0x14029b670]
mov rdi, rax
cmp byte [rsp + 0x80], 0
mov qword [rsp + 0x88], rdi
jne 0x1400e787f
mov byte [rsp + 0x80], 1
mov rcx, qword [rsi - 0x70]
xor edx, edx
cmp rdi, rcx
setns dl
movabs r12, 0x7fffffffffffffff
add rdx, r12
mov rax, rdi
sub rax, rcx
cmovo rax, rdx
cmp rax, 0x1c9c37f
jg 0x1400e78f7
mov r15d, ebx
lea rdx, [rax + r13]
mov rcx, qword [rsi + r15*8 - 0xb8]
cmp rdx, 1
jbe 0x1400e8378
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
mov qword [rsi + r15*8 - 0xb8], rcx
cmp rcx, 0x186a0
jge 0x1400e7f2a
cmp qword [rsi - 0x28], 0
je 0x1400e8395
mov al, byte [0x140289970]
test al, 9
setne bpl
jne 0x1400e8398
mov byte [rsi - 0x30], bpl
mov qword [rsi - 0x70], rdi
mov rdi, qword [rsi - 0x10]
cmp qword [rsi - 0x18], rdi
je 0x1400e825e
cmp dword [rdi - 0x38], 0
mov dword [rdi - 0x38], 1
je 0x1400e7b2a
mov rcx, qword [rsp + 0x38]
mov rax, qword [0x14028a5a0]
and rax, rcx
cmp rax, qword [0x14028a588]
je 0x1400e7deb
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x30]
mov rax, qword [0x14028a5a0]
and rax, rcx
cmp rax, qword [0x14028a588]
je 0x1400e7df5
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.1401756e0
nop
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp qword [rsp + 0x80], 0
je 0x1400e7930
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x44], eax
mov dword [rsp + 0x40], 0
jmp 0x1400e718b
test byte [0x140289010], 0x19
jne 0x1400e8426
mov r15, qword [rdi - 0x10]
inc r15
mov qword [rdi - 0x10], r15
mov eax, dword [0x1402a3938]
mov ecx, dword [0x140296f94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400e7f82
mov r14d, dword [rdi - 0x18]
mov rbp, r12
test r14d, r14d
je 0x1400e816e
mov al, 1
mov dword [rsp + 0x28], eax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ebx, eax
test r14d, r14d
setne r12b
mov rdi, qword [rdi - 0x20]
lea rcx, [0x1402a3928]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400e7e61
mov r14, qword [0x1402a3918]
test r14, r14
je 0x1400e7a8e
lea rax, [0x1402a2cd0]
xor ecx, ecx
mov edx, r12d
xor dl, 1
cmp rcx, 0x32
je 0x1400e81ff
cmp qword [rax - 0x30], rdi
jne 0x1400e7a82
cmp byte [rax - 0x28], 0
jne 0x1400e7a82
movzx r8d, byte [rax - 0x10]
test r8b, r8b
sete r9b
or r9b, dl
jne 0x1400e7e83
cmp dword [rax - 0xc], ebx
je 0x1400e7e93
inc rcx
add rax, 0x40
cmp r14, rcx
jne 0x1400e7a4e
mov rax, qword [0x1402a3920]
test rax, rax
je 0x1400e7f22
mov ecx, 0x32
sub rcx, r14
cmp rax, rcx
mov r12, rbp
jb 0x1400e7ade
lea rcx, [0x1402a3930]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400e7ade
lea rcx, [0x1402a2c90]
mov rdx, r14
call fcn.1400ec220
mov r14, rax
lea rcx, [0x1402a3930]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp r14, 0x32
je 0x1400e7eaa
jae 0x1400e8617
shl r14, 6
lea rax, [0x1402a2c90]
mov qword [r14 + rax + 0x10], rdi
mov byte [r14 + rax + 0x18], 0
mov ecx, dword [rsp + 0x28]
mov byte [r14 + rax + 0x30], cl
mov dword [r14 + rax + 0x34], ebx
mov qword [r14 + rax + 0x40], r15
mov byte [r14 + rax + 8], 1
lock inc qword [0x1402a3918]
jmp 0x1400e7eaa
test byte [0x140289010], 0x19
jne 0x1400e8450
mov rbx, qword [rdi - 0x10]
inc rbx
mov qword [rdi - 0x10], rbx
mov eax, dword [0x1402a3938]
mov ecx, dword [0x140296f94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400e7ffc
mov r14d, dword [rdi - 0x18]
test r14d, r14d
je 0x1400e817b
mov bpl, 1
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
test r14d, r14d
setne r15b
mov r14, qword [rdi - 0x20]
lea rcx, [0x1402a3928]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400e7e72
mov rdi, qword [0x1402a3918]
test rdi, rdi
je 0x1400e7bfa
lea rax, [0x1402a2cd0]
xor ecx, ecx
mov edx, r15d
xor dl, 1
cmp rcx, 0x32
je 0x1400e8202
cmp qword [rax - 0x30], r14
jne 0x1400e7bee
cmp byte [rax - 0x28], 0
jne 0x1400e7bee
movzx r8d, byte [rax - 0x10]
test r8b, r8b
sete r9b
or r9b, dl
jne 0x1400e7ebc
cmp dword [rax - 0xc], esi
je 0x1400e7ecc
inc rcx
add rax, 0x40
cmp rdi, rcx
jne 0x1400e7bba
mov rax, qword [0x1402a3920]
test rax, rax
je 0x1400e7c43
mov ecx, 0x32
sub rcx, rdi
cmp rax, rcx
jb 0x1400e7c43
lea rcx, [0x1402a3930]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400e7c43
lea rcx, [0x1402a2c90]
mov rdx, rdi
call fcn.1400ec220
mov rdi, rax
lea rcx, [0x1402a3930]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp rdi, 0x32
je 0x1400e7ee0
jae 0x1400e861a
shl rdi, 6
lea rax, [0x1402a2c90]
mov qword [rdi + rax + 0x10], r14
mov byte [rdi + rax + 0x18], 0
mov byte [rdi + rax + 0x30], bpl
mov dword [rdi + rax + 0x34], esi
mov qword [rdi + rax + 0x40], rbx
mov byte [rdi + rax + 8], 1
lock inc qword [0x1402a3918]
jmp 0x1400e7ee0
mov rdi, qword [rsp + 0x88]
jmp 0x1400e787f
lea rcx, [rsp + 0x50]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rcx + 0x18], rax
xorpd xmm0, xmm0
movapd xmmword [rcx], xmm0
movupd xmmword [rcx + 9], xmm0
call fcn.1400e5cf0
jmp 0x1400e7530
lea rcx, [rsp + 0x50]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rcx + 0x18], rax
xorpd xmm0, xmm0
movapd xmmword [rcx], xmm0
movupd xmmword [rcx + 9], xmm0
call fcn.1400e5cf0
jmp 0x1400e7633
mov rax, qword [rsi - 0x28]
test rax, rax
je 0x1400e8554
mov rcx, qword [rax + 0xa8]
sub rcx, qword [rax + 0xa0]
cmp rcx, 0x38
jne 0x1400e74f8
cmp byte [rsp + 0x80], 0
jne 0x1400e7de1
mov rax, qword [fcn.140158d50]
lea rcx, [0x140171950]
cmp rax, rcx
jne 0x1400e81ae
lea rbx, [rsp + 0x50]
mov qword [rbx], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rbx]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x1400e8581
imul rax, rax, 0xf4240
cqo
idiv qword [0x14029b670]
cmp byte [rsp + 0x80], 0
mov qword [rsp + 0x88], rax
jne 0x1400e7d88
mov byte [rsp + 0x80], 1
mov qword [rsi - 0x78], rax
mov qword [rsi - 0x70], rax
test byte [0x140289970], 0x19
je 0x1400e74f8
cmp byte [rsi - 0x50], 0
je 0x1400e86c1
lea r9, [rsi - 0x48]
mov qword [rsp + 0x20], rax
lea rdx, [0x140289970]
lea r8, [0x140262d25]
mov cl, 0x45
call fcn.140041e60
jmp 0x1400e74f8
mov rbx, qword [rsp + 0x88]
jmp 0x1400e745d
xor eax, eax
xchg byte [rsi + 8], al
jmp 0x1400e7930
mov rax, qword [rsp + 0x88]
jmp 0x1400e7d88
call fcn.1400ebe70
jmp 0x1400e794c
call fcn.1400ebe70
jmp 0x1400e7971
mov rax, qword [fcn.140158d50]
lea rcx, [0x140171950]
cmp rax, rcx
jne 0x1400e81e6
lea rbx, [rsp + 0x50]
mov qword [rbx], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rbx]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x1400e85f0
imul rax, rax, 0xf4240
cqo
idiv qword [0x14029b670]
jmp 0x1400e70be
sar rdi, 0x3f
not edi
jmp 0x1400e7124
lea rcx, [0x1402a3928]
call fcn.1400ec2e0
jmp 0x1400e7a33
lea rcx, [0x1402a3928]
call fcn.1400ec2e0
jmp 0x1400e7b9f
test r8b, r8b
setne r8b
xor r8b, r12b
jne 0x1400e7a82
mov qword [rax], r15
mov cl, 1
xchg byte [rax - 0x38], cl
test cl, 1
mov r12, rbp
jne 0x1400e7eaa
dec qword [0x1402a3920]
lea rcx, [0x1402a3928]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1400e7517
test r8b, r8b
setne r8b
xor r8b, r15b
jne 0x1400e7bee
mov qword [rax], rbx
mov cl, 1
xchg byte [rax - 0x38], cl
test cl, 1
jne 0x1400e7ee0
dec qword [0x1402a3920]
lea rcx, [0x1402a3928]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1400e7930
lea rcx, str.base_toplevel
call fcn.1400f8c70
mov qword [0x14029b528], rax
jmp 0x1400e7527
lea rcx, str.base_toplevel
call fcn.1400f8c70
mov qword [0x14029b530], rax
jmp 0x1400e762a
mov r12, rbp
jmp 0x1400e7ade
cvtsi2sd xmm0, rcx
divsd xmm0, qword [0x140265fa0]
cvttsd2si ebp, xmm0
mov rcx, qword [rsi - 0x58]
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
mov edx, ebx
mov r8d, ebp
call qword [case.0x1401d7990.0]
movsxd rax, ebp
imul rax, rax, 0x3e8
mov r13, qword [rsi + r15*8 - 0xb8]
xor ecx, ecx
cmp r13, rax
setns cl
add rcx, r12
sub r13, rax
cmovo r13, rcx
mov qword [rsi + r15*8 - 0xb8], r13
jmp 0x1400e78ec
lea rcx, [0x1402a3938]
call fcn.140172b08
cmp dword [0x1402a3938], 0xffffffff
jne 0x1400e79f5
lea rax, [0x14025d760]
mov qword [0x1402a2c90], rax
mov eax, 0x40
lea rcx, [0x1402a2c90]
xor edx, edx
mov byte [rax + rcx - 0x38], dl
mov byte [rax + rcx - 0x28], dl
mov byte [rax + rcx - 0x10], dl
mov qword [rax + rcx], 0
add rax, 0x40
cmp rax, 0xcc0
jne 0x1400e7fb7
xorpd xmm0, xmm0
movupd xmmword [0x1402a3928], xmm0
movupd xmmword [0x1402a3918], xmm0
lea rcx, [0x1402a3938]
call fcn.140172aa8
jmp 0x1400e79f5
lea rcx, [0x1402a3938]
call fcn.140172b08
cmp dword [0x1402a3938], 0xffffffff
jne 0x1400e7b67
lea rax, [0x14025d760]
mov qword [0x1402a2c90], rax
mov eax, 0x40
lea rcx, [0x1402a2c90]
xor edx, edx
mov byte [rax + rcx - 0x38], dl
mov byte [rax + rcx - 0x28], dl
mov byte [rax + rcx - 0x10], dl
mov qword [rax + rcx], 0
add rax, 0x40
cmp rax, 0xcc0
jne 0x1400e8031
xorpd xmm0, xmm0
movupd xmmword [0x1402a3928], xmm0
movupd xmmword [0x1402a3918], xmm0
lea rcx, [0x1402a3938]
call fcn.140172aa8
jmp 0x1400e7b67
xorps xmm0, xmm0
cvtsi2sd xmm0, rdx
divsd xmm0, qword [0x140265fa0]
cvttsd2si ebp, xmm0
mov rcx, qword [rsi - 0x58]
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
mov edx, 2
mov r8d, ebp
call qword [case.0x1401d7990.0]
movsxd rax, ebp
imul rcx, rax, 0x3e8
mov rax, qword [rsi - 0xa8]
xor edx, edx
cmp rax, rcx
setns dl
add rdx, rdi
sub rax, rcx
cmovo rax, rdx
mov qword [rsi - 0xa8], rax
jmp 0x1400e74c6
lea rcx, [0x1402a19a0]
call fcn.140172b08
cmp dword [0x1402a19a0], 0xffffffff
jne 0x1400e76bf
mov qword [0x1402a1998], 0
lea rcx, [0x1402a1990]
mov qword [0x1402a1990], 0xffffffffffffffff
xor edx, edx
call fcn.140002400
lea rcx, [0x1402a19a0]
call fcn.140172aa8
jmp 0x1400e76bf
lea rcx, [0x1402a19a0]
call fcn.140172b08
cmp dword [0x1402a19a0], 0xffffffff
jne 0x1400e72aa
mov qword [0x1402a1998], 0
lea rcx, [0x1402a1990]
mov qword [0x1402a1990], 0xffffffffffffffff
xor edx, edx
call fcn.140002400
lea rcx, [0x1402a19a0]
call fcn.140172aa8
jmp 0x1400e72aa
mov dword [rsp + 0x28], 0
jmp 0x1400e7a13
xor ebp, ebp
jmp 0x1400e7b7f
lea rdi, [rsp + 0x78]
mov rcx, rdi
call qword [case.0x1401d7990.0]
mov rdi, qword [rdi]
jmp 0x1400e7865
lea rbx, [rsp + 0x78]
mov rcx, rbx
call qword [case.0x1401d7990.0]
mov rbx, qword [rbx]
jmp 0x1400e7443
lea rbx, [rsp + 0x78]
mov rcx, rbx
call qword [case.0x1401d7990.0]
mov rax, qword [rbx]
jmp 0x1400e7d6e
mov rcx, qword [0x1402a1988]
call fcn.1401aec90
jmp 0x1400e770a
mov rcx, qword [0x1402a1988]
call fcn.1401aec90
jmp 0x1400e72f5
lea rbx, [rsp + 0x80]
mov rcx, rbx
call qword [case.0x1401d7990.0]
mov rax, qword [rbx]
jmp 0x1400e70be
int3
int3
call fcn.1400ebe70
jmp 0x1400e71ac
call fcn.1400ebe70
jmp 0x1400e71f0
mov rcx, rsi
call qword [case.0x1401d7990.0]
jmp 0x1400e7517
mov ecx, 1
jmp 0x1400e7381
int3
mov rcx, rsi
call qword [case.0x1401d7990.0]
jmp 0x1400e7930
mov ecx, 1
jmp 0x1400e7796
lea rcx, [rsi - 0x18]
mov qword [rax - 0x28], r12
call fcn.1401aece0
jmp 0x1400e7911
int3
cmp byte [rsi + 0x138], 0
je 0x1400e772d
cmp qword [rdi + 8], 0
jne 0x1400e85a8
movabs rax, 0x4000000000000000
lock or qword [rdi], rax
jmp 0x1400e772d
lea rcx, [rdi + 8]
mov r14, qword [rdi]
call fcn.1401aed10
movabs rcx, 0xff00000000000000
and rcx, r14
or rcx, rax
mov qword [rdi], rcx
jmp 0x1400e773f
lea rcx, [rdi + 8]
mov rbx, qword [rdi]
call fcn.1401aed10
movabs rcx, 0xff00000000000000
and rcx, rbx
or rcx, rax
mov qword [rdi], rcx
jmp 0x1400e771f
lea r9, [rsi - 0xb8]
lea rcx, [rsi - 0x18]
lea r8, [rsp + 0x78]
mov byte [r8], 1
lea rdx, [rsp + 0x50]
mov dword [rdx], 2
mov qword [rsp + 0x20], r12
call fcn.1401aed80
jmp 0x1400e7517
cmp byte [rsi + 0x138], 0
je 0x1400e7318
cmp qword [rdi + 8], 0
jne 0x1400e85cc
movabs rax, 0x4000000000000000
lock or qword [rdi], rax
jmp 0x1400e7318
lea rcx, [rdi + 8]
mov r14, qword [rdi]
call fcn.1401aed10
movabs rcx, 0xff00000000000000
and rcx, r14
or rcx, rax
mov qword [rdi], rcx
jmp 0x1400e732a
lea rcx, [rdi + 8]
mov rbx, qword [rdi]
call fcn.1401aed10
movabs rcx, 0xff00000000000000
and rcx, rbx
or rcx, rax
mov qword [rdi], rcx
jmp 0x1400e730a
int3
lea rdx, [rcx + r13]
dec r13
cmp rdx, 1
ja 0x1400e7f75
cmp rcx, rax
je 0x1400e7f75
int3
int3
and al, 0x19
cmp byte [rsi - 0x30], 0
jne 0x1400e83a8
test al, al
jne 0x1400e861d
test al, al
je 0x1400e7909
cmp byte [rsi - 0x50], 0
je 0x1400e86c1
lea rbx, [rsi - 0x48]
test r14b, r14b
mov rax, qword [rsi - 0x70]
lea rcx, str.ApplicationTask
lea r8, str.NativeTask
cmove r8, rcx
mov qword [rsp + 0x20], rax
lea rdx, [0x140289970]
mov cl, 0x42
mov r9, rbx
call fcn.140041e60
test byte [0x140289970], 0x19
je 0x1400e7909
cmp byte [rsi - 0x50], 0
je 0x1400e86c1
mov qword [rsp + 0x20], rdi
lea rdx, [0x140289970]
lea r8, [0x140262d25]
mov cl, 0x45
mov r9, rbx
call fcn.140041e60
jmp 0x1400e7909
lea rcx, [rsp + 0x50]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rcx + 0x18], rax
xorpd xmm0, xmm0
movapd xmmword [rcx], xmm0
movupd xmmword [rcx + 9], xmm0
call fcn.1400e5cf0
jmp 0x1400e79c5
lea rcx, [rsp + 0x50]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rcx + 0x18], rax
xorpd xmm0, xmm0
movapd xmmword [rcx], xmm0
movupd xmmword [rcx + 9], xmm0
call fcn.1400e5cf0
jmp 0x1400e7b37
int3
lea r8, [rdx + r13]
lea rax, [r13 - 1]
cmp r8, 1
ja 0x1400e80c6
cmp rdx, rcx
je 0x1400e80c6
int3
int3
mov r15, r12
and al, 0x19
cmp byte [rsi - 0x30], 0
jne 0x1400e84b1
test al, al
jne 0x1400e8671
test al, al
mov r12, r15
je 0x1400e74e3
cmp byte [rsi - 0x50], 0
je 0x1400e86c1
mov rax, qword [rsi - 0x70]
lea r14, [rsi - 0x48]
mov qword [rsp + 0x20], rax
lea rdx, [0x140289970]
lea r8, str.PumpOverhead
mov cl, 0x42
mov r9, r14
call fcn.140041e60
test byte [0x140289970], 0x19
mov r12, r15
je 0x1400e74e3
cmp byte [rsi - 0x50], 0
je 0x1400e86c1
mov qword [rsp + 0x20], rbx
lea rdx, [0x140289970]
lea r8, [0x140262d25]
mov cl, 0x45
mov r9, r14
call fcn.140041e60
mov r12, r15
jmp 0x1400e74e3
mov rcx, qword [0x14029b670]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
mov rdi, rax
add rdi, r8
jmp 0x1400e7865
int3
mov rcx, qword [0x14029b670]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
mov rbx, rax
add rbx, r8
jmp 0x1400e7443
mov rcx, qword [0x14029b670]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x1400e7d6e
lea rcx, [rdi + 8]
mov rbx, qword [rdi]
call fcn.1401aed10
movabs rcx, 0xff00000000000000
and rcx, rbx
or rcx, rax
mov qword [rdi], rcx
jmp 0x1400e8279
lea rcx, [rdi + 8]
mov rbx, qword [rdi]
call fcn.1401aed10
movabs rcx, 0xff00000000000000
and rcx, rbx
or rcx, rax
mov qword [rdi], rcx
jmp 0x1400e831a
mov rcx, qword [0x14029b670]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x1400e70be
int3
int3
cmp byte [rsi - 0x50], 0
je 0x1400e86c1
mov rax, qword [rsi - 0x70]
mov rcx, 0xfffffffffff0bdc0
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
lea r9, [rsi - 0x48]
mov qword [rsp + 0x20], rcx
lea rdx, [0x140289970]
lea r8, str.MessagePumpPhases
mov cl, 0x49
call fcn.140041e60
mov al, byte [0x140289970]
and al, 0x19
jmp 0x1400e83a8
cmp byte [rsi - 0x50], 0
je 0x1400e86c1
mov rax, qword [rsi - 0x70]
mov rcx, 0xfffffffffff0bdc0
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
lea r9, [rsi - 0x48]
mov qword [rsp + 0x20], rcx
lea rdx, [0x140289970]
lea r8, str.MessagePumpPhases
mov cl, 0x49
call fcn.140041e60
mov al, byte [0x140289970]
and al, 0x19
jmp 0x1400e84b1
ud2