Function at 0x1400039e0
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, 0x98
mov rbp, r9
mov ebx, edx
mov rax, qword [0x140131038]
xor rax, rsp
mov qword [rsp + 0x90], rax
test r8, r8
je 0x140003f9d
test rbp, rbp
je 0x1400040be
cmp rbp, 0x7fe00001
jb 0x140003a36
test bl, 1
jne 0x140003f34
mov rcx, rbp
call fcn.1400c6d50
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x40], rbp
mov dword [rsp + 0x3c], ebx
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x60], rax
mov rcx, r8
and rcx, 0xffffffffffe00000
mov qword [rsp + 0x48], r8
mov rax, r8
shr rax, 9
mov qword [rsp + 0x68], rax
and eax, 0xfe0
mov qword [rsp + 0x58], rcx
lea rbx, [rcx + rax]
add rbx, 0x1000
movzx eax, byte [rbx + 0x1e]
mov r15, rax
neg r15
shl rax, 5
mov rdi, rbx
sub rdi, rax
mov rax, rdi
and rax, 0xfffffffffffff000
mov rbp, qword [rax]
lea rsi, [rbp + 8]
mov r12d, 1
xor r14d, r14d
mov rax, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov r13d, 0x40
mov rcx, rsi
call rax
test al, al
jne 0x140003afb
mov eax, r12d
test r12d, r12d
jle 0x140003ad7
pause
dec eax
jne 0x140003ace
add r14d, r12d
mov rax, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
add r12d, r12d
cmp r12d, 0x40
cmovge r12d, r13d
cmp r14d, 0x3e8
jl 0x140003abd
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
shl r15, 5
cmp byte [rbx + r15 + 0x1d], 0
jne 0x140004303
mov rax, qword [rbx + r15 + 0x10]
mov eax, dword [rax + 0x18]
mov r12, qword [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov rax, qword [rbx + r15 + 0x10]
cmp byte [rax + 0x1c], 0
je 0x14000430c
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
bsr rax, r12
xor rax, 0xffffffffffffffc0
lea rcx, [0x14011b220]
mov cl, byte [rax + rcx + 0x41]
mov rsi, r12
shr rsi, cl
and esi, 7
lea rdx, [0x14011b270]
mov rdx, qword [rdx + rax*8 + 0x208]
and rdx, r12
lea rsi, [rsi + rax*8]
add rsi, 0x208
cmp rdx, 1
sbb rsi, 0xffffffffffffffff
lea r8, [0x14011aa08]
movzx esi, word [r8 + rsi*2 + 0x400]
lea rsi, [rsi + rsi*4]
cmp byte [rbp + rsi*8 + 0x2c], 0
je 0x140004eee
mov ebp, dword [rbp + rsi*8 + 0x28]
movzx esi, byte [rbx + 0x1e]
shl rsi, 5
neg rsi
mov rsi, qword [rbx + rsi + 0x10]
mov esi, dword [rsi + 0x18]
cmp rbp, rsi
je 0x140003f5e
mov rbp, r12
shr rbp, cl
and ebp, 7
lea rax, [rax*8 + 0x208]
add rax, rbp
cmp rdx, 1
sbb rax, 0xffffffffffffffff
movzx r15d, word [r8 + rax*2 + 0x400]
mov r14d, dword [rsp + 0x3c]
test r14b, 4
jne 0x140003cb0
mov byte [rsp + 0x70], 0
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x80], rax
mov rbp, qword [rsp + 0x50]
cmp byte [rbp], 2
jne 0x140003c19
mov al, byte [0x140134798]
cmp al, 2
je 0x140004877
cmp byte [rbp + 2], 0
je 0x140004334
mov esi, dword [0x14013bdb8]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test ebx, ebx
jne 0x140003f83
cmp rsi, 2
mov rdx, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
jb 0x14000461c
inc qword [rsi + 0x5a0]
cmp r15w, 0x29
jae 0x140004660
mov rdi, r15
shl rdi, 4
mov rbx, rsi
add rbx, rdi
mov r13, qword [rsi + rdi]
test r13, r13
je 0x14000479a
inc qword [rsi + 0x5a8]
mov rax, qword [r13]
test rax, rax
je 0x140003d70
mov rcx, rax
not rcx
cmp qword [r13 + 8], rcx
jne 0x140004d83
bswap rax
prefetcht0 byte [rax]
jmp 0x140003d72
mov byte [rsp + 0x70], 0
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x80], rax
mov rbp, qword [rsp + 0x50]
cmp byte [rbp], 2
jne 0x140003ce0
mov al, byte [0x140134798]
cmp al, 2
je 0x140004889
cmp byte [rbp + 2], 0
je 0x1400043b5
mov esi, dword [0x14013bdb8]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test ebx, ebx
jne 0x140003f90
cmp rsi, 2
jb 0x14000463e
inc qword [rsi + 0x5a0]
cmp r15w, 0x29
jae 0x1400046cb
mov rdi, r15
shl rdi, 4
mov rbx, rsi
add rbx, rdi
mov r13, qword [rsi + rdi]
test r13, r13
mov rdx, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
je 0x1400047cb
inc qword [rsi + 0x5a8]
mov rax, qword [r13]
test rax, rax
je 0x140003d97
mov rcx, rax
not rcx
cmp qword [r13 + 8], rcx
jne 0x140004d83
bswap rax
prefetcht0 byte [rax]
jmp 0x140003d99
xor eax, eax
dec byte [rsi + rdi + 8]
mov qword [rbx], rax
movzx eax, word [rsi + rdi + 0xa]
mov qword [rsp + 0x80], rax
sub qword [rsi + 0x590], rax
test r13, r13
jne 0x140003dbd
jmp 0x14000466e
xor eax, eax
dec byte [rsi + rdi + 8]
mov qword [rbx], rax
movzx eax, word [rsi + rdi + 0xa]
mov qword [rsp + 0x80], rax
sub qword [rsi + 0x590], rax
test r13, r13
je 0x1400046e0
mov rbp, qword [rsp + 0x80]
test r14b, 2
jne 0x140004412
test r13, r13
je 0x140003f2a
mov r8, qword [rsp + 0x60]
cmp r8, r12
cmova r8, r12
mov rcx, r13
mov rsi, qword [rsp + 0x48]
mov rdx, rsi
call fcn.14007be20
prefetcht0 byte [rsi]
mov rax, qword [rsp + 0x68]
and eax, 0xfe0
mov rbx, qword [rsp + 0x58]
lea r12, [rbx + rax]
add r12, 0x1000
movzx eax, byte [r12 + 0x1e]
mov r14, rax
neg r14
shl rax, 5
mov r15, r12
sub r15, rax
prefetcht0 byte [r15]
mov rax, r15
and rax, 0xfffffffffffff000
mov rbp, qword [rax]
cmp byte [rbp], 2
je 0x14000442f
mov qword [rsp + 0x40], r13
cmp byte [rbp + 2], 0
je 0x140004533
mov rax, r14
shl rax, 5
mov rdi, qword [r12 + rax + 0x10]
lea r13, [rbp + 0x10]
cmp r13, rdi
ja 0x140004533
lea rax, [rbp + 0x1410]
cmp rax, rdi
jb 0x140004533
mov esi, dword [0x14013bdb8]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test ebx, ebx
jne 0x140003f76
cmp rsi, 2
jb 0x140004533
sub rdi, r13
sar rdi, 3
movabs rax, 0xcccccccccccccccd
imul rax, rdi
inc qword [rsi + 0x5c8]
cmp rax, 0x28
ja 0x14000452c
shl rax, 4
mov rcx, qword [rsi + rax]
bswap rcx
mov rdx, qword [rsp + 0x48]
mov qword [rdx], rcx
not rcx
mov qword [rdx + 8], rcx
mov qword [rsi + rax], rdx
mov dl, byte [rsi + rax + 8]
inc dl
mov byte [rsi + rax + 8], dl
movzx ecx, word [rsi + rax + 0xa]
add qword [rsi + 0x590], rcx
inc qword [rsi + 0x5d0]
mov cl, byte [rsi + rax + 9]
cmp dl, cl
ja 0x140004602
mov al, byte [rsi + 0x598]
test al, 1
mov r13, qword [rsp + 0x40]
je 0x140003f37
mov rcx, rsi
call fcn.14003fbc0
jmp 0x140003f37
test r14b, 1
je 0x140004c31
xor r13d, r13d
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.140079ea0
mov rax, r13
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [rbx + r15]
add rax, 0x1d
cmp byte [rax], 0
jne 0x140004f46
mov r13, qword [rsp + 0x48]
jmp 0x140003f37
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140003e9a
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140003c44
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140003d0b
movabs rax, 0xaaaaaaaaaaaaaaaa
mov r12, rcx
mov edx, 0x40
mov ecx, 0x40
test bl, 4
jne 0x140004202
test rbp, rbp
je 0x140003fca
bsr rcx, rbp
xor rcx, 0x3f
sub rdx, rcx
lea rcx, [0x14011b220]
mov cl, byte [rdx + rcx]
mov rdi, rbp
shr rdi, cl
and edi, 7
lea rcx, [0x14011b270]
mov rcx, qword [rcx + rdx*8]
and rcx, rbp
lea rdx, [rdi + rdx*8]
cmp rcx, 1
sbb rdx, 0xffffffffffffffff
lea rcx, [0x14011aa08]
movzx r15d, word [rcx + rdx*2 + 0x400]
mov byte [rsp + 0x70], 0
mov qword [rsp + 0x80], rax
cmp byte [r12], 2
jne 0x14000402c
mov al, byte [0x140134798]
cmp al, 2
je 0x140004e1f
cmp byte [r12 + 2], 0
je 0x14000495f
mov esi, dword [0x14013bdb8]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test edi, edi
jne 0x1400048a8
cmp rsi, 2
jb 0x140004c39
inc qword [rsi + 0x5a0]
cmp r15w, 0x29
jae 0x140004c6f
mov rdi, r15
shl rdi, 4
mov r14, rsi
add r14, rdi
mov r13, qword [rsi + rdi]
test r13, r13
je 0x140004da6
inc qword [rsi + 0x5a8]
mov rax, qword [r13]
test rax, rax
je 0x1400047fc
mov rcx, rax
not rcx
cmp qword [r13 + 8], rcx
jne 0x140004d83
bswap rax
prefetcht0 byte [rax]
jmp 0x1400047fe
prefetcht0 byte [r8]
mov rsi, r8
and rsi, 0xffffffffffe00000
mov qword [rsp + 0x48], r8
mov rax, r8
shr rax, 9
and eax, 0xfe0
lea r13, [rsi + rax]
add r13, 0x1000
movzx eax, byte [r13 + 0x1e]
mov r15, rax
neg r15
shl rax, 5
mov r14, r13
sub r14, rax
prefetcht0 byte [r14]
mov rax, r14
and rax, 0xfffffffffffff000
mov r12, qword [rax]
cmp byte [r12], 2
je 0x140004a43
cmp byte [r12 + 2], 0
je 0x140004b48
mov rax, r15
shl rax, 5
mov rdi, qword [r13 + rax + 0x10]
lea rbx, [r12 + 0x10]
cmp rbx, rdi
ja 0x140004b48
lea rax, [r12 + 0x1410]
cmp rax, rdi
jb 0x140004b48
mov esi, dword [0x14013bdb8]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test ebp, ebp
jne 0x14000489b
cmp rsi, 2
jb 0x140004b48
sub rdi, rbx
sar rdi, 3
movabs rax, 0xcccccccccccccccd
imul rax, rdi
inc qword [rsi + 0x5c8]
cmp rax, 0x28
ja 0x140004b41
shl rax, 4
mov rcx, qword [rsi + rax]
bswap rcx
mov rdx, qword [rsp + 0x48]
mov qword [rdx], rcx
not rcx
mov qword [rdx + 8], rcx
mov qword [rsi + rax], rdx
mov dl, byte [rsi + rax + 8]
inc dl
mov byte [rsi + rax + 8], dl
movzx ecx, word [rsi + rax + 0xa]
add qword [rsi + 0x590], rcx
inc qword [rsi + 0x5d0]
mov cl, byte [rsi + rax + 9]
cmp dl, cl
ja 0x140004c17
mov al, byte [rsi + 0x598]
test al, 1
je 0x140003f34
mov rcx, rsi
call fcn.14003fbc0
jmp 0x140003f34
test rbp, rbp
je 0x14000420f
bsr rcx, rbp
xor rcx, 0x3f
sub rdx, rcx
lea rcx, [0x14011b220]
mov cl, byte [rdx + rcx]
mov rdi, rbp
shr rdi, cl
and edi, 7
lea rcx, [0x14011b270]
mov rcx, qword [rcx + rdx*8]
and rcx, rbp
lea rdx, [rdi + rdx*8]
cmp rcx, 1
sbb rdx, 0xffffffffffffffff
lea rcx, [0x14011aa08]
movzx r15d, word [rcx + rdx*2 + 0x400]
mov byte [rsp + 0x70], 0
mov qword [rsp + 0x80], rax
cmp byte [r12], 2
jne 0x140004271
mov al, byte [0x140134798]
cmp al, 2
je 0x140004e31
cmp byte [r12 + 2], 0
je 0x1400049bd
mov esi, dword [0x14013bdb8]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test edi, edi
jne 0x1400048b5
cmp rsi, 2
jb 0x140004c54
inc qword [rsi + 0x5a0]
cmp r15w, 0x29
jae 0x140004cdb
mov rdi, r15
shl rdi, 4
mov r14, rsi
add r14, rdi
mov r13, qword [rsi + rdi]
test r13, r13
je 0x140004dd0
inc qword [rsi + 0x5a8]
mov rax, qword [r13]
test rax, rax
je 0x140004823
mov rcx, rax
not rcx
cmp qword [r13 + 8], rcx
jne 0x140004d83
bswap rax
prefetcht0 byte [rax]
jmp 0x140004825
mov rax, qword [rdi + 0x20]
jmp 0x140003b13
mov rcx, rbp
mov rdx, rdi
mov r8, r12
call fcn.1400f8370
mov r14d, eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test r14b, r14b
je 0x140003b35
jmp 0x140003f6f
lea rax, [r15 + r15*4]
lea rsi, [rax*8 + 0x10]
add rsi, rbp
lea rbx, [rbp + 8]
mov edi, 1
xor r14d, r14d
mov ebp, 0x40
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x14000438f
mov eax, edi
test edi, edi
jle 0x140004370
pause
dec eax
jne 0x140004367
add r14d, edi
add edi, edi
cmp edi, 0x40
cmovge edi, ebp
cmp r14d, 0x3e8
mov r12, qword [rsp + 0x40]
jl 0x140004354
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [rsi]
mov r13, qword [rax]
test r13, r13
je 0x1400048c2
mov byte [rsp + 0x70], 0
lea rcx, [r15 + r15*4]
mov rdx, qword [rsp + 0x50]
mov ebp, dword [rdx + rcx*8 + 0x28]
jmp 0x14000475d
lea rdi, [r15 + r15*4]
lea rsi, [rdi*8 + 0x10]
add rsi, rbp
lea rbx, [rbp + 8]
mov ebp, 1
xor r14d, r14d
mov r15d, 0x40
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x140004740
mov eax, ebp
test ebp, ebp
jle 0x1400043f6
pause
dec eax
jne 0x1400043ed
add r14d, ebp
add ebp, ebp
cmp ebp, 0x40
cmovge ebp, r15d
cmp r14d, 0x3e8
mov r12, qword [rsp + 0x40]
jl 0x1400043d6
jmp 0x140004737
cmp byte [rsp + 0x70], 0
jne 0x140003dcf
mov rcx, r13
xor edx, edx
mov r8, rbp
call fcn.14007c4d0
jmp 0x140003dcf
mov al, byte [0x140134798]
cmp al, 2
je 0x140004dff
mov rax, r14
shl rax, 5
mov rcx, qword [r12 + rax + 0x10]
lea rdx, [rbp + 0x10]
cmp rdx, rcx
ja 0x140003e41
lea rdx, [rbp + 0x1410]
cmp rdx, rcx
jb 0x140003e41
mov r9d, dword [rcx + 0x18]
cmp byte [r12 + rax + 0x1d], 0
mov r8, r9
jne 0x140004e16
mov rax, qword [0x140134770]
and eax, 1
shl rax, 0xe
lea rsi, [rax + rbx]
lea rbp, [rax + rbx]
add rbp, 0x4000
mov rdx, qword [rsp + 0x48]
mov rcx, rdx
shr rcx, 4
mov ebx, edx
shr ebx, 0xa
and ebx, 0x7ff
mov edi, 1
shl rdi, cl
mov rax, qword [rsi + rbx*8 + 0x4000]
mov rcx, rax
or rcx, rdi
lock cmpxchg qword [rbp + rbx*8], rcx
jne 0x1400044bd
test rax, rdi
jne 0x140004dfa
mov rsi, r9
lock xadd qword [0x140134760], rsi
add rsi, r9
mov rdi, qword [0x140134768]
cmp byte [0x140134799], 1
jne 0x1400044fe
mov rcx, rdx
xor edx, edx
call fcn.14007c4d0
cmp rsi, rdi
jbe 0x140003f37
mov al, byte [0x140134798]
test al, al
jne 0x140003f37
call fcn.1400a59e0
mov rcx, rax
mov edx, 1
call fcn.1400f3f50
jmp 0x140003f37
inc qword [rsi + 0x5d8]
add rbp, 8
xorps xmm0, xmm0
movaps xmmword [rsp + 0x80], xmm0
mov esi, 1
xor ebx, ebx
mov edi, 0x40
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x140004582
mov eax, esi
test esi, esi
jle 0x140004569
pause
dec eax
jne 0x140004561
add ebx, esi
add esi, esi
cmp esi, 0x40
cmovge esi, edi
cmp ebx, 0x3e8
jl 0x14000454e
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [r15]
mov rcx, qword [rsp + 0x48]
cmp rax, rcx
je 0x140004f4f
bswap rax
mov qword [rcx], rax
not rax
mov qword [rcx + 8], rax
mov qword [r15], rcx
shl r14, 5
movzx eax, word [r12 + r14 + 0x18]
dec eax
mov word [r12 + r14 + 0x18], ax
test ax, ax
mov r13, qword [rsp + 0x40]
jle 0x14000494d
xorps xmm0, xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x80], xmm0
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp qword [rsp + 0x80], 0
je 0x140003f37
lea rcx, [rsp + 0x80]
call fcn.1400a8e60
jmp 0x140003f37
mov rdx, rsi
add rdx, rax
movzx r8d, cl
shr r8, 1
mov rcx, rsi
call fcn.140041000
jmp 0x140003f11
lea r8, [rsp + 0x80]
mov rcx, rbp
mov edx, r15d
call fcn.140005bc0
mov rdx, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov r13, rax
jmp 0x140003d8d
lea r8, [rsp + 0x80]
mov rcx, rbp
mov edx, r15d
call fcn.140005bc0
mov r13, rax
mov rdx, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
jmp 0x140003db4
inc qword [rsi + 0x5c0]
inc qword [rsi + 0x5b0]
lea rdi, [r15 + r15*4]
lea rsi, [rdi*8 + 0x10]
add rsi, rbp
lea rbx, [rbp + 8]
mov ebp, 1
xor r14d, r14d
mov r15d, 0x40
mov rcx, rbx
call rdx
test al, al
jne 0x140004740
mov eax, ebp
test ebp, ebp
jle 0x1400046ab
pause
dec eax
jne 0x1400046a2
add r14d, ebp
add ebp, ebp
cmp ebp, 0x40
cmovge ebp, r15d
cmp r14d, 0x3e8
mov r12, qword [rsp + 0x40]
mov rdx, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
jl 0x14000468f
jmp 0x140004737
inc qword [rsi + 0x5c0]
inc qword [rsi + 0x5b0]
mov rdx, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
lea rdi, [r15 + r15*4]
lea rsi, [rdi*8 + 0x10]
add rsi, rbp
lea rbx, [rbp + 8]
mov ebp, 1
xor r14d, r14d
mov r15d, 0x40
mov rcx, rbx
call rdx
test al, al
jne 0x140004740
mov eax, ebp
test ebp, ebp
jle 0x140004719
pause
dec eax
jne 0x140004710
add r14d, ebp
add ebp, ebp
cmp ebp, 0x40
cmovge ebp, r15d
cmp r14d, 0x3e8
mov r12, qword [rsp + 0x40]
mov rdx, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
jl 0x140004701
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [rsi]
mov r13, qword [rax]
test r13, r13
je 0x1400048c2
mov byte [rsp + 0x70], 0
mov rcx, qword [rsp + 0x50]
mov ebp, dword [rcx + rdi*8 + 0x28]
mov rcx, qword [r13]
test rcx, rcx
mov r14d, dword [rsp + 0x3c]
je 0x140004783
mov rdx, rcx
not rdx
cmp qword [r13 + 8], rdx
jne 0x140004d83
bswap rcx
prefetcht0 byte [rcx]
jmp 0x140004785
xor ecx, ecx
mov qword [rax], rcx
inc word [rax + 0x18]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x140003dc5
inc qword [rsi + 0x5b8]
inc qword [rsi + 0x5b0]
mov rcx, rsi
mov rdx, r15
call fcn.1400424a0
mov rdx, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov r13, qword [rbx]
test r13, r13
jne 0x140003c88
jmp 0x14000466e
inc qword [rsi + 0x5b8]
inc qword [rsi + 0x5b0]
mov rcx, rsi
mov rdx, r15
call fcn.1400424a0
mov rdx, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov r13, qword [rbx]
test r13, r13
jne 0x140003d4f
jmp 0x1400046e0
xor eax, eax
dec byte [rsi + rdi + 8]
mov qword [r14], rax
movzx eax, word [rsi + rdi + 0xa]
mov qword [rsp + 0x80], rax
sub qword [rsi + 0x590], rax
test r13, r13
jne 0x140004849
jmp 0x140004c7d
xor eax, eax
dec byte [rsi + rdi + 8]
mov qword [r14], rax
movzx eax, word [rsi + rdi + 0xa]
mov qword [rsp + 0x80], rax
sub qword [rsi + 0x590], rax
test r13, r13
je 0x140004ce9
mov rdi, qword [rsp + 0x80]
test bl, 2
je 0x140003f37
cmp byte [rsp + 0x70], 0
jne 0x140003f37
mov rcx, r13
xor edx, edx
mov r8, rdi
call fcn.14007c4d0
jmp 0x140003f37
call fcn.1400a59e0
mov rcx, rax
call fcn.1400c6d80
jmp 0x140003c19
call fcn.1400a59e0
mov rcx, rax
call fcn.1400c6d80
jmp 0x140003ce0
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140004170
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140004059
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x14000429e
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x4000
mov rcx, rsi
mov rdx, qword [rsp + 0x50]
mov r8d, dword [rsp + 0x3c]
mov r9, r12
call fcn.140003230
test rax, rax
je 0x140004f02
mov r13, rax
mov rcx, rax
and rax, 0xffffffffffe00000
shr rcx, 9
and ecx, 0xfe0
lea rbp, [rax + rcx]
add rbp, 0x1000
movzx edx, byte [rbp + 0x1e]
mov rcx, rdx
neg rcx
shl rdx, 5
mov rax, rbp
sub rax, rdx
cmp byte [rax + 0x1d], 0
jne 0x140004f1d
shl rcx, 5
mov rax, qword [rbp + rcx + 0x10]
mov ebp, dword [rax + 0x18]
mov r14d, dword [rsp + 0x3c]
mov r12, qword [rsp + 0x40]
jmp 0x14000478c
lea rdx, [rsp + 0x70]
mov rcx, r15
call fcn.140002dc0
jmp 0x1400045cb
mov qword [rsp + 0x40], rbp
mov dword [rsp + 0x3c], ebx
lea rax, [r15 + r15*4]
mov rcx, r12
lea rsi, [r12 + rax*8]
add rsi, 0x10
lea r13, [r12 + 8]
mov edi, 1
xor ebx, ebx
mov r14, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov ebp, 0x40
mov rcx, r13
call r14
test al, al
jne 0x140004a1e
mov eax, edi
test edi, edi
jle 0x1400049ab
pause
dec eax
jne 0x1400049a3
add ebx, edi
add edi, edi
cmp edi, 0x40
cmovge edi, ebp
cmp ebx, 0x3e8
jl 0x14000498f
jmp 0x140004a15
mov qword [rsp + 0x40], rbp
mov dword [rsp + 0x3c], ebx
lea rax, [r15 + r15*4]
mov rcx, r12
lea rsi, [r12 + rax*8]
add rsi, 0x10
lea r13, [r12 + 8]
mov edi, 1
xor ebx, ebx
mov r14, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov ebp, 0x40
mov rcx, r13
call r14
test al, al
jne 0x140004a1e
mov eax, edi
test edi, edi
jle 0x140004a05
pause
dec eax
jne 0x1400049fd
add ebx, edi
add edi, edi
cmp edi, 0x40
cmovge edi, ebp
cmp ebx, 0x3e8
jl 0x1400049ed
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [rsi]
mov rcx, qword [rax]
test rcx, rcx
je 0x140004e55
mov rbp, rcx
mov byte [rsp + 0x70], 0
lea rcx, [r15 + r15*4]
mov edi, dword [r12 + rcx*8 + 0x28]
jmp 0x140004d66
mov al, byte [0x140134798]
cmp al, 2
je 0x140004f2b
mov rax, r15
shl rax, 5
mov rcx, qword [r13 + rax + 0x10]
lea rdx, [r12 + 0x10]
cmp rdx, rcx
ja 0x140004118
lea rdx, [r12 + 0x1410]
cmp rdx, rcx
jb 0x140004118
mov edx, dword [rcx + 0x18]
cmp byte [r13 + rax + 0x1d], 0
mov r8, rdx
jne 0x140004f3d
mov rax, qword [0x140134770]
and eax, 1
shl rax, 0xe
lea r9, [rax + rsi]
lea rbp, [rax + rsi]
add rbp, 0x4000
mov rbx, qword [rsp + 0x48]
mov rcx, rbx
shr rcx, 4
shr ebx, 0xa
and ebx, 0x7ff
mov edi, 1
shl rdi, cl
mov rax, qword [r9 + rbx*8 + 0x4000]
mov rcx, rax
or rcx, rdi
lock cmpxchg qword [rbp + rbx*8], rcx
jne 0x140004ad0
test rax, rdi
jne 0x140004dfa
mov rsi, rdx
lock xadd qword [0x140134760], rsi
add rsi, rdx
mov rdi, qword [0x140134768]
cmp byte [0x140134799], 1
jne 0x140004b13
mov rcx, qword [rsp + 0x48]
xor edx, edx
call fcn.14007c4d0
cmp rsi, rdi
jbe 0x140003f34
mov al, byte [0x140134798]
test al, al
jne 0x140003f34
call fcn.1400a59e0
mov rcx, rax
mov edx, 1
call fcn.1400f3f50
jmp 0x140003f34
inc qword [rsi + 0x5d8]
add r12, 8
xorps xmm0, xmm0
movaps xmmword [rsp + 0x80], xmm0
mov esi, 1
xor ebp, ebp
mov rbx, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov edi, 0x40
mov rcx, r12
call rbx
test al, al
jne 0x140004b9a
mov eax, esi
test esi, esi
jle 0x140004b81
pause
dec eax
jne 0x140004b79
add ebp, esi
add esi, esi
cmp esi, 0x40
cmovge esi, edi
cmp ebp, 0x3e8
jl 0x140004b6a
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [r14]
cmp rax, qword [rsp + 0x48]
je 0x140004f6e
bswap rax
mov rcx, qword [rsp + 0x48]
mov qword [rcx], rax
not rax
mov qword [rcx + 8], rax
mov qword [r14], rcx
shl r15, 5
movzx eax, word [r13 + r15 + 0x18]
dec eax
mov word [r13 + r15 + 0x18], ax
test ax, ax
jle 0x140004e43
xorps xmm0, xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x80], xmm0
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp qword [rsp + 0x80], 0
je 0x140003f34
lea rcx, [rsp + 0x80]
call fcn.1400a8e60
jmp 0x140003f34
mov rdx, rsi
add rdx, rax
movzx r8d, cl
shr r8, 1
mov rcx, rsi
call fcn.140041000
jmp 0x1400041e7
mov rcx, r12
call fcn.1400c6d50
lea r8, [rsp + 0x80]
mov rcx, r12
mov edx, r15d
call fcn.140005bc0
mov r13, rax
jmp 0x140004819
lea r8, [rsp + 0x80]
mov rcx, r12
mov edx, r15d
call fcn.140005bc0
mov r13, rax
jmp 0x140004840
inc qword [rsi + 0x5c0]
inc qword [rsi + 0x5b0]
mov qword [rsp + 0x40], rbp
mov dword [rsp + 0x3c], ebx
lea rsi, [r15 + r15*4]
mov rax, r12
lea r15, [r12 + rsi*8]
add r15, 0x10
lea r13, [r12 + 8]
mov edi, 1
xor ebx, ebx
mov r14, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov ebp, 0x40
mov rcx, r13
call r14
test al, al
jne 0x140004d4a
mov eax, edi
test edi, edi
jle 0x140004cc9
pause
dec eax
jne 0x140004cc1
add ebx, edi
add edi, edi
cmp edi, 0x40
cmovge edi, ebp
cmp ebx, 0x3e8
jl 0x140004cad
jmp 0x140004d41
inc qword [rsi + 0x5c0]
inc qword [rsi + 0x5b0]
mov qword [rsp + 0x40], rbp
mov dword [rsp + 0x3c], ebx
lea rsi, [r15 + r15*4]
mov rax, r12
lea r15, [r12 + rsi*8]
add r15, 0x10
lea r13, [r12 + 8]
mov edi, 1
xor ebx, ebx
mov r14, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov ebp, 0x40
mov rcx, r13
call r14
test al, al
jne 0x140004d4a
mov eax, edi
test edi, edi
jle 0x140004d31
pause
dec eax
jne 0x140004d29
add ebx, edi
add edi, edi
cmp edi, 0x40
cmovge edi, ebp
cmp ebx, 0x3e8
jl 0x140004d19
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [r15]
mov rcx, qword [rax]
test rcx, rcx
je 0x140004e6d
mov rbp, rcx
mov byte [rsp + 0x70], 0
mov edi, dword [r12 + rsi*8 + 0x28]
mov rcx, qword [rbp]
test rcx, rcx
je 0x140004d88
mov rdx, rcx
not rdx
cmp qword [rbp + 8], rdx
jne 0x140004d83
bswap rcx
prefetcht0 byte [rcx]
jmp 0x140004d8a
call fcn.1400a8e50
xor ecx, ecx
mov qword [rax], rcx
inc word [rax + 0x18]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ebx, dword [rsp + 0x3c]
mov r13, rbp
jmp 0x140004851
inc qword [rsi + 0x5b8]
inc qword [rsi + 0x5b0]
mov rcx, rsi
mov rdx, r15
call fcn.1400424a0
mov r13, qword [r14]
test r13, r13
jne 0x140004096
jmp 0x140004c7d
inc qword [rsi + 0x5b8]
inc qword [rsi + 0x5b0]
mov rcx, rsi
mov rdx, r15
call fcn.1400424a0
mov r13, qword [r14]
test r13, r13
jne 0x1400042db
jmp 0x140004ce9
call fcn.1400f8470
call fcn.1400a59e0
mov rcx, rax
call fcn.1400c6d80
mov rbx, qword [rsp + 0x58]
jmp 0x14000443d
mov r8, qword [r15 + 0x20]
jmp 0x140004479
call fcn.1400a59e0
mov rcx, rax
call fcn.1400c6d80
jmp 0x14000402c
call fcn.1400a59e0
mov rcx, rax
call fcn.1400c6d80
jmp 0x140004271
lea rdx, [rsp + 0x70]
mov rcx, r14
call fcn.140002dc0
jmp 0x140004be0
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x4000
mov rcx, rsi
jmp 0x140004e83
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x4000
mov rcx, r15
mov rdx, r12
mov r8d, dword [rsp + 0x3c]
mov r9, qword [rsp + 0x40]
call fcn.140003230
test rax, rax
je 0x140004f52
mov rbp, rax
mov rcx, rax
and rax, 0xffffffffffe00000
shr rcx, 9
and ecx, 0xfe0
lea rbx, [rax + rcx]
add rbx, 0x1000
movzx edx, byte [rbx + 0x1e]
mov rcx, rdx
neg rcx
shl rdx, 5
mov rax, rbx
sub rax, rdx
cmp byte [rax + 0x1d], 0
jne 0x140004f60
shl rcx, 5
mov rax, qword [rbx + rcx + 0x10]
mov edi, dword [rax + 0x18]
jmp 0x140004d91
lea rbp, [r12 + 0xfff]
and rbp, 0xfffffffffffff000
jmp 0x140003b99
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
xor r13d, r13d
mov r14d, dword [rsp + 0x3c]
mov r12, qword [rsp + 0x40]
jmp 0x140003dcf
shl rcx, 5
mov rbp, qword [rbp + rcx + 0x20]
jmp 0x14000493e
call fcn.1400a59e0
mov rcx, rax
call fcn.1400c6d80
jmp 0x140004a51
mov r8, qword [r14 + 0x20]
jmp 0x140004a8e
mov qword [rdi + 0x20], r12
jmp 0x140003f6f
int3
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x140003f34
shl rcx, 5
mov rdi, qword [rbx + rcx + 0x20]
jmp 0x140004d91
int3