Function at 0x1801332e0
Capabilities:
Get thread local storage value

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rdx
push rbx
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0x178
xor esi, esi
mov ebx, 4
mov r14, r9
mov rdi, r8
mov r13, rdx
mov r15, rcx
mov qword [rax - 0xf8], rsi
mov dword [rax - 0xf0], esi
mov dword [rax - 0xec], esi
mov byte [rax - 0xe8], sil
mov dword [rax - 0x128], ebx
mov dword [rax - 0x124], esi
mov dword [rax - 0x118], esi
mov dword [rax - 0x114], esi
mov dword [rax - 0x110], esi
mov dword [rax - 0x10c], esi
mov dword [rax - 0x104], esi
mov qword [rax - 0x120], rsi
mov byte [rax - 0x100], sil
mov qword [rax - 0xe0], rsi
mov dword [rax - 0x108], 0xffffffff
test r8, r8
je 0x18013386b
mov rax, qword [r8]
lea rdx, [rsp + 0x70]
mov rcx, r8
call qword [rax + 0x58]
test byte [rax], 1
jne 0x18013386b
mov qword [rsp + 0x1b0], rbp
mov dword [rsp + 0x1c0], esi
mov qword [rsp + 0x170], r12
test rdi, rdi
je 0x180133791
cmp dword [rdi + 8], 0xa
jne 0x1801333b9
mov rdi, qword [rdi + 0x38]
jmp 0x1801333a4
test rdi, rdi
je 0x180133791
cmp dword [rdi + 8], 7
jne 0x180133791
lea rcx, [0x180034acf]
lea rax, [0x180040e24]
mov edx, 1
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0xf8], rcx
mov qword [rsp + 0xd8], rax
lea rax, [0x180040d64]
mov ecx, esi
mov qword [rsp + 0xe0], rax
lea rax, [0x180040f50]
mov qword [rsp + 0xe8], rax
lea rax, [0x180040d70]
mov qword [rsp + 0xf0], rax
lea rax, [0x180040f60]
mov qword [rsp + 0x100], rax
mov rax, qword [rsp + 0x1e8]
bt rax, 0xc
cmovb ecx, edx
bt rax, 0xd
mov edx, 2
cmovb ecx, edx
bt rax, 0xe
mov edx, 3
cmovb ecx, edx
bt rax, 0xf
mov edx, 6
cmovb ecx, ebx
bt rax, 0x10
cmovb ecx, edx
cmp dword [rdi + 0x38], ecx
je 0x1801334b0
test ecx, ecx
je 0x1801334b0
mov rax, qword [rsp + rcx*8 + 0xd0]
mov dword [rsp + 0x28], ecx
lea r9, [0x180044ba8]
mov r8d, 0xdb9
mov rdx, r13
mov rcx, r15
mov qword [rsp + 0x20], rax
call fcn.180109730
mov ebx, 0x80004005
jmp 0x1801337be
lea rax, [rsp + 0x110]
mov r8, rdi
mov rdx, r13
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rsi
mov byte [rsp + 0x20], sil
mov rsi, qword [rsp + 0x1d0]
mov rcx, r15
mov r9, rsi
call fcn.180133d80
mov ebx, eax
test eax, eax
js 0x1801337bc
mov rcx, qword [rsi + 0x10]
xor r12d, r12d
lea r8, [0x180044bd0]
mov rax, rcx
movabs rdx, 0x100000000000
shr rax, 0x2b
and eax, 1
je 0x180133517
lea rbx, [0x180040d58]
jmp 0x180133525
lea rbx, [0x180040de8]
test rdx, rcx
cmove rbx, r8
test rax, rax
jne 0x18013353e
test rdx, rcx
jne 0x18013353e
mov rbp, qword [rsp + 0x1d8]
mov qword [rsp + 0x78], rbp
jmp 0x18013357d
mov rbp, qword [rsp + 0x1d8]
mov qword [rsp + 0x78], rbp
test rbp, rbp
je 0x18013357d
lea rax, [0x180044be0]
mov r9d, 0xdf8
xor r8d, r8d
mov qword [rsp + 0x28], rax
mov rdx, r13
mov rcx, r15
mov dword [rsp + 0x20], 0x4a
call fcn.180109790
mov qword [rsp + 0x78], r12
mov rcx, qword [r15 + 0x10]
lea rdx, [rsp + 0x70]
mov r9, rbx
or r8d, 0xffffffff
mov qword [rsp + 0x20], 8
call fcn.18019ed50
mov ebx, eax
test eax, eax
js 0x1801337b8
mov r13, qword [rsp + 0x1e0]
lea rcx, [rsp + 0x80]
mov rdx, r13
call fcn.18011df60
mov ebx, eax
test eax, eax
js 0x1801337b4
mov rcx, qword [r15 + 0x10]
lea r8, [rsp + 0x110]
mov rdx, rsi
call fcn.18019f710
mov ebx, eax
test eax, eax
js 0x1801337b0
mov rcx, qword [rsp + 0x110]
mov rax, qword [rsp + 0x70]
xor esi, esi
or qword [rcx + 0x10], 0x400440
mov qword [rcx + 0x20], rax
mov ebp, esi
cmp dword [rdi + 0x38], esi
jbe 0x18013377d
nop dword [rax + rax]
lea rcx, [rsp + 0x80]
mov rdx, r13
call fcn.18011df60
mov ebx, eax
test eax, eax
js 0x1801337be
mov r8, qword [rdi + 0x30]
mov rdx, qword [rsp + 0x1b8]
mov dword [rsp + 0x68], esi
mov dword [rsp + 0x60], ebp
lea rax, [rsp + 0x70]
lea r9, [r14 + r12*8]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x1c0]
mov rcx, r15
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x1e8]
mov qword [rsp + 0x48], rsi
mov dword [rsp + 0x40], esi
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x110]
mov qword [rsp + 0x20], rax
call fcn.180134250
mov ebx, eax
test eax, eax
js 0x1801337be
mov esi, dword [rsp + 0x70]
movsxd rax, r12d
test esi, esi
je 0x18013375f
mov r10, r14
lea r11, [r14 + rax*8]
mov rbx, rsi
nop word [rax + rax]
mov rax, qword [r10]
mov rcx, qword [r11]
mov rdx, qword [rax + 0xa8]
mov r8, qword [rcx + 0xa8]
cmp r8, rdx
je 0x18013374d
test r8, r8
je 0x180133716
cmp r8, 0xffffffffffffffff
je 0x180133716
mov r9, qword [rcx + 8]
test r9, r9
je 0x1801336f5
mov rax, qword [rcx]
mov qword [r9], rax
jmp 0x1801336fc
mov rax, qword [rcx]
mov qword [r8 + 0x30], rax
mov r9, qword [rcx]
test r9, r9
je 0x18013370e
mov rax, qword [rcx + 8]
mov qword [r9 + 8], rax
jmp 0x180133716
mov rax, qword [rcx + 8]
mov qword [r8 + 0x38], rax
test rdx, rdx
je 0x180133746
cmp rdx, 0xffffffffffffffff
je 0x180133746
mov rax, qword [rdx + 0x38]
mov qword [rcx + 8], rax
mov rax, qword [rdx + 0x38]
test rax, rax
je 0x180133737
mov qword [rax], rcx
jmp 0x18013373b
mov qword [rdx + 0x30], rcx
mov qword [rcx], 0
mov qword [rdx + 0x38], rcx
mov qword [rcx + 0xa8], rdx
add r10, 8
add r11, 8
sub rbx, 1
jne 0x1801336c0
add r12d, esi
inc ebp
mov dword [rsp + 0x1c0], 0
mov esi, 0
cmp ebp, dword [rdi + 0x38]
jb 0x180133610
lea rdx, [rsp + 0x80]
mov rcx, r13
call fcn.18011df60
mov ebx, eax
jmp 0x1801337be
lea r9, [0x180044b78]
mov r8d, 0xdb9
mov rdx, r13
mov rcx, r15
call fcn.180109730
mov ebx, 0x80004005
jmp 0x1801337be
xor esi, esi
jmp 0x1801337be
xor esi, esi
jmp 0x1801337be
xor esi, esi
jmp 0x1801337be
xor esi, esi
lea rcx, [rsp + 0xb0]
call fcn.180120170
mov rdi, qword [rsp + 0x88]
mov r12, qword [rsp + 0x170]
mov rbp, qword [rsp + 0x1b0]
test rdi, rdi
je 0x18013380b
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801337f7
mov rax, rsi
jmp 0x1801337fd
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rax]
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rdi, qword [rsp + 0xc8]
mov qword [rsp + 0x88], rsi
test rdi, rdi
je 0x180133843
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x18013382f
mov rax, rsi
jmp 0x180133835
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rax]
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
lea rcx, [rsp + 0xb0]
mov qword [rsp + 0xc8], rsi
call fcn.180120170
mov eax, ebx
add rsp, 0x178
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
ret
lea rcx, [rsp + 0xb0]
call fcn.180120170
mov rbx, qword [rsp + 0x88]
test rbx, rbx
je 0x1801338a8
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x180133894
mov rax, rsi
jmp 0x18013389a
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rax]
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0xc8]
mov qword [rsp + 0x88], rsi
test rbx, rbx
je 0x1801338e0
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801338cc
mov rax, rsi
jmp 0x1801338d2
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rax]
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
lea rcx, [rsp + 0xb0]
mov qword [rsp + 0xc8], rsi
call fcn.180120170
xor eax, eax
add rsp, 0x178
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
ret