Function at 0x140068820
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x258
movaps xmmword [rsp + 0x240], xmm6
mov r14, r8
mov rbx, rdx
mov r15, rcx
mov rax, qword [0x14012c028]
xor rax, rsp
mov qword [rsp + 0x238], rax
mov rax, qword [r8]
movzx eax, byte [rax + 0x16]
and eax, 0x7f
mov bpl, 1
cmp eax, 1
jne 0x140069260
mov rax, qword [r15 + 0x30]
mov ecx, 2
lock xadd dword [rax], ecx
test cl, 1
jne 0x140069a9d
xorps xmm0, xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x1a0], xmm0
movaps xmmword [rsp + 0x1b0], xmm0
movaps xmmword [rsp + 0x1c0], xmm0
movaps xmmword [rsp + 0x1d0], xmm0
movaps xmmword [rsp + 0x1e0], xmm0
xor eax, eax
mov qword [rsp + 0x1ed], rax
mov byte [rsp + 0x19d], 0xaa
mov byte [rsp + 0x190], 0
mov qword [rsp + 0x191], rax
mov dword [rsp + 0x199], 0x102
mov rsi, qword [r14]
mov qword [rsp + 0x220], rsi
add rsi, 0x20
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14006943d
test bpl, bpl
je 0x140069a5f
mov r12, qword [r14]
mov rax, qword [r12]
mov rax, qword [rax + 0x30]
lea rcx, [0x1400949a0]
cmp rax, rcx
jne 0x1400691e1
movaps xmm0, xmmword [0x140114940]
movaps xmmword [rsp + 0x110], xmm0
movaps xmmword [rsp + 0x120], xmm0
movaps xmmword [rsp + 0x130], xmm0
movaps xmmword [rsp + 0x140], xmm0
movaps xmmword [rsp + 0x150], xmm0
movaps xmmword [rsp + 0x160], xmm0
movaps xmmword [rsp + 0x170], xmm0
movaps xmmword [rsp + 0x180], xmm0
lea r13, [r12 + 0x50]
mov rdi, qword [r12 + 0x60]
lea rsi, [r12 + 0x70]
cmp rdi, qword [r12 + 0x68]
je 0x140069afb
mov rax, qword [r12 + 0x58]
mov rcx, qword [r12 + 0x78]
cmp rcx, qword [r12 + 0x80]
jne 0x140069aac
cmp rax, rdi
jb 0x140069b13
mov rax, qword [r12 + 0x50]
shl rdi, 7
add rax, rdi
add rax, 0x28
mov rcx, qword [rax - 0x28]
lea rdx, [rsp + 0x138]
mov qword [rdx - 0x28], rcx
mov qword [rax - 0x28], 0
movups xmm0, xmmword [rax - 0x20]
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rdx - 0x10], xmm1
movups xmmword [rdx - 0x20], xmm0
mov ecx, 0xa
mov rdi, rdx
mov rsi, rax
rep movsq qword [rdi], qword [rsi]
mov cl, byte [rax + 0x54]
mov byte [rdx + 0x54], cl
mov eax, dword [rax + 0x50]
mov dword [rdx + 0x50], eax
mov rcx, qword [r12 + 0x58]
mov rax, qword [r12 + 0x60]
lea rdx, [rax + 1]
cmp rcx, rdx
jb 0x140069b16
cmp rcx, rax
jb 0x140069b19
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
je 0x140069b1c
mov rcx, qword [r13]
shl rax, 7
mov rcx, qword [rcx + rax]
test rcx, rcx
jne 0x140069374
mov rax, qword [r12 + 0x58]
mov rcx, qword [r12 + 0x60]
inc rcx
xor edx, edx
cmp rcx, rax
cmovne rdx, rcx
mov qword [r12 + 0x60], rdx
cmp rax, 5
jae 0x1400692ec
mov rax, qword [r12 + 0x60]
mov rcx, qword [r12 + 0x78]
mov rdx, qword [r12 + 0x80]
cmp rax, qword [r12 + 0x68]
jne 0x1400692a6
cmp rcx, rdx
jne 0x140069b1f
lea rax, [rsp + 0x138]
mov r13, qword [rax - 0x28]
mov qword [rax - 0x28], 0
movups xmm0, xmmword [rax - 0x20]
movaps xmmword [rsp + 0x50], xmm0
movups xmm0, xmmword [rax - 0x10]
movaps xmmword [rsp + 0x60], xmm0
lea rdx, [rsp + 0x1a0]
mov ecx, 0xa
mov rdi, rdx
mov rsi, rax
rep movsq qword [rdi], qword [rsi]
mov ecx, dword [rax + 0x50]
mov dword [rdx + 0x50], ecx
mov cl, byte [rax + 0x54]
mov byte [rdx + 0x54], cl
mov rcx, qword [rsp + 0x220]
mov dl, byte [rcx + 0x14]
mov byte [rax - 0x20], dl
mov rdx, qword [rcx + 0xc]
mov qword [rax - 0x28], rdx
mov r8b, byte [rcx + 0x19]
mov byte [rax - 0x1b], r8b
mov r8d, dword [rcx + 0x15]
mov dword [rax - 0x1f], r8d
mov qword [rsp + 0x190], rdx
mov rax, qword [rax - 0x22]
mov qword [rsp + 0x196], rax
test rcx, rcx
je 0x140068b20
add rcx, 0x20
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r12, qword [r14]
lea rax, [rsp + 0xb8]
mov qword [rax - 0x28], r13
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movups xmmword [rax - 0x20], xmm0
movups xmmword [rax - 0x10], xmm1
lea rdx, [rsp + 0x1a0]
mov ecx, 0xa
mov rdi, rax
mov rsi, rdx
rep movsq qword [rdi], qword [rsi]
mov cl, byte [rdx + 0x54]
mov byte [rax + 0x54], cl
mov ecx, dword [rdx + 0x50]
mov dword [rax + 0x50], ecx
mov rax, qword [r15]
mov rax, qword [rax + 8]
lea rcx, [0x1400f95d0]
cmp rax, rcx
jne 0x140069a7c
movaps xmm6, xmmword [0x140114940]
movaps xmmword [rsp + 0x80], xmm6
mov rax, qword [r12]
mov rax, qword [rax]
lea rcx, [0x140094dd0]
cmp rax, rcx
jne 0x1400691ff
mov eax, dword [r12 + 0x48]
mov dword [rsp + 0x80], eax
lea rsi, [r12 + 0x98]
mov rax, qword [0x14012dfa0]
and rax, rsi
cmp rax, qword [0x14012df88]
jne 0x140068bcf
mov rcx, rsi
call fcn.140062440
mov qword [rsp + 0x88], rsi
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x78], eax
mov eax, 1
lock xadd dword [0x14014655c], eax
mov dword [rsp + 0x7c], eax
mov eax, dword [0x140146558]
mov ecx, dword [0x14013ba7c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14006969e
mov ecx, dword [0x14013b660]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140069946
mov rcx, qword [0x140146548]
shl rcx, 4
lea rdx, [rsp + 0x78]
mov qword [rax + rcx], rdx
mov ecx, dword [0x140146550]
mov rdx, qword [0x140146548]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov eax, dword [0x140146570]
mov ecx, dword [0x14013ba7c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14006973a
lea rsi, [rsp + 0x7c]
mov ecx, dword [0x14013b660]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140069950
mov rcx, qword [0x140146560]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [0x140146568]
mov rdx, qword [0x140146560]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov al, byte [rsp + 0x199]
mov byte [rsp + 0x70], al
mov rsi, qword [0x140146210]
cmp rsi, 1
jbe 0x1400697d6
mov ecx, dword [0x14013b660]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14006995a
mov rcx, qword [rsi]
shl rcx, 4
lea rdx, [rsp + 0x70]
mov qword [rax + rcx], rdx
mov ecx, dword [rsi + 8]
mov rdx, qword [rsi]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
movaps xmmword [rsp + 0x110], xmm6
movaps xmmword [rsp + 0x120], xmm6
movaps xmmword [rsp + 0x130], xmm6
mov byte [rsp + 0x110], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x118], xmm0
movups xmmword [rsp + 0x128], xmm0
mov rdi, qword [rsp + 0x88]
test rdi, rdi
jne 0x140068d63
lea rdi, [rsp + 0x118]
movaps xmmword [rdi + 8], xmm0
mov qword [rdi + 0x18], 0
mov byte [rdi - 8], 1
mov rsi, qword [0x140144850]
cmp rsi, 1
jbe 0x14006998a
mov ecx, dword [0x14013b660]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140069964
mov rcx, qword [rsi]
shl rcx, 4
mov qword [rax + rcx], rdi
mov ecx, dword [rsi + 8]
mov rdx, qword [rsi]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
movaps xmmword [rsp + 0x220], xmm6
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x230], rax
xor eax, eax
mov byte [rsp + 0x220], al
lea rsi, [rsp + 0x208]
movaps xmmword [rsi - 8], xmm6
movaps xmmword [rsi + 8], xmm6
mov byte [rsi - 8], al
mov eax, dword [r12 + 0x40]
cmp eax, 1
je 0x140069157
cmp eax, 2
je 0x1400694a0
movzx eax, byte [rsp + 0x19a]
and eax, 0x7f
cmp eax, 1
jne 0x14006922a
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x90]
lea r8, [rsp + 0x190]
mov rcx, r15
mov r9, r12
call fcn.140069f70
mov rcx, qword [rsp + 0x90]
mov qword [rsp + 0x90], 0
test rcx, rcx
jne 0x140069620
cmp byte [rsp + 0x200], 0
jne 0x140069493
cmp byte [rsp + 0x220], 0
jne 0x1400690d3
mov rsi, qword [0x140144850]
cmp rsi, 1
jbe 0x1400699d1
mov ecx, dword [0x14013b660]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140068ea5
mov rcx, qword [rsi]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [rsi + 8]
mov rdx, qword [rsi]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
cmp byte [rsp + 0x110], 0
je 0x140068ec0
mov rsi, qword [rsp + 0x120]
test rsi, rsi
jne 0x14006944a
mov rsi, qword [0x140146210]
cmp rsi, 1
jbe 0x14006981d
mov ecx, dword [0x14013b660]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140068f00
mov rcx, qword [rsi]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [rsi + 8]
mov rdx, qword [rsi]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov eax, dword [0x140146558]
mov ecx, dword [0x14013ba7c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400696ec
mov ecx, dword [0x14013b660]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140068f5f
mov rcx, qword [0x140146548]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [0x140146550]
mov rdx, qword [0x140146548]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov eax, dword [0x140146570]
mov ecx, dword [0x14013ba7c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140069788
mov ecx, dword [0x14013b660]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140068fbe
mov rcx, qword [0x140146560]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [0x140146568]
mov rdx, qword [0x140146560]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rcx, qword [rsp + 0x88]
mov rax, qword [0x14012dfa0]
and rax, rcx
cmp rax, qword [0x14012df88]
jne 0x140068fde
call fcn.14006a8b0
mov rcx, qword [rsp + 0x90]
test rcx, rcx
jne 0x1400692d4
test bpl, bpl
je 0x140069016
mov rax, qword [r14]
mov al, byte [rax + 0x16]
and al, 0x7f
cmp al, 1
jne 0x140069016
mov rax, qword [r15 + 0x30]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
je 0x140069a18
mov rsi, qword [r14]
mov rax, qword [rsi]
mov rax, qword [rax + 0x38]
lea rcx, [0x140094ca0]
cmp rax, rcx
jne 0x140069215
lea rdi, [rsi + 0x20]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140069674
mov rax, qword [rsi + 0x60]
cmp rax, qword [rsi + 0x68]
jne 0x140069282
mov rax, qword [rsi + 0x78]
cmp rax, qword [rsi + 0x80]
jne 0x140069282
mov r15, qword [rsi + 0x38]
test r15, r15
je 0x140069078
lock dec dword [r15 + 8]
je 0x1400693e2
mov dword [rsi + 0xb8], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov rsi, qword [r14]
test rsi, rsi
jne 0x14006938c
mov qword [r14], 0
mov rcx, qword [rsp + 0x238]
xor rcx, rsp
call fcn.1400985e0
mov rax, rbx
movaps xmm6, xmmword [rsp + 0x240]
add rsp, 0x258
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x140144720]
mov ecx, dword [0x14013ba7c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400698aa
mov ecx, dword [0x14013b660]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140069132
mov rcx, qword [0x140144710]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [0x140144718]
mov rdx, qword [0x140144710]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rcx, qword [rsp + 0x228]
test rcx, rcx
je 0x140068e65
lock dec dword [rcx + 8]
jne 0x140068e65
call fcn.140075c60
jmp 0x140068e65
mov rax, qword [r12 + 0x38]
test rax, rax
je 0x140069165
lock inc dword [rax + 8]
mov qword [rsp + 0x228], rax
mov eax, dword [0x140144720]
mov ecx, dword [0x14013ba7c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400698f8
lea rdi, [rsp + 0x228]
mov ecx, dword [0x14013b660]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140069977
mov rcx, qword [0x140144710]
shl rcx, 4
mov qword [rax + rcx], rdi
mov ecx, dword [0x140144718]
mov rdx, qword [0x140144710]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov byte [rsp + 0x220], 1
jmp 0x140068df0
lea rdx, [rsp + 0x110]
lea r8, [rsp + 0x220]
mov rcx, r12
call qword [0x140150008]
jmp 0x140068a8f
lea rdx, [rsp + 0x80]
mov rcx, r12
call qword [0x140150008]
jmp 0x140068bd7
mov rcx, rsi
xor edx, edx
call qword [0x140150008]
test al, al
je 0x14006908b
jmp 0x14006928b
cmp eax, 2
jne 0x14006933f
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x90]
lea r8, [rsp + 0x190]
mov rcx, r15
mov r9, r12
call fcn.1400046a0
jmp 0x140068e2c
cmp eax, 2
je 0x140068882
test eax, eax
jne 0x140069aa5
mov rax, qword [r15 + 0x30]
mov eax, dword [rax]
test al, 1
sete bpl
jmp 0x140068882
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [r14]
mov qword [rbx], rax
mov rax, qword [r14 + 8]
mov qword [r14 + 8], 0
mov qword [rbx + 8], rax
jmp 0x14006909d
cmp rcx, rdx
jne 0x140069b3a
cmp qword [r12 + 0x58], rax
jb 0x140069b37
mov rcx, qword [r13]
shl rax, 7
mov rax, qword [rcx + rax + 0x28]
mov qword [r12 + 0x90], rax
jmp 0x140068a8f
lock dec dword [rcx]
jne 0x140068fef
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x140068fef
mov r8, qword [r12 + 0x68]
xor ecx, ecx
cmp r8, rdx
cmovb rcx, rax
sub rcx, rdx
add rcx, r8
dec rax
mov rdx, rax
sub rdx, rcx
cmp rdx, rcx
jb 0x140068a69
mov r8, rcx
shr r8, 2
add r8, rcx
cmp r8, 4
mov edx, 3
cmovae rdx, r8
cmp rdx, rax
jae 0x140068a69
mov rcx, r13
call fcn.14007e000
jmp 0x140068a69
test eax, eax
jne 0x140068e2c
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x90]
lea r8, [rsp + 0x190]
mov rcx, r15
mov r9, r12
call fcn.140004710
jmp 0x140068e2c
lock dec dword [rcx]
jne 0x140068a44
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x140068a44
mov rbp, qword [r14 + 8]
mov qword [r14], 0
test rbp, rbp
je 0x1400693b3
mov al, byte [rsi + 0x16]
and al, 0x7f
cmp al, 2
je 0x1400695de
lock dec dword [rbp + 0x38]
je 0x1400694c3
lock dec dword [rsi + 8]
je 0x140069543
mov rcx, qword [r14]
test rcx, rcx
je 0x1400690a4
lock dec dword [rcx + 8]
jne 0x1400690a4
mov edx, 1
call fcn.1400877a0
jmp 0x1400690a4
mov rcx, qword [r15]
mov rax, qword [rcx + 8]
lea rdx, [0x1400e4a90]
cmp qword [rcx + 0x10], rdx
jne 0x140069681
lea rcx, [0x1400fe6a0]
cmp rax, rcx
jne 0x140069681
mov rcx, qword [r15 + 0x18]
test rcx, rcx
je 0x14006941c
lock dec dword [rcx]
je 0x140069a55
mov r12, qword [r15 + 0x10]
test r12, r12
je 0x140069430
lock dec dword [r12]
je 0x140069638
mov rcx, r15
call fcn.140096334
jmp 0x140069078
mov rcx, rsi
call fcn.140062160
jmp 0x140068904
mov rax, qword [rsp + 0x128]
mov rcx, rsi
cmp rax, rsi
je 0x140069481
lea rdi, [rax - 0x18]
mov rcx, qword [rax - 0x10]
test rcx, rcx
je 0x140069471
mov rax, qword [rax - 8]
call qword [0x140150008]
mov rax, rdi
cmp rdi, rsi
jne 0x14006945a
mov rcx, qword [rsp + 0x120]
mov qword [rsp + 0x128], rsi
call fcn.140096334
jmp 0x140068ec0
mov rcx, rsi
call fcn.140004930
jmp 0x140068e57
mov rdx, qword [r12 + 0x38]
test rdx, rdx
je 0x1400694ae
lock inc dword [rdx + 8]
mov rcx, rsi
call fcn.140004780
mov byte [rsp + 0x200], 1
jmp 0x140068df0
lea r15, [rbp + 0x40]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140069b78
mov rcx, qword [rbp + 0x48]
call qword [sym.imp.KERNEL32.dll_WakeAllConditionVariable]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140069b85
mov r12, qword [rbp + 0x50]
mov rdi, qword [rbp + 0x58]
xorps xmm0, xmm0
movups xmmword [rbp + 0x50], xmm0
mov rax, qword [rbp + 0x60]
mov r13, qword [rbp + 0x68]
movups xmmword [rbp + 0x60], xmm0
mov rbp, rax
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp rbp, r13
jne 0x140069b92
lea rcx, fcn.140062590
mov rdx, r12
xor r8d, r8d
call fcn.14006d070
jmp 0x1400693b3
lea rax, [0x140113f00]
mov qword [rsi], rax
mov rdi, qword [rsi + 0xa0]
test rdi, rdi
jne 0x140069864
lea rdi, [rsi + 0x78]
mov r15, qword [rsi + 0x78]
mov r12, qword [rsi + 0x80]
mov rdx, r15
cmp r12, r15
jne 0x140069d8f
mov qword [rsi + 0x80], r15
test rdx, rdx
jne 0x140069c5c
mov r15, qword [rsi + 0x60]
mov rdi, qword [rsi + 0x68]
cmp rdi, r15
jne 0x140069c71
mov rdx, qword [rsi + 0x50]
lea rcx, fcn.140062590
xor r8d, r8d
call fcn.14006d070
lea rax, [0x140113f60]
mov qword [rsi], rax
mov rcx, qword [rsi + 0x38]
mov rax, qword [0x14012dfa0]
and rax, rcx
cmp rax, qword [0x14012df88]
je 0x140069694
mov rcx, rsi
call fcn.140096334
jmp 0x1400693bd
mov rax, qword [rbp + 0x30]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
jne 0x1400693a9
lea rdi, [rbp + 0x70]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140069e61
mov rcx, qword [rbp + 0x78]
call fcn.140096170
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1400693a9
lock dec dword [rcx]
jne 0x140068e49
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x140068e49
mov rcx, qword [r12 + 0x20]
mov rax, qword [0x14012dfa0]
and rax, rcx
cmp rax, qword [0x14012df88]
je 0x140069d09
mov qword [r12 + 0x20], 0
lea rcx, [r12 + 8]
call fcn.14000a020
mov rcx, r12
call fcn.140096334
jmp 0x140069430
mov rcx, rdi
call fcn.140062160
jmp 0x140069045
mov rcx, r15
mov edx, 1
call qword [0x140150008]
jmp 0x140069078
call fcn.140064060
jmp 0x1400695d1
lea rcx, [0x140146558]
call fcn.140096578
cmp dword [0x140146558], 0xffffffff
jne 0x140068c18
mov qword [0x140146550], 0
lea rcx, [0x140146548]
mov qword [0x140146548], 0xffffffffffffffff
xor edx, edx
call fcn.140005670
lea rcx, [0x140146558]
call fcn.1400966f0
jmp 0x140068c18
lea rcx, [0x140146558]
call fcn.140096578
cmp dword [0x140146558], 0xffffffff
jne 0x140068f25
mov qword [0x140146550], 0
lea rcx, [0x140146548]
mov qword [0x140146548], 0xffffffffffffffff
xor edx, edx
call fcn.140005670
lea rcx, [0x140146558]
call fcn.1400966f0
jmp 0x140068f25
lea rcx, [0x140146570]
call fcn.140096578
cmp dword [0x140146570], 0xffffffff
jne 0x140068c7c
mov qword [0x140146568], 0
lea rcx, [0x140146560]
mov qword [0x140146560], 0xffffffffffffffff
xor edx, edx
call fcn.140005670
lea rcx, [0x140146570]
call fcn.1400966f0
jmp 0x140068c7c
lea rcx, [0x140146570]
call fcn.140096578
cmp dword [0x140146570], 0xffffffff
jne 0x140068f84
mov qword [0x140146568], 0
lea rcx, [0x140146560]
mov qword [0x140146560], 0xffffffffffffffff
xor edx, edx
call fcn.140005670
lea rcx, [0x140146570]
call fcn.1400966f0
jmp 0x140068f84
lea rcx, [0x140146210]
call fcn.1400099e0
test al, al
je 0x140069daa
mov qword [0x140146220], 0
lea rsi, [0x140146218]
mov qword [0x140146218], 0xffffffffffffffff
mov rcx, rsi
xor edx, edx
call fcn.140005670
mov qword [0x140146210], rsi
jmp 0x140068cd7
lea rcx, [0x140146210]
call fcn.1400099e0
test al, al
je 0x140069db6
mov qword [0x140146220], 0
lea rsi, [0x140146218]
mov qword [0x140146218], 0xffffffffffffffff
mov rcx, rsi
xor edx, edx
call fcn.140005670
mov qword [0x140146210], rsi
jmp 0x140068ed1
mov rax, qword [rsi + 0xa8]
mov rcx, rdi
cmp rax, rdi
je 0x140069899
lea r15, [rax - 0x18]
mov rcx, qword [rax - 0x10]
test rcx, rcx
je 0x14006988a
mov rax, qword [rax - 8]
call qword [0x140150008]
mov rax, r15
cmp r15, rdi
jne 0x140069873
mov rcx, qword [rsi + 0xa0]
mov qword [rsi + 0xa8], rdi
call fcn.140096334
jmp 0x14006955d
lea rcx, [0x140144720]
call fcn.140096578
cmp dword [0x140144720], 0xffffffff
jne 0x1400690f8
mov qword [0x140144718], 0
lea rcx, [0x140144710]
mov qword [0x140144710], 0xffffffffffffffff
xor edx, edx
call fcn.140005670
lea rcx, [0x140144720]
call fcn.1400966f0
jmp 0x1400690f8
lea rcx, [0x140144720]
call fcn.140096578
cmp dword [0x140144720], 0xffffffff
jne 0x140069192
mov qword [0x140144718], 0
lea rcx, [0x140144710]
mov qword [0x140144710], 0xffffffffffffffff
xor edx, edx
call fcn.140005670
lea rcx, [0x140144720]
call fcn.1400966f0
jmp 0x140069192
call fcn.1400051d0
jmp 0x140068c2e
call fcn.1400051d0
jmp 0x140068c97
call fcn.1400051d0
jmp 0x140068ced
test rdi, rdi
je 0x140068da3
call fcn.1400051d0
jmp 0x140068d8a
test rdi, rdi
je 0x1400691d4
call fcn.1400051d0
jmp 0x1400691b0
lea rcx, [0x140144850]
call fcn.1400099e0
test al, al
je 0x140069dc2
mov qword [0x140144860], 0
lea rsi, [0x140144858]
mov qword [0x140144858], 0xffffffffffffffff
mov rcx, rsi
xor edx, edx
call fcn.140005670
mov qword [0x140144850], rsi
jmp 0x140068d74
lea rcx, [0x140144850]
call fcn.1400099e0
test al, al
je 0x140069dce
mov qword [0x140144860], 0
lea rsi, [0x140144858]
mov qword [0x140144858], 0xffffffffffffffff
mov rcx, rsi
xor edx, edx
call fcn.140005670
mov qword [0x140144850], rsi
jmp 0x140068e76
lea rsi, [r15 + 0x70]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140069dda
mov rdi, qword [r15 + 0x78]
test byte [0x14012e8f0], 0x19
jne 0x140069de7
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x140069016
call fcn.140096334
jmp 0x14006941c
lea rdx, [rsp + 0x110]
lea r8, [rsp + 0x220]
mov rcx, r14
call fcn.1400fad90
jmp 0x140068a8f
lea rdx, [rsp + 0x90]
lea r9, [rsp + 0x190]
mov rcx, r15
mov r8, r12
call qword [0x140150008]
jmp 0x140068fef
mov rcx, r15
call fcn.1400f9880
xor ebp, ebp
jmp 0x140068882
cmp rax, rdi
jb 0x140069e6e
mov rax, qword [r13]
mov qword [rsp + 0x38], rax
shl rdi, 7
lea rdx, [rsp + 0x200]
call fcn.140096110
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + rdi + 0x28]
lea rcx, [rsp + 0x200]
cmp rax, qword [rcx]
jg 0x140069afb
lea rdx, [rsp + 0x110]
mov rcx, r12
call fcn.1400f9b80
jmp 0x140068a69
lea rdx, [rsp + 0x110]
mov rcx, rsi
xor r8d, r8d
call fcn.1400fa720
jmp 0x140068a69
int3
int3
int3
int3
lea rsi, [rsp + 0x200]
mov rdx, rsi
call fcn.140096110
mov rax, qword [rsi]
jmp 0x1400692c7
int3
lea rdx, [rsp + 0x200]
call fcn.140096110
mov rax, qword [r12 + 0x60]
cmp qword [r12 + 0x58], rax
jb 0x140069e71
mov rcx, qword [r13]
shl rax, 7
mov rax, qword [rcx + rax + 0x28]
mov rcx, qword [rsp + 0x200]
cmp rcx, rax
cmovl rax, rcx
jmp 0x1400692c7
mov rcx, r15
call fcn.140062160
jmp 0x1400694d8
mov rcx, r15
call fcn.140062160
jmp 0x1400694fc
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], rdi
xor r12d, r12d
mov rdi, rbp
cmp qword [rsp + 0x40], rbp
jb 0x140069e74
mov rax, qword [rsp + 0x48]
mov r15, qword [rax + rbp*8]
mov qword [rax + rbp*8], 0
mov rax, qword [r15 + 8]
mov rcx, r15
call qword [0x140150008]
test r15, r15
jne 0x140069d62
inc rbp
cmp rbp, qword [rsp + 0x40]
cmove rbp, r12
cmp rbp, qword [rsp + 0x38]
jne 0x140069ba7
cmp qword [rsp + 0x38], rdi
jbe 0x140069e95
mov rax, qword [rsp + 0x38]
cmp qword [rsp + 0x40], rax
jb 0x140069e77
cmp qword [rsp + 0x40], rdi
jb 0x140069e7a
cmp rdi, qword [rsp + 0x38]
jg 0x140069e7d
shl qword [rsp + 0x38], 3
shl rdi, 3
mov rax, qword [rsp + 0x48]
mov rcx, qword [rax + rdi]
test rcx, rcx
jne 0x140069c4b
mov rax, rdi
add rax, 8
mov rdi, rax
cmp qword [rsp + 0x38], rax
jne 0x140069c27
jmp 0x140069ef3
lock dec dword [rcx]
jne 0x140069c35
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x140069c35
mov rcx, rdi
call fcn.1400faa70
mov rcx, qword [rdi]
call fcn.140096334
jmp 0x140069588
mov r12, qword [rsi + 0x58]
jbe 0x140069cc6
cmp r12, rdi
jb 0x140069e80
cmp r12, r15
jb 0x140069e83
cmp r15, rdi
jg 0x140069e86
mov r12, qword [rsi + 0x50]
shl rdi, 7
shl r15, 7
mov rcx, qword [r12 + r15]
test rcx, rcx
jne 0x140069cb5
sub r15, 0xffffffffffffff80
cmp rdi, r15
jne 0x140069c9e
jmp 0x140069599
lock dec dword [rcx]
jne 0x140069ca7
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x140069ca7
cmp r12, r15
jb 0x140069e89
jl 0x140069e8c
je 0x140069d17
mov r13, qword [rsi + 0x50]
shl r12, 7
shl r15, 7
mov rcx, qword [r13 + r15]
test rcx, rcx
jne 0x140069cf8
sub r15, 0xffffffffffffff80
cmp r12, r15
jne 0x140069ce3
jmp 0x140069d13
lock dec dword [rcx]
jne 0x140069ced
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x140069ced
call fcn.14006a8b0
jmp 0x140069654
mov r15, qword [rsi + 0x58]
cmp r15, rdi
jb 0x140069e8f
test rdi, rdi
js 0x140069e92
je 0x140069599
mov r15, qword [rsi + 0x50]
shl rdi, 7
xor r12d, r12d
mov rcx, qword [r15 + r12]
test rcx, rcx
jne 0x140069d51
sub r12, 0xffffffffffffff80
cmp rdi, r12
jne 0x140069d3a
jmp 0x140069599
lock dec dword [rcx]
jne 0x140069d43
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x140069d43
lock dec dword [r15]
jne 0x140069bd9
mov rax, qword [r15 + 0x10]
mov rcx, r15
call qword [0x140150008]
jmp 0x140069bd9
lock dec dword [rcx]
jne 0x140069d9d
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x140069d9d
mov rcx, qword [r12 - 0x80]
add r12, 0xffffffffffffff80
test rcx, rcx
jne 0x140069d7e
cmp r12, r15
jne 0x140069d8f
mov rdx, qword [rdi]
jmp 0x140069578
mov rsi, qword [0x140146210]
jmp 0x140068cd7
mov rsi, qword [0x140146210]
jmp 0x140068ed1
mov rsi, qword [0x140144850]
jmp 0x140068d74
mov rsi, qword [0x140144850]
jmp 0x140068e76
mov rcx, rsi
call fcn.140062160
jmp 0x140069a2d
mov rax, qword [0x14013ce70]
xor rax, rdi
lea rcx, [0x140018290]
lea r15, [rsp + 0x110]
mov qword [r15 + 0x18], rcx
lea rcx, [0x14011a070]
mov qword [r15 + 0x20], rcx
mov qword [r15 + 8], rax
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], 0
lea rdx, [0x14012e8f0]
lea r8, str.WaitableEvent::Signal
lea r9, [0x140117ca8]
mov cl, 0x49
call fcn.140018080
mov rax, qword [r15 + 0x20]
mov rax, qword [rax + 8]
test rax, rax
je 0x140069a3e
mov rcx, qword [rsp + 0x118]
call qword [0x140150008]
jmp 0x140069a3e
mov rcx, rdi
call fcn.140062160
jmp 0x140069609
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
cmp qword [rsp + 0x40], rdi
jb 0x140069f15
jl 0x140069f18
jne 0x140069f1b
mov rax, qword [rsp + 0x38]
cmp qword [rsp + 0x40], rax
jb 0x140069f5f
cmp qword [rsp + 0x38], 0
js 0x140069f62
je 0x140069ef3
shl qword [rsp + 0x38], 3
xor r15d, r15d
mov rax, qword [rsp + 0x48]
mov rcx, qword [rax + r15]
test rcx, rcx
jne 0x140069ee2
add r15, 8
cmp qword [rsp + 0x38], r15
jne 0x140069ec7
jmp 0x140069ef3
lock dec dword [rcx]
jne 0x140069ed5
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x140069ed5
lea rcx, fcn.140062590
mov rdx, qword [rsp + 0x48]
xor r8d, r8d
call fcn.14006d070
test rsi, rsi
je 0x1400693bd
jmp 0x1400693b3
int3
int3
mov rax, qword [rsp + 0x40]
lea r15, [rax*8]
shl rdi, 3
mov rax, qword [rsp + 0x48]
mov rcx, qword [rax + rdi]
test rcx, rcx
jne 0x140069f4e
mov rax, rdi
add rax, 8
mov rdi, rax
cmp r15, rax
jne 0x140069f2c
jmp 0x140069ea0
lock dec dword [rcx]
jne 0x140069f3a
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x140069f3a
int3
int3