Function at 0x18000150c
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0x98
lea rax, [rbp + 0x7f]
mov r13d, edx
mov qword [rbp - 0x41], rax
mov r12d, ecx
mov rax, qword [0x180028af0]
test rax, rax
je 0x180001584
xor ebx, ebx
xchg qword [0x180028af0], rbx
test rbx, rbx
je 0x180001584
mov rcx, qword [rbx + 0x38]
mov rdi, qword [rbx + 0x18]
test rcx, rcx
je 0x180001568
call fcn.180009d80
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, rdi
test rdi, rdi
jne 0x180001556
mov ecx, dword [0x180027910]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
xor ebx, ebx
mov rdi, rax
test rax, rax
je 0x1800015a1
mov ebx, dword [rax + 4]
and dword [rax + 4], 0
mov ecx, 1
mov r15b, cl
test r12d, r12d
jne 0x1800015c6
mov dword [rbp - 0x49], ecx
mov ebx, ecx
test rdi, rdi
jne 0x1800015bd
xor r15b, r15b
jmp 0x1800015d8
mov rax, qword [rax + 0x20]
mov r15b, byte [rax]
jmp 0x1800015d8
test ebx, ebx
jne 0x1800015d5
mov eax, dword [0x180028afc]
test eax, eax
cmovg ebx, eax
mov dword [rbp - 0x49], ebx
cmp byte [0x180028afa], 0
jne 0x1800015f3
test rdi, rdi
je 0x1800015f3
mov rax, qword [rdi + 0x20]
cmp byte [rax], 0
cmovne ebx, ecx
mov dword [rbp - 0x49], ebx
mov r14b, byte [0x180028af9]
xor esi, esi
test r12d, r12d
je 0x180001671
test rdi, rdi
je 0x180001647
mov rsi, qword [rdi + 0x38]
test rsi, rsi
je 0x180001647
test r14b, r14b
jne 0x18000162d
mov ecx, dword [rsi]
xor eax, eax
test ebx, ebx
je 0x180001620
cmp ecx, ebx
jmp 0x180001626
cmp ecx, dword [0x180027918]
setne al
test eax, eax
je 0x180001637
mov rcx, rsi
call fcn.180009d80
xor esi, esi
test rsi, rsi
je 0x180001647
test ebx, ebx
jne 0x180001671
mov ebx, dword [rsi]
mov dword [rbp - 0x49], ebx
jmp 0x180001671
mov al, r14b
lea r8, [rbp - 0x49]
neg al
mov ecx, ebx
sbb r9d, r9d
not r9d
and r9d, 0x24
call fcn.180009b30
mov rsi, rax
test rax, rax
jne 0x18000166e
lea ebx, [rax + 1]
jmp 0x180001642
mov ebx, dword [rbp - 0x49]
mov rax, qword [rbp + 0x77]
and dword [rbp - 0x31], 0
mov ecx, dword [0x180027910]
mov qword [rbp - 0x29], rax
mov rax, qword [rbp - 0x41]
mov qword [rbp - 0x21], rax
lea rax, [rbp - 9]
mov qword [rbp - 0x11], rax
lea rax, [0x1800231f0]
mov qword [rbp - 9], rax
lea rax, [0x1800231d0]
mov byte [rbp - 0x39], r15b
mov dword [rbp - 0x35], ebx
mov dword [rbp - 0x19], r13d
mov dword [rbp - 1], ebx
mov qword [rbp - 9], rax
mov qword [rbp + 7], 0
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rbp + 0xf], rax
test rsi, rsi
je 0x1800016e4
cmp dword [rsi], 1
je 0x1800016e4
mov r8d, dword [rsi]
lea rdx, [rbp - 0x39]
mov rcx, rsi
call fcn.180009ec8
jmp 0x1800016ef
xor edx, edx
lea rcx, [rbp - 0x39]
call fcn.18000174c
lea rcx, [rbp - 0x11]
call fcn.180009738
test r12d, r12d
je 0x180001735
test rsi, rsi
je 0x18000172b
cmp byte [0x180028af9], 0
jne 0x180001723
test r14b, r14b
jne 0x180001723
test rdi, rdi
jne 0x18000171d
call fcn.180005c60
mov rdi, rax
mov qword [rdi + 0x38], rsi
jmp 0x180001735
mov rcx, rsi
call fcn.180009d80
test rdi, rdi
je 0x180001735
and qword [rdi + 0x38], 0
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret