Function at 0x14014f8f0
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, 0x338
movaps xmmword [rsp + 0x320], xmm6
mov r14, r8
mov rbx, rdx
mov rbp, rcx
mov rax, qword [0x14033f038]
xor rax, rsp
mov qword [rsp + 0x318], rax
mov rax, qword [r8]
movzx eax, byte [rax + 0x16]
and eax, 0x7f
mov cl, 1
mov dword [rsp + 0x34], ecx
cmp eax, 1
jne 0x140150b07
mov rax, qword [rbp + 0x30]
mov ecx, 2
lock xadd dword [rax], ecx
test cl, 1
jne 0x140151b91
lea rsi, [rsp + 0x1e0]
mov r8d, 0x90
mov rcx, rsi
mov dl, 0xaa
call fcn.140173760
xor eax, eax
mov byte [rsi], al
xorps xmm0, xmm0
movups xmmword [rsi + 8], xmm0
movups xmmword [rsi + 0x18], xmm0
movups xmmword [rsi + 0x28], xmm0
movups xmmword [rsi + 0x38], xmm0
movups xmmword [rsi + 0x48], xmm0
movups xmmword [rsi + 0x58], xmm0
movups xmmword [rsi + 0x68], xmm0
movups xmmword [rsi + 0x78], xmm0
mov byte [rsp + 0x1dd], 0xaa
mov byte [rsp + 0x1d0], al
mov qword [rsp + 0x1d1], 0
mov dword [rsp + 0x1d9], 0x102
mov rsi, qword [r14]
mov qword [rsp + 0xb0], rsi
add rsi, 0x20
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1401512b6
movabs r15, 0xaaaaaaaaaaaaaaaa
movabs r11, 0x8000000000000001
cmp byte [rsp + 0x34], 0
je 0x140151b30
mov r12, qword [r14]
mov rax, qword [r12]
mov rax, qword [rax + 0x30]
lea rcx, [0x140151d10]
cmp rax, rcx
jne 0x140150d7f
movaps xmm0, xmmword [0x140301d60]
movaps xmmword [rsp + 0x150], xmm0
movaps xmmword [rsp + 0x160], xmm0
movaps xmmword [rsp + 0x170], xmm0
movaps xmmword [rsp + 0x180], xmm0
movaps xmmword [rsp + 0x190], xmm0
movaps xmmword [rsp + 0x1a0], xmm0
movaps xmmword [rsp + 0x1b0], xmm0
movaps xmmword [rsp + 0x1c0], xmm0
lea r13, [r12 + 0x50]
mov rdx, qword [r12 + 0x60]
lea rax, [r12 + 0x70]
cmp rdx, qword [r12 + 0x68]
jne 0x1401502ea
mov r8, qword [r12 + 0x78]
cmp qword [r12 + 0x80], r8
je 0x140151765
lea rdx, [rsp + 0x178]
mov qword [rdx + 0x50], r15
mov rcx, qword [r8]
mov qword [rdx - 0x28], rcx
mov qword [r8], 0
movups xmm0, xmmword [r8 + 8]
movups xmm1, xmmword [r8 + 0x18]
movups xmmword [rdx - 0x10], xmm1
movups xmmword [rdx - 0x20], xmm0
lea rsi, [r8 + 0x28]
mov ecx, 0xa
mov rdi, rdx
rep movsq qword [rdi], qword [rsi]
mov cl, byte [r8 + 0x7c]
mov byte [rdx + 0x54], cl
mov ecx, dword [r8 + 0x78]
mov dword [rdx + 0x50], ecx
mov rcx, qword [r12 + 0x78]
mov rsi, qword [r12 + 0x80]
mov rdx, rsi
sub rdx, rcx
sar rdx, 7
dec rdx
jne 0x1401510f4
cmp rcx, rsi
je 0x140151791
mov rcx, qword [rsi - 0x80]
add rsi, 0xffffffffffffff80
test rcx, rcx
jne 0x140150f64
mov qword [r12 + 0x80], rsi
movabs rsi, 0x8000000000000001
mov rax, qword [r12 + 0x60]
mov rcx, qword [r12 + 0x78]
mov rdx, qword [r12 + 0x80]
cmp rax, qword [r12 + 0x68]
jne 0x140150c47
cmp rcx, rdx
jne 0x140151bf8
cmp byte [rsp + 0x1e0], 0
jne 0x140151841
lea rax, [rsp + 0x178]
mov rcx, qword [rax - 0x28]
lea rdx, [rsp + 0x210]
mov qword [rdx - 0x28], rcx
mov qword [rax - 0x28], 0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rdx - 0x20], xmm0
movups xmm0, xmmword [rax - 0x10]
movups xmmword [rdx - 0x10], xmm0
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 al, byte [rax + 0x54]
mov byte [rdx + 0x54], al
mov byte [rdx - 0x30], 1
mov rcx, qword [rsp + 0xb0]
mov al, byte [rcx + 0x14]
mov byte [rsp + 0x298], al
mov rax, qword [rcx + 0xc]
mov qword [rsp + 0x290], rax
mov edx, dword [rcx + 0x15]
mov dword [rsp + 0x299], edx
mov dl, byte [rcx + 0x19]
mov byte [rsp + 0x29d], dl
mov qword [rsp + 0x1d0], rax
mov rax, qword [rsp + 0x296]
mov qword [rsp + 0x1d6], rax
test rcx, rcx
je 0x14014fbf8
add rcx, 0x20
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp byte [rsp + 0x1e0], 0
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], rbp
je 0x1401509b3
mov r12, qword [r14]
lea rax, [rsp + 0x210]
mov rcx, qword [rax - 0x28]
lea rdx, [rsp + 0xf8]
mov qword [rdx - 0x28], rcx
mov qword [rax - 0x28], 0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rdx - 0x20], xmm0
movups xmm0, xmmword [rax - 0x10]
movups xmmword [rdx - 0x10], 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 rax, qword [rbp]
mov rax, qword [rax + 8]
lea rcx, [0x140152270]
cmp rax, rcx
jne 0x140151b4d
movaps xmm6, xmmword [0x140301d60]
movaps xmmword [rsp + 0x60], xmm6
mov rax, qword [r12]
mov rax, qword [rax]
lea rcx, [0x1401529f0]
cmp rax, rcx
jne 0x140150dba
mov eax, dword [r12 + 0x48]
mov dword [rsp + 0x60], eax
lea rsi, [r12 + 0x98]
mov rax, qword [0x1403428e0]
and rax, rsi
cmp rax, qword [0x1403428c8]
jne 0x14014fcc9
mov rcx, rsi
call fcn.140156f20
mov qword [rsp + 0x68], rsi
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x58], eax
mov eax, 1
lock xadd dword [0x14035d30c], eax
mov dword [rsp + 0x5c], eax
mov eax, dword [0x14035d308]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140151650
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140151915
mov rcx, qword [0x14035d2f8]
shl rcx, 4
lea rdx, [rsp + 0x58]
mov qword [rax + rcx], rdx
mov ecx, dword [0x14035d300]
mov rdx, qword [0x14035d2f8]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov eax, dword [0x14035d320]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401517bd
lea rsi, [rsp + 0x5c]
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14015191f
mov rcx, qword [0x14035d310]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [0x14035d318]
mov rdx, qword [0x14035d310]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov al, byte [rsp + 0x1d9]
mov byte [rsp + 0x50], al
mov rsi, qword [0x14035be50]
cmp rsi, 1
jbe 0x14015153d
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140151929
mov rcx, qword [rsi]
shl rcx, 4
lea rdx, [rsp + 0x50]
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 + 0x290], xmm6
movaps xmmword [rsp + 0x2a0], xmm6
movaps xmmword [rsp + 0x2b0], xmm6
mov byte [rsp + 0x290], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x298], xmm0
movups xmmword [rsp + 0x2a8], xmm0
mov rbx, qword [rsp + 0x68]
test rbx, rbx
je 0x140150d9d
mov rsi, qword [0x140352c78]
cmp rsi, 1
jbe 0x14015187d
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140151933
mov rcx, qword [rsi]
shl rcx, 4
mov qword [rax + rcx], rbx
mov ecx, dword [rsi + 8]
mov rdx, qword [rsi]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
movaps xmmword [rsp + 0x270], xmm6
mov qword [rsp + 0x280], r15
xor eax, eax
mov byte [rsp + 0x270], al
movaps xmmword [rsp + 0x150], xmm6
movaps xmmword [rsp + 0x160], xmm6
mov byte [rsp + 0x150], al
mov eax, dword [r12 + 0x40]
cmp eax, 1
jne 0x140150b3d
mov rax, qword [r12 + 0x38]
test rax, rax
je 0x14014fecc
lock inc dword [rax + 8]
mov qword [rsp + 0x278], rax
mov eax, dword [0x140352c70]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401516e1
lea rsi, [rsp + 0x278]
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140151946
mov rcx, qword [0x140352c60]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [0x140352c68]
mov rdx, qword [0x140352c60]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov byte [rsp + 0x270], 1
cmp qword [0x140354718], 0
jne 0x14014ffa5
mov rax, qword [0x1403411f8]
lea rsi, [rsp + 0xb0]
mov rcx, rsi
call qword [case.0x140211850.0]
mov rax, qword [rsi]
mov qword [0x140354768], rax
mov qword [rsi], r15
lea rsi, [rsp + 0xb0]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
movabs rax, 0x6666666666666667
imul qword [rsi]
mov rax, rdx
shr rax, 0x3f
sar rdx, 2
add rdx, rax
mov qword [0x140354718], rdx
lea rsi, [rsp + 0x90]
mov qword [rsi], r15
mov rax, qword [0x1403411f8]
mov rcx, rsi
call qword [case.0x140211850.0]
mov rax, qword [rsi]
mov rcx, qword [0x140354768]
xor edx, edx
cmp rax, rcx
setns dl
movabs rbx, 0x7fffffffffffffff
add rdx, rbx
sub rax, rcx
cmovo rax, rdx
cmp rax, 0x3938701
jl 0x1401500a5
lea rsi, [rsp + 0xb0]
mov r14, qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
movabs rdi, 0x6666666666666667
lea r12, [rsp + 0x90]
mov rax, qword [0x1403411f8]
mov rcx, rsi
call qword [case.0x140211850.0]
mov rax, qword [rsp + 0xb0]
mov qword [0x140354768], rax
mov qword [rsp + 0xb0], r15
mov rcx, rsi
call r14
mov rax, rdi
imul qword [rsp + 0xb0]
mov rax, rdx
shr rax, 0x3f
sar rdx, 2
add rdx, rax
mov qword [0x140354718], rdx
mov qword [rsp + 0x90], r15
mov rax, qword [0x1403411f8]
mov rcx, r12
call qword [case.0x140211850.0]
mov rax, qword [rsp + 0x90]
mov rcx, qword [0x140354768]
xor edx, edx
cmp rax, rcx
setns dl
add rdx, rbx
sub rax, rcx
cmovo rax, rdx
cmp rax, 0x3938700
jg 0x140150013
mov rdi, qword [0x140354718]
movabs rsi, 0x8000000000000001
lea rcx, [rdi + rsi]
cmp rcx, 2
jae 0x1401500d2
lea rcx, [rax + rsi]
cmp rcx, 1
ja 0x1401500e9
cmp rax, rdi
je 0x1401500e9
int3
lea rcx, [rax + rdi]
sar rcx, 0x3f
btc rcx, 0x3f
add rax, rdi
cmovo rax, rcx
mov rdi, rax
movzx eax, byte [rsp + 0x1da]
and eax, 0x7f
cmp eax, 1
jne 0x140150b23
lea rcx, [rsp + 0xd0]
call fcn.140245140
mov eax, dword [0x14035be28]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401513dc
mov eax, dword [0x14035be48]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140151419
cmp qword [0x140354718], 0
jne 0x1401501c0
mov rax, qword [0x1403411f8]
lea rsi, [rsp + 0xb0]
mov rcx, rsi
call qword [case.0x140211850.0]
mov rax, qword [rsi]
mov qword [0x140354768], rax
mov qword [rsi], r15
lea rsi, [rsp + 0xb0]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
movabs rax, 0x6666666666666667
imul qword [rsi]
movabs rsi, 0x8000000000000001
mov rax, rdx
shr rax, 0x3f
sar rdx, 2
add rdx, rax
mov qword [0x140354718], rdx
lea r14, [rsp + 0x90]
mov qword [r14], r15
mov rax, qword [0x1403411f8]
mov rcx, r14
call qword [case.0x140211850.0]
mov rax, qword [r14]
mov rcx, qword [0x140354768]
xor edx, edx
cmp rax, rcx
setns dl
add rdx, rbx
sub rax, rcx
cmovo rax, rdx
cmp rax, 0x3938701
jl 0x1401502b6
lea r12, [rsp + 0xb0]
mov r14, qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
movabs r13, 0x6666666666666667
lea rbp, [rsp + 0x90]
mov rax, qword [0x1403411f8]
mov rcx, r12
call qword [case.0x140211850.0]
mov rax, qword [rsp + 0xb0]
mov qword [0x140354768], rax
mov qword [rsp + 0xb0], r15
mov rcx, r12
call r14
mov rax, r13
imul qword [rsp + 0xb0]
mov rax, rdx
shr rax, 0x3f
sar rdx, 2
add rdx, rax
mov qword [0x140354718], rdx
mov qword [rsp + 0x90], r15
mov rax, qword [0x1403411f8]
mov rcx, rbp
call qword [case.0x140211850.0]
mov rax, qword [rsp + 0x90]
mov rcx, qword [0x140354768]
xor edx, edx
cmp rax, rcx
setns dl
add rdx, rbx
sub rax, rcx
cmovo rax, rdx
cmp rax, 0x3938700
jg 0x140150224
mov r14, qword [0x140354718]
lea rcx, [r14 + rsi]
cmp rcx, 2
jae 0x14015043d
lea rcx, [rax + rsi]
cmp rcx, 1
mov rbp, qword [rsp + 0x38]
ja 0x140150459
cmp rax, r14
je 0x140150459
int3
mov r8, qword [r12 + 0x58]
mov rcx, qword [r12 + 0x78]
cmp rcx, qword [r12 + 0x80]
je 0x140150c8a
cmp r8, rdx
jb 0x140151c10
mov r8, qword [r13]
cmp dword [rcx + 0x40], 0
je 0x140150d4f
mov rcx, qword [rcx + 0x30]
shl rdx, 7
lea rsi, [r8 + rdx]
add rsi, 0x28
cmp qword [rsi], rcx
jg 0x140151172
mov rcx, qword [r8 + rdx]
lea rax, [rsp + 0x178]
mov qword [rax - 0x28], rcx
mov qword [r8 + rdx], 0
movups xmm0, xmmword [r8 + rdx + 8]
movups xmm1, xmmword [r8 + rdx + 0x18]
movups xmmword [rax - 0x10], xmm1
movups xmmword [rax - 0x20], xmm0
mov ecx, 0xa
mov rdi, rax
rep movsq qword [rdi], qword [rsi]
mov cl, byte [r8 + rdx + 0x7c]
mov byte [rax + 0x54], cl
mov ecx, dword [r8 + rdx + 0x78]
mov dword [rax + 0x50], ecx
mov rcx, qword [r12 + 0x58]
mov rax, qword [r12 + 0x60]
lea rdx, [rax + 1]
cmp rcx, rdx
jb 0x140151c13
cmp rcx, rax
movabs rsi, 0x8000000000000001
jb 0x140151c16
lea rcx, [rsi - 2]
cmp rax, rcx
je 0x140151c19
mov rcx, qword [r13]
shl rax, 7
mov rcx, qword [rcx + rax]
test rcx, rcx
jne 0x140150f7c
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
jb 0x14014fb1d
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 0x14014fb1d
mov r8, rcx
shr r8, 2
add r8, rcx
cmp r8, 4
mov edx, 3
cmovae rdx, r8
cmp rdx, rax
jae 0x14014fb1d
mov rcx, r13
call fcn.14012cd30
jmp 0x14014fb1d
lea rcx, [rax + r14]
sar rcx, 0x3f
btc rcx, 0x3f
add rax, r14
cmovo rax, rcx
mov r14, rax
mov rbp, qword [rsp + 0x38]
xor eax, eax
cmp r14, rdi
setns al
add rax, rbx
sub r14, rdi
cmovo r14, rax
mov rdi, qword [rsp + 0xd8]
test rdi, rdi
je 0x140150784
mov r12, qword [rsp + 0xe0]
test r12, r12
je 0x140150784
mov qword [rsp + 0xc0], r15
movaps xmmword [rsp + 0xb0], xmm6
mov rcx, r12
call fcn.140198c60
lea rbx, [rsi - 0x12]
cmp rax, rbx
ja 0x140151b06
mov r13, rax
cmp rax, 0x16
ja 0x1401504c9
lea rcx, [rsp + 0xb0]
mov byte [rcx + 0x17], r13b
jmp 0x1401504fd
mov rbp, r13
or rbp, 0xf
inc rbp
mov rcx, rbp
call fcn.14016ecd4
mov rcx, rax
mov qword [rsp + 0xb0], rax
lea rax, [rsi - 1]
or rax, rbp
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xb8], r13
lea rsi, [rcx + r13]
cmp rcx, r12
ja 0x14015050f
cmp rsi, r12
ja 0x1401515d5
test r13, r13
je 0x14015051f
mov rdx, r12
mov r8, r13
call fcn.1401730b0
mov byte [rsi], 0
mov qword [rsp + 0xa0], r15
movaps xmmword [rsp + 0x90], xmm6
mov rcx, rdi
call fcn.140198c60
cmp rax, rbx
ja 0x140151b06
mov r12, rax
cmp rax, 0x16
movabs rsi, 0x8000000000000001
ja 0x140150564
lea rcx, [rsp + 0x90]
mov byte [rcx + 0x17], r12b
jmp 0x140150598
mov r13, r12
or r13, 0xf
inc r13
mov rcx, r13
call fcn.14016ecd4
mov rcx, rax
mov qword [rsp + 0x90], rax
lea rax, [rsi - 1]
or rax, r13
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x98], r12
lea rsi, [rcx + r12]
cmp rcx, rdi
ja 0x1401505aa
cmp rsi, rdi
ja 0x1401515d5
test r12, r12
je 0x1401505ba
mov rdx, rdi
mov r8, r12
call fcn.1401730b0
mov byte [rsi], 0
movzx ebp, byte [rsp + 0xc7]
test bpl, bpl
jns 0x1401505d4
mov r12, qword [rsp + 0xb8]
jmp 0x1401505db
mov r12d, ebp
and r12d, 0x7f
movzx r15d, byte [rsp + 0xa7]
test r15b, r15b
jns 0x1401505f3
mov rdi, qword [rsp + 0x98]
jmp 0x1401505f9
mov edi, r15d
and edi, 0x7f
lea rsi, [rdi + r12]
cmp rsi, rbx
ja 0x140151b06
cmp rsi, 0x16
jbe 0x140150aeb
mov r13, rsi
or r13, 0xf
inc r13
mov rcx, r13
call fcn.14016ecd4
mov rcx, rax
movabs rax, 0x8000000000000001
dec rax
or rax, r13
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], rsi
test bpl, bpl
jns 0x140150656
mov rdx, qword [rsp + 0xb0]
jmp 0x14015065e
lea rdx, [rsp + 0xb0]
mov rbp, qword [rsp + 0x38]
lea r13, [rcx + r12]
cmp rdx, rcx
jb 0x140150675
cmp r13, rdx
ja 0x1401515d5
test r12, r12
je 0x140150682
mov r8, r12
call fcn.1401730b0
test r15b, r15b
lea rdx, [rsp + 0x90]
jns 0x140150697
mov rdx, qword [rsp + 0x90]
lea rsi, [rdi + r13]
cmp rdx, r13
jb 0x1401506a9
cmp rsi, rdx
ja 0x1401515d5
test rdi, rdi
je 0x1401506b9
mov rcx, r13
mov r8, rdi
call fcn.1401730b0
mov byte [rsi], 0
movzx eax, byte [rsp + 0x87]
test al, al
jns 0x1401506cf
mov rax, qword [rsp + 0x78]
jmp 0x1401506d2
and eax, 0x7f
test rax, rax
je 0x14015074b
mov rax, qword [rbp + 0x30]
mov eax, dword [rax]
test al, 1
jne 0x140151ab8
mov eax, dword [0x14035d578]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401514d3
cmp qword [0x14035d570], 0
jne 0x140151ba6
mov eax, dword [0x14035d578]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140151508
cmp qword [0x14035d570], 0
jne 0x140151bcf
cmp byte [rsp + 0x87], 0
jns 0x14015075f
mov rcx, qword [rsp + 0x70]
call fcn.14016eccc
cmp byte [rsp + 0xa7], 0
js 0x140150fc4
cmp byte [rsp + 0xc7], 0
jns 0x140150784
mov rcx, qword [rsp + 0xb0]
call fcn.14016eccc
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 0xd0], 0
test rcx, rcx
jne 0x14015136b
cmp byte [rsp + 0x150], 0
mov rbx, qword [rsp + 0x48]
mov r14, qword [rsp + 0x40]
jne 0x140150e6a
cmp byte [rsp + 0x270], 0
je 0x140150839
mov eax, dword [0x140352c70]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140151723
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140150822
mov rcx, qword [0x140352c60]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [0x140352c68]
mov rdx, qword [0x140352c60]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rcx, qword [rsp + 0x278]
test rcx, rcx
je 0x140150839
lock dec dword [rcx + 8]
je 0x140151b87
mov rsi, qword [0x140352c78]
cmp rsi, 1
jbe 0x1401518c9
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140150879
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 + 0x290], 0
jne 0x140150de5
mov rsi, qword [0x14035be50]
cmp rsi, 1
jbe 0x140151589
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1401508c7
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 [0x14035d308]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140151692
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140150926
mov rcx, qword [0x14035d2f8]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [0x14035d300]
mov rdx, qword [0x14035d2f8]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov eax, dword [0x14035d320]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401517ff
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140150985
mov rcx, qword [0x14035d310]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [0x14035d318]
mov rdx, qword [0x14035d310]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rcx, qword [rsp + 0x68]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
jne 0x1401509a2
call fcn.1401571d0
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
jne 0x140150d1f
cmp byte [rsp + 0x34], 0
je 0x1401509dc
mov rax, qword [r14]
mov al, byte [rax + 0x16]
and al, 0x7f
cmp al, 1
jne 0x1401509dc
mov rax, qword [rbp + 0x30]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
je 0x1401519f9
mov rsi, qword [r14]
mov rax, qword [rsi]
mov rax, qword [rax + 0x38]
lea rcx, [0x140153200]
cmp rax, rcx
jne 0x140150dcd
lea rdi, [rsi + 0x20]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1401516d4
mov rax, qword [rsi + 0x60]
cmp rax, qword [rsi + 0x68]
jne 0x140150ac8
mov rax, qword [rsi + 0x78]
cmp rax, qword [rsi + 0x80]
jne 0x140150ac8
mov rcx, qword [rsi + 0x38]
test rcx, rcx
je 0x140150a3d
lock dec dword [rcx + 8]
je 0x1401510ce
mov dword [rsi + 0xb8], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
cmp byte [rsp + 0x1e0], 0
je 0x140150a71
mov rcx, qword [rsp + 0x1e8]
test rcx, rcx
jne 0x140150d37
mov rsi, qword [r14]
test rsi, rsi
jne 0x140150ff2
mov qword [r14], 0
test rsi, rsi
jne 0x14015101e
mov rcx, qword [r14]
test rcx, rcx
jne 0x140151b6e
mov rcx, qword [rsp + 0x318]
xor rcx, rsp
call fcn.140171860
mov rax, rbx
movaps xmm6, xmmword [rsp + 0x320]
add rsp, 0x338
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [r14]
mov qword [rbx], rax
xorps xmm0, xmm0
mov rax, qword [r14 + 8]
movups xmmword [r14], xmm0
mov qword [rbx + 8], rax
jmp 0x140150a56
xorps xmm0, xmm0
lea rcx, [rsp + 0x70]
movaps xmmword [rcx], xmm0
mov qword [rcx + 0x10], 0
mov byte [rcx + 0x17], sil
jmp 0x140150647
test eax, eax
jne 0x140150e3f
mov rax, qword [rbp + 0x30]
mov eax, dword [rax]
test al, 1
sete al
mov dword [rsp + 0x34], eax
jmp 0x14014f955
test eax, eax
jne 0x140150e13
lea rcx, [rsp + 0xd0]
call fcn.140244d00
jmp 0x140150784
cmp eax, 2
jne 0x14014ff43
mov rax, qword [r12 + 0x38]
test rax, rax
je 0x140151c2e
lock inc dword [rax + 8]
mov qword [rsp + 0x158], rax
lock inc dword [rax + 8]
mov qword [rsp + 0x160], rax
mov eax, dword [0x140352c70]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140151975
lea rsi, [rsp + 0x160]
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140151adc
mov rcx, qword [0x140352c60]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [0x140352c68]
mov rdx, qword [0x140352c60]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov eax, dword [0x14035ab10]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140151a34
lea rsi, [rsp + 0x158]
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140151ae6
mov rcx, qword [0x14035ab00]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [0x14035ab08]
mov rdx, qword [0x14035ab00]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov byte [rsp + 0x150], 1
jmp 0x14014ff43
cmp rcx, rdx
je 0x140150e4d
cmp dword [rcx + 0x40], 0
je 0x140150f94
mov rcx, qword [rcx + 0x30]
cmp qword [r12 + 0x58], rax
jb 0x140151c28
mov rdx, qword [r13]
shl rax, 7
mov rax, qword [rdx + rax + 0x28]
cmp rcx, rax
cmovl rax, rcx
mov qword [r12 + 0x90], rax
jmp 0x14014fb43
cmp r8, rdx
jb 0x140151c1f
mov rax, qword [r12 + 0x50]
shl rdx, 7
add rax, rdx
add rax, 0x28
mov rcx, qword [rax - 0x28]
lea rdx, [rsp + 0x178]
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 0x140151c22
cmp rcx, rax
movabs rsi, 0x8000000000000001
jb 0x140151c25
lea rcx, [rsi - 2]
cmp rax, rcx
jne 0x1401503b0
int3
lock dec dword [rcx]
jne 0x1401509b3
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x1401509b3
lock dec dword [rcx]
jne 0x140150a71
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x140150a71
mov r9, qword [rcx + 0x30]
mov rcx, qword [rcx + 0x38]
lea r10, [rcx + r11]
cmp r10, 2
jae 0x140150fd6
lea r10, [r9 + r11]
cmp r10, 1
ja 0x14015031d
cmp r9, rcx
je 0x14015031d
int3
lea rdx, [rsp + 0x150]
lea r8, [rsp + 0xb0]
mov rcx, r12
call qword [case.0x140211850.0]
jmp 0x14014fb43
lea rbx, [rsp + 0x298]
movaps xmmword [rbx + 8], xmm0
mov qword [rbx + 0x18], 0
mov byte [rbx - 8], 1
jmp 0x14014fe40
lea rdx, [rsp + 0x60]
mov rcx, r12
call qword [case.0x140211850.0]
jmp 0x14014fcce
mov rcx, rsi
xor edx, edx
call qword [case.0x140211850.0]
test al, al
je 0x140150a50
jmp 0x140150ad1
mov rdx, qword [rsp + 0x2a0]
test rdx, rdx
je 0x140150887
lea rsi, [rsp + 0x2a0]
mov rcx, rsi
call fcn.1401b5410
mov rcx, qword [rsi]
call fcn.14016eccc
jmp 0x140150887
cmp eax, 2
jne 0x140150784
lea rsi, [rsp + 0xd0]
mov rcx, rsi
call fcn.140245580
mov rcx, rbp
mov rdx, rdi
mov r8, rsi
call fcn.140245970
jmp 0x140150784
cmp eax, 2
je 0x14014f955
jmp 0x140151b99
cmp qword [r12 + 0x58], rax
jb 0x140151c2b
mov rcx, qword [r13]
shl rax, 7
mov rax, qword [rcx + rax + 0x28]
jmp 0x140150c7d
mov eax, dword [0x14035ab10]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140151a76
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140150ec9
mov rcx, qword [0x14035ab00]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [0x14035ab08]
mov rdx, qword [0x14035ab00]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov eax, dword [0x140352c70]
mov ecx, dword [0x14034fed0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401519b7
mov ecx, dword [0x1403411e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140150f28
mov rcx, qword [0x140352c60]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [0x140352c68]
mov rdx, qword [0x140352c60]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rcx, qword [rsp + 0x160]
test rcx, rcx
je 0x140150f3f
lock dec dword [rcx + 8]
je 0x140151c3b
mov rcx, qword [rsp + 0x158]
test rcx, rcx
je 0x1401507b9
lock dec dword [rcx + 8]
jne 0x1401507b9
call fcn.14008a550
jmp 0x1401507b9
lock dec dword [rcx]
jne 0x14014fb0b
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x14014fb0b
lock dec dword [rcx]
jne 0x1401503c5
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x1401503c5
mov rdx, qword [rcx + 0x30]
mov rcx, qword [rcx + 0x38]
lea r8, [rcx + rsi]
cmp r8, 2
jae 0x1401510d8
lea r8, [rdx + rsi]
cmp r8, 1
ja 0x140150c5e
cmp rdx, rcx
je 0x140150c5e
int3
mov rcx, qword [rsp + 0x90]
call fcn.14016eccc
jmp 0x14015076d
lea r10, [r9 + rcx]
sar r10, 0x3f
btc r10, 0x3f
add r9, rcx
cmovo r9, r10
mov rcx, r9
jmp 0x14015031d
mov r13, qword [r14 + 8]
test r13, r13
je 0x140150a7d
mov qword [r14], 0
mov al, byte [rsi + 0x16]
and al, 0x7f
cmp al, 2
je 0x1401512c3
lock dec dword [r13 + 0x38]
je 0x14015118a
lock dec dword [rsi + 8]
jne 0x140150a8d
lea rax, [0x1402ff3a8]
mov qword [rsi], rax
mov rdx, qword [rsi + 0xa0]
test rdx, rdx
jne 0x140151959
lea rdi, [rsi + 0x78]
mov rbx, qword [rsi + 0x78]
mov r14, qword [rsi + 0x80]
mov rdx, rbx
cmp r14, rbx
jne 0x140151cad
mov qword [rsi + 0x80], rbx
test rdx, rdx
jne 0x140151c45
mov rbx, qword [rsi + 0x60]
mov rdi, qword [rsi + 0x68]
cmp rdi, rbx
jne 0x140151383
mov rdx, qword [rsi + 0x50]
lea rcx, fcn.140055170
xor r8d, r8d
call fcn.140054930
lea rax, [0x1402ff408]
mov qword [rsi], rax
mov rcx, qword [rsi + 0x38]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
jne 0x1401510b7
call fcn.1401571d0
mov rcx, rsi
call fcn.14016eccc
mov rbx, qword [rsp + 0x48]
mov r14, qword [rsp + 0x40]
jmp 0x140150a8d
call fcn.14008a550
jmp 0x140150a3d
lea r8, [rdx + rcx]
sar r8, 0x3f
btc r8, 0x3f
add rdx, rcx
cmovo rdx, r8
mov rcx, rdx
jmp 0x140150c5e
cmp rsi, rcx
je 0x140151765
shl rdx, 7
add rdx, rcx
add rdx, 0x28
mov rcx, qword [rdx - 0x28]
lea r8, [rsp + 0x2b8]
mov qword [r8 - 0x28], rcx
mov qword [rdx - 0x28], 0
movups xmm0, xmmword [rdx - 0x20]
movups xmm1, xmmword [rdx - 0x10]
movups xmmword [r8 - 0x10], xmm1
movups xmmword [r8 - 0x20], xmm0
mov ecx, 0xa
mov rdi, r8
mov rsi, rdx
rep movsq qword [rdi], qword [rsi]
mov ecx, dword [rdx + 0x50]
mov dword [r8 + 0x50], ecx
mov cl, byte [rdx + 0x54]
mov byte [r8 + 0x54], cl
lea r8, [rsp + 0x290]
mov rcx, rax
xor edx, edx
call fcn.140246c20
mov rcx, qword [r12 + 0x78]
mov rsi, qword [r12 + 0x80]
jmp 0x14014faf1
lea rdx, [rsp + 0x150]
mov rcx, rax
xor r8d, r8d
call fcn.140246ac0
jmp 0x14014fb13
lea r15, [r13 + 0x40]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140151b23
mov rcx, qword [r13 + 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 0x140151af9
mov rdi, qword [r13 + 0x50]
mov r12, qword [r13 + 0x58]
xorps xmm0, xmm0
movups xmmword [r13 + 0x50], xmm0
mov r14, qword [r13 + 0x60]
mov rbx, qword [r13 + 0x68]
movups xmmword [r13 + 0x60], xmm0
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp r14, rbx
jne 0x14015120f
lea rcx, fcn.140055170
mov rdx, rdi
xor r8d, r8d
call fcn.140054930
mov rbx, qword [rsp + 0x48]
mov r14, qword [rsp + 0x40]
jmp 0x140150a84
xor r13d, r13d
mov rbp, r14
cmp r12, rbp
jb 0x140151c1c
mov r15, qword [rdi + rbp*8]
mov qword [rdi + rbp*8], 0
mov rax, qword [r15 + 8]
mov rcx, r15
call qword [case.0x140211850.0]
test r15, r15
jne 0x14015124d
inc rbp
cmp rbp, r12
cmove rbp, r13
cmp rbp, rbx
jne 0x140151215
jmp 0x140151262
lock dec dword [r15]
jne 0x14015123c
mov rax, qword [r15 + 0x10]
mov rcx, r15
call qword [case.0x140211850.0]
jmp 0x14015123c
cmp rbx, r14
jbe 0x14015130f
cmp r12, rbx
jb 0x140151c5a
cmp r12, r14
jb 0x140151c5d
cmp r14, rbx
jg 0x140151c60
shl rbx, 3
shl r14, 3
mov rcx, qword [rdi + r14]
test rcx, rcx
jne 0x1401512a5
add r14, 8
cmp rbx, r14
jne 0x14015128e
jmp 0x1401511ee
lock dec dword [rcx]
jne 0x140151297
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x140151297
mov rcx, rsi
call fcn.140047ff0
jmp 0x14014f9da
mov rax, qword [r13 + 0x30]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
jne 0x140151013
lea rdi, [r13 + 0x70]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140151d01
mov rcx, qword [r13 + 0x78]
call fcn.1400d29c0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rbx, qword [rsp + 0x48]
mov r14, qword [rsp + 0x40]
jmp 0x140151013
cmp r12, r14
jb 0x140151c63
jl 0x140151c66
jne 0x140151456
cmp r12, rbx
jb 0x140151c69
test rbx, rbx
js 0x140151c6c
je 0x1401511ee
shl rbx, 3
xor r14d, r14d
mov rcx, qword [rdi + r14]
test rcx, rcx
jne 0x14015135a
add r14, 8
cmp rbx, r14
jne 0x140151343
jmp 0x1401511ee
lock dec dword [rcx]
jne 0x14015134c
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x14015134c
lock dec dword [rcx]
jne 0x1401507a1
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x1401507a1
mov r14, qword [rsi + 0x58]
jbe 0x14015148a
cmp r14, rdi
jb 0x140151c6f
cmp r14, rbx
jb 0x140151c72
cmp rbx, rdi
jg 0x140151c75
mov r14, qword [rsi + 0x50]
shl rdi, 7
shl rbx, 7
mov rcx, qword [r14 + rbx]
test rcx, rcx
jne 0x1401513cb
sub rbx, 0xffffffffffffff80
cmp rdi, rbx
jne 0x1401513b4
jmp 0x14015107e
lock dec dword [rcx]
jne 0x1401513bd
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x1401513bd
lea rcx, [0x14035be28]
call fcn.14016f8b4
cmp dword [0x14035be28], 0xffffffff
jne 0x14015012f
lea rcx, [0x14035be10]
lea rdx, str.Microsoft.Shutdown.TaskTime.Long
call fcn.14006eb46
lea rcx, [0x14035be28]
call fcn.14016ef8c
jmp 0x14015012f
lea rcx, [0x14035be48]
call fcn.14016f8b4
cmp dword [0x14035be48], 0xffffffff
jne 0x140150154
lea rcx, [0x14035be30]
lea rdx, str.Microsoft.Shutdown.TaskTime.Medium
call fcn.14006eb46
lea rcx, [0x14035be48]
call fcn.14016ef8c
jmp 0x140150154
lea r15, [r12*8]
shl r14, 3
mov rcx, qword [rdi + r14]
test rcx, rcx
jne 0x140151479
add r14, 8
cmp r15, r14
jne 0x140151462
jmp 0x140151324
lock dec dword [rcx]
jne 0x14015146b
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x14015146b
cmp r14, rbx
jb 0x140151c78
jl 0x140151c7b
je 0x140151605
mov r15, qword [rsi + 0x50]
shl r14, 7
shl rbx, 7
mov rcx, qword [r15 + rbx]
test rcx, rcx
jne 0x1401514c2
sub rbx, 0xffffffffffffff80
cmp r14, rbx
jne 0x1401514ab
jmp 0x140151601
lock dec dword [rcx]
jne 0x1401514b4
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x1401514b4
lea rcx, [0x14035d578]
call fcn.14016f8b4
cmp dword [0x14035d578], 0xffffffff
jne 0x14015070a
mov qword [0x14035d570], 0
lea rcx, [0x14035d578]
call fcn.14016ef8c
jmp 0x14015070a
lea rcx, [0x14035d578]
call fcn.14016f8b4
cmp dword [0x14035d578], 0xffffffff
jne 0x14015073d
mov qword [0x14035d570], 0
lea rcx, [0x14035d578]
call fcn.14016ef8c
jmp 0x14015073d
lea rcx, [0x14035be50]
call fcn.14006d330
test al, al
je 0x140151c84
xorps xmm0, xmm0
movups xmmword [0x14035be58], xmm0
lea rdi, [0x14035be50]
lea rsi, [0x14035be58]
mov rcx, rsi
xor edx, edx
call fcn.140041af0
mov rcx, rdi
mov rdx, rsi
xor r8d, r8d
mov r9, rdi
call fcn.14006d410
jmp 0x14014fdcb
lea rcx, [0x14035be50]
call fcn.14006d330
test al, al
je 0x140151c90
xorps xmm0, xmm0
movups xmmword [0x14035be58], xmm0
lea rdi, [0x14035be50]
lea rsi, [0x14035be58]
mov rcx, rsi
xor edx, edx
call fcn.140041af0
mov rcx, rdi
mov rdx, rsi
xor r8d, r8d
mov r9, rdi
call fcn.14006d410
jmp 0x140150898
lea rax, str.char_traits::copy_overlapped_range
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude__stringchar_traits.h
lea r9, str.__s2_____s1____s2_____s1__n
mov r8d, 0xec
call fcn.1401c469a
mov rbx, qword [rsi + 0x58]
cmp rbx, rdi
jb 0x140151c7e
test rdi, rdi
js 0x140151c81
je 0x14015107e
mov rbx, qword [rsi + 0x50]
shl rdi, 7
xor r14d, r14d
mov rcx, qword [rbx + r14]
test rcx, rcx
jne 0x14015163f
sub r14, 0xffffffffffffff80
cmp rdi, r14
jne 0x140151628
jmp 0x14015107e
lock dec dword [rcx]
jne 0x140151631
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x140151631
lea rcx, [0x14035d308]
call fcn.14016f8b4
cmp dword [0x14035d308], 0xffffffff
jne 0x14014fd0c
xorps xmm0, xmm0
movups xmmword [0x14035d2f8], xmm0
lea rcx, [0x14035d2f8]
xor edx, edx
call fcn.140041af0
lea rcx, [0x14035d308]
call fcn.14016ef8c
jmp 0x14014fd0c
lea rcx, [0x14035d308]
call fcn.14016f8b4
cmp dword [0x14035d308], 0xffffffff
jne 0x1401508ec
xorps xmm0, xmm0
movups xmmword [0x14035d2f8], xmm0
lea rcx, [0x14035d2f8]
xor edx, edx
call fcn.140041af0
lea rcx, [0x14035d308]
call fcn.14016ef8c
jmp 0x1401508ec
mov rcx, rdi
call fcn.140047ff0
jmp 0x140150a0b
lea rcx, [0x140352c70]
call fcn.14016f8b4
cmp dword [0x140352c70], 0xffffffff
jne 0x14014fef9
xorps xmm0, xmm0
movups xmmword [0x140352c60], xmm0
lea rcx, [0x140352c60]
xor edx, edx
call fcn.140041af0
lea rcx, [0x140352c70]
call fcn.14016ef8c
jmp 0x14014fef9
lea rcx, [0x140352c70]
call fcn.14016f8b4
cmp dword [0x140352c70], 0xffffffff
jne 0x1401507e8
xorps xmm0, xmm0
movups xmmword [0x140352c60], xmm0
lea rcx, [0x140352c60]
xor edx, edx
call fcn.140041af0
lea rcx, [0x140352c70]
call fcn.14016ef8c
jmp 0x1401507e8
lea rax, str.vector___index_out_of_bounds
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_vector
lea r9, str.__n___size__
mov r8d, 0x587
call fcn.1401c469a
lea rax, str.vector::pop_back_called_on_an_empty_vector
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_vector
lea r9, str._empty__
mov r8d, 0x623
call fcn.1401c469a
lea rcx, [0x14035d320]
call fcn.14016f8b4
cmp dword [0x14035d320], 0xffffffff
jne 0x14014fd70
xorps xmm0, xmm0
movups xmmword [0x14035d310], xmm0
lea rcx, [0x14035d310]
xor edx, edx
call fcn.140041af0
lea rcx, [0x14035d320]
call fcn.14016ef8c
jmp 0x14014fd70
lea rcx, [0x14035d320]
call fcn.14016f8b4
cmp dword [0x14035d320], 0xffffffff
jne 0x14015094b
xorps xmm0, xmm0
movups xmmword [0x14035d310], xmm0
lea rcx, [0x14035d310]
xor edx, edx
call fcn.140041af0
lea rcx, [0x14035d320]
call fcn.14016ef8c
jmp 0x14015094b
lea rcx, [rsp + 0x1e8]
lea rsi, [rsp + 0x150]
mov rdx, rsi
call fcn.140158030
mov rcx, qword [rsi]
test rcx, rcx
je 0x14014fb9f
lock dec dword [rcx]
jne 0x14014fb9f
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x14014fb9f
lea rcx, [0x140352c78]
call fcn.14006d330
test al, al
je 0x140151b0b
xorps xmm0, xmm0
movups xmmword [0x140352c80], xmm0
lea rdi, [0x140352c78]
lea rsi, [0x140352c80]
mov rcx, rsi
xor edx, edx
call fcn.140041af0
mov rcx, rdi
mov rdx, rsi
xor r8d, r8d
mov r9, rdi
call fcn.14006d410
jmp 0x14014fe51
lea rcx, [0x140352c78]
call fcn.14006d330
test al, al
je 0x140151b17
xorps xmm0, xmm0
movups xmmword [0x140352c80], xmm0
lea rdi, [0x140352c78]
lea rsi, [0x140352c80]
mov rcx, rsi
xor edx, edx
call fcn.140041af0
mov rcx, rdi
mov rdx, rsi
xor r8d, r8d
mov r9, rdi
call fcn.14006d410
jmp 0x14015084a
call fcn.140001120
jmp 0x14014fd22
call fcn.140001120
jmp 0x14014fd8b
call fcn.140001120
jmp 0x14014fde1
test rbx, rbx
je 0x14014fe80
call fcn.140001120
jmp 0x14014fe67
test rsi, rsi
je 0x14014ff3b
call fcn.140001120
jmp 0x14014ff17
lea rdi, [rsi + 0xa0]
mov rcx, rdi
call fcn.1401b5410
mov rcx, qword [rdi]
call fcn.14016eccc
jmp 0x140151042
lea rcx, [0x140352c70]
call fcn.14016f8b4
cmp dword [0x140352c70], 0xffffffff
jne 0x140150b91
xorps xmm0, xmm0
movups xmmword [0x140352c60], xmm0
lea rcx, [0x140352c60]
xor edx, edx
call fcn.140041af0
lea rcx, [0x140352c70]
call fcn.14016ef8c
jmp 0x140150b91
lea rcx, [0x140352c70]
call fcn.14016f8b4
cmp dword [0x140352c70], 0xffffffff
jne 0x140150eee
xorps xmm0, xmm0
movups xmmword [0x140352c60], xmm0
lea rcx, [0x140352c60]
xor edx, edx
call fcn.140041af0
lea rcx, [0x140352c70]
call fcn.14016ef8c
jmp 0x140150eee
lea rsi, [rbp + 0x70]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140151cc7
mov rax, qword [rsp + 0x38]
mov rcx, qword [rax + 0x78]
call fcn.1400d29c0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rbx, qword [rsp + 0x48]
mov r14, qword [rsp + 0x40]
jmp 0x1401509dc
lea rcx, [0x14035ab10]
call fcn.14016f8b4
cmp dword [0x14035ab10], 0xffffffff
jne 0x140150bf8
xorps xmm0, xmm0
movups xmmword [0x14035ab00], xmm0
lea rcx, [0x14035ab00]
xor edx, edx
call fcn.140041af0
lea rcx, [0x14035ab10]
call fcn.14016ef8c
jmp 0x140150bf8
lea rcx, [0x14035ab10]
call fcn.14016f8b4
cmp dword [0x14035ab10], 0xffffffff
jne 0x140150e8f
xorps xmm0, xmm0
movups xmmword [0x14035ab00], xmm0
lea rcx, [0x14035ab00]
xor edx, edx
call fcn.140041af0
lea rcx, [0x14035ab10]
call fcn.14016ef8c
jmp 0x140150e8f
cmp r14, 0x989680
jg 0x140151cd4
mov rbp, qword [rsp + 0x38]
cmp byte [rbp + 0xd0], 0
je 0x14015074b
jmp 0x140151ceb
call fcn.140001120
jmp 0x140150baf
test rsi, rsi
je 0x140150c3a
call fcn.140001120
jmp 0x140150c16
mov rcx, r15
call fcn.140047ff0
jmp 0x1401511c3
call fcn.14016fee0
mov rsi, qword [0x140352c78]
jmp 0x14014fe51
mov rsi, qword [0x140352c78]
jmp 0x14015084a
mov rcx, r15
call fcn.140047ff0
jmp 0x14015119f
lea rdx, [rsp + 0x150]
lea r8, [rsp + 0xb0]
mov rcx, r14
call fcn.140247030
jmp 0x14014fb43
lea rdx, [rsp + 0xd0]
lea r9, [rsp + 0x1d0]
mov rcx, rbp
mov r8, r12
call qword [case.0x140211850.0]
jmp 0x1401509b3
lock dec dword [rcx + 8]
jne 0x140150a99
mov edx, 1
call fcn.14007bad0
jmp 0x140150a99
call fcn.14008a550
jmp 0x140150839
mov rcx, rbp
call fcn.140244ca0
mov dword [rsp + 0x34], 0
jmp 0x14014f955
lea rcx, [0x14035be10]
mov edx, 0x10001
call fcn.140116410
test rax, rax
je 0x140150718
lea rcx, [rsp + 0x70]
call fcn.1402885b0
jmp 0x140150718
lea rcx, [0x14035be30]
mov edx, 0x10001
call fcn.140116410
test rax, rax
je 0x14015074b
lea rcx, [rsp + 0x70]
call fcn.1402885b0
jmp 0x14015074b
lea rsi, [rsp + 0x290]
mov rdx, rsi
call fcn.1400d58d0
mov rax, qword [rsi]
jmp 0x140150c7d
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
mov qword [rsp + 0x158], rax
jmp 0x140150b64
call fcn.14008a550
jmp 0x140150f3f
mov rcx, rdi
call fcn.140246d90
mov rcx, qword [rdi]
call fcn.14016eccc
jmp 0x14015106d
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
mov rsi, qword [0x14035be50]
jmp 0x14014fdcb
mov rsi, qword [0x14035be50]
jmp 0x140150898
lock dec dword [rcx]
jne 0x140151cba
mov rax, qword [rcx + 0x10]
call qword [case.0x140211850.0]
jmp 0x140151cba
mov rcx, qword [r14 - 0x80]
add r14, 0xffffffffffffff80
test rcx, rcx
jne 0x140151c9c
cmp r14, rbx
jne 0x140151cad
mov rdx, qword [rdi]
jmp 0x14015105d
mov rcx, rsi
call fcn.140047ff0
jmp 0x140151a0e
cmp r14, 0x1c9c381
mov rbp, qword [rsp + 0x38]
jb 0x140151ceb
lea rcx, [0x14035be10]
jmp 0x140151cf2
lea rcx, [0x14035be30]
lea rdx, [rsp + 0x70]
call fcn.140288570
jmp 0x14015074b
mov rcx, rdi
call fcn.140047ff0
jmp 0x1401512ee