Function at 0x1400f3630
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 [0x14030d038]
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 [0x14031e5c0]
mov ecx, dword [0x140311f48]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400f482b
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400f36e9
movsxd rcx, dword [0x14031e5b8]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x14031e5bc]
jne 0x1400f36e9
cmp qword [rax + rcx], 0
jne 0x1400f48b1
mov eax, dword [0x14031e5c0]
mov ecx, dword [0x140311f48]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400f486e
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400f4821
movsxd rcx, dword [0x14031e5b8]
shl rcx, 4
lea rdx, [rsp + 0xb0]
mov qword [rax + rcx], rdx
mov ecx, dword [0x14031e5bc]
movsxd rdx, dword [0x14031e5b8]
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 0x1400f47d9
test rbp, rbp
je 0x1400f4978
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 0x1400f3c17
movaps xmm0, xmmword [rsp + 0x90]
movaps xmm1, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0xe0], xmm1
movaps xmmword [rsp + 0xd0], xmm0
test r13, r13
je 0x1400f497f
lea rdi, [r15 + 0x20]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400f47f8
movaps xmm6, xmmword [0x1402ae190]
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 0x1400f3b02
cmp byte [rsp + 0x1d8], 0
je 0x1400f3b55
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 0x1400f43b5
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 0x1400f45f3
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, [0x1400b0e80]
cmp rax, rdx
jne 0x1400f4982
add rcx, 0x110
lea rdx, str.SequenceManager_PostTask
call fcn.1400b0ea0
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 0x1400f3bbe
mov rcx, qword [r15 + 0x68]
test rcx, rcx
je 0x1400f3a58
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 0x1400f3b15
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test byte [0x1403101c0], 9
jne 0x1400f498f
mov rbp, qword [rsp + 0x80]
mov eax, 0xffffffff
lock xadd dword [rbp], eax
and eax, 0xbfffffff
mov sil, 1
cmp eax, 0x80000001
je 0x1400f47c2
lea rcx, [rsp + 0xb0]
call fcn.1400ce630
mov rcx, qword [r12 + 0x38]
test rcx, rcx
jne 0x1400f4805
mov rcx, qword [r12]
test rcx, rcx
jne 0x1400f3bad
mov rcx, qword [rsp + 0x258]
xor rcx, rsp
call fcn.140115e50
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 0x1400f386e
jmp 0x1400f3884
cmp byte [r15 + 0x60], 0
je 0x1400f3a69
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 0x1400f3a72
mov rcx, qword [r15 + 8]
call fcn.1400cff50
jmp 0x1400f3a72
mov rcx, qword [rsp + 0x1d0]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
lea rdx, [0x1401115b0]
cmp rax, rdx
jne 0x1400f4abf
lea rcx, [rsp + 0x120]
call qword [fcn.1400c45f0]
cmp byte [rsp + 0x1d8], 0
mov rbx, qword [rsp + 0x120]
mov qword [rsp + 0x1e0], rbx
jne 0x1400f3884
mov byte [rsp + 0x1d8], 1
jmp 0x1400f3884
lock dec dword [rcx]
jne 0x1400f3acc
call qword [rcx + 0x10]
jmp 0x1400f3acc
test byte [0x1403100f0], 9
je 0x1400f3a35
mov rbx, r12
mov r12, qword [r15]
lea r14, [rsp + 0xf0]
mov qword [r14], 0
mov rcx, r15
mov rdx, r14
int3
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 0x1400f4ace
mov ecx, eax
movabs rbp, 0x8000000000000001
lea rsi, [r14 + rbp]
cmp rsi, 2
jb 0x1400f4964
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 0x1400f4695
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 0x1400f3ce6
add rbp, rdx
cmp rbp, 1
mov rcx, qword [rsp + 0x58]
ja 0x1400f3d0a
cmp rdx, r14
je 0x1400f3d0a
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, [0x1400b0e80]
cmp rax, rdx
jne 0x1400f4ad1
add rcx, 0x110
lea rdx, str.SequenceManager_PostTask
lea r8, [rsp + 0x120]
call fcn.1400b0ea0
cmp dword [rsp + 0x178], 0
jne 0x1400f42ce
cmp byte [rsp + 0x191], 0
jne 0x1400f427b
lea r14, [rsp + 0x128]
mov rbp, qword [r15 + 0xc0]
mov rax, qword [r15 + 0xc8]
cmp rbp, rax
jae 0x1400f43f7
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 0x1400f3f08
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 0x1400f4037
mov rcx, qword [rsp + 0x58]
movaps xmm6, xmmword [0x1402ae190]
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 0x1400f43ae
xor edi, edi
cmp byte [r15 + 0x120], 0
je 0x1400f48b8
cmp dword [r15 + 0xd8], 0
jne 0x1400f4287
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 0x1400f429d
test dl, dl
je 0x1400f429d
test al, al
jne 0x1400f4c08
cmp qword [r15 + 0x178], rsi
jne 0x1400f3fc0
cmp r14d, dword [r15 + 0x180]
jne 0x1400f3fc0
cmp dword [r15 + 0x184], edi
je 0x1400f4018
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 0x1400f490f
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.1400ce7e0
test byte [0x1403101c0], 9
jne 0x1400f4ae3
lea rcx, [rsp + 0x120]
call fcn.1400d62b0
jmp 0x1400f3a7f
mov qword [rsp + 0x60], rbx
jle 0x1400f4934
lea rsi, [rsp + 0x1d0]
mov r8d, 0x88
mov rcx, rsi
mov dl, 0xaa
call fcn.140117f60
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 0x1400f48bf
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 0x1400f4c0a
lea rax, [rdx + r10]
mov rcx, qword [rdx + r10 + 0x80]
mov qword [r14 + 0x80], rcx
test r13, r13
je 0x1400f41b8
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 0x1400f41b8
mov r14, rax
jg 0x1400f40ce
mov ecx, dword [rdx + rcx + 0x68]
mov r14, rax
cmp ecx, dword [rsp + 0x238]
jg 0x1400f40ce
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 0x1400f48e7
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 0x1400f4c3d
lea rcx, [rsp + 0x1d0]
mov rax, qword [rcx + 0x80]
mov qword [r14], rax
call fcn.1400d62b0
mov rbx, qword [r15 + 0xb8]
mov rbp, qword [r15 + 0xc0]
jmp 0x1400f3f08
inc dword [r15 + 0xd8]
jmp 0x1400f3e1a
mov rax, qword [r15 + 0xb0]
xor edi, edi
cmp byte [rax + 0x38], 5
setb dil
jmp 0x1400f3f73
test cl, cl
je 0x1400f4018
mov byte [r15 + 0x170], bpl
mov qword [r15 + 0x178], rsi
mov dword [r15 + 0x180], r14d
mov dword [r15 + 0x184], edi
test al, al
jne 0x1400f3fea
jmp 0x1400f3fdc
cmp byte [r15 + 0x198], 0
je 0x1400f3e0c
test byte [0x1403100f0], 9
je 0x1400f3e0c
cmp byte [r15 + 0x120], 0
jne 0x1400f3e0c
cmp byte [r15 + 0x1b0], 0
je 0x1400f3e0c
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 0x1400f4cc8
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 [0x1403100f0], 0x19
je 0x1400f3e0c
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.1402624b0
jmp 0x1400f3e0c
xor ebp, ebp
jmp 0x1400f3f80
mov ecx, 0x28
int3
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 0x1400f4c59
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 0x1400f4c5e
cmp rsi, r8
ja 0x1400f4c65
mov rax, rsi
shl rax, 7
lea rcx, [rax + rsi*8]
int3
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 0x1400f47a8
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 0x1400f452e
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 0x1400f45dd
add rsi, 0xffffffffffffff78
mov rcx, rsi
call fcn.1400d62b0
cmp rbp, rsi
jne 0x1400f45c9
test rbp, rbp
je 0x1400f3eb0
mov rcx, rbp
call fcn.140112038
jmp 0x1400f3eb0
mov rax, qword [r15 + 0x48]
lea rcx, [rsp + 0xf8]
mov qword [rcx], rax
call fcn.1400bb610
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
int3
lea rcx, [r15 + 0x20]
mov qword [rsp + 0x68], rcx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400f4955
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 0x1400f46f3
add rbp, rdi
cmp rbp, 1
mov rbp, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x58]
ja 0x1400f471f
cmp rdi, r14
je 0x1400f471f
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.1401523e0
jmp 0x1400f3a87
mov qword [r15 + 0xb8], rdx
mov qword [r15 + 0xc0], r8
mov qword [r15 + 0xc8], r9
jmp 0x1400f45dd
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax + 0x10]
call qword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x1400f3aa4
cmp eax, 2
jne 0x1400f4978
mov eax, 0xffffffff
lock xadd dword [rbp], eax
and eax, 0xbfffffff
xor esi, esi
jmp 0x1400f3a99
mov rcx, rdi
call fcn.1400bb6f0
jmp 0x1400f383f
lock dec dword [rcx + 8]
jne 0x1400f3abf
add rcx, 8
add rcx, 0xfffffffffffffff8
call fcn.1400bc0a0
jmp 0x1400f3abf
call fcn.1400086f0
jmp 0x1400f3724
lea rcx, [0x14031e5c0]
int3
lea rcx, [0x14031e5c0]
int3
xor eax, eax
jmp 0x1400f3752
xor ebp, ebp
jmp 0x1400f3f80
lock dec dword [rcx]
jne 0x1400f40f4
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 0x1400f40f4
lock dec dword [rcx]
jne 0x1400f41e3
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 0x1400f41e3
mov rcx, r15
int3
mov rcx, qword [rsp + 0x60]
mov eax, dword [rcx + rax + 0x68]
cmp eax, dword [rbp - 0x20]
jg 0x1400f4042
mov rcx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
jmp 0x1400f3f0d
mov rcx, qword [rsp + 0x68]
call fcn.1400bb6f0
jmp 0x1400f46ac
lea rdx, [rbp - 2]
lea rax, [rbp - 1]
test r14, r14
cmovs rdx, rax
jmp 0x1400f3c7d
xor esi, esi
jmp 0x1400f3aa4
int3
mov rdx, r8
mov r8, r9
call rax
jmp 0x1400f3a13
mov rax, qword [r15 + 0x10]
mov esi, dword [rax + 4]
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
jne 0x1400f3a7f
mov rbp, r12
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400f4c7f
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 [0x1403101c0], 0x19
mov r12, rbp
je 0x1400f3a7f
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.1400c45f0
movaps xmmword [rsp + 0x1d0], xmm6
movaps xmmword [rsp + 0x1e0], xmm6
mov qword [rsp + 0x1f0], rdi
mov word [rsp + 0x1d0], 0x301
lea rax, [0x1402b08c1]
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, [0x1403101c0]
mov cl, 0x43
mov r8, r15
xor r9d, r9d
call fcn.1400b4710
mov rcx, rdi
call fcn.1400bd8b2
jmp 0x1400f3a7f
lea rdx, [rsp + 0x120]
call rax
jmp 0x1400f3b82
int3
lea rdx, [rsp + 0x120]
mov r8, r9
call rax
jmp 0x1400f3dfe
mov rax, qword [r15 + 0x10]
mov esi, dword [rax + 4]
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
jne 0x1400f4025
mov rbx, r12
lea rsi, [r15 + 0x20]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400f4cbb
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 [0x1403101c0], 0x19
mov r12, rbx
je 0x1400f4025
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.1400c45f0
lea rbp, [rsp + 0x1d0]
movaps xmmword [rbp], xmm6
movaps xmmword [rbp + 0x10], xmm6
mov qword [rbp + 0x20], r12
mov word [rbp], 0x301
lea rax, [0x1402b08c1]
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, [0x1403101c0]
mov cl, 0x43
mov r8, r14
xor r9d, r9d
call fcn.1400b4710
mov rcx, rbp
call fcn.1400bd8b2
jmp 0x1400f4025
ud2
lock dec dword [rcx + 8]
jne 0x1400f4158
add rcx, 8
add rcx, 0xfffffffffffffff8
mov rsi, r8
mov rdi, r9
mov rbp, r10
call fcn.1400bc0a0
mov r10, rbp
mov r9, rdi
mov r8, rsi
mov rdx, qword [rsp + 0x60]
jmp 0x1400f4158
lock dec dword [rcx + 8]
jne 0x1400f4251
add rcx, 8
add rcx, 0xfffffffffffffff8
call fcn.1400bc0a0
jmp 0x1400f4251
int3
xor eax, eax
jmp 0x1400f4476
int3
mov rcx, qword [rsp + 0x58]
call fcn.1400bb6f0
jmp 0x1400f49b8
mov rcx, rsi
call fcn.1400bb6f0
jmp 0x1400f4b10
int3