Function at 0x140027db0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rdi
sub rsp, 0x20
cmp dword [reloc.WS2_32.dll_closesocket], 0
mov rdi, rcx
jne 0x1400251aa
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rsi
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x140577180]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, ebx
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rbx, qword [rsp + 0x30]
test rsi, rsi
jne 0x14002511d
xor edx, edx
jmp 0x140025121
lea rdx, [rsi + 8]
mov rsi, qword [rsp + 0x38]
cmp rdi, 0x1000
ja 0x1400251a7
test rdx, rdx
je 0x1400251a7
mov r8, qword [rdx + 0x338]
lea rcx, [0x140000000]
lea rax, [rdi + 7]
shr rax, 3
movzx r9d, byte [rax + rcx + 0x370080]
mov rcx, qword [rcx + r9*8 + 0x36f940]
add r8, rcx
cmp r8, qword [rdx + 0x340]
jae 0x1400251a7
add r9, 0x24
lea rax, [r9 + r9*2]
mov r10, qword [rdx + rax*8]
lea rcx, [rdx + rax*8]
lea rax, [r10 + 8]
mov r9, qword [r10]
cmp r10w, word [rcx + 0x10]
jne 0x140025190
cmp r10w, word [rcx + 0x14]
je 0x1400251a7
mov word [rcx + 0x10], ax
mov qword [rcx], rax
mov rax, r9
mov qword [rdx + 0x338], r8
inc qword [rcx + 8]
add rsp, 0x20
pop rdi
ret
mov rcx, rdi
add rsp, 0x20
pop rdi
jmp 0x140027db0
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xa20]
sub rsp, 0xb20
mov rax, qword [0x14035e2b0]
xor rax, rsp
mov qword [rbp + 0xa18], rax
cmp dword [reloc.WS2_32.dll_closesocket], 0
mov r14, rcx
je 0x140027e0f
call fcn.140028800
test al, al
je 0x140027e0f
mov ecx, ntohs
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor ebx, ebx
jmp 0x1400287a2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x140577180]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, ebx
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor ebx, ebx
lea r15d, [rbx + 1]
test rdi, rdi
jne 0x1400280e4
mov ecx, 0xa50
call fcn.1400306e0
mov rdi, rax
test rax, rax
je 0x1400287d5
xorps xmm0, xmm0
mov byte [rax], bl
xor eax, eax
mov word [rbp - 0x50], bx
xor edx, edx
mov dword [rbp + 0x72], eax
mov r8d, 0xb0
mov word [rbp + 0x76], ax
lea rcx, [rbp + 0xb0]
mov qword [rbp + 0x80], rax
mov byte [rbp + 0x88], al
mov qword [rbp - 0x48], rbx
mov qword [rbp - 0x40], rbx
mov qword [rbp - 0x38], rbx
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x28], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], rbx
mov qword [rbp - 0x10], rbx
mov qword [rbp - 8], rbx
mov qword [rbp], rbx
mov qword [rbp + 8], rbx
mov qword [rbp + 0x10], rbx
mov qword [rbp + 0x18], rbx
mov qword [rbp + 0x20], rbx
mov qword [rbp + 0x28], rbx
mov qword [rbp + 0x30], rbx
mov qword [rbp + 0x38], rbx
mov qword [rbp + 0x40], rbx
mov dword [rbp + 0x48], 0x3e8
mov dword [rbp + 0x4c], 0x3e8
mov word [rbp + 0x50], 0xffff
movups xmmword [rbp + 0x52], xmm0
mov qword [rbp + 0x78], rbx
movups xmmword [rbp + 0x62], xmm0
mov qword [rbp + 0x90], rbx
mov qword [rbp + 0x98], rbx
mov qword [rbp + 0xa0], rbx
mov qword [rbp + 0xa8], rbx
call fcn.1401e1b90
mov qword [rbp + 0x160], r15
mov qword [rbp + 0x168], rbx
mov qword [rbp + 0x170], r15
mov qword [rbp + 0x178], rbx
mov qword [rbp + 0x180], r15
mov qword [rbp + 0x188], rbx
mov qword [rbp + 0x190], r15
mov qword [rbp + 0x198], rbx
mov qword [rbp + 0x1a0], r15
mov qword [rbp + 0x1a8], rbx
mov qword [rbp + 0x1b0], r15
mov qword [rbp + 0x1b8], rbx
mov qword [rbp + 0x1c0], r15
mov qword [rbp + 0x1c8], rbx
mov qword [rbp + 0x1d0], r15
mov qword [rbp + 0x1d8], rbx
mov qword [rbp + 0x1e0], r15
mov qword [rbp + 0x1e8], rbx
mov qword [rbp + 0x1f0], r15
mov qword [rbp + 0x1f8], rbx
mov qword [rbp + 0x200], r15
mov qword [rbp + 0x208], rbx
mov qword [rbp + 0x210], r15
mov qword [rbp + 0x218], rbx
mov qword [rbp + 0x220], r15
mov qword [rbp + 0x228], rbx
mov qword [rbp + 0x230], r15
mov qword [rbp + 0x238], rbx
mov qword [rbp + 0x240], r15
mov qword [rbp + 0x248], rbx
mov qword [rbp + 0x250], r15
mov qword [rbp + 0x258], rbx
mov qword [rbp + 0x260], r15
mov qword [rbp + 0x268], rbx
mov qword [rbp + 0x270], r15
mov qword [rbp + 0x278], rbx
mov qword [rbp + 0x280], r15
mov qword [rbp + 0x288], rbx
mov qword [rbp + 0x290], r15
mov qword [rbp + 0x298], rbx
mov qword [rbp + 0x2a0], r15
xor eax, eax
mov qword [rbp + 0x2a8], rbx
xor edx, edx
mov dword [rbp + 0x2e1], eax
mov r8d, 0x6d8
mov word [rbp + 0x2e5], ax
lea rcx, [rbp + 0x310]
mov byte [rbp + 0x2e7], al
mov qword [rbp + 0x2b0], r15
mov qword [rbp + 0x2b8], rbx
mov qword [rbp + 0x2c0], r15
mov qword [rbp + 0x2c8], rbx
mov qword [rbp + 0x2d0], r15
mov qword [rbp + 0x2d8], rbx
mov byte [rbp + 0x2e0], 6
mov qword [rbp + 0x2e8], rbx
mov qword [rbp + 0x2f0], rbx
mov qword [rbp + 0x2f8], rbx
mov qword [rbp + 0x300], rbx
mov qword [rbp + 0x308], rbx
call fcn.1401e1b90
lea rcx, [rdi + 8]
mov qword [rbp + 0x9e8], rbx
lea rdx, [rbp - 0x50]
mov byte [rbp + 0x9f0], bl
mov r8d, 0xa48
call fcn.1401e14e0
mov ecx, dword [0x140577180]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x1400287e7
add rdi, 8
cmp byte [rdi + 0x330], bl
je 0x140028109
xor edx, edx
mov rcx, rdi
call fcn.140030d00
mov rdi, rax
cmp byte [rax + 0x330], bl
jne 0x14002841f
lea rsi, [0x140000000]
movabs rax, 0x7000000000000000
cmp r14, 0x1000
ja 0x140028136
lea rax, [r14 + 7]
shr rax, 3
movzx r13d, byte [rax + rsi + 0x370080]
jmp 0x140028196
cmp r14, rax
jbe 0x140028143
mov r13d, 0xe8
jmp 0x140028196
lea rax, [r14*2 - 1]
test rax, rax
je 0x1400287f9
bsr rdx, rax
mov ecx, ebx
cmp edx, 6
lea eax, [rdx - 6]
cmovae ecx, eax
lea r8d, [rcx*4]
mov ecx, 4
cmp edx, 7
jb 0x140028178
lea ecx, [rdx - 3]
mov rdx, 0xffffffffffffffff
lea rax, [r14 - 1]
shl rdx, cl
lea r13d, [r8 + 1]
and rdx, rax
shr rdx, cl
and edx, 3
add r13d, edx
cmp r13d, 0xe8
jae 0x14002840f
mov r12d, r13d
lea rcx, [rdi + 0x358]
mov rax, qword [rsi + r12*8 + 0x36f940]
mov qword [rsp + 0x40], rax
test rcx, rcx
je 0x140028390
cmp r14, 0x3800
ja 0x14002829d
lea rax, [r12 + r12*2]
lea r15, [rcx + rax*8]
mov rcx, qword [rcx + rax*8 + 8]
lea rax, [rcx + 8]
mov rsi, qword [rcx]
cmp cx, word [r15 + 0x18]
je 0x1400281f8
mov qword [r15 + 8], rax
inc qword [r15 + 0x10]
jmp 0x1400283a7
cmp cx, word [r15 + 0x1c]
je 0x140028211
mov qword [r15 + 8], rax
mov word [r15 + 0x18], ax
inc qword [r15 + 0x10]
jmp 0x1400283a7
xor edx, edx
mov rcx, rdi
call fcn.140020d20
mov qword [rsp + 0x38], rax
mov rcx, rax
test rax, rax
jne 0x140028230
mov rsi, rbx
jmp 0x1400283a7
mov rax, qword [0x140376270]
mov r9d, r13d
cmp word [rax + r12*2], bx
jne 0x140028249
mov rdx, rcx
jmp 0x140028395
lea r8, [r15 + 8]
mov byte [rsp + 0x20], 1
lea rdx, [rdi + 0x358]
mov rcx, rdi
call fcn.14005dcc0
mov rdx, qword [rsp + 0x38]
lea rax, [rsp + 0x31]
mov qword [rsp + 0x28], rax
lea r9, [r15 + 8]
lea r8, [rdi + 0x358]
mov dword [rsp + 0x20], r13d
mov rcx, rdi
call fcn.14005cc80
mov rsi, rax
cmp byte [rsp + 0x31], bl
jne 0x1400281ef
mov rsi, rbx
jmp 0x1400283a7
cmp r14, qword [0x140376258]
ja 0x140028390
lea rax, [r12 + r12*2]
lea r12, [rcx + rax*8]
mov rcx, qword [rcx + rax*8 + 8]
lea rax, [rcx + 8]
mov rsi, qword [rcx]
cmp cx, word [r12 + 0x18]
je 0x1400282d5
mov qword [r12 + 8], rax
inc qword [r12 + 0x10]
jmp 0x1400283a7
cmp cx, word [r12 + 0x1c]
je 0x1400282f2
mov qword [r12 + 8], rax
mov word [r12 + 0x18], ax
inc qword [r12 + 0x10]
jmp 0x1400283a7
xor edx, edx
mov rcx, rdi
call fcn.140020d20
mov qword [rsp + 0x38], rax
test rax, rax
jne 0x14002830e
mov rsi, rbx
jmp 0x1400283a7
mov r9d, r13d
mov byte [rsp + 0x20], bl
lea r8, [r12 + 8]
mov rcx, rdi
lea rdx, [rdi + 0x358]
call fcn.14005dcc0
movabs rax, 0x7000000000000000
cmp r14, rax
jbe 0x14002833d
mov r8, rbx
jmp 0x140028373
lea rax, [r14*2 - 1]
test rax, rax
je 0x1400287f9
bsr rcx, rax
cmp rcx, 7
jae 0x14002835f
mov ecx, 4
jmp 0x140028363
add rcx, 0xfffffffffffffffd
shl r15, cl
dec r15
lea r8, [r15 + r14]
not r15
and r8, r15
mov rdx, qword [rsp + 0x38]
xor r9d, r9d
mov rcx, rdi
call fcn.14005c180
mov rsi, rax
test rax, rax
jne 0x1400283a7
mov rsi, rbx
jmp 0x1400283a7
mov r9d, r13d
xor edx, edx
mov r8, r14
mov byte [rsp + 0x20], bl
mov rcx, rdi
call fcn.140059560
mov rsi, rax
test rsi, rsi
je 0x14002840f
mov r9, qword [rsp + 0x40]
lea r8, [rdi + 0x338]
mov byte [rsp + 0x50], 1
lea rcx, [rdi + 8]
mov qword [rsp + 0x60], rcx
lea rcx, [rdi + 0x10]
mov qword [rsp + 0x68], rcx
lea rcx, [rdi + 0x340]
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x58], r8
mov rdx, qword [r8]
lea rax, [r9 + rdx]
mov qword [r8], rax
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax]
sub rcx, rdx
cmp r9, rcx
jb 0x140028407
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.140063e40
mov rbx, rsi
jmp 0x1400287a2
mov ecx, ntohs
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x1400287a2
cmp byte [0x1403671c9], bl
lea rsi, [0x140000000]
setne byte [rsp + 0x30]
cmp r14, 0x1000
ja 0x14002844d
lea rax, [r14 + 7]
shr rax, 3
movzx r12d, byte [rax + rsi + 0x370080]
jmp 0x140028458
mov rcx, r14
call fcn.14002b460
mov r12d, eax
mov dword [rsp + 0x40], r12d
cmp r12d, 0xe8
jae 0x140028772
lea r8, [rsi + 0x36f940]
mov eax, r12d
lea r8, [r8 + rax*8]
mov rcx, qword [r8]
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x38], r8
cmp byte [rdi + 1], bl
jle 0x14002851c
movzx r8d, r15b
mov edx, ebx
mov rcx, rdi
call fcn.1400213e0
mov rdx, rax
mov r13, rbx
test rax, rax
jne 0x1400284b3
cmp ebx, dword [0x1405771f4]
jae 0x140028772
mov r8, qword [rsp + 0x38]
mov eax, r12d
test r13, r13
je 0x1400286dc
cmp r14, 0x3800
ja 0x1400285ca
lea rax, [rax + rax*2]
lea r15, [rax*8]
add r15, r13
mov rcx, qword [r15 + 8]
lea rax, [rcx + 8]
mov rsi, qword [rcx]
cmp cx, word [r15 + 0x18]
je 0x14002852f
mov qword [r15 + 8], rax
movzx r13d, byte [rsp + 0x30]
test r13b, r13b
je 0x140028513
mov r8, qword [rsp + 0x38]
xor edx, edx
mov rcx, rsi
mov r8, qword [r8]
call fcn.1401e1b90
inc qword [r15 + 0x10]
jmp 0x1400286f8
mov r13, rbx
cmp byte [rdi], bl
je 0x14002852a
lea r13, [rdi + 0x358]
mov rdx, rbx
jmp 0x1400284bb
cmp cx, word [r15 + 0x1c]
je 0x140028541
mov qword [r15 + 8], rax
mov word [r15 + 0x18], ax
jmp 0x1400284f6
mov rcx, rdi
call fcn.140020d20
mov rsi, rax
test rax, rax
jne 0x14002855f
movzx r13d, byte [rsp + 0x30]
mov rsi, rbx
jmp 0x1400286f8
mov rax, qword [0x140376270]
mov r9d, r12d
mov ecx, r12d
cmp word [rax + rcx*2], bx
mov rcx, rdi
jne 0x14002857d
mov rdx, rsi
jmp 0x1400286e2
lea r8, [r15 + 8]
mov byte [rsp + 0x20], 1
mov rdx, r13
call fcn.14005dcc0
lea rax, [rsp + 0x32]
mov r8, r13
mov qword [rsp + 0x28], rax
lea r9, [r15 + 8]
mov rdx, rsi
mov dword [rsp + 0x20], r12d
mov rcx, rdi
call fcn.14005cc80
mov rsi, rax
cmp byte [rsp + 0x32], bl
jne 0x1400284f6
movzx r13d, byte [rsp + 0x30]
mov rsi, rbx
jmp 0x1400286f8
cmp r14, qword [0x140376258]
ja 0x1400286dc
lea rax, [rax + rax*2]
lea r12, [rax*8]
add r12, r13
mov rcx, qword [r12 + 8]
lea rax, [rcx + 8]
mov rsi, qword [rcx]
cmp cx, word [r12 + 0x18]
je 0x140028601
mov qword [r12 + 8], rax
jmp 0x140028614
cmp cx, word [r12 + 0x1c]
je 0x140028636
mov qword [r12 + 8], rax
mov word [r12 + 0x18], ax
movzx r13d, byte [rsp + 0x30]
test r13b, r13b
je 0x14002862c
mov r8, qword [r8]
xor edx, edx
mov rcx, rsi
call fcn.1401e1b90
inc qword [r12 + 0x10]
jmp 0x1400286f8
mov rcx, rdi
call fcn.140020d20
mov rsi, rax
test rax, rax
jne 0x140028654
movzx r13d, byte [rsp + 0x30]
mov rsi, rbx
jmp 0x1400286f8
mov r9d, dword [rsp + 0x40]
lea r8, [r12 + 8]
mov rdx, r13
mov byte [rsp + 0x20], bl
mov rcx, rdi
call fcn.14005dcc0
movabs rax, 0x7000000000000000
cmp r14, rax
jbe 0x140028681
mov r8, rbx
jmp 0x1400286ba
lea rax, [r14*2 - 1]
test rax, rax
je 0x1400287f9
bsr rax, rax
cmp rax, 7
jae 0x1400286a3
mov eax, 4
jmp 0x1400286a7
add rax, 0xfffffffffffffffd
mov rcx, rax
shl r15, cl
dec r15
lea r8, [r15 + r14]
not r15
and r8, r15
movzx r13d, byte [rsp + 0x30]
mov rdx, rsi
movzx r9d, r13b
mov rcx, rdi
call fcn.14005c180
mov rsi, rax
test rax, rax
jne 0x1400286f8
mov rsi, rbx
jmp 0x1400286f8
mov r9d, r12d
mov rcx, rdi
movzx r13d, byte [rsp + 0x30]
mov r8, r14
mov byte [rsp + 0x20], r13b
call fcn.140059560
mov rsi, rax
test rsi, rsi
je 0x140028772
mov rbx, qword [rsp + 0x48]
lea rcx, [rdi + 0x338]
mov qword [rbp - 0x80], rcx
lea rax, [rdi + 8]
mov qword [rbp - 0x78], rax
lea rax, [rdi + 0x10]
mov qword [rbp - 0x70], rax
lea rax, [rdi + 0x340]
mov qword [rbp - 0x68], rax
mov byte [rsp + 0x78], 1
mov rdx, qword [rcx]
lea rax, [rbx + rdx]
mov qword [rcx], rax
mov rax, qword [rbp - 0x70]
mov rcx, qword [rax]
sub rcx, rdx
cmp rbx, rcx
jb 0x140028753
lea rdx, [rsp + 0x78]
mov rcx, rdi
call fcn.140063e40
test r13b, r13b
jne 0x14002876d
cmp byte [0x1403671c4], r13b
je 0x14002876d
mov rdx, rbx
mov rcx, rsi
call qword [0x140357088]
mov rbx, rsi
jmp 0x14002877d
mov ecx, ntohs
call qword [sym.imp.KERNEL32.dll_SetLastError]
xorps xmm0, xmm0
mov qword [rbp + 0xa00], r14
lea r9, [rbp + 0xa00]
mov r8, rbx
mov rdx, rbx
xor ecx, ecx
movups xmmword [rbp + 0xa08], xmm0
call fcn.140038e10
mov rax, rbx
mov rcx, qword [rbp + 0xa18]
xor rcx, rsp
call fcn.1401dee10
lea r11, [rsp + 0xb20]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
lea rcx, str._jemalloc_:_Error_allocating_TSD_n
call fcn.14002eb70
call fcn.1401f3454
int3
lea rcx, str._jemalloc_:_Error_setting_TSD_n
call fcn.14002eb70
call fcn.1401f3454
int3
call fcn.1401f3454
int3