Function at 0x140025370
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 0x14002544a
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rsi
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x14057b280]
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 0x1400253bd
xor edx, edx
jmp 0x1400253c1
lea rdx, [rsi + 8]
mov rsi, qword [rsp + 0x38]
cmp rdi, 0x1000
ja 0x140025447
test rdx, rdx
je 0x140025447
mov r8, qword [rdx + 0x338]
lea rcx, [0x140000000]
lea rax, [rdi + 7]
shr rax, 3
movzx r9d, byte [rax + rcx + 0x374080]
mov rcx, qword [rcx + r9*8 + 0x373940]
add r8, rcx
cmp r8, qword [rdx + 0x340]
jae 0x140025447
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 0x140025430
cmp r10w, word [rcx + 0x14]
je 0x140025447
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 0x140028050
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 [0x1403622b0]
xor rax, rsp
mov qword [rbp + 0xa18], rax
cmp dword [reloc.WS2_32.dll_closesocket], 0
mov r14, rcx
je 0x1400280af
call fcn.140028aa0
test al, al
je 0x1400280af
mov ecx, ntohs
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor ebx, ebx
jmp 0x140028a42
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x14057b280]
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 0x140028384
mov ecx, 0xa50
call fcn.140030980
mov rdi, rax
test rax, rax
je 0x140028a75
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.1401e1df0
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.1401e1df0
lea rcx, [rdi + 8]
mov qword [rbp + 0x9e8], rbx
lea rdx, [rbp - 0x50]
mov byte [rbp + 0x9f0], bl
mov r8d, 0xa48
call fcn.1401e1740
mov ecx, dword [0x14057b280]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x140028a87
add rdi, 8
cmp byte [rdi + 0x330], bl
je 0x1400283a9
xor edx, edx
mov rcx, rdi
call fcn.140030fa0
mov rdi, rax
cmp byte [rax + 0x330], bl
jne 0x1400286bf
lea rsi, [0x140000000]
movabs rax, 0x7000000000000000
cmp r14, 0x1000
ja 0x1400283d6
lea rax, [r14 + 7]
shr rax, 3
movzx r13d, byte [rax + rsi + 0x374080]
jmp 0x140028436
cmp r14, rax
jbe 0x1400283e3
mov r13d, 0xe8
jmp 0x140028436
lea rax, [r14*2 - 1]
test rax, rax
je 0x140028a99
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 0x140028418
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 0x1400286af
mov r12d, r13d
lea rcx, [rdi + 0x358]
mov rax, qword [rsi + r12*8 + 0x373940]
mov qword [rsp + 0x40], rax
test rcx, rcx
je 0x140028630
cmp r14, 0x3800
ja 0x14002853d
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 0x140028498
mov qword [r15 + 8], rax
inc qword [r15 + 0x10]
jmp 0x140028647
cmp cx, word [r15 + 0x1c]
je 0x1400284b1
mov qword [r15 + 8], rax
mov word [r15 + 0x18], ax
inc qword [r15 + 0x10]
jmp 0x140028647
xor edx, edx
mov rcx, rdi
call fcn.140020fc0
mov qword [rsp + 0x38], rax
mov rcx, rax
test rax, rax
jne 0x1400284d0
mov rsi, rbx
jmp 0x140028647
mov rax, qword [0x14037a360]
mov r9d, r13d
cmp word [rax + r12*2], bx
jne 0x1400284e9
mov rdx, rcx
jmp 0x140028635
lea r8, [r15 + 8]
mov byte [rsp + 0x20], 1
lea rdx, [rdi + 0x358]
mov rcx, rdi
call fcn.14005df60
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.14005cf20
mov rsi, rax
cmp byte [rsp + 0x31], bl
jne 0x14002848f
mov rsi, rbx
jmp 0x140028647
cmp r14, qword [0x14037a348]
ja 0x140028630
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 0x140028575
mov qword [r12 + 8], rax
inc qword [r12 + 0x10]
jmp 0x140028647
cmp cx, word [r12 + 0x1c]
je 0x140028592
mov qword [r12 + 8], rax
mov word [r12 + 0x18], ax
inc qword [r12 + 0x10]
jmp 0x140028647
xor edx, edx
mov rcx, rdi
call fcn.140020fc0
mov qword [rsp + 0x38], rax
test rax, rax
jne 0x1400285ae
mov rsi, rbx
jmp 0x140028647
mov r9d, r13d
mov byte [rsp + 0x20], bl
lea r8, [r12 + 8]
mov rcx, rdi
lea rdx, [rdi + 0x358]
call fcn.14005df60
movabs rax, 0x7000000000000000
cmp r14, rax
jbe 0x1400285dd
mov r8, rbx
jmp 0x140028613
lea rax, [r14*2 - 1]
test rax, rax
je 0x140028a99
bsr rcx, rax
cmp rcx, 7
jae 0x1400285ff
mov ecx, 4
jmp 0x140028603
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.14005c420
mov rsi, rax
test rax, rax
jne 0x140028647
mov rsi, rbx
jmp 0x140028647
mov r9d, r13d
xor edx, edx
mov r8, r14
mov byte [rsp + 0x20], bl
mov rcx, rdi
call fcn.140059800
mov rsi, rax
test rsi, rsi
je 0x1400286af
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 0x1400286a7
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.1400640e0
mov rbx, rsi
jmp 0x140028a42
mov ecx, ntohs
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140028a42
cmp byte [0x14036b1c9], bl
lea rsi, [0x140000000]
setne byte [rsp + 0x30]
cmp r14, 0x1000
ja 0x1400286ed
lea rax, [r14 + 7]
shr rax, 3
movzx r12d, byte [rax + rsi + 0x374080]
jmp 0x1400286f8
mov rcx, r14
call fcn.14002b700
mov r12d, eax
mov dword [rsp + 0x40], r12d
cmp r12d, 0xe8
jae 0x140028a12
lea r8, [rsi + 0x373940]
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 0x1400287bc
movzx r8d, r15b
mov edx, ebx
mov rcx, rdi
call fcn.140021680
mov rdx, rax
mov r13, rbx
test rax, rax
jne 0x140028753
cmp ebx, dword [0x14057b2f4]
jae 0x140028a12
mov r8, qword [rsp + 0x38]
mov eax, r12d
test r13, r13
je 0x14002897c
cmp r14, 0x3800
ja 0x14002886a
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 0x1400287cf
mov qword [r15 + 8], rax
movzx r13d, byte [rsp + 0x30]
test r13b, r13b
je 0x1400287b3
mov r8, qword [rsp + 0x38]
xor edx, edx
mov rcx, rsi
mov r8, qword [r8]
call fcn.1401e1df0
inc qword [r15 + 0x10]
jmp 0x140028998
mov r13, rbx
cmp byte [rdi], bl
je 0x1400287ca
lea r13, [rdi + 0x358]
mov rdx, rbx
jmp 0x14002875b
cmp cx, word [r15 + 0x1c]
je 0x1400287e1
mov qword [r15 + 8], rax
mov word [r15 + 0x18], ax
jmp 0x140028796
mov rcx, rdi
call fcn.140020fc0
mov rsi, rax
test rax, rax
jne 0x1400287ff
movzx r13d, byte [rsp + 0x30]
mov rsi, rbx
jmp 0x140028998
mov rax, qword [0x14037a360]
mov r9d, r12d
mov ecx, r12d
cmp word [rax + rcx*2], bx
mov rcx, rdi
jne 0x14002881d
mov rdx, rsi
jmp 0x140028982
lea r8, [r15 + 8]
mov byte [rsp + 0x20], 1
mov rdx, r13
call fcn.14005df60
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.14005cf20
mov rsi, rax
cmp byte [rsp + 0x32], bl
jne 0x140028796
movzx r13d, byte [rsp + 0x30]
mov rsi, rbx
jmp 0x140028998
cmp r14, qword [0x14037a348]
ja 0x14002897c
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 0x1400288a1
mov qword [r12 + 8], rax
jmp 0x1400288b4
cmp cx, word [r12 + 0x1c]
je 0x1400288d6
mov qword [r12 + 8], rax
mov word [r12 + 0x18], ax
movzx r13d, byte [rsp + 0x30]
test r13b, r13b
je 0x1400288cc
mov r8, qword [r8]
xor edx, edx
mov rcx, rsi
call fcn.1401e1df0
inc qword [r12 + 0x10]
jmp 0x140028998
mov rcx, rdi
call fcn.140020fc0
mov rsi, rax
test rax, rax
jne 0x1400288f4
movzx r13d, byte [rsp + 0x30]
mov rsi, rbx
jmp 0x140028998
mov r9d, dword [rsp + 0x40]
lea r8, [r12 + 8]
mov rdx, r13
mov byte [rsp + 0x20], bl
mov rcx, rdi
call fcn.14005df60
movabs rax, 0x7000000000000000
cmp r14, rax
jbe 0x140028921
mov r8, rbx
jmp 0x14002895a
lea rax, [r14*2 - 1]
test rax, rax
je 0x140028a99
bsr rax, rax
cmp rax, 7
jae 0x140028943
mov eax, 4
jmp 0x140028947
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.14005c420
mov rsi, rax
test rax, rax
jne 0x140028998
mov rsi, rbx
jmp 0x140028998
mov r9d, r12d
mov rcx, rdi
movzx r13d, byte [rsp + 0x30]
mov r8, r14
mov byte [rsp + 0x20], r13b
call fcn.140059800
mov rsi, rax
test rsi, rsi
je 0x140028a12
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 0x1400289f3
lea rdx, [rsp + 0x78]
mov rcx, rdi
call fcn.1400640e0
test r13b, r13b
jne 0x140028a0d
cmp byte [0x14036b1c4], r13b
je 0x140028a0d
mov rdx, rbx
mov rcx, rsi
call qword [0x14035b088]
mov rbx, rsi
jmp 0x140028a1d
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.1400390b0
mov rax, rbx
mov rcx, qword [rbp + 0xa18]
xor rcx, rsp
call fcn.1401df0b0
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.14002ee10
call fcn.1401f5dec
int3
lea rcx, str._jemalloc_:_Error_setting_TSD_n
call fcn.14002ee10
call fcn.1401f5dec
int3
call fcn.1401f5dec
int3