Function at 0x180282950
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
mov r14, rdx
mov rsi, rcx
mov rdi, qword [rcx + 0x18]
test rdi, rdi
jne 0x1802829a5
test dword [0x1804e1150], 0x80000000
je 0x180282999
mov ecx, dword [0x1804fc298]
call sub.KERNEL32.dll_TlsGetValue
mov rdi, rax
test rax, rax
jne 0x1802829a1
call fcn.180286a40
mov rdi, rax
mov qword [rsi + 0x18], rdi
mov qword [rsp + 0xf8], rdi
lea r15, [rdi + 0x60]
mov qword [rsp + 0x30], r15
mov rcx, qword [r15]
mov qword [rsi], rcx
test rcx, rcx
je 0x1802829cc
mov ecx, dword [rcx + 8]
shl ecx, 4
sar ecx, 4
inc ecx
mov eax, ecx
xor eax, dword [rsi + 8]
and eax, 0xf0000000
xor eax, ecx
mov dword [rsi + 8], eax
mov qword [r15], rsi
and qword [rsp + 0x38], 0
xor r13d, r13d
mov qword [rsp + 0x20], r13
lea r12, [rsi + 0x10]
mov qword [rsp + 0x28], r12
cmp qword [r12], r13
je 0x180282a28
lea rdx, [rsp + 0x38]
mov rcx, rsi
call fcn.18028e934
mov r13, rax
mov qword [rsp + 0x20], rax
mov r8d, dword [rsi + 8]
shl r8d, 4
sar r8d, 4
mov rdx, rax
mov rcx, rdi
call fcn.18028433c
nop
test r14, r14
je 0x180282a71
test byte [rsi + 0x28], 3
jne 0x180282c02
mov ecx, dword [rdi + 0xc4]
mov eax, dword [rdi + 0xbc]
add ecx, eax
test ecx, ecx
jle 0x180282a5f
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call fcn.180283f38
test al, al
jne 0x180282c02
mov rcx, r14
mov rax, qword [r14 + 8]
call qword [case.0x180288483.0]
and qword [r14 + 0x10], 0
mov eax, dword [rsi + 0x20]
mov dword [rsp + 0xf0], eax
test eax, eax
jle 0x180282b1f
mov rcx, rdi
call fcn.1802841c0
mov r14, rax
mov qword [rsp + 0xe8], rax
test byte [rsi + 0x28], 3
jne 0x180282c1d
mov ecx, dword [rdi + 0xc4]
mov eax, dword [rdi + 0xbc]
add ecx, eax
test ecx, ecx
jle 0x180282ac8
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call fcn.180283f38
test al, al
jne 0x180282c1d
test r14, r14
je 0x180282b1f
mov eax, dword [rsp + 0xf0]
dec eax
mov dword [rsp + 0xf0], eax
cmp r14, 1
je 0x180282a7b
dec dword [rsi + 0x20]
cmp byte [rdi + 0x88], 0
mov rax, qword [rdi + 0xf8]
je 0x180282afb
inc dword [rax + 0x24]
jmp 0x180282b01
inc dword [rax + 0xa4]
mov rcx, r14
mov rax, qword [r14 + 8]
call qword [case.0x180288483.0]
and qword [r14 + 0x10], 0
mov eax, dword [rsp + 0xf0]
jmp 0x180282a7b
mov edx, dword [rsi + 0x20]
test edx, edx
jle 0x180282b32
mov rcx, rsi
call fcn.180282dec
and dword [rsi + 0x20], 0
jmp 0x180282b53
cmp qword [r12], 0
je 0x180282b77
mov rdx, r13
mov rcx, rdi
call fcn.180284128
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x180282b77
mov rcx, r13
call fcn.1800746b0
mov rax, qword [rsi]
mov qword [r15], rax
cmp qword [rsi + 0x28], 0
je 0x180282bc1
mov rcx, rsi
call fcn.180281dc8
mov edx, dword [rdi + 0xc4]
mov eax, dword [rdi + 0xbc]
add edx, eax
test edx, edx
jle 0x180282bba
cmp qword [r12], 0
setne r8b
mov rdx, rsi
mov rcx, rdi
call fcn.180283f38
test al, al
jne 0x180282c3e
mov eax, 2
jmp 0x180282bf0
mov ecx, dword [rdi + 0xc4]
mov eax, dword [rdi + 0xbc]
add ecx, eax
test ecx, ecx
jle 0x180282beb
cmp qword [r12], 0
setne r8b
mov rdx, rsi
mov rcx, rdi
call fcn.180283f38
test al, al
jne 0x180282c5a
mov eax, 1
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret
lea rcx, [rsp + 0x40]
call fcn.180281228
lea rdx, [0x1804d9308]
lea rcx, [rsp + 0x40]
call fcn.18029b94c
bts dword [rsi + 8], 0x1d
lea rcx, [rsp + 0x58]
call fcn.180281228
lea rdx, [0x1804d9308]
lea rcx, [rsp + 0x58]
call fcn.18029b94c
nop
lea rcx, [rsp + 0x70]
call fcn.180281228
lea rdx, [0x1804d9308]
lea rcx, [rsp + 0x70]
call fcn.18029b94c
int3
lea rcx, [rsp + 0x88]
call fcn.180281228
lea rdx, [0x1804d9308]
lea rcx, [rsp + 0x88]
call fcn.18029b94c
int3