Function at 0x140010a30
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, 0x58
mov r12, rdx
mov rbx, rcx
mov rax, qword [0x140131038]
xor rax, rsp
mov qword [rsp + 0x50], rax
cmp rcx, 0x10
ja 0x140010b9b
lea rax, [rbx - 1]
test rbx, rax
sete al
test rbx, rbx
setne cl
test cl, al
je 0x140011143
mov r15, qword [0x140138530]
test r15, r15
je 0x140010ec3
movabs rax, 0xaaaaaaaaaaaaaaaa
mov edx, 0x40
mov ecx, 0x40
test r12, r12
je 0x140010aa8
bsr rcx, r12
xor rcx, 0x3f
sub rdx, rcx
lea rcx, [0x14011b220]
mov cl, byte [rdx + rcx]
mov rbp, r12
shr rbp, cl
and ebp, 7
lea rcx, [0x14011b270]
mov rcx, qword [rcx + rdx*8]
and rcx, r12
lea rdx, [rdx*8]
add rdx, rbp
cmp rcx, 1
sbb rdx, 0xffffffffffffffff
lea rcx, [0x14011aa08]
movzx r14d, word [rcx + rdx*2 + 0x400]
mov byte [rsp + 0x4f], 0
mov qword [rsp + 0x40], rax
cmp byte [r15], 2
jne 0x140010b0d
mov al, byte [0x140134798]
cmp al, 2
je 0x1400110bf
cmp byte [r15 + 2], 0
je 0x140010de1
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 0x140010dc7
cmp rsi, 2
jb 0x140010edd
inc qword [rsi + 0x5a0]
cmp r14w, 0x29
jae 0x140010f0d
mov rbx, r14
shl rbx, 4
mov rdi, rsi
add rdi, rbx
mov rbp, qword [rsi + rbx]
test rbp, rbp
je 0x14001106b
inc qword [rsi + 0x5a8]
mov rax, qword [rbp]
test rax, rax
je 0x140010c0b
mov rcx, rax
not rcx
cmp qword [rbp + 8], rcx
jne 0x140011066
bswap rax
prefetcht0 byte [rax]
jmp 0x140010c0d
mov r14, qword [0x140138530]
test r14, r14
je 0x140010ed0
lea r13, [rbx - 1]
test rbx, r13
sete al
test rbx, rbx
setne cl
test cl, al
je 0x140011146
cmp rbx, 0x100001
jae 0x140011149
cmp rbx, 0x4001
jb 0x140010be6
cmp r12, 0xf0001
jae 0x14001114c
cmp rbx, 0x4000
jbe 0x140010bf4
mov r15, r12
jmp 0x140010c58
cmp r12, rbx
jb 0x140010c47
mov rax, r12
dec rax
je 0x140010c38
bsr rcx, rax
xor rcx, 0x3f
jmp 0x140010c3d
xor eax, eax
dec byte [rsi + rbx + 8]
mov qword [rdi], rax
movzx eax, word [rsi + rbx + 0xa]
mov qword [rsp + 0x40], rax
movzx eax, word [rsi + rbx + 0xa]
sub qword [rsi + 0x590], rax
test rbp, rbp
jne 0x140010da6
jmp 0x140010f1b
mov ecx, 0x40
neg cl
mov ebx, 1
shl rbx, cl
mov r15, rbx
mov ebx, 0x4000
cmp r15, r12
jb 0x1400110d1
movabs rax, 0xaaaaaaaaaaaaaaaa
mov edx, 0x40
mov ecx, 0x40
test r15, r15
je 0x140010c79
bsr rcx, r15
xor rcx, 0x3f
sub rdx, rcx
lea rcx, [0x14011b220]
mov cl, byte [rdx + rcx]
mov rbp, r15
shr rbp, cl
and ebp, 7
lea rcx, [0x14011b270]
mov rcx, qword [rcx + rdx*8]
and rcx, r15
lea rdx, [rdx*8]
add rdx, rbp
cmp rcx, 1
sbb rdx, 0xffffffffffffffff
lea rcx, [0x14011aa08]
movzx r12d, word [rcx + rdx*2 + 0x400]
mov byte [rsp + 0x4f], 0
mov qword [rsp + 0x40], rax
cmp byte [r14], 2
jne 0x140010cde
mov al, byte [0x140134798]
cmp al, 2
je 0x1400110d9
cmp byte [r14 + 2], 0
je 0x140010e36
cmp rbx, 0x4000
ja 0x140010e36
mov ebx, dword [0x14013bdb8]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test edi, edi
jne 0x140010dd4
cmp rbx, 2
jb 0x140010ef5
inc qword [rbx + 0x5a0]
cmp r12w, 0x29
jae 0x140010fbc
mov rsi, r12
shl rsi, 4
mov rdi, rbx
add rdi, rsi
mov rbp, qword [rbx + rsi]
test rbp, rbp
je 0x140011095
inc qword [rbx + 0x5a8]
mov rax, qword [rbp]
test rax, rax
je 0x140010d75
mov rcx, rax
not rcx
cmp qword [rbp + 8], rcx
jne 0x140011066
bswap rax
prefetcht0 byte [rax]
jmp 0x140010d77
xor eax, eax
dec byte [rbx + rsi + 8]
mov qword [rdi], rax
movzx eax, word [rbx + rsi + 0xa]
mov qword [rsp + 0x40], rax
movzx eax, word [rbx + rsi + 0xa]
sub qword [rbx + 0x590], rax
test rbp, rbp
je 0x140010fca
test r13, rbp
jne 0x14001114f
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.140079ea0
mov rax, rbp
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140010b39
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140010d17
lea rax, [r14 + r14*4]
lea rsi, [r15 + rax*8]
add rsi, 0x10
lea r14, [r15 + 8]
mov edi, 1
xor ebx, ebx
mov rbp, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov r13d, 0x40
mov rcx, r14
call rbp
test al, al
jne 0x140010f70
mov eax, edi
test edi, edi
jle 0x140010e20
pause
dec eax
jne 0x140010e18
add ebx, edi
add edi, edi
cmp edi, 0x40
cmovge edi, r13d
cmp ebx, 0x3e8
jl 0x140010e05
jmp 0x140010f67
lea rax, [r12 + r12*4]
lea r12, [r14 + rax*8]
add r12, 0x10
lea rsi, [r14 + 8]
mov edi, 1
mov dword [rsp + 0x3c], 0
mov rbp, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov rcx, rsi
call rbp
test al, al
jne 0x140010e93
mov eax, edi
test edi, edi
jle 0x140010e73
pause
dec eax
jne 0x140010e69
add dword [rsp + 0x3c], edi
add edi, edi
cmp edi, 0x40
mov eax, 0x40
cmovge edi, eax
cmp dword [rsp + 0x3c], 0x3e8
jl 0x140010e5a
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
cmp rbx, 0x4000
ja 0x140010eac
mov rax, qword [r12]
mov rbp, qword [rax]
test rbp, rbp
jne 0x14001102d
lea rax, [rsp + 0x4f]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
mov rcx, r12
jmp 0x14001112d
call fcn.1400adb80
mov r15, rax
jmp 0x140010a87
call fcn.1400adb80
mov r14, rax
jmp 0x140010bab
lea r8, [rsp + 0x40]
mov rcx, r15
mov edx, r14d
call fcn.140005bc0
mov rbp, rax
jmp 0x140010c2a
lea r8, [rsp + 0x40]
mov rcx, r14
mov edx, r12d
call fcn.140005bc0
mov rbp, rax
jmp 0x140010d94
inc qword [rsi + 0x5c0]
inc qword [rsi + 0x5b0]
lea rax, [r14 + r14*4]
lea rsi, [r15 + rax*8]
add rsi, 0x10
lea r14, [r15 + 8]
mov edi, 1
xor ebx, ebx
mov rbp, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov r13d, 0x40
mov rcx, r14
call rbp
test al, al
jne 0x140010f70
mov eax, edi
test edi, edi
jle 0x140010f56
pause
dec eax
jne 0x140010f4e
add ebx, edi
add edi, edi
cmp edi, 0x40
cmovge edi, r13d
cmp ebx, 0x3e8
jl 0x140010f3f
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [rsi]
mov rbp, qword [rax]
test rbp, rbp
je 0x1400110eb
mov byte [rsp + 0x4f], 0
mov rcx, qword [rbp]
test rcx, rcx
je 0x140010fa5
mov rdx, rcx
not rdx
cmp qword [rbp + 8], rdx
jne 0x140011066
bswap rcx
prefetcht0 byte [rcx]
jmp 0x140010fa7
xor ecx, ecx
mov qword [rax], rcx
inc word [rax + 0x18]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x140010da6
inc qword [rbx + 0x5c0]
inc qword [rbx + 0x5b0]
lea rax, [r12 + r12*4]
lea rbx, [r14 + rax*8]
add rbx, 0x10
lea rsi, [r14 + 8]
mov edi, 1
xor ebp, ebp
mov r12, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov rcx, rsi
call r12
test al, al
jne 0x14001101e
mov eax, edi
test edi, edi
jle 0x140011000
pause
dec eax
jne 0x140010ff8
add ebp, edi
add edi, edi
cmp edi, 0x40
mov eax, 0x40
cmovge edi, eax
cmp ebp, 0x3e8
jl 0x140010fe8
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [rbx]
mov rbp, qword [rax]
test rbp, rbp
je 0x140011117
mov byte [rsp + 0x4f], 0
mov rcx, qword [rbp]
test rcx, rcx
je 0x14001104f
mov rdx, rcx
not rdx
cmp qword [rbp + 8], rdx
jne 0x140011066
bswap rcx
prefetcht0 byte [rcx]
jmp 0x140011051
xor ecx, ecx
mov qword [rax], rcx
inc word [rax + 0x18]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x140010d9d
call fcn.1400a8e50
inc qword [rsi + 0x5b8]
inc qword [rsi + 0x5b0]
mov rcx, rsi
mov rdx, r14
call fcn.1400424a0
mov rbp, qword [rdi]
test rbp, rbp
jne 0x140010b76
jmp 0x140010f1b
inc qword [rbx + 0x5b8]
inc qword [rbx + 0x5b0]
mov rcx, rbx
mov rdx, r12
call fcn.1400424a0
mov rbp, qword [rdi]
test rbp, rbp
jne 0x140010d54
jmp 0x140010fca
call fcn.1400a59e0
mov rcx, rax
call fcn.1400c6d80
jmp 0x140010b0d
mov rcx, r12
call fcn.1400c6d50
call fcn.1400a59e0
mov rcx, rax
call fcn.1400c6d80
jmp 0x140010cde
lea rax, [rsp + 0x4f]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x4000
mov rcx, rsi
mov rdx, r15
xor r8d, r8d
mov r9, r12
call fcn.140003230
mov rbp, rax
jmp 0x140010fae
lea rax, [rsp + 0x4f]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x4000
mov rcx, rbx
mov rdx, r14
xor r8d, r8d
mov r9, r15
call fcn.140003230
mov rbp, rax
jmp 0x140011058
int3
int3
int3
int3
int3