Function at 0x140008d80
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rax, qword [r8 + 0x18]
mov rdi, rcx
mov rsi, rdx
mov rbx, r8
cmp qword [r8 + 0x10], rax
jle 0x140008f10
mov rax, qword [r8 + 8]
cmp qword [r8 + 0x2100], rax
jge 0x140008f10
lea rax, [rsi + 0x1f]
lea r13, [rbx + 0x68]
mov rbp, rax
and rbp, 0xfffffffffffffff0
cmp rbp, 0xfc0
jle 0x140008f40
add rsi, 0x30
cmp rsi, 0x3f000000
jg 0x140008fb8
mov rdx, rsi
mov rcx, r13
call fcn.140003760
cmp qword [rbx + 0x2910], 0
mov rbp, rax
lea r12, [rbp + 0x20]
je 0x140009061
lea rdx, [rbx + 0x2910]
mov r8, r12
mov rcx, r13
mov r14, r12
lea r9, [r12 + rsi]
call fcn.140003cf0
mov rax, qword [rbp + 8]
add rax, qword [rbx + 0x2100]
mov qword [rbx + 0x2100], rax
mov qword [r12 + 8], rdi
mov qword [r12], 4
mov rax, qword [rbx + 0x18]
mov rdx, qword [rbx + 0x28]
cmp rax, 8
jle 0x140009138
lea r8, [rax*8]
lea r9, [rdx + r8 - 8]
mov r10, qword [r9]
mov rcx, qword [r10]
cmp rcx, 7
ja 0x140009088
lea r9, [rdx + r8 - 0x10]
mov r10, qword [r9]
mov rcx, qword [r10]
cmp rcx, 7
ja 0x140009088
lea r9, [rdx + r8 - 0x18]
mov r10, qword [r9]
mov rcx, qword [r10]
cmp rcx, 7
ja 0x140009088
lea r9, [rdx + r8 - 0x20]
mov r10, qword [r9]
mov rcx, qword [r10]
cmp rcx, 7
ja 0x140009088
lea r9, [rdx + r8 - 0x28]
mov r10, qword [r9]
mov rcx, qword [r10]
cmp rcx, 7
ja 0x140009088
lea r9, [rdx + r8 - 0x30]
mov r10, qword [r9]
mov rcx, qword [r10]
cmp rcx, 7
ja 0x140009088
lea r9, [rdx + r8 - 0x38]
mov r10, qword [r9]
mov rcx, qword [r10]
cmp rcx, 7
ja 0x140009088
lea rcx, [rdx + r8 - 0x40]
mov r8, qword [rcx]
mov rdx, qword [r8]
cmp rdx, 7
jbe 0x1400091b8
and rdx, 0xfffffffffffffffb
mov qword [r8], rdx
mov qword [rcx], r12
jmp 0x140009092
cmp qword [rbx + 0x60], 0
jne 0x140008db8
mov rcx, rbx
call fcn.140008a10
mov rax, qword [rbx + 0x18]
mov edx, 0x1f4
add rax, rax
cmp rax, rdx
cmovl rax, rdx
mov qword [rbx + 0x10], rax
jmp 0x140008db8
sar rax, 4
lea rsi, [rax + 2]
mov rdx, qword [rbx + rsi*8 + 0x68]
test rdx, rdx
je 0x1400090b0
mov r12, qword [rdx + 0x20]
test r12, r12
je 0x1400091a0
mov rax, qword [r12]
mov r14, r12
mov qword [rdx + 0x20], rax
mov rax, qword [rdx + 0x28]
sub rax, rbp
mov qword [rdx + 0x28], rax
cmp rbp, rax
jle 0x140009123
mov rax, qword [rbx + rsi*8 + 0x68]
mov rcx, qword [rdx + 0x10]
cmp rdx, rax
je 0x140009105
mov rax, qword [rdx + 0x18]
mov qword [rax + 0x10], rcx
test rcx, rcx
je 0x140008fa9
mov rax, qword [rdx + 0x18]
mov qword [rcx + 0x18], rax
mov rax, rdx
jmp 0x14000911b
mov r9d, 4
mov r8d, 0x3000
mov rdx, rsi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbp, rax
test rax, rax
je 0x140009291
mov r12, rax
pxor xmm0, xmm0
add qword [rbx + 0x20e8], rsi
mov r14, rax
sar r12, 0x15
mov qword [rax + 8], rsi
sar r14, 0xc
mov qword [rax], 1
movups xmmword [rax + 0x10], xmm0
movzx eax, r12b
lea r15, [rbx + rax*8]
mov rax, qword [r15 + 0x2110]
test rax, rax
jne 0x14000902c
jmp 0x140009170
mov rax, qword [rax]
test rax, rax
je 0x140009170
cmp r12, qword [rax + 8]
jne 0x140009020
mov rcx, r14
mov edx, 1
lea r12, [rbp + 0x20]
and ecx, 0x1ff
mov r8, rcx
shl rdx, cl
sar r8, 6
or qword [rax + r8*8 + 0x10], rdx
cmp qword [rbx + 0x2910], 0
jne 0x140008e05
cmp qword [rbx + 0x2940], 0
lea rax, [rbx + 0x2940]
je 0x140009150
mov qword [rbx + 0x2910], rax
jmp 0x140008e05
and rcx, 0xfffffffffffffffb
mov qword [r10], rcx
mov qword [r9], r12
lea rax, [r14 + 0x10]
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, 0x1000
mov rcx, r13
call fcn.140003760
mov edx, 0xfc0
pxor xmm0, xmm0
sub rdx, rbp
movups xmmword [rax + 0x10], xmm0
mov qword [rax + 0x20], 0
mov qword [rax + 8], rbp
mov qword [rax + 0x30], rbp
mov qword [rax + 0x28], rdx
mov rdx, qword [rbx + rsi*8 + 0x68]
mov qword [rax + 0x10], rdx
test rdx, rdx
je 0x1400090f3
mov qword [rdx + 0x18], rax
lea r12, [rax + 0x40]
mov qword [rbx + rsi*8 + 0x68], rax
mov r14, r12
cmp rbp, qword [rax + 0x28]
jle 0x140009123
mov rdx, qword [rax + 0x10]
mov qword [rbx + rsi*8 + 0x68], rdx
test rdx, rdx
je 0x14000911b
mov qword [rdx + 0x18], 0
pxor xmm0, xmm0
movups xmmword [rax + 0x10], xmm0
mov rax, qword [rbx + 0x2100]
add rax, rbp
jmp 0x140008e29
mov qword [rdx + rax*8], r12
add qword [rbx + 0x18], 1
jmp 0x140009092
movq xmm0, rax
mov qword [rbx + 0x2910], rax
punpcklqdq xmm0, xmm0
movups xmmword [rbx + 0x2940], xmm0
jmp 0x140008e05
mov edx, 0x50
mov rcx, r13
call fcn.140002e90
mov rdx, qword [r15 + 0x2110]
mov qword [rax], rdx
mov qword [r15 + 0x2110], rax
mov qword [rax + 8], r12
jmp 0x140009032
mov rax, qword [rdx + 0x30]
lea r14, [rdx + rax + 0x40]
add rax, rbp
mov qword [rdx + 0x30], rax
mov r12, r14
jmp 0x140008f6e
mov rsi, qword [rbx + 0x20]
cmp rax, rsi
jl 0x14000927b
lea rsi, [rsi + rsi*2]
mov ecx, 2
mov edi, dword [0x1400b8628]
mov r15, qword [sym.imp.KERNEL32.dll_GetLastError]
mov rax, rsi
cqo
idiv rcx
mov rsi, rax
mov qword [rbx + 0x20], rax
call r15
mov r13, qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, edi
mov ebp, eax
call r13
mov ecx, ebp
mov rbp, qword [sym.imp.KERNEL32.dll_SetLastError]
mov rdi, rax
call rbp
lea rdx, [rsi*8 + 0x10]
lea rcx, [rdi + 0xa0]
call fcn.140003e30
mov qword [rax + 8], 1
mov rsi, rax
mov rax, qword [rbx + 0x18]
mov rdx, qword [rbx + 0x28]
add rsi, 0x10
lea r8, [rax*8]
mov rcx, rsi
call sub.msvcrt.dll_memcpy
mov ecx, dword [0x1400b8628]
mov rdi, qword [rbx + 0x28]
mov dword [rsp + 0x2c], ecx
call r15
mov ecx, dword [rsp + 0x2c]
mov r15d, eax
call r13
mov ecx, r15d
mov r13, rax
call rbp
lea rdx, [rdi - 0x10]
lea rcx, [r13 + 0xa0]
call fcn.140005230
mov qword [rbx + 0x28], rsi
mov rdx, qword [rbx + 0x18]
mov rax, qword [rbx + 0x28]
mov qword [rax + rdx*8], r12
add qword [rbx + 0x18], 1
jmp 0x140009092
call fcn.140002e50
nop
nop word [rax + rax]