Function at 0x1400089e0
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 0x140008b70
mov rax, qword [r8 + 8]
cmp qword [r8 + 0x2100], rax
jge 0x140008b70
lea rax, [rsi + 0x1f]
lea r13, [rbx + 0x68]
mov rbp, rax
and rbp, 0xfffffffffffffff0
cmp rbp, 0xfc0
jle 0x140008ba0
add rsi, 0x30
cmp rsi, 0x3f000000
jg 0x140008c18
mov rdx, rsi
mov rcx, r13
call sym.getBigChunk__system_5045
cmp qword [rbx + 0x2910], 0
mov rbp, rax
lea r12, [rbp + 0x20]
je 0x140008cc1
lea rdx, [rbx + 0x2910]
mov r8, r12
mov rcx, r13
mov r14, r12
lea r9, [r12 + rsi]
call sym.add__system_4678
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 0x140008d98
lea r8, [rax*8]
lea r9, [rdx + r8 - 8]
mov r10, qword [r9]
mov rcx, qword [r10]
cmp rcx, 7
ja 0x140008ce8
lea r9, [rdx + r8 - 0x10]
mov r10, qword [r9]
mov rcx, qword [r10]
cmp rcx, 7
ja 0x140008ce8
lea r9, [rdx + r8 - 0x18]
mov r10, qword [r9]
mov rcx, qword [r10]
cmp rcx, 7
ja 0x140008ce8
lea r9, [rdx + r8 - 0x20]
mov r10, qword [r9]
mov rcx, qword [r10]
cmp rcx, 7
ja 0x140008ce8
lea r9, [rdx + r8 - 0x28]
mov r10, qword [r9]
mov rcx, qword [r10]
cmp rcx, 7
ja 0x140008ce8
lea r9, [rdx + r8 - 0x30]
mov r10, qword [r9]
mov rcx, qword [r10]
cmp rcx, 7
ja 0x140008ce8
lea r9, [rdx + r8 - 0x38]
mov r10, qword [r9]
mov rcx, qword [r10]
cmp rcx, 7
ja 0x140008ce8
lea rcx, [rdx + r8 - 0x40]
mov r8, qword [rcx]
mov rdx, qword [r8]
cmp rdx, 7
jbe 0x140008e18
and rdx, 0xfffffffffffffffb
mov qword [r8], rdx
mov qword [rcx], r12
jmp 0x140008cf2
cmp qword [rbx + 0x60], 0
jne 0x140008a18
mov rcx, rbx
call sym.collectCTBody__system_6457
mov rax, qword [rbx + 0x18]
mov edx, 0x1f4
add rax, rax
cmp rax, rdx
cmovl rax, rdx
mov qword [rbx + 0x10], rax
jmp 0x140008a18
sar rax, 4
lea rsi, [rax + 2]
mov rdx, qword [rbx + rsi*8 + 0x68]
test rdx, rdx
je 0x140008d10
mov r12, qword [rdx + 0x20]
test r12, r12
je 0x140008e00
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 0x140008d83
mov rax, qword [rbx + rsi*8 + 0x68]
mov rcx, qword [rdx + 0x10]
cmp rdx, rax
je 0x140008d65
mov rax, qword [rdx + 0x18]
mov qword [rax + 0x10], rcx
test rcx, rcx
je 0x140008c09
mov rax, qword [rdx + 0x18]
mov qword [rcx + 0x18], rax
mov rax, rdx
jmp 0x140008d7b
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 0x140008ef1
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 0x140008c8c
jmp 0x140008dd0
mov rax, qword [rax]
test rax, rax
je 0x140008dd0
cmp r12, qword [rax + 8]
jne 0x140008c80
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 0x140008a65
cmp qword [rbx + 0x2940], 0
lea rax, [rbx + 0x2940]
je 0x140008db0
mov qword [rbx + 0x2910], rax
jmp 0x140008a65
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 sym.getBigChunk__system_5045
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 0x140008d53
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 0x140008d83
mov rdx, qword [rax + 0x10]
mov qword [rbx + rsi*8 + 0x68], rdx
test rdx, rdx
je 0x140008d7b
mov qword [rdx + 0x18], 0
pxor xmm0, xmm0
movups xmmword [rax + 0x10], xmm0
mov rax, qword [rbx + 0x2100]
add rax, rbp
jmp 0x140008a89
mov qword [rdx + rax*8], r12
add qword [rbx + 0x18], 1
jmp 0x140008cf2
movq xmm0, rax
mov qword [rbx + 0x2910], rax
punpcklqdq xmm0, xmm0
movups xmmword [rbx + 0x2940], xmm0
jmp 0x140008a65
mov edx, 0x50
mov rcx, r13
call sym.llAlloc__system_4505
mov rdx, qword [r15 + 0x2110]
mov qword [rax], rdx
mov qword [r15 + 0x2110], rax
mov qword [rax + 8], r12
jmp 0x140008c92
mov rax, qword [rdx + 0x30]
lea r14, [rdx + rax + 0x40]
add rax, rbp
mov qword [rdx + 0x30], rax
mov r12, r14
jmp 0x140008bce
mov rsi, qword [rbx + 0x20]
cmp rax, rsi
jl 0x140008edb
lea rsi, [rsi + rsi*2]
mov ecx, 2
mov edi, dword [0x1400af708]
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 sym.rawAlloc__system_5089
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 sym.memcpy
mov ecx, dword [0x1400af708]
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 sym.rawDealloc__system_5218
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 0x140008cf2
call sym.raiseOutOfMem__system_4220
nop
nop word [rax + rax]