Function at 0x1801189a0
Capabilities:
Get thread local storage value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x100
mov rax, qword [r9]
mov rbx, r8
mov r14, rdx
mov rbp, rcx
lea r8, [rsp + 0x20]
mov edx, 0xa
mov rcx, r9
mov rsi, r9
call qword [rax + 0x60]
test al, al
je 0x180118efb
mov rdi, qword [rsp + 0x180]
mov eax, dword [rsp + 0x60]
cmp dword [rdi + 0x40], eax
jb 0x180118a00
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
call fcn.180119300
test al, al
je 0x180118a00
mov rsi, rdi
jmp 0x180118a3b
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call fcn.180119300
test al, al
je 0x180118a1f
mov rbx, rsi
lea rsi, [rsp + 0x20]
jmp 0x180118a3b
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
call fcn.180119300
test al, al
je 0x180118efb
mov rsi, rdi
mov eax, dword [rsi + 0x38]
mov rcx, qword [rsp + 0x150]
mov qword [rsp + 0x130], r12
mov qword [rsp + 0x138], r13
mov dword [rdi + 0x38], eax
mov eax, dword [rsi + 0x3c]
mov qword [rsp + 0x140], r15
xor r12b, r12b
xor r15d, r15d
mov dword [rdi + 0x3c], eax
lea r13, [0x180043550]
test rcx, rcx
je 0x180118b11
mov rax, qword [rcx]
lea r8, [rsp + 0x90]
lea edx, [r15 + 0xa]
call qword [rax + 0x60]
test al, al
jne 0x180118a9d
mov eax, 0x80004005
jmp 0x180118ed5
mov eax, dword [rsp + 0xc8]
cmp dword [rsi + 0x38], eax
jae 0x180118aaf
mov dword [rdi + 0x38], eax
mov r12b, 1
mov eax, dword [rsp + 0xcc]
cmp dword [rsi + 0x3c], eax
jae 0x180118b0c
mov dword [rdi + 0x3c], eax
cmp byte [rsp + 0x160], r15b
jne 0x180118af2
mov ecx, dword [rdi + 4]
mov edx, dword [rsp + 0x24]
lea r8, [rdi + 4]
call fcn.180119f20
test eax, eax
js 0x180118ed5
mov rax, qword [rdi + 0x30]
or rax, qword [rsp + 0x50]
and eax, 0x20000200
mov qword [rdi + 0x30], rax
mov edx, dword [rdi + 4]
mov rcx, rbp
call fcn.180117660
test rax, rax
jne 0x180118b40
mov eax, 0x8007000e
jmp 0x180118ed5
test r12b, r12b
jne 0x180118abe
mov eax, dword [rsp + 0x24]
cmp dword [rdi + 4], eax
jne 0x180118abe
mov rax, qword [rdi + 0x30]
mov ecx, 0xa0000200
xor rax, qword [rsp + 0x50]
test rcx, rax
jne 0x180118abe
mov eax, dword [rsi + 4]
mov dword [rdi + 4], eax
mov rax, qword [rsi + 0x30]
mov qword [rdi + 0x30], rax
jmp 0x180118cd6
mov r12d, dword [rdi + 0x3c]
mov esi, dword [rdi + 0x38]
mov r13, qword [rdi + 0x30]
cmp rax, qword [rbp + 0xe0]
jne 0x180118b8e
test r13, r13
jne 0x180118b8e
mov rbx, qword [rbp + 0x398]
test rbx, rbx
je 0x180118b74
cmp esi, 1
jne 0x180118b74
cmp r12d, 4
je 0x180118cbb
mov rbx, qword [rbp + 0x3a0]
test rbx, rbx
je 0x180118b8e
cmp esi, 4
jne 0x180118b8e
cmp r12d, esi
je 0x180118cbb
mov r8, r13
mov r9, rax
mov rdx, r14
and r8, 0xfffffffffffff3ff
mov rcx, rbp
call fcn.180117880
mov rbx, rax
test rax, rax
je 0x180118cb1
cmp esi, 1
ja 0x180118bc1
cmp r12d, 1
jbe 0x180118cbb
cmp esi, 1
jne 0x180118c28
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x180118bd5
mov rax, r15
jmp 0x180118bdb
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 0x180118cb1
lea rcx, [0x180043550]
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], r15
mov qword [rax + 0x20], r15
mov dword [rax + 0x28], 0xffffffff
mov qword [rax + 0x30], r15
mov qword [rax], rcx
mov dword [rax + 0x38], r15d
mov dword [rax + 0x3c], r15d
mov dword [rax + 8], 9
jmp 0x180118c84
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x180118c37
mov rax, r15
jmp 0x180118c3d
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 0x180118cb1
lea rcx, [0x1800434e0]
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], r15
mov qword [rax + 0x20], r15
mov dword [rax + 0x28], 0xffffffff
mov dword [rax + 8], 8
mov qword [rax], rcx
mov qword [rax + 0x30], r15
mov dword [rax + 0x38], r15d
mov dword [rax + 0x3c], r15d
and r13d, 0xc00
mov qword [rax + 0x30], rbx
mov dword [rax + 0x38], esi
mov dword [rax + 0x3c], r12d
je 0x180118cca
mov r9, rax
mov r8, r13
mov rdx, r14
mov rcx, rbp
call fcn.180117880
mov rbx, rax
test rax, rax
jne 0x180118cbb
mov byte [rbp + 0x468], 1
mov rbx, r15
test rbx, rbx
jne 0x180118ccf
mov eax, 0x8007000e
jmp 0x180118ed5
mov rbx, rax
jmp 0x180118cbb
lea r13, [0x180043550]
mov rax, qword [rsp + 0x168]
mov edx, dword [rsp + 0x158]
mov qword [rax], rbx
mov rax, qword [rsp + 0x170]
mov qword [rax], rbx
cmp edx, 0xf
je 0x180118ea7
mov rcx, rbp
call fcn.180117660
test rax, rax
jne 0x180118d13
mov eax, 0x8007000e
jmp 0x180118ed5
mov r12d, dword [rdi + 0x3c]
mov esi, dword [rdi + 0x38]
mov rdi, qword [rdi + 0x30]
bts rdi, 9
cmp rax, qword [rbp + 0xe0]
jne 0x180118d66
test rdi, rdi
jne 0x180118d66
mov rbx, qword [rbp + 0x398]
test rbx, rbx
je 0x180118d4c
cmp esi, 1
jne 0x180118d4c
cmp r12d, 4
je 0x180118e8b
mov rbx, qword [rbp + 0x3a0]
test rbx, rbx
je 0x180118d66
cmp esi, 4
jne 0x180118d66
cmp r12d, esi
je 0x180118e8b
mov r8, rdi
mov r9, rax
mov rdx, r14
and r8, 0xfffffffffffff3ff
mov rcx, rbp
call fcn.180117880
mov rbx, rax
test rax, rax
je 0x180118e81
cmp esi, 1
ja 0x180118d99
cmp r12d, 1
jbe 0x180118e8b
cmp esi, 1
jne 0x180118df9
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x180118dad
mov rax, r15
jmp 0x180118db3
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 0x180118e81
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], r15
mov qword [rax + 0x20], r15
mov dword [rax + 0x28], 0xffffffff
mov qword [rax + 0x30], r15
mov dword [rax + 0x38], r15d
mov dword [rax + 0x3c], r15d
mov qword [rax], r13
mov dword [rax + 8], 9
jmp 0x180118e55
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x180118e08
mov rax, r15
jmp 0x180118e0e
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 0x180118e81
lea rcx, [0x1800434e0]
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], r15
mov qword [rax + 0x20], r15
mov dword [rax + 0x28], 0xffffffff
mov dword [rax + 8], 8
mov qword [rax], rcx
mov qword [rax + 0x30], r15
mov dword [rax + 0x38], r15d
mov dword [rax + 0x3c], r15d
and edi, 0xc00
mov qword [rax + 0x30], rbx
mov dword [rax + 0x38], esi
mov dword [rax + 0x3c], r12d
je 0x180118ea2
mov r9, rax
mov r8, rdi
mov rdx, r14
mov rcx, rbp
call fcn.180117880
mov rbx, rax
test rax, rax
jne 0x180118e8b
mov byte [rbp + 0x468], 1
mov rbx, r15
mov rax, qword [rsp + 0x178]
mov qword [rax], rbx
test rbx, rbx
jne 0x180118ed2
mov eax, 0x8007000e
jmp 0x180118ed5
mov rbx, rax
jmp 0x180118e8b
mov r9, rbx
mov r8d, 0x200
mov rdx, r14
mov rcx, rbp
call fcn.180117880
mov rcx, qword [rsp + 0x178]
mov qword [rcx], rax
test rax, rax
jne 0x180118ed2
mov eax, 0x8007000e
jmp 0x180118ed5
mov eax, r15d
mov r13, qword [rsp + 0x138]
mov r12, qword [rsp + 0x130]
mov r15, qword [rsp + 0x140]
add rsp, 0x100
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov eax, 0x80004005
add rsp, 0x100
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret