Function at 0x1800b7590
Capabilities:
Get thread local storage value

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rdi
push r12
push r14
sub rsp, 0x40
mov r12, rcx
mov ecx, 0x80
mov r14d, r9d
mov ebp, r8d
mov rdi, rdx
call fcn.180197940
mov rbx, rax
test rax, rax
je 0x1800b7991
movzx r10d, byte [rsp + 0x90]
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x38], r13
xor r13d, r13d
mov qword [rsp + 0x30], r15
mov qword [rax], 0xffffffffffffffff
mov qword [rax + 8], 0xffffffffffffffff
mov dword [rax + 0x30], 0xffffffff
mov qword [rax + 0x48], 0xffffffffffffffff
mov dword [rax + 0x10], r13d
mov dword [rax + 0x20], r13d
mov dword [rax + 0x78], r13d
mov qword [rax + 0x18], r13
mov word [rax + 0x7c], r13w
mov qword [rax + 0x28], r13
mov word [rax + 0x7e], r13w
mov dword [rax + 0x38], r13d
mov dword [rax + 0x3c], r13d
mov dword [rax + 0x40], r13d
mov dword [rax + 0x50], r13d
mov dword [rax + 0x68], r13d
mov qword [rax + 0x70], r13
mov r15d, r13d
test r14d, r14d
je 0x1800b7683
mov r8, r13
mov rdx, rdi
mov r9, r14
test r10b, r10b
je 0x1800b7656
cmp dword [rdx], 0xffffffff
je 0x1800b7675
inc r15d
jmp 0x1800b7675
mov rax, qword [r12 + 0x19550]
mov rcx, qword [rax + 0x28]
mov rax, qword [rcx + r8]
mov ecx, dword [rax + 0xcc]
cmp dword [rdi + rcx*4], 0xffffffff
je 0x1800b7675
inc r15d
add rdx, 4
add r8, 8
sub r9, 1
jne 0x1800b7647
mov rax, qword [r12 + 0x19550]
mov r9d, r15d
mov r8d, r15d
mov edx, dword [rax + 0x78]
mov eax, 1
mov rcx, rbx
and edx, 0xfff00000
test r10b, r10b
mov byte [rsp + 0x20], r13b
cmovne r9d, eax
or edx, r15d
imul r8d, ebp
call fcn.180193d40
mov esi, eax
test eax, eax
js 0x1800b78d8
mov rcx, qword [r12 + 0x19550]
mov eax, dword [rcx + 0x68]
mov dword [rbx + 0x68], eax
mov rax, qword [rcx + 0x70]
mov qword [rbx + 0x70], rax
mov al, byte [rsp + 0x90]
test al, al
je 0x1800b76f2
cmp r15d, 1
jne 0x1800b76f2
mov dword [rbx + 0x78], 0x20400001
test ebp, ebp
je 0x1800b780a
mov ecx, dword [rsp + 0x80]
xor ebp, ebp
xor r10d, r10d
test r14d, r14d
je 0x1800b77fe
mov rdx, qword [rsp + 0x78]
xor edi, edi
xor r11d, r11d
mov rsi, rdx
nop dword [rax]
test al, al
je 0x1800b776c
cmp dword [rsi], 0xffffffff
je 0x1800b77e3
mov rax, qword [r12 + 0x19550]
mov rcx, qword [rbx + 0x18]
mov edx, r13d
imul edx, r15d
mov r8, qword [rax + 0x18]
add edx, ebp
mov r9d, r13d
inc ebp
imul r9d, r14d
add r9d, r10d
add rdi, 8
mov rax, qword [r8 + r9*8]
mov qword [rcx + rdx*8], rax
mov al, byte [rsp + 0x90]
mov rdx, qword [rsp + 0x78]
jmp 0x1800b77e3
mov r8, qword [r12 + 0x19550]
mov rax, qword [r8 + 0x28]
mov rcx, qword [rax + r11]
mov eax, dword [rcx + 0xcc]
cmp dword [rdx + rax*4], 0xffffffff
je 0x1800b77dc
mov r8, qword [r8 + 0x18]
mov rcx, qword [rbx + 0x18]
mov eax, r13d
imul eax, r14d
mov edx, r13d
add eax, r10d
mov rax, qword [r8 + rax*8]
imul edx, r15d
add edx, ebp
mov qword [rcx + rdx*8], rax
test r13d, r13d
jne 0x1800b77c8
mov rax, qword [r12 + 0x19550]
mov rcx, qword [rbx + 0x28]
mov rax, qword [rax + 0x28]
mov rax, qword [r11 + rax]
mov qword [rdi + rcx], rax
mov al, byte [rsp + 0x90]
mov rdx, qword [rsp + 0x78]
inc ebp
add rdi, 8
jmp 0x1800b77e3
mov al, byte [rsp + 0x90]
inc r10d
add rsi, 4
add r11, 8
cmp r10d, r14d
jb 0x1800b7720
mov ecx, dword [rsp + 0x80]
inc r13d
cmp r13d, ecx
jb 0x1800b7701
test al, al
je 0x1800b786f
mov rax, qword [r12 + 0x19550]
xor r13d, r13d
mov dword [rsp + 0x28], 0x11
mov rcx, qword [rax + 0x28]
mov dword [rsp + 0x20], r13d
mov rdi, qword [rcx]
mov rcx, qword [r12 + 0xd078]
mov r9d, dword [rcx + 0x18]
lea eax, [r9 + 1]
mov dword [rcx + 0x18], eax
mov r8, qword [r12 + 0xd078]
mov rdx, qword [rbx + 0x28]
mov rcx, r12
call fcn.18019f030
mov esi, eax
test eax, eax
js 0x1800b78d8
mov rax, qword [rbx + 0x28]
mov rcx, qword [rax]
mov eax, dword [rdi + 0xa4]
mov dword [rcx + 0xa4], eax
jmp 0x1800b7872
xor r13d, r13d
mov eax, dword [r12 + 0x14]
mov dword [rbx + 0x30], eax
mov rax, qword [r12 + 0x20]
mov qword [rbx + 8], rax
mov rax, qword [r12 + 0x20]
test rax, rax
je 0x1800b7892
mov qword [rax], rbx
jmp 0x1800b7897
mov qword [r12 + 0x18], rbx
mov rcx, qword [rsp + 0x98]
mov qword [rbx], r13
mov qword [r12 + 0x20], rbx
inc dword [r12 + 0x14]
or dword [r12 + 0x28], 4
test rcx, rcx
je 0x1800b78ba
mov qword [rcx], rbx
mov eax, r13d
mov r13, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x70]
mov r15, qword [rsp + 0x30]
add rsp, 0x40
pop r14
pop r12
pop rdi
pop rbp
pop rbx
ret
cmp word [rbx + 0x7c], 0
je 0x1800b792d
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1800b78ee
mov rax, r13
jmp 0x1800b78f4
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rbx + 0x7c]
cmp ecx, dword [rax + 0x250]
ja 0x1800b7924
mov r8, qword [rbx + 0x18]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x1800b7924
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rbx + 0x7c], r13w
mov qword [rbx + 0x18], r13
cmp word [rbx + 0x7e], 0
je 0x1800b7982
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1800b7943
mov rax, r13
jmp 0x1800b7949
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rbx + 0x7e]
cmp ecx, dword [rax + 0x250]
ja 0x1800b7979
mov r8, qword [rbx + 0x28]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x1800b7979
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rbx + 0x7e], r13w
mov qword [rbx + 0x28], r13
mov rcx, rbx
call fcn.1801979c0
mov eax, esi
jmp 0x1800b78bd
mov eax, 0x8007000e
add rsp, 0x40
pop r14
pop r12
pop rdi
pop rbp
pop rbx
ret