Function at 0x18009a3b0
Capabilities:
Get thread local storage value

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x20], r9
mov dword [r11 + 0x18], r8d
mov qword [r11 + 8], rcx
push rbp
push rsi
push rdi
sub rsp, 0x120
xor ebp, ebp
mov rdi, rdx
mov rsi, rcx
test r9, r9
je 0x18009a955
test rdx, rdx
je 0x18009a955
mov eax, dword [rdx + 8]
cmp eax, 1
jne 0x18009a40e
cmp qword [rdx + 0x18], rbp
jne 0x18009a40e
mov rax, qword [r11 + 0x28]
mov rdx, qword [rdx + 0x10]
mov qword [rsp + 0x20], rax
call fcn.18009a3b0
mov ebx, eax
jmp 0x18009a95a
cmp eax, 5
je 0x18009a41d
mov ebx, 1
jmp 0x18009a95a
cmp qword [rdx + 0x28], rbp
jne 0x18009a42d
mov ebx, 0x80004005
jmp 0x18009a95a
mov eax, r8d
lea r9, [rsp + 0x68]
lea rcx, [rax + rax*4]
lea rax, [0x18002d830]
lea r8, [rax + rcx*8]
mov rax, qword [rsp + 0x160]
mov rcx, rsi
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0xa4]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x90]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x5c]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
call fcn.18009cd30
mov ebx, eax
test eax, eax
js 0x18009a95a
mov eax, dword [rsp + 0x58]
imul eax, eax
cmp eax, 1
jne 0x18009a413
mov eax, dword [rsp + 0x68]
test eax, eax
jle 0x18009a413
cmp eax, 3
jle 0x18009a4ca
cmp eax, 0xf20000
jne 0x18009a413
mov r8d, dword [rsp + 0x150]
lea rax, [rsp + 0x160]
lea r9, [rsp + 0x78]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xa8]
mov rdx, rdi
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.18009a980
mov ebx, eax
test eax, eax
jne 0x18009a95a
cmp qword [rsp + 0x80], rbp
jne 0x18009a541
mov rdx, qword [rsp + 0xa8]
lea rcx, [0x180037264]
call sub.msvcrt.dll__stricmp
test eax, eax
jne 0x18009a541
xor eax, eax
mov dword [rsp + 0x78], 6
mov qword [rsp + 0x80], rax
mov dword [rsp + 0x88], eax
mov ecx, 0x70
call fcn.180071960
mov rsi, rax
test rax, rax
je 0x18009a955
xor r8d, r8d
mov dword [rax + 8], 6
mov dword [rax + 0x20], 1
mov qword [rax + 0x10], r8
mov qword [rax + 0x18], r8
lea rdx, [rsp + 0x78]
lea rax, [0x180041978]
mov qword [rsi], rax
mov rcx, qword [rdx]
mov qword [rsi + 0x28], rcx
mov rax, qword [rdx + 8]
mov qword [rsi + 0x30], rax
mov rax, qword [rdx + 0x10]
mov dword [rsi + 0x40], r8d
mov qword [rsi + 0x38], rax
cmp dword [rsi + 0x28], 4
jne 0x18009a5b8
mov rcx, qword [rsi + 0x30]
test rcx, rcx
je 0x18009a5b8
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x10]
xor r8d, r8d
mov qword [rsi + 0x30], rax
cmp dword [rsp + 0x78], 6
jne 0x18009a74f
mov rcx, qword [rsp + 0x140]
mov rax, qword [rcx + 0x28]
mov qword [rsp + 0x50], rax
cmp qword [rax + 0x1d8], rbp
jne 0x18009a60b
xor r9d, r9d
mov dword [rsp + 0x20], r8d
mov rcx, rax
lea edx, [r9 + 0x14]
xor r8d, r8d
call fcn.180117330
mov rcx, qword [rsp + 0x50]
mov qword [rcx + 0x1d8], rax
mov rax, rcx
mov rcx, qword [rsp + 0x140]
mov r9, qword [rax + 0x1d8]
test r9, r9
je 0x18009a919
mov rdx, qword [rdi + 0x90]
test rdx, rdx
jne 0x18009a62b
lea rdx, [rdi + 0x68]
mov eax, dword [rsp + 0x5c]
mov r8d, dword [rsp + 0x58]
mov dword [rsp + 0x64], eax
mov rax, qword [rcx + 0x28]
mov dword [rsp + 0x60], r8d
mov rcx, rax
mov r8d, 0x200
mov qword [rsp + 0x98], rax
call fcn.180117880
mov rdi, rax
mov qword [rsp + 0x50], rax
test rax, rax
je 0x18009a734
mov eax, dword [rsp + 0x60]
cmp eax, 1
ja 0x18009a6c0
cmp dword [rsp + 0x64], 1
jbe 0x18009a7e0
cmp eax, 1
jne 0x18009a6c0
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x18009a68f
xor eax, eax
jmp 0x18009a695
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rax + 8]
mov edx, 0x40
lea r8d, [rdx - 0x30]
call fcn.180243b70
test rax, rax
je 0x18009a734
lea rcx, [0x180043550]
mov dword [rax + 8], 9
jmp 0x18009a6f9
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x18009a6ce
xor eax, eax
jmp 0x18009a6d4
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rax + 8]
mov edx, 0x40
lea r8d, [rdx - 0x30]
call fcn.180243b70
test rax, rax
je 0x18009a734
lea rcx, [0x1800434e0]
mov dword [rax + 8], 8
mov r8d, dword [rsp + 0x60]
xor edx, edx
mov dword [rax + 0x3c], edx
mov dword [rax + 0x38], edx
mov qword [rax + 0x30], rdx
mov qword [rax], rcx
mov ecx, dword [rsp + 0x64]
mov dword [rax + 0x28], 0xffffffff
mov qword [rax + 0x20], rdx
mov qword [rax + 0x18], rdx
mov qword [rax + 0x10], rdx
mov dword [rax + 0x3c], ecx
mov qword [rax + 0x30], rdi
mov dword [rax + 0x38], r8d
jmp 0x18009a7d8
mov rax, qword [rsp + 0x98]
xor edi, edi
mov byte [rax + 0x468], 1
mov qword [rsp + 0x50], rdi
jmp 0x18009a7e0
mov rcx, qword [rdi + 0x28]
lea r8, [rsp + 0xb0]
mov edx, 0xa
mov rax, qword [rcx]
call qword [rax + 0x60]
test al, al
je 0x18009a919
mov rcx, qword [rsp + 0x140]
mov edx, dword [rsp + 0xb4]
mov rcx, qword [rcx + 0x28]
call fcn.180117660
mov r9, rax
test rax, rax
je 0x18009a919
mov rdx, qword [rdi + 0x90]
test rdx, rdx
jne 0x18009a7a2
lea rdx, [rdi + 0x68]
mov eax, dword [rsp + 0x5c]
mov r8d, dword [rsp + 0xb0]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x140]
mov rcx, qword [rax + 0x28]
call fcn.180117eb0
mov qword [rsp + 0x50], rax
mov rdi, rax
test rdi, rdi
je 0x18009a919
mov ecx, 0x30
call fcn.180071960
mov rbp, rax
test rax, rax
je 0x18009a917
mov dword [rax + 8], 1
mov dword [rax + 0x20], 1
lea rax, [0x180041858]
mov qword [rbp], rax
lea rax, [0x18003b6cc]
mov ecx, 0x98
mov qword [rbp + 0x10], rsi
mov qword [rbp + 0x18], 0
mov qword [rbp + 0x28], rax
call fcn.180071960
mov rdi, rax
test rax, rax
je 0x18009a913
mov rdx, qword [rsp + 0x160]
xor ecx, ecx
mov dword [rax + 8], 5
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rcx
mov dword [rax + 0x20], 1
mov dword [rdi + 0x30], ecx
mov dword [rdi + 0x34], ecx
mov dword [rdi + 0x38], ecx
mov qword [rdi + 0x48], rcx
mov qword [rdi + 0x58], rcx
mov dword [rdi + 0x60], ecx
mov qword [rdi + 0x40], rbp
mov byte [rdi + 0x50], 1
lea rax, [0x180041948]
mov qword [rdi], rax
mov rax, qword [rsp + 0x50]
mov qword [rdi + 0x28], rax
mov rax, qword [rdx]
mov qword [rdi + 0x68], rax
mov rax, qword [rdx + 8]
mov qword [rdi + 0x70], rax
mov rax, qword [rdx + 0x10]
mov qword [rdi + 0x78], rax
mov rax, qword [rdx + 0x18]
mov qword [rdi + 0x80], rax
mov rax, qword [rdx + 0x20]
mov qword [rdi + 0x90], rcx
mov ecx, 0x30
mov qword [rdi + 0x88], rax
call fcn.180071960
test rax, rax
je 0x18009a91c
lea rcx, [0x180041858]
mov dword [rax + 8], 1
mov dword [rax + 0x20], 1
mov qword [rax], rcx
lea rcx, [0x18003b6cc]
mov qword [rax + 0x10], rdi
mov qword [rax + 0x28], rcx
mov rcx, qword [rsp + 0x158]
mov qword [rax + 0x18], 0
mov qword [rcx], rax
jmp 0x18009a95a
xor edi, edi
jmp 0x18009a91c
xor ebp, ebp
mov rdi, rbp
mov rax, qword [rsi]
mov edx, 1
mov rcx, rsi
mov ebx, 0x8007000e
call qword [rax]
test rbp, rbp
je 0x18009a941
mov rax, qword [rbp]
mov edx, 1
mov rcx, rbp
call qword [rax]
test rdi, rdi
je 0x18009a95a
mov rax, qword [rdi]
mov edx, 1
mov rcx, rdi
call qword [rax]
jmp 0x18009a95a
mov ebx, 0x8007000e
mov eax, ebx
mov rbx, qword [rsp + 0x148]
add rsp, 0x120
pop rdi
pop rsi
pop rbp
ret