Function at 0x140063ae0
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, 0x288
movaps xmmword [rsp + 0x270], xmm7
movaps xmmword [rsp + 0x260], xmm6
mov r12, rdx
mov rsi, rcx
mov rax, qword [0x140131038]
xor rax, rsp
mov qword [rsp + 0x258], rax
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xc8], rax
xorps xmm0, xmm0
movaps xmmword [rsp + 0xb0], xmm0
movups xmmword [rsp + 0xb9], xmm0
mov eax, dword [0x14013d928]
mov ecx, dword [0x140134a78]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140064cdb
mov ecx, dword [0x140134758]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140063b99
movsxd rcx, dword [0x14013d920]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x14013d924]
jne 0x140063b99
cmp qword [rax + rcx], 0
jne 0x140064d61
mov eax, dword [0x14013d928]
mov ecx, dword [0x140134a78]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140064d1e
mov ecx, dword [0x140134758]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140064cd1
movsxd rcx, dword [0x14013d920]
shl rcx, 4
lea rdx, [rsp + 0xb0]
mov qword [rax + rcx], rdx
mov ecx, dword [0x14013d924]
movsxd rdx, dword [0x14013d920]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov al, 1
mov byte [rsp + 0xc8], al
mov eax, 1
lock xadd dword [rsi + 8], eax
lea rbp, [rsi + 8]
mov ecx, eax
shr ecx, 0x1e
and ecx, 1
test eax, eax
mov eax, 2
cmovns eax, ecx
cmp eax, 1
mov qword [rsp + 0x88], rsi
jne 0x140064c89
test rbp, rbp
je 0x140064e28
mov r15, qword [rsi + 0x20]
mov r13, qword [r12]
xor eax, eax
mov qword [r12], rax
movups xmm0, xmmword [r12 + 0x18]
movaps xmmword [rsp + 0xa0], xmm0
movups xmm0, xmmword [r12 + 8]
movaps xmmword [rsp + 0x90], xmm0
mov r14, qword [r12 + 0x28]
mov cl, byte [r12 + 0x30]
mov byte [rsp + 0x57], cl
mov cl, byte [r12 + 0x31]
mov byte [rsp + 0x60], cl
mov rsi, qword [r12 + 0x38]
mov qword [r12 + 0x38], rax
mov rbx, qword [r12 + 0x40]
mov rax, qword [r15 + 0x10]
mov edi, dword [rax + 4]
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
test r14, r14
mov qword [rsp + 0x80], rbp
jne 0x1400640c7
movaps xmm0, xmmword [rsp + 0x90]
movaps xmm1, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0xe0], xmm1
movaps xmmword [rsp + 0xd0], xmm0
test r13, r13
je 0x140064e2f
lea rdi, [r15 + 0x20]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140064ca8
movaps xmm6, xmmword [0x1401146a0]
lea rdx, [rsp + 0x1d0]
movaps xmmword [rdx + 0x10], xmm6
movaps xmmword [rdx], xmm6
mov rcx, qword [r15 + 0x28]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [r15 + 8]
mov eax, dword [rax + 0x58]
test eax, eax
je 0x140063fb2
cmp byte [rsp + 0x1d8], 0
je 0x140064005
mov rbx, qword [rsp + 0x1e0]
mov qword [rsp + 0x58], rdi
mov rax, qword [r15 + 8]
mov r14d, 1
lock xadd qword [rax + 0x28], r14
mov edi, 1
mov rax, qword [r15 + 0x48]
mov qword [rsp + 0x78], rax
movaps xmm0, xmmword [rsp + 0xd0]
movaps xmm1, xmmword [rsp + 0xe0]
movaps xmmword [rsp + 0x1c0], xmm1
movaps xmmword [rsp + 0x1b0], xmm0
xorps xmm7, xmm7
movaps xmmword [rsp + 0x120], xmm7
movaps xmmword [rsp + 0x130], xmm7
mov dword [rsp + 0x140], 0
cmp qword [r15 + 0x38], 0
je 0x140064865
mov rbp, qword [r15 + 0x40]
mov rax, qword [rbp]
mov rcx, qword [rbp + 8]
mov rdi, qword [rbp + 0x10]
inc rdi
xor edx, edx
cmp rdi, rax
cmovne rdx, rdi
cmp rcx, rdx
je 0x140064aa3
xor ecx, ecx
cmp rdi, rax
cmove rdi, rcx
mov qword [rbp + 0x10], rdi
mov rax, qword [rbp + 0x18]
mov rdx, rdi
shl rdx, 7
lea rdx, [rdx + rdi*8]
mov qword [rax + rdx], r13
movaps xmm0, xmmword [rsp + 0x1b0]
movaps xmm1, xmmword [rsp + 0x1c0]
movups xmmword [rax + rdx + 8], xmm0
movups xmmword [rax + rdx + 0x18], xmm1
mov qword [rax + rdx + 0x28], rbx
mov qword [rax + rdx + 0x30], rcx
movaps xmm0, xmmword [rsp + 0x120]
movaps xmm1, xmmword [rsp + 0x130]
movups xmmword [rax + rdx + 0x38], xmm0
movups xmmword [rax + rdx + 0x48], xmm1
mov ebp, dword [rsp + 0x140]
mov dword [rax + rdx + 0x58], ebp
mov qword [rax + rdx + 0x60], rcx
mov dword [rax + rdx + 0x68], r14d
mov byte [rax + rdx + 0x6c], cl
mov bl, byte [rsp + 0x57]
mov byte [rax + rdx + 0x70], bl
mov byte [rax + rdx + 0x71], cl
mov cl, byte [rsp + 0x60]
mov byte [rax + rdx + 0x72], cl
mov qword [rax + rdx + 0x78], rsi
mov qword [rax + rdx + 0x80], r14
mov rax, qword [r15 + 0x48]
inc rax
mov qword [r15 + 0x48], rax
mov rcx, qword [r15 + 0x50]
cmp rcx, rax
cmovae rax, rcx
mov qword [r15 + 0x50], rax
mov r9, qword [r15]
mov rax, qword [r15 + 8]
mov rcx, qword [r15 + 0x40]
mov rbp, qword [rcx + 0x10]
mov rdx, rbp
shl rdx, 7
lea r8, [rdx + rbp*8]
add r8, qword [rcx + 0x18]
mov rcx, qword [rax + 0x30]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
lea rdx, [0x140032dc0]
cmp rax, rdx
jne 0x140064e32
add rcx, 0x110
lea rdx, str.SequenceManager_PostTask
call fcn.140032de0
mov rax, qword [r15 + 0x40]
mov rcx, qword [rax + 0x10]
mov rdi, qword [rax + 0x18]
mov rax, rcx
shl rax, 7
lea rbp, [rax + rcx*8]
cmp dword [rdi + rbp + 0x58], 0
jne 0x14006406e
mov rcx, qword [r15 + 0x68]
test rcx, rcx
je 0x140063f08
mov rax, qword [r15 + 0x40]
mov rbp, qword [rax + 0x10]
mov rdx, rbp
shl rdx, 7
lea rdx, [rdx + rbp*8]
add rdx, qword [rax + 0x18]
call qword [rcx + 8]
cmp qword [rsp + 0x78], 0
mov rdi, qword [rsp + 0x58]
je 0x140063fc5
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test byte [0x140134040], 9
jne 0x140064e3f
mov rbp, qword [rsp + 0x80]
mov eax, 0xffffffff
lock xadd dword [rbp], eax
and eax, 0xbfffffff
mov sil, 1
cmp eax, 0x80000001
je 0x140064c72
lea rcx, [rsp + 0xb0]
call fcn.14004fef0
mov rcx, qword [r12 + 0x38]
test rcx, rcx
jne 0x140064cb5
mov rcx, qword [r12]
test rcx, rcx
jne 0x14006405d
mov rcx, qword [rsp + 0x258]
xor rcx, rsp
call fcn.140079ea0
mov eax, esi
movaps xmm6, xmmword [rsp + 0x260]
movaps xmm7, xmmword [rsp + 0x270]
add rsp, 0x288
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [r15 + 0x1d2], 0
jne 0x140063d1e
jmp 0x140063d34
cmp byte [r15 + 0x60], 0
je 0x140063f19
mov rax, qword [r15 + 0x1c0]
mov rcx, qword [r15 + 0x1c8]
lock or qword [rax], rcx
mov bl, byte [r15 + 0x61]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test bl, bl
je 0x140063f22
mov rcx, qword [r15 + 8]
call fcn.140051810
jmp 0x140063f22
mov rcx, qword [rsp + 0x1d0]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
lea rdx, [0x140076d10]
cmp rax, rdx
jne 0x140064f6f
lea rcx, [rsp + 0x120]
call qword [fcn.140049dd0]
cmp byte [rsp + 0x1d8], 0
mov rbx, qword [rsp + 0x120]
mov qword [rsp + 0x1e0], rbx
jne 0x140063d34
mov byte [rsp + 0x1d8], 1
jmp 0x140063d34
lock dec dword [rcx]
jne 0x140063f7c
call qword [rcx + 0x10]
jmp 0x140063f7c
test byte [0x140133f70], 9
je 0x140063ee5
mov rbx, r12
mov r12, qword [r15]
lea r14, [rsp + 0xf0]
mov qword [r14], 0
mov rcx, r15
mov rdx, r14
call fcn.140100b70
test al, al
je 0x1400640bf
add rdi, rbp
mov qword [rsp + 0x118], r12
mov qword [rsp + 0x110], rdi
test byte [0x140133f70], 0x19
jne 0x14006513e
mov r12, rbx
jmp 0x140063ee5
mov qword [rsp + 0x58], rsi
movaps xmm0, xmmword [rsp + 0x90]
movaps xmm1, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0xe0], xmm1
movaps xmmword [rsp + 0xd0], xmm0
test r13, r13
je 0x140064f7e
mov ecx, eax
movabs rbp, 0x8000000000000001
lea rsi, [r14 + rbp]
cmp rsi, 2
jb 0x140064e14
movabs rdx, 0x20c49ba5e353f7cf
mov rax, r14
imul rdx
mov rax, rdx
shr rax, 0x3f
sar rdx, 7
add rdx, rax
cmp rdx, 0x20
setl byte [rsp + 0x78]
mov rax, qword [r15 + 8]
mov edx, 1
lock xadd qword [rax + 0x28], rdx
mov qword [rsp + 0x70], rdx
cmp edi, ecx
jne 0x140064b45
lea rdi, [rsp + 0x110]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rdi], rax
mov rcx, qword [r15 + 0x98]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 0x10]
mov rdx, qword [rdi]
cmp rsi, 2
jae 0x140064196
add rbp, rdx
cmp rbp, 1
mov rcx, qword [rsp + 0x58]
ja 0x1400641ba
cmp rdx, r14
je 0x1400641ba
int3
xor eax, eax
mov rcx, rdx
add rcx, r14
setns al
movabs rcx, 0x7fffffffffffffff
add rcx, rax
add r14, rdx
cmovo r14, rcx
mov rcx, qword [rsp + 0x58]
mov rax, qword [r15 + 8]
mov eax, dword [rax + 0x58]
test eax, eax
mov qword [rsp + 0x58], rdx
cmovne rbx, rdx
movaps xmm0, xmmword [rsp + 0xd0]
movaps xmm1, xmmword [rsp + 0xe0]
movups xmmword [rsp + 0x138], xmm1
movups xmmword [rsp + 0x128], xmm0
mov qword [rsp + 0x120], r13
mov qword [rsp + 0x148], rbx
mov qword [rsp + 0x150], r14
xor eax, eax
mov qword [rsp + 0x180], rax
mov byte [rsp + 0x18c], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x158], xmm0
movups xmmword [rsp + 0x168], xmm0
mov dword [rsp + 0x178], 0
mov dl, byte [rsp + 0x57]
mov byte [rsp + 0x190], dl
mov dl, byte [rsp + 0x60]
mov byte [rsp + 0x192], dl
mov qword [rsp + 0x198], rcx
mov qword [rsp + 0x1a0], rax
mov rax, qword [rsp + 0x70]
mov dword [rsp + 0x188], eax
mov al, byte [rsp + 0x78]
mov byte [rsp + 0x191], al
mov r9, qword [r15]
mov rax, qword [r15 + 8]
mov rcx, qword [rax + 0x30]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
lea rdx, [0x140032dc0]
cmp rax, rdx
jne 0x140064f81
add rcx, 0x110
lea rdx, str.SequenceManager_PostTask
lea r8, [rsp + 0x120]
call fcn.140032de0
cmp dword [rsp + 0x178], 0
jne 0x14006477e
cmp byte [rsp + 0x191], 0
jne 0x14006472b
lea r14, [rsp + 0x128]
mov rbp, qword [r15 + 0xc0]
mov rax, qword [r15 + 0xc8]
cmp rbp, rax
jae 0x1400648a7
lea rax, [rsp + 0x148]
mov rcx, qword [rax - 0x28]
mov qword [rbp], rcx
xor edx, edx
mov qword [rax - 0x28], rdx
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rbp + 0x18], xmm1
movups xmmword [rbp + 8], xmm0
lea rdi, [rbp + 0x28]
mov ecx, 8
mov rsi, rax
rep movsq qword [rdi], qword [rsi]
mov cl, byte [rax + 0x44]
mov byte [rbp + 0x6c], cl
mov ecx, dword [rax + 0x40]
mov dword [rbp + 0x68], ecx
movzx ecx, word [r14 + 0x68]
mov word [rbp + 0x70], cx
mov cl, byte [r14 + 0x6a]
mov byte [rbp + 0x72], cl
mov rcx, qword [rax + 0x50]
mov qword [rbp + 0x78], rcx
mov qword [rax + 0x50], rdx
mov rax, qword [rax + 0x58]
mov qword [rbp + 0x80], rax
add rbp, 0x88
mov qword [r15 + 0xc0], rbp
mov rbx, qword [r15 + 0xb8]
mov rbp, qword [r15 + 0xc0]
mov rax, rbp
sub rax, rbx
cmp rax, 0x89
jl 0x1400643b8
movabs rcx, 0xf0f0f0f0f0f0f0f1
mul rcx
mov r13, rdx
shr r13, 7
add r13, 0xfffffffffffffffe
shr r13, 1
lea r14, [rbp - 0x88]
mov rcx, qword [rbp - 0x58]
mov rax, r13
shl rax, 7
lea rax, [rax + r13*8]
cmp qword [rbx + rax + 0x30], rcx
jge 0x1400644e7
mov rcx, qword [rsp + 0x58]
movaps xmm6, xmmword [0x1401146a0]
movups xmmword [rsp + 0x1b8], xmm6
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x1c8], rax
mov qword [rsp + 0x1b0], 0
mov byte [rsp + 0x1b8], 1
mov qword [rsp + 0x1c0], rcx
mov al, 1
cmp rbx, rbp
je 0x14006485e
xor edi, edi
cmp byte [r15 + 0x120], 0
je 0x140064d68
cmp dword [r15 + 0xd8], 0
jne 0x140064737
mov rsi, qword [rbx + 0x30]
mov r14d, dword [rbx + 0x68]
mov bpl, 1
xor eax, eax
mov dl, byte [r15 + 0x170]
test dl, dl
setne cl
xor cl, bpl
jne 0x14006474d
test dl, dl
je 0x14006474d
test al, al
jne 0x1400650b8
cmp qword [r15 + 0x178], rsi
jne 0x140064470
cmp r14d, dword [r15 + 0x180]
jne 0x140064470
cmp dword [r15 + 0x184], edi
je 0x1400644c8
mov byte [r15 + 0x170], bpl
mov qword [r15 + 0x178], rsi
mov dword [r15 + 0x180], r14d
mov dword [r15 + 0x184], edi
cmp qword [r15 + 0xa0], 0
jne 0x140064dbf
mov rcx, qword [r15 + 0x98]
lea r8, [rsp + 0x1d0]
mov byte [r8], bpl
mov qword [r8 + 8], rsi
mov dword [r8 + 0x10], r14d
mov dword [r8 + 0x14], edi
lea r9, [rsp + 0x1b0]
mov rdx, r15
call fcn.1400500a0
test byte [0x140134040], 9
jne 0x140064f93
lea rcx, [rsp + 0x120]
call fcn.140056da0
jmp 0x140063f2f
mov qword [rsp + 0x60], rbx
jle 0x140064de4
lea rsi, [rsp + 0x1d0]
mov r8d, 0x88
mov rcx, rsi
mov dl, 0xaa
call fcn.14007c4d0
mov r8, rsi
mov rax, qword [rbp - 0x88]
mov qword [rsi], rax
xor eax, eax
mov qword [rbp - 0x88], rax
movups xmm0, xmmword [rbp - 0x80]
movups xmm1, xmmword [rbp - 0x70]
movups xmmword [rsi + 0x18], xmm1
movups xmmword [rsi + 8], xmm0
lea r9, [rsp + 0x1f8]
lea rsi, [rbp - 0x60]
mov ecx, 8
mov rdi, r9
rep movsq qword [rdi], qword [rsi]
mov cl, byte [rbp - 0x1c]
mov byte [r9 + 0x44], cl
mov ecx, dword [rbp - 0x20]
mov dword [r9 + 0x40], ecx
mov cl, byte [rbp - 0x16]
mov byte [r9 + 0x4a], cl
movzx ecx, word [rbp - 0x18]
mov word [r9 + 0x48], cx
mov rcx, qword [rbp - 0x10]
mov qword [r9 + 0x50], rcx
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 8]
mov qword [r9 + 0x58], rax
mov rdx, qword [rsp + 0x60]
mov rax, r13
shl rax, 7
lea r10, [rax + r13*8]
mov rax, qword [rdx + r10]
mov qword [rdx + r10], 0
mov rcx, qword [r14]
mov qword [r14], rax
test rcx, rcx
jne 0x140064d6f
lea rbx, [rdx + r10]
add rbx, 0x28
movups xmm0, xmmword [rbx - 0x20]
movups xmm1, xmmword [rbx - 0x10]
movups xmmword [r14 + 0x18], xmm1
movups xmmword [r14 + 8], xmm0
lea rdi, [r14 + 0x28]
mov ecx, 8
mov rsi, rbx
rep movsq qword [rdi], qword [rsi]
mov al, byte [rbx + 0x44]
mov byte [r14 + 0x6c], al
mov eax, dword [rbx + 0x40]
mov dword [r14 + 0x68], eax
movzx eax, word [rbx + 0x48]
mov word [r14 + 0x70], ax
mov al, byte [rbx + 0x4a]
mov byte [r14 + 0x72], al
mov rax, qword [rbx + 0x50]
mov qword [rbx + 0x50], 0
mov rcx, qword [r14 + 0x78]
mov qword [r14 + 0x78], rax
test rcx, rcx
jne 0x1400650ba
lea rax, [rdx + r10]
mov rcx, qword [rdx + r10 + 0x80]
mov qword [r14 + 0x80], rcx
test r13, r13
je 0x140064668
lea rcx, [r13 - 1]
shr rcx, 0x3f
add r13, rcx
dec r13
sar r13, 1
mov rbp, qword [rsp + 0x200]
mov rcx, r13
shl rcx, 7
lea rcx, [rcx + r13*8]
cmp qword [rdx + rcx + 0x30], rbp
jl 0x140064668
mov r14, rax
jg 0x14006457e
mov ecx, dword [rdx + rcx + 0x68]
mov r14, rax
cmp ecx, dword [rsp + 0x238]
jg 0x14006457e
lea rbp, [rdx + r10]
add rbp, 8
mov rdi, qword [rsp + 0x1d0]
mov qword [rsp + 0x1d0], 0
mov rcx, qword [rax]
mov qword [rax], rdi
test rcx, rcx
jne 0x140064d97
lea r14, [rdx + r10]
add r14, 0x80
movups xmm0, xmmword [r8 + 8]
movups xmm1, xmmword [r8 + 0x18]
movups xmmword [rbp + 0x10], xmm1
movups xmmword [rbp], xmm0
mov ecx, 8
mov rdi, rbx
mov rsi, r9
rep movsq qword [rdi], qword [rsi]
mov al, byte [r9 + 0x44]
mov byte [rbx + 0x44], al
mov eax, dword [r9 + 0x40]
mov dword [rbx + 0x40], eax
movzx eax, word [r8 + 0x70]
mov word [rbp + 0x68], ax
mov al, byte [r8 + 0x72]
mov byte [rbp + 0x6a], al
mov rax, qword [rsp + 0x248]
mov qword [rsp + 0x248], 0
mov rcx, qword [rbp + 0x70]
mov qword [rbp + 0x70], rax
test rcx, rcx
jne 0x1400650ed
lea rcx, [rsp + 0x1d0]
mov rax, qword [rcx + 0x80]
mov qword [r14], rax
call fcn.140056da0
mov rbx, qword [r15 + 0xb8]
mov rbp, qword [r15 + 0xc0]
jmp 0x1400643b8
inc dword [r15 + 0xd8]
jmp 0x1400642ca
mov rax, qword [r15 + 0xb0]
xor edi, edi
cmp byte [rax + 0x38], 5
setb dil
jmp 0x140064423
test cl, cl
je 0x1400644c8
mov byte [r15 + 0x170], bpl
mov qword [r15 + 0x178], rsi
mov dword [r15 + 0x180], r14d
mov dword [r15 + 0x184], edi
test al, al
jne 0x14006449a
jmp 0x14006448c
cmp byte [r15 + 0x198], 0
je 0x1400642bc
test byte [0x140133f70], 9
je 0x1400642bc
cmp byte [r15 + 0x120], 0
jne 0x1400642bc
cmp byte [r15 + 0x1b0], 0
je 0x1400642bc
mov rsi, qword [r15]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x118], rax
mov rcx, qword [r15 + 0x98]
mov rax, qword [rcx]
lea rdx, [rsp + 0x1d0]
call qword [rax + 0x10]
cmp byte [r15 + 0x198], 0
je 0x140065178
mov rax, qword [rsp + 0x1d0]
sub rax, qword [r15 + 0x1a0]
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x1b0], rsi
lea rax, [rsp + 0x120]
mov qword [rsp + 0xf8], rax
test byte [0x140133f70], 0x19
je 0x1400642bc
lea rax, [rsp + 0x1b0]
lea rcx, [rsp + 0x1d0]
mov qword [rcx], rax
lea rax, [rsp + 0x118]
mov qword [rcx + 8], rax
lea rax, [rsp + 0xf8]
mov qword [rcx + 0x10], rax
call fcn.140100bf0
jmp 0x1400642bc
xor ebp, ebp
jmp 0x140064430
mov ecx, 0x28
call fcn.140076ec8
mov rbp, rax
mov qword [rax], 4
movups xmmword [rax + 8], xmm7
mov ecx, 0x220
call fcn.140077350
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], 0
mov qword [r15 + 0x38], rbp
mov qword [r15 + 0x40], rbp
mov eax, 4
xor ecx, ecx
jmp 0x140063db3
lea rcx, [r15 + 0xb8]
movabs r8, 0x1e1e1e1e1e1e1e1
mov rdi, qword [rcx]
sub rbp, rdi
sar rbp, 3
movabs rsi, 0xf0f0f0f0f0f0f0f1
imul rbp, rsi
lea rdx, [rbp + 1]
cmp rdx, r8
ja 0x140065109
sub rax, rdi
sar rax, 3
imul rax, rsi
lea rsi, [rax + rax]
cmp rsi, rdx
cmovb rsi, rdx
movabs rcx, 0xf0f0f0f0f0f0f0
cmp rax, rcx
cmovae rsi, r8
test rsi, rsi
je 0x14006510e
cmp rsi, r8
ja 0x140065115
mov rax, rsi
shl rax, 7
lea rcx, [rax + rsi*8]
call fcn.140076ec8
mov rcx, rbp
shl rcx, 7
lea r10, [rcx + rbp*8]
lea rdx, [rax + r10]
mov rcx, rsi
shl rcx, 7
lea r9, [rcx + rsi*8]
add r9, rax
lea r8, [rsp + 0x148]
mov rcx, qword [r8 - 0x28]
lea rbp, [rax + r10]
add rbp, 0x28
mov qword [rbp - 0x28], rcx
xor ebx, ebx
mov qword [r8 - 0x28], rbx
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rbp - 0x10], xmm1
movups xmmword [rbp - 0x20], xmm0
mov ecx, 8
mov rdi, rbp
mov rsi, r8
rep movsq qword [rdi], qword [rsi]
mov cl, byte [r8 + 0x44]
mov byte [rbp + 0x44], cl
mov ecx, dword [r8 + 0x40]
mov dword [rbp + 0x40], ecx
movzx ecx, word [r14 + 0x68]
mov word [rbp + 0x48], cx
mov cl, byte [r14 + 0x6a]
mov byte [rbp + 0x4a], cl
mov rcx, qword [r8 + 0x50]
mov qword [rbp + 0x50], rcx
mov qword [r8 + 0x50], rbx
mov rcx, qword [r8 + 0x58]
mov qword [rbp + 0x58], rcx
lea r8, [rax + r10]
add r8, 0x88
mov rax, qword [r15 + 0xb8]
mov rbp, qword [r15 + 0xc0]
cmp rbp, rax
je 0x140064c58
mov r10, 0xffffffffffffff78
xor r11d, r11d
mov rcx, qword [rbp - 0x88]
mov qword [rdx - 0x88], rcx
mov qword [rbp - 0x88], r11
movups xmm0, xmmword [rbp - 0x80]
movups xmm1, xmmword [rbp - 0x70]
movups xmmword [rdx - 0x70], xmm1
movups xmmword [rdx - 0x80], xmm0
lea rdi, [rdx - 0x60]
lea rsi, [rbp - 0x60]
mov ecx, 8
rep movsq qword [rdi], qword [rsi]
mov cl, byte [rbp - 0x1c]
mov byte [rdx - 0x1c], cl
mov ecx, dword [rbp - 0x20]
mov dword [rdx - 0x20], ecx
mov cl, byte [rbp - 0x16]
mov byte [rdx - 0x16], cl
movzx ecx, word [rbp - 0x18]
mov word [rdx - 0x18], cx
mov rcx, qword [rbp - 0x10]
mov qword [rdx - 0x10], rcx
mov qword [rbp - 0x10], r11
mov rcx, qword [rbp - 8]
lea rsi, [rbp + r10]
mov qword [rdx - 8], rcx
add rdx, r10
mov rbp, rsi
cmp rax, rsi
jne 0x1400649de
mov rbp, qword [r15 + 0xb8]
mov rsi, qword [r15 + 0xc0]
mov qword [r15 + 0xb8], rdx
mov qword [r15 + 0xc0], r8
mov qword [r15 + 0xc8], r9
cmp rsi, rbp
je 0x140064a8d
add rsi, 0xffffffffffffff78
mov rcx, rsi
call fcn.140056da0
cmp rbp, rsi
jne 0x140064a79
test rbp, rbp
je 0x140064360
mov rcx, rbp
call fcn.140076eb8
jmp 0x140064360
mov rax, qword [r15 + 0x48]
lea rcx, [rsp + 0xf8]
mov qword [rcx], rax
call fcn.14003e3a0
mov rax, qword [r15 + 0x40]
mov qword [rsp + 0x70], rax
mov rax, qword [rax]
mov rcx, rax
shr rcx, 1
lea rdx, [rax + rcx]
mov qword [rsp + 0x68], rdx
lea rdi, [rax + rcx]
add rdi, 2
mov ecx, 0x28
call fcn.140076ec8
mov rbp, rax
mov qword [rax], rdi
shl rdi, 7
mov rax, qword [rsp + 0x68]
lea rcx, [rdi + rax*8]
add rcx, 0x10
xorps xmm0, xmm0
movups xmmword [rbp + 8], xmm0
call fcn.140077350
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], 0
mov rax, qword [rsp + 0x70]
mov rdi, qword [rax + 0x20]
mov qword [rax + 0x20], rbp
test rdi, rdi
jne 0x14006511a
mov rax, qword [r15 + 0x40]
mov rbp, qword [rax + 0x20]
mov qword [r15 + 0x40], rbp
mov rax, qword [rbp]
mov rdi, qword [rbp + 0x10]
inc rdi
jmp 0x140063dc5
lea rcx, [r15 + 0x20]
mov qword [rsp + 0x68], rcx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140064e05
mov rcx, qword [r15 + 0x28]
mov rax, qword [rcx]
lea rdi, [rsp + 0x1d0]
mov rdx, rdi
call qword [rax + 0x10]
mov rdi, qword [rdi]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp rsi, 2
jae 0x140064ba3
add rbp, rdi
cmp rbp, 1
mov rbp, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x58]
ja 0x140064bcf
cmp rdi, r14
je 0x140064bcf
int3
xor eax, eax
mov rcx, rdi
add rcx, r14
setns al
movabs rcx, 0x7fffffffffffffff
add rcx, rax
add r14, rdi
cmovo r14, rcx
mov rbp, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x58]
mov rax, qword [r15 + 8]
mov eax, dword [rax + 0x58]
test eax, eax
cmove rdi, rbx
movaps xmm0, xmmword [rsp + 0xd0]
movaps xmm1, xmmword [rsp + 0xe0]
lea rdx, [rsp + 0x1d0]
movups xmmword [rdx + 0x18], xmm1
movups xmmword [rdx + 8], xmm0
mov qword [rdx], r13
mov qword [rdx + 0x28], rdi
mov qword [rdx + 0x30], r14
xor eax, eax
mov qword [rdx + 0x60], rax
mov byte [rdx + 0x6c], 0
xorps xmm0, xmm0
movups xmmword [rdx + 0x38], xmm0
movups xmmword [rdx + 0x48], xmm0
mov dword [rdx + 0x58], 0
mov cl, byte [rsp + 0x57]
mov byte [rdx + 0x70], cl
mov cl, byte [rsp + 0x60]
mov byte [rdx + 0x72], cl
mov qword [rdx + 0x78], rsi
mov qword [rdx + 0x80], rax
mov rax, qword [rsp + 0x70]
mov dword [rdx + 0x68], eax
mov al, byte [rsp + 0x78]
mov byte [rdx + 0x71], al
mov rcx, r15
call fcn.1400adf90
jmp 0x140063f37
mov qword [r15 + 0xb8], rdx
mov qword [r15 + 0xc0], r8
mov qword [r15 + 0xc8], r9
jmp 0x140064a8d
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax + 0x10]
call qword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x140063f54
cmp eax, 2
jne 0x140064e28
mov eax, 0xffffffff
lock xadd dword [rbp], eax
and eax, 0xbfffffff
xor esi, esi
jmp 0x140063f49
mov rcx, rdi
call fcn.14003e480
jmp 0x140063cef
lock dec dword [rcx + 8]
jne 0x140063f6f
add rcx, 8
add rcx, 0xfffffffffffffff8
call fcn.14003eeb0
jmp 0x140063f6f
call fcn.140006d10
jmp 0x140063bd4
lea rcx, [0x14013d928]
call fcn.140076f64
cmp dword [0x14013d928], 0xffffffff
jne 0x140063b65
mov qword [0x14013d920], 0
lea rcx, [0x14013d920]
xor edx, edx
call fcn.14003f000
lea rcx, [0x14013d928]
call fcn.140076f04
jmp 0x140063b65
lea rcx, [0x14013d928]
call fcn.140076f64
cmp dword [0x14013d928], 0xffffffff
jne 0x140063bbe
mov qword [0x14013d920], 0
lea rcx, [0x14013d920]
xor edx, edx
call fcn.14003f000
lea rcx, [0x14013d928]
call fcn.140076f04
jmp 0x140063bbe
xor eax, eax
jmp 0x140063c02
xor ebp, ebp
jmp 0x140064430
lock dec dword [rcx]
jne 0x1400645a4
mov rsi, r8
mov rdi, r9
mov rbx, r10
call qword [rcx + 0x10]
mov r10, rbx
mov r9, rdi
mov r8, rsi
mov rdx, qword [rsp + 0x60]
jmp 0x1400645a4
lock dec dword [rcx]
jne 0x140064693
mov rsi, r8
mov r14, r9
mov rdi, r10
call qword [rcx + 0x10]
mov r10, rdi
mov r9, r14
mov r8, rsi
mov rdx, qword [rsp + 0x60]
jmp 0x140064693
mov rcx, r15
call fcn.1400ae4b0
test al, al
jne 0x14006449a
mov rcx, qword [r15 + 0xa0]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + 8]
jmp 0x14006449a
mov rcx, qword [rsp + 0x60]
mov eax, dword [rcx + rax + 0x68]
cmp eax, dword [rbp - 0x20]
jg 0x1400644f2
mov rcx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
jmp 0x1400643bd
mov rcx, qword [rsp + 0x68]
call fcn.14003e480
jmp 0x140064b5c
lea rdx, [rbp - 2]
lea rax, [rbp - 1]
test r14, r14
cmovs rdx, rax
jmp 0x14006412d
xor esi, esi
jmp 0x140063f54
int3
mov rdx, r8
mov r8, r9
call rax
jmp 0x140063ec3
mov rax, qword [r15 + 0x10]
mov esi, dword [rax + 4]
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
jne 0x140063f2f
mov rbp, r12
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14006512f
mov rbx, qword [r15 + 0x48]
mov rax, qword [r15 + 0xa8]
mov rcx, qword [r15 + 0xb0]
mov r13, qword [rcx + 0x10]
mov r14, qword [rax + 0x10]
mov rsi, qword [r15 + 0xc0]
mov rdi, qword [r15 + 0xb8]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test byte [0x140134040], 0x19
mov r12, rbp
je 0x140063f2f
sub rsi, rdi
shr rsi, 3
imul eax, esi, 0xf0f0f0f1
add r13d, ebx
add r14d, r13d
add r14d, eax
mov r15, qword [r15]
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ebx, eax
lea rsi, [rsp + 0xf8]
movabs rdi, 0xaaaaaaaaaaaaaaaa
mov qword [rsi], rdi
mov rcx, rsi
call fcn.140049dd0
movaps xmmword [rsp + 0x1d0], xmm6
movaps xmmword [rsp + 0x1e0], xmm6
mov qword [rsp + 0x1f0], rdi
mov word [rsp + 0x1d0], 0x301
lea rax, str.value
mov qword [rsp + 0x1d8], rax
movsxd rax, r14d
mov qword [rsp + 0x1e8], rax
lea rdi, [rsp + 0x1d0]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x30], ebx
mov r12, rbp
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
lea rdx, [0x140134040]
mov cl, 0x43
mov r8, r15
xor r9d, r9d
call fcn.140037330
mov rcx, rdi
call fcn.1400406d0
jmp 0x140063f2f
lea rdx, [rsp + 0x120]
call rax
jmp 0x140064032
int3
lea rdx, [rsp + 0x120]
mov r8, r9
call rax
jmp 0x1400642ae
mov rax, qword [r15 + 0x10]
mov esi, dword [rax + 4]
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
jne 0x1400644d5
mov rbx, r12
lea rsi, [r15 + 0x20]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14006516b
mov rax, qword [r15 + 0x48]
mov qword [rsp + 0x60], rax
mov rax, qword [r15 + 0xa8]
mov rcx, qword [r15 + 0xb0]
mov r13, qword [rcx + 0x10]
mov r14, qword [rax + 0x10]
mov rbp, qword [r15 + 0xc0]
mov rdi, qword [r15 + 0xb8]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test byte [0x140134040], 0x19
mov r12, rbx
je 0x1400644d5
sub rbp, rdi
shr rbp, 3
imul eax, ebp, 0xf0f0f0f1
add r13d, dword [rsp + 0x60]
mov rdi, r14
add edi, r13d
add edi, eax
mov r14, qword [r15]
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov r15d, eax
lea rsi, [rsp + 0xf8]
movabs r12, 0xaaaaaaaaaaaaaaaa
mov qword [rsi], r12
mov rcx, rsi
call fcn.140049dd0
lea rbp, [rsp + 0x1d0]
movaps xmmword [rbp], xmm6
movaps xmmword [rbp + 0x10], xmm6
mov qword [rbp + 0x20], r12
mov word [rbp], 0x301
lea rax, str.value
mov qword [rbp + 8], rax
movsxd rax, edi
mov qword [rbp + 0x18], rax
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x38], rsi
mov r12, rbx
mov dword [rsp + 0x30], r15d
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
lea rdx, [0x140134040]
mov cl, 0x43
mov r8, r14
xor r9d, r9d
call fcn.140037330
mov rcx, rbp
call fcn.1400406d0
jmp 0x1400644d5
ud2
lock dec dword [rcx + 8]
jne 0x140064608
add rcx, 8
add rcx, 0xfffffffffffffff8
mov rsi, r8
mov rdi, r9
mov rbp, r10
call fcn.14003eeb0
mov r10, rbp
mov r9, rdi
mov r8, rsi
mov rdx, qword [rsp + 0x60]
jmp 0x140064608
lock dec dword [rcx + 8]
jne 0x140064701
add rcx, 8
add rcx, 0xfffffffffffffff8
call fcn.14003eeb0
jmp 0x140064701
call fcn.1400c8ad4
xor eax, eax
jmp 0x140064926
call fcn.1400771f0
mov rcx, rdi
call fcn.140056d20
mov rcx, rdi
call fcn.140076eb8
jmp 0x140064b29
mov rcx, qword [rsp + 0x58]
call fcn.14003e480
jmp 0x140064e68
lea rax, [rsp + 0x118]
lea rcx, [rsp + 0xf8]
mov qword [rcx], rax
mov qword [rcx + 8], r14
lea rax, [rsp + 0x110]
mov qword [rcx + 0x10], rax
call fcn.140100bf0
jmp 0x1400640bf
mov rcx, rsi
call fcn.14003e480
jmp 0x140064fc0
call fcn.1400c892f
int3