Function at 0x1400f6be0
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 [0x140287028]
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 0x1400f7620
mov rax, qword [r15 + 0x30]
mov ecx, 2
lock xadd dword [rax], ecx
test cl, 1
jne 0x1400f7e5d
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 0x1400f77fd
test bpl, bpl
je 0x1400f7e1f
mov r12, qword [r14]
mov rax, qword [r12]
mov rax, qword [rax + 0x30]
lea rcx, [0x14016eb30]
cmp rax, rcx
jne 0x1400f75a1
movaps xmm0, xmmword [0x140261350]
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 0x1400f7ebb
mov rax, qword [r12 + 0x58]
mov rcx, qword [r12 + 0x78]
cmp rcx, qword [r12 + 0x80]
jne 0x1400f7e6c
cmp rax, rdi
jb 0x1400f7ed3
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 0x1400f7ed6
cmp rcx, rax
jb 0x1400f7ed9
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
je 0x1400f7edc
mov rcx, qword [r13]
shl rax, 7
mov rcx, qword [rcx + rax]
test rcx, rcx
jne 0x1400f7734
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 0x1400f76ac
mov rax, qword [r12 + 0x60]
mov rcx, qword [r12 + 0x78]
mov rdx, qword [r12 + 0x80]
cmp rax, qword [r12 + 0x68]
jne 0x1400f7666
cmp rcx, rdx
jne 0x1400f7edf
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 0x1400f6ee0
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, [0x1401f4da0]
cmp rax, rcx
jne 0x1400f7e3c
movaps xmm6, xmmword [0x140261350]
movaps xmmword [rsp + 0x80], xmm6
mov rax, qword [r12]
mov rax, qword [rax]
lea rcx, [0x14016ef60]
cmp rax, rcx
jne 0x1400f75bf
mov eax, dword [r12 + 0x48]
mov dword [rsp + 0x80], eax
lea rsi, [r12 + 0x98]
mov rax, qword [0x14028a5a0]
and rax, rsi
cmp rax, qword [0x14028a588]
jne 0x1400f6f8f
mov rcx, rsi
call fcn.1400eaf60
mov qword [rsp + 0x88], rsi
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x78], eax
mov eax, 1
lock xadd dword [0x1402a399c], eax
mov dword [rsp + 0x7c], eax
mov eax, dword [0x1402a3998]
mov ecx, dword [0x140296f94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400f7a5e
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400f7d06
mov rcx, qword [0x1402a3988]
shl rcx, 4
lea rdx, [rsp + 0x78]
mov qword [rax + rcx], rdx
mov ecx, dword [0x1402a3990]
mov rdx, qword [0x1402a3988]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov eax, dword [0x1402a39b0]
mov ecx, dword [0x140296f94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400f7afa
lea rsi, [rsp + 0x7c]
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400f7d10
mov rcx, qword [0x1402a39a0]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [0x1402a39a8]
mov rdx, qword [0x1402a39a0]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov al, byte [rsp + 0x199]
mov byte [rsp + 0x70], al
mov rsi, qword [0x1402a2970]
cmp rsi, 1
jbe 0x1400f7b96
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400f7d1a
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 0x1400f7123
lea rdi, [rsp + 0x118]
movaps xmmword [rdi + 8], xmm0
mov qword [rdi + 0x18], 0
mov byte [rdi - 8], 1
mov rsi, qword [0x1402a2768]
cmp rsi, 1
jbe 0x1400f7d4a
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400f7d24
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 0x1400f7517
cmp eax, 2
je 0x1400f7860
movzx eax, byte [rsp + 0x19a]
and eax, 0x7f
cmp eax, 1
jne 0x1400f75ea
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.1400f8330
mov rcx, qword [rsp + 0x90]
mov qword [rsp + 0x90], 0
test rcx, rcx
jne 0x1400f79e0
cmp byte [rsp + 0x200], 0
jne 0x1400f7853
cmp byte [rsp + 0x220], 0
jne 0x1400f7493
mov rsi, qword [0x1402a2768]
cmp rsi, 1
jbe 0x1400f7d91
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400f7265
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 0x1400f7280
mov rsi, qword [rsp + 0x120]
test rsi, rsi
jne 0x1400f780a
mov rsi, qword [0x1402a2970]
cmp rsi, 1
jbe 0x1400f7bdd
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400f72c0
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 [0x1402a3998]
mov ecx, dword [0x140296f94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400f7aac
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400f731f
mov rcx, qword [0x1402a3988]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [0x1402a3990]
mov rdx, qword [0x1402a3988]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov eax, dword [0x1402a39b0]
mov ecx, dword [0x140296f94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400f7b48
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400f737e
mov rcx, qword [0x1402a39a0]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [0x1402a39a8]
mov rdx, qword [0x1402a39a0]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rcx, qword [rsp + 0x88]
mov rax, qword [0x14028a5a0]
and rax, rcx
cmp rax, qword [0x14028a588]
jne 0x1400f739e
call fcn.1400ebe70
mov rcx, qword [rsp + 0x90]
test rcx, rcx
jne 0x1400f7694
test bpl, bpl
je 0x1400f73d6
mov rax, qword [r14]
mov al, byte [rax + 0x16]
and al, 0x7f
cmp al, 1
jne 0x1400f73d6
mov rax, qword [r15 + 0x30]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
je 0x1400f7dd8
mov rsi, qword [r14]
mov rax, qword [rsi]
mov rax, qword [rax + 0x38]
lea rcx, [0x14016ee30]
cmp rax, rcx
jne 0x1400f75d5
lea rdi, [rsi + 0x20]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400f7a34
mov rax, qword [rsi + 0x60]
cmp rax, qword [rsi + 0x68]
jne 0x1400f7642
mov rax, qword [rsi + 0x78]
cmp rax, qword [rsi + 0x80]
jne 0x1400f7642
mov r15, qword [rsi + 0x38]
test r15, r15
je 0x1400f7438
lock dec dword [r15 + 8]
je 0x1400f77a2
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 0x1400f774c
mov qword [r14], 0
mov rcx, qword [rsp + 0x238]
xor rcx, rsp
call fcn.1401756e0
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 [0x140299c98]
mov ecx, dword [0x140296f94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400f7c6a
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400f74f2
mov rcx, qword [0x140299c88]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [0x140299c90]
mov rdx, qword [0x140299c88]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rcx, qword [rsp + 0x228]
test rcx, rcx
je 0x1400f7225
lock dec dword [rcx + 8]
jne 0x1400f7225
call fcn.14011cbd0
jmp 0x1400f7225
mov rax, qword [r12 + 0x38]
test rax, rax
je 0x1400f7525
lock inc dword [rax + 8]
mov qword [rsp + 0x228], rax
mov eax, dword [0x140299c98]
mov ecx, dword [0x140296f94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400f7cb8
lea rdi, [rsp + 0x228]
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400f7d37
mov rcx, qword [0x140299c88]
shl rcx, 4
mov qword [rax + rcx], rdi
mov ecx, dword [0x140299c90]
mov rdx, qword [0x140299c88]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov byte [rsp + 0x220], 1
jmp 0x1400f71b0
lea rdx, [rsp + 0x110]
lea r8, [rsp + 0x220]
mov rcx, r12
call qword [case.0x1401d7990.0]
jmp 0x1400f6e4f
lea rdx, [rsp + 0x80]
mov rcx, r12
call qword [case.0x1401d7990.0]
jmp 0x1400f6f97
mov rcx, rsi
xor edx, edx
call qword [case.0x1401d7990.0]
test al, al
je 0x1400f744b
jmp 0x1400f764b
cmp eax, 2
jne 0x1400f76ff
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.140004d70
jmp 0x1400f71ec
cmp eax, 2
je 0x1400f6c42
test eax, eax
jne 0x1400f7e65
mov rax, qword [r15 + 0x30]
mov eax, dword [rax]
test al, 1
sete bpl
jmp 0x1400f6c42
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 0x1400f745d
cmp rcx, rdx
jne 0x1400f7efa
cmp qword [r12 + 0x58], rax
jb 0x1400f7ef7
mov rcx, qword [r13]
shl rax, 7
mov rax, qword [rcx + rax + 0x28]
mov qword [r12 + 0x90], rax
jmp 0x1400f6e4f
lock dec dword [rcx]
jne 0x1400f73af
mov rax, qword [rcx + 0x10]
call qword [case.0x1401d7990.0]
jmp 0x1400f73af
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 0x1400f6e29
mov r8, rcx
shr r8, 2
add r8, rcx
cmp r8, 4
mov edx, 3
cmovae rdx, r8
cmp rdx, rax
jae 0x1400f6e29
mov rcx, r13
call fcn.14013d400
jmp 0x1400f6e29
test eax, eax
jne 0x1400f71ec
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.140004de0
jmp 0x1400f71ec
lock dec dword [rcx]
jne 0x1400f6e04
mov rax, qword [rcx + 0x10]
call qword [case.0x1401d7990.0]
jmp 0x1400f6e04
mov rbp, qword [r14 + 8]
mov qword [r14], 0
test rbp, rbp
je 0x1400f7773
mov al, byte [rsi + 0x16]
and al, 0x7f
cmp al, 2
je 0x1400f799e
lock dec dword [rbp + 0x38]
je 0x1400f7883
lock dec dword [rsi + 8]
je 0x1400f7903
mov rcx, qword [r14]
test rcx, rcx
je 0x1400f7464
lock dec dword [rcx + 8]
jne 0x1400f7464
mov edx, 1
call fcn.14014c460
jmp 0x1400f7464
mov rcx, qword [r15]
mov rax, qword [rcx + 8]
lea rdx, [0x1401d6b00]
cmp qword [rcx + 0x10], rdx
jne 0x1400f7a41
lea rcx, [0x1401ed3e0]
cmp rax, rcx
jne 0x1400f7a41
mov rcx, qword [r15 + 0x18]
test rcx, rcx
je 0x1400f77dc
lock dec dword [rcx]
je 0x1400f7e15
mov r12, qword [r15 + 0x10]
test r12, r12
je 0x1400f77f0
lock dec dword [r12]
je 0x1400f79f8
mov rcx, r15
call fcn.140172a44
jmp 0x1400f7438
mov rcx, rsi
call fcn.1400ec2e0
jmp 0x1400f6cc4
mov rax, qword [rsp + 0x128]
mov rcx, rsi
cmp rax, rsi
je 0x1400f7841
lea rdi, [rax - 0x18]
mov rcx, qword [rax - 0x10]
test rcx, rcx
je 0x1400f7831
mov rax, qword [rax - 8]
call qword [case.0x1401d7990.0]
mov rax, rdi
cmp rdi, rsi
jne 0x1400f781a
mov rcx, qword [rsp + 0x120]
mov qword [rsp + 0x128], rsi
call fcn.140172a44
jmp 0x1400f7280
mov rcx, rsi
call fcn.140027a30
jmp 0x1400f7217
mov rdx, qword [r12 + 0x38]
test rdx, rdx
je 0x1400f786e
lock inc dword [rdx + 8]
mov rcx, rsi
call fcn.14002d450
mov byte [rsp + 0x200], 1
jmp 0x1400f71b0
lea r15, [rbp + 0x40]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400f7f38
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 0x1400f7f45
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 0x1400f7f52
lea rcx, fcn.1400fe7c0
mov rdx, r12
xor r8d, r8d
call fcn.1400fd880
jmp 0x1400f7773
lea rax, [0x14025ecb8]
mov qword [rsi], rax
mov rdi, qword [rsi + 0xa0]
test rdi, rdi
jne 0x1400f7c24
lea rdi, [rsi + 0x78]
mov r15, qword [rsi + 0x78]
mov r12, qword [rsi + 0x80]
mov rdx, r15
cmp r12, r15
jne 0x1400f814f
mov qword [rsi + 0x80], r15
test rdx, rdx
jne 0x1400f801c
mov r15, qword [rsi + 0x60]
mov rdi, qword [rsi + 0x68]
cmp rdi, r15
jne 0x1400f8031
mov rdx, qword [rsi + 0x50]
lea rcx, fcn.1400fe7c0
xor r8d, r8d
call fcn.1400fd880
lea rax, [0x14025ed18]
mov qword [rsi], rax
mov rcx, qword [rsi + 0x38]
mov rax, qword [0x14028a5a0]
and rax, rcx
cmp rax, qword [0x14028a588]
je 0x1400f7a54
mov rcx, rsi
call fcn.140172a44
jmp 0x1400f777d
mov rax, qword [rbp + 0x30]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
jne 0x1400f7769
lea rdi, [rbp + 0x70]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400f8221
mov rcx, qword [rbp + 0x78]
call fcn.1401727d0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1400f7769
lock dec dword [rcx]
jne 0x1400f7209
mov rax, qword [rcx + 0x10]
call qword [case.0x1401d7990.0]
jmp 0x1400f7209
mov rcx, qword [r12 + 0x20]
mov rax, qword [0x14028a5a0]
and rax, rcx
cmp rax, qword [0x14028a588]
je 0x1400f80c9
mov qword [r12 + 0x20], 0
lea rcx, [r12 + 8]
call fcn.14000b2f0
mov rcx, r12
call fcn.140172a44
jmp 0x1400f77f0
mov rcx, rdi
call fcn.1400ec2e0
jmp 0x1400f7405
mov rcx, r15
mov edx, 1
call qword [case.0x1401d7990.0]
jmp 0x1400f7438
call fcn.1400e5d90
jmp 0x1400f7991
lea rcx, [0x1402a3998]
call fcn.140172b08
cmp dword [0x1402a3998], 0xffffffff
jne 0x1400f6fd8
mov qword [0x1402a3990], 0
lea rcx, [0x1402a3988]
mov qword [0x1402a3988], 0xffffffffffffffff
xor edx, edx
call fcn.140002400
lea rcx, [0x1402a3998]
call fcn.140172aa8
jmp 0x1400f6fd8
lea rcx, [0x1402a3998]
call fcn.140172b08
cmp dword [0x1402a3998], 0xffffffff
jne 0x1400f72e5
mov qword [0x1402a3990], 0
lea rcx, [0x1402a3988]
mov qword [0x1402a3988], 0xffffffffffffffff
xor edx, edx
call fcn.140002400
lea rcx, [0x1402a3998]
call fcn.140172aa8
jmp 0x1400f72e5
lea rcx, [0x1402a39b0]
call fcn.140172b08
cmp dword [0x1402a39b0], 0xffffffff
jne 0x1400f703c
mov qword [0x1402a39a8], 0
lea rcx, [0x1402a39a0]
mov qword [0x1402a39a0], 0xffffffffffffffff
xor edx, edx
call fcn.140002400
lea rcx, [0x1402a39b0]
call fcn.140172aa8
jmp 0x1400f703c
lea rcx, [0x1402a39b0]
call fcn.140172b08
cmp dword [0x1402a39b0], 0xffffffff
jne 0x1400f7344
mov qword [0x1402a39a8], 0
lea rcx, [0x1402a39a0]
mov qword [0x1402a39a0], 0xffffffffffffffff
xor edx, edx
call fcn.140002400
lea rcx, [0x1402a39b0]
call fcn.140172aa8
jmp 0x1400f7344
lea rcx, [0x1402a2970]
call fcn.140007880
test al, al
je 0x1400f816a
mov qword [0x1402a2980], 0
lea rsi, [0x1402a2978]
mov qword [0x1402a2978], 0xffffffffffffffff
mov rcx, rsi
xor edx, edx
call fcn.140002400
mov qword [0x1402a2970], rsi
jmp 0x1400f7097
lea rcx, [0x1402a2970]
call fcn.140007880
test al, al
je 0x1400f8176
mov qword [0x1402a2980], 0
lea rsi, [0x1402a2978]
mov qword [0x1402a2978], 0xffffffffffffffff
mov rcx, rsi
xor edx, edx
call fcn.140002400
mov qword [0x1402a2970], rsi
jmp 0x1400f7291
mov rax, qword [rsi + 0xa8]
mov rcx, rdi
cmp rax, rdi
je 0x1400f7c59
lea r15, [rax - 0x18]
mov rcx, qword [rax - 0x10]
test rcx, rcx
je 0x1400f7c4a
mov rax, qword [rax - 8]
call qword [case.0x1401d7990.0]
mov rax, r15
cmp r15, rdi
jne 0x1400f7c33
mov rcx, qword [rsi + 0xa0]
mov qword [rsi + 0xa8], rdi
call fcn.140172a44
jmp 0x1400f791d
lea rcx, [0x140299c98]
call fcn.140172b08
cmp dword [0x140299c98], 0xffffffff
jne 0x1400f74b8
mov qword [0x140299c90], 0
lea rcx, [0x140299c88]
mov qword [0x140299c88], 0xffffffffffffffff
xor edx, edx
call fcn.140002400
lea rcx, [0x140299c98]
call fcn.140172aa8
jmp 0x1400f74b8
lea rcx, [0x140299c98]
call fcn.140172b08
cmp dword [0x140299c98], 0xffffffff
jne 0x1400f7552
mov qword [0x140299c90], 0
lea rcx, [0x140299c88]
mov qword [0x140299c88], 0xffffffffffffffff
xor edx, edx
call fcn.140002400
lea rcx, [0x140299c98]
call fcn.140172aa8
jmp 0x1400f7552
call fcn.14003bc30
jmp 0x1400f6fee
call fcn.14003bc30
jmp 0x1400f7057
call fcn.14003bc30
jmp 0x1400f70ad
test rdi, rdi
je 0x1400f7163
call fcn.14003bc30
jmp 0x1400f714a
test rdi, rdi
je 0x1400f7594
call fcn.14003bc30
jmp 0x1400f7570
lea rcx, [0x1402a2768]
call fcn.140007880
test al, al
je 0x1400f8182
mov qword [0x1402a2778], 0
lea rsi, [0x1402a2770]
mov qword [0x1402a2770], 0xffffffffffffffff
mov rcx, rsi
xor edx, edx
call fcn.140002400
mov qword [0x1402a2768], rsi
jmp 0x1400f7134
lea rcx, [0x1402a2768]
call fcn.140007880
test al, al
je 0x1400f818e
mov qword [0x1402a2778], 0
lea rsi, [0x1402a2770]
mov qword [0x1402a2770], 0xffffffffffffffff
mov rcx, rsi
xor edx, edx
call fcn.140002400
mov qword [0x1402a2768], rsi
jmp 0x1400f7236
lea rsi, [r15 + 0x70]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400f819a
mov rdi, qword [r15 + 0x78]
test byte [0x1402898c0], 0x19
jne 0x1400f81a7
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1400f73d6
call fcn.140172a44
jmp 0x1400f77dc
lea rdx, [rsp + 0x110]
lea r8, [rsp + 0x220]
mov rcx, r14
call fcn.1401f6560
jmp 0x1400f6e4f
lea rdx, [rsp + 0x90]
lea r9, [rsp + 0x190]
mov rcx, r15
mov r8, r12
call qword [case.0x1401d7990.0]
jmp 0x1400f73af
mov rcx, r15
call fcn.1401f5050
xor ebp, ebp
jmp 0x1400f6c42
cmp rax, rdi
jb 0x1400f822e
mov rax, qword [r13]
mov qword [rsp + 0x38], rax
shl rdi, 7
lea rdx, [rsp + 0x200]
call fcn.140172770
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + rdi + 0x28]
lea rcx, [rsp + 0x200]
cmp rax, qword [rcx]
jg 0x1400f7ebb
lea rdx, [rsp + 0x110]
mov rcx, r12
call fcn.1401f5350
jmp 0x1400f6e29
lea rdx, [rsp + 0x110]
mov rcx, rsi
xor r8d, r8d
call fcn.1401f5ef0
jmp 0x1400f6e29
int3
int3
int3
int3
lea rsi, [rsp + 0x200]
mov rdx, rsi
call fcn.140172770
mov rax, qword [rsi]
jmp 0x1400f7687
int3
lea rdx, [rsp + 0x200]
call fcn.140172770
mov rax, qword [r12 + 0x60]
cmp qword [r12 + 0x58], rax
jb 0x1400f8231
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 0x1400f7687
mov rcx, r15
call fcn.1400ec2e0
jmp 0x1400f7898
mov rcx, r15
call fcn.1400ec2e0
jmp 0x1400f78bc
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 0x1400f8234
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 [case.0x1401d7990.0]
test r15, r15
jne 0x1400f8122
inc rbp
cmp rbp, qword [rsp + 0x40]
cmove rbp, r12
cmp rbp, qword [rsp + 0x38]
jne 0x1400f7f67
cmp qword [rsp + 0x38], rdi
jbe 0x1400f8255
mov rax, qword [rsp + 0x38]
cmp qword [rsp + 0x40], rax
jb 0x1400f8237
cmp qword [rsp + 0x40], rdi
jb 0x1400f823a
cmp rdi, qword [rsp + 0x38]
jg 0x1400f823d
shl qword [rsp + 0x38], 3
shl rdi, 3
mov rax, qword [rsp + 0x48]
mov rcx, qword [rax + rdi]
test rcx, rcx
jne 0x1400f800b
mov rax, rdi
add rax, 8
mov rdi, rax
cmp qword [rsp + 0x38], rax
jne 0x1400f7fe7
jmp 0x1400f82b3
lock dec dword [rcx]
jne 0x1400f7ff5
mov rax, qword [rcx + 0x10]
call qword [case.0x1401d7990.0]
jmp 0x1400f7ff5
mov rcx, rdi
call fcn.1401f6240
mov rcx, qword [rdi]
call fcn.140172a44
jmp 0x1400f7948
mov r12, qword [rsi + 0x58]
jbe 0x1400f8086
cmp r12, rdi
jb 0x1400f8240
cmp r12, r15
jb 0x1400f8243
cmp r15, rdi
jg 0x1400f8246
mov r12, qword [rsi + 0x50]
shl rdi, 7
shl r15, 7
mov rcx, qword [r12 + r15]
test rcx, rcx
jne 0x1400f8075
sub r15, 0xffffffffffffff80
cmp rdi, r15
jne 0x1400f805e
jmp 0x1400f7959
lock dec dword [rcx]
jne 0x1400f8067
mov rax, qword [rcx + 0x10]
call qword [case.0x1401d7990.0]
jmp 0x1400f8067
cmp r12, r15
jb 0x1400f8249
jl 0x1400f824c
je 0x1400f80d7
mov r13, qword [rsi + 0x50]
shl r12, 7
shl r15, 7
mov rcx, qword [r13 + r15]
test rcx, rcx
jne 0x1400f80b8
sub r15, 0xffffffffffffff80
cmp r12, r15
jne 0x1400f80a3
jmp 0x1400f80d3
lock dec dword [rcx]
jne 0x1400f80ad
mov rax, qword [rcx + 0x10]
call qword [case.0x1401d7990.0]
jmp 0x1400f80ad
call fcn.1400ebe70
jmp 0x1400f7a14
mov r15, qword [rsi + 0x58]
cmp r15, rdi
jb 0x1400f824f
test rdi, rdi
js 0x1400f8252
je 0x1400f7959
mov r15, qword [rsi + 0x50]
shl rdi, 7
xor r12d, r12d
mov rcx, qword [r15 + r12]
test rcx, rcx
jne 0x1400f8111
sub r12, 0xffffffffffffff80
cmp rdi, r12
jne 0x1400f80fa
jmp 0x1400f7959
lock dec dword [rcx]
jne 0x1400f8103
mov rax, qword [rcx + 0x10]
call qword [case.0x1401d7990.0]
jmp 0x1400f8103
lock dec dword [r15]
jne 0x1400f7f99
mov rax, qword [r15 + 0x10]
mov rcx, r15
call qword [case.0x1401d7990.0]
jmp 0x1400f7f99
lock dec dword [rcx]
jne 0x1400f815d
mov rax, qword [rcx + 0x10]
call qword [case.0x1401d7990.0]
jmp 0x1400f815d
mov rcx, qword [r12 - 0x80]
add r12, 0xffffffffffffff80
test rcx, rcx
jne 0x1400f813e
cmp r12, r15
jne 0x1400f814f
mov rdx, qword [rdi]
jmp 0x1400f7938
mov rsi, qword [0x1402a2970]
jmp 0x1400f7097
mov rsi, qword [0x1402a2970]
jmp 0x1400f7291
mov rsi, qword [0x1402a2768]
jmp 0x1400f7134
mov rsi, qword [0x1402a2768]
jmp 0x1400f7236
mov rcx, rsi
call fcn.1400ec2e0
jmp 0x1400f7ded
mov rax, qword [0x140298390]
xor rax, rdi
lea rcx, [0x140074d00]
lea r15, [rsp + 0x110]
mov qword [r15 + 0x18], rcx
lea rcx, [0x14026a930]
mov qword [r15 + 0x20], rcx
mov qword [r15 + 8], rax
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], 0
lea rdx, [0x1402898c0]
lea r8, str.WaitableEvent::Signal
lea r9, [0x140267ad8]
mov cl, 0x49
call fcn.140074da0
mov rax, qword [r15 + 0x20]
mov rax, qword [rax + 8]
test rax, rax
je 0x1400f7dfe
mov rcx, qword [rsp + 0x118]
call qword [case.0x1401d7990.0]
jmp 0x1400f7dfe
mov rcx, rdi
call fcn.1400ec2e0
jmp 0x1400f79c9
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
cmp qword [rsp + 0x40], rdi
jb 0x1400f82d5
jl 0x1400f82d8
jne 0x1400f82db
mov rax, qword [rsp + 0x38]
cmp qword [rsp + 0x40], rax
jb 0x1400f831f
cmp qword [rsp + 0x38], 0
js 0x1400f8322
je 0x1400f82b3
shl qword [rsp + 0x38], 3
xor r15d, r15d
mov rax, qword [rsp + 0x48]
mov rcx, qword [rax + r15]
test rcx, rcx
jne 0x1400f82a2
add r15, 8
cmp qword [rsp + 0x38], r15
jne 0x1400f8287
jmp 0x1400f82b3
lock dec dword [rcx]
jne 0x1400f8295
mov rax, qword [rcx + 0x10]
call qword [case.0x1401d7990.0]
jmp 0x1400f8295
lea rcx, fcn.1400fe7c0
mov rdx, qword [rsp + 0x48]
xor r8d, r8d
call fcn.1400fd880
test rsi, rsi
je 0x1400f777d
jmp 0x1400f7773
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 0x1400f830e
mov rax, rdi
add rax, 8
mov rdi, rax
cmp r15, rax
jne 0x1400f82ec
jmp 0x1400f8260
lock dec dword [rcx]
jne 0x1400f82fa
mov rax, qword [rcx + 0x10]
call qword [case.0x1401d7990.0]
jmp 0x1400f82fa
int3
int3