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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x954
push ebx
push esi
push edi
mov edi, edx
mov ebx, ecx
mov dword [esp + 0x14], edi
mov esi, dword [edi + 4]
mov dword [esp + 0x10], esi
nop
nop
cmp esi, 0x1004c768
jne 0x1001f6ca
nop
nop
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
push esi
push dword [ebp + 0x10]
call fcn.1002a670
add esp, 8
mov dword [esp + 0xc], eax
test eax, eax
je 0x1001f6c1
cmp byte [esi], 0
je 0x1001fefb
mov eax, dword [ebp + 0x14]
mov byte [eax], 1
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, ebx
jne 0x1001fa92
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [0x10056a08]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
test edi, edi
jne 0x1001fa75
push 1
xor dl, dl
mov ecx, 0x980
call fcn.100017a0
mov esi, eax
add esp, 4
mov dword [esp + 0xc], esi
test esi, esi
je 0x1001ff02
xorps xmm0, xmm0
mov byte [esi], bl
xor eax, eax
movlpd qword [esp + 0x20], xmm0
movlpd qword [esp + 0x28], xmm0
movlpd qword [esp + 0x30], xmm0
movlpd qword [esp + 0x38], xmm0
movlpd qword [esp + 0x40], xmm0
movlpd qword [esp + 0x48], xmm0
movlpd qword [esp + 0x50], xmm0
movlpd qword [esp + 0x58], xmm0
movlpd qword [esp + 0x60], xmm0
movlpd qword [esp + 0x68], xmm0
movlpd qword [esp + 0x70], xmm0
movlpd qword [esp + 0x78], xmm0
movlpd qword [esp + 0x88], xmm0
movlpd qword [esp + 0x90], xmm0
movlpd qword [esp + 0x98], xmm0
movaps xmm0, xmmword [0x1004e200]
push 0x8c
push eax
mov word [esp + 0xdd], ax
mov byte [esp + 0xdf], al
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov byte [esp + 0xe8], al
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], eax
lea eax, [esp + 0x110]
movups xmmword [esp + 0xa8], xmm0
mov word [esp + 0x20], di
xorps xmm0, xmm0
mov byte [esp + 0x22], bl
push eax
mov dword [esp + 0x8c], edi
mov word [esp + 0xbc], 0xffff
movups xmmword [esp + 0xbe], xmm0
mov word [esp + 0xde], di
movups xmmword [esp + 0xce], xmm0
mov byte [esp + 0xe0], bl
movlpd qword [esp + 0xf4], xmm0
movlpd qword [esp + 0xfc], xmm0
call fcn.10036180
add esp, 0xc
mov dword [esp + 0x194], 1
mov dword [esp + 0x198], edi
mov dword [esp + 0x19c], 1
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x1a4], 1
mov dword [esp + 0x1a8], edi
mov dword [esp + 0x1ac], 1
mov dword [esp + 0x1b0], edi
mov dword [esp + 0x1b4], 1
mov dword [esp + 0x1b8], edi
mov dword [esp + 0x1bc], 1
mov dword [esp + 0x1c0], edi
mov dword [esp + 0x1c4], 1
mov dword [esp + 0x1c8], edi
mov dword [esp + 0x1cc], 1
mov dword [esp + 0x1d0], edi
mov dword [esp + 0x1d4], 1
mov dword [esp + 0x1d8], edi
mov dword [esp + 0x1dc], 1
mov dword [esp + 0x1e0], edi
mov dword [esp + 0x1e4], 1
mov dword [esp + 0x1e8], edi
mov dword [esp + 0x1ec], 1
mov dword [esp + 0x1f0], edi
mov dword [esp + 0x1f4], 1
mov dword [esp + 0x1f8], edi
mov dword [esp + 0x1fc], 1
mov dword [esp + 0x200], edi
mov dword [esp + 0x204], 1
mov dword [esp + 0x208], edi
mov dword [esp + 0x20c], 1
mov dword [esp + 0x210], edi
mov dword [esp + 0x214], 1
mov dword [esp + 0x218], edi
mov dword [esp + 0x21c], 1
xor eax, eax
mov dword [esp + 0x220], edi
push 0x6d8
xorps xmm0, xmm0
mov word [esp + 0x259], ax
push eax
mov byte [esp + 0x25f], al
mov dword [esp + 0x280], eax
lea eax, [esp + 0x288]
push eax
mov dword [esp + 0x230], 1
mov dword [esp + 0x234], edi
mov dword [esp + 0x238], 1
mov dword [esp + 0x23c], edi
mov dword [esp + 0x240], 1
mov dword [esp + 0x244], edi
mov dword [esp + 0x248], 1
mov dword [esp + 0x24c], edi
mov dword [esp + 0x250], 1
mov dword [esp + 0x254], edi
mov dword [esp + 0x258], 1
mov dword [esp + 0x25c], edi
mov byte [esp + 0x260], 6
movlpd qword [esp + 0x264], xmm0
movlpd qword [esp + 0x26c], xmm0
movlpd qword [esp + 0x274], xmm0
movlpd qword [esp + 0x27c], xmm0
call fcn.10036180
mov dword [esp + 0x964], edi
add esp, 0xc
lea edi, [esi + 8]
mov byte [esp + 0x95c], bl
mov ecx, 0x252
lea esi, [esp + 0x18]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0xc]
push edi
push dword [0x10056a08]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x1001ff11
cmp byte [edi + 0x244], 0
lea ecx, [edi + 8]
je 0x1001fa8a
xor dl, dl
call fcn.10032cd0
mov ecx, eax
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
inc byte [ecx + 1]
cmp byte [ecx + 0x23c], 0
jne 0x1001faa3
call fcn.10032ab0
push dword [edi]
mov eax, dword [esi]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push esi
call eax
add esp, 0x1c
mov dword [esp + 0xc], eax
test ebx, ebx
jne 0x1001feea
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [0x10056a08]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push esi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
test ebx, ebx
jne 0x1001fecf
push 1
xor dl, dl
mov ecx, 0x980
call fcn.100017a0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x1001ff02
xorps xmm0, xmm0
mov byte [ebx], 0
xor eax, eax
movlpd qword [esp + 0x20], xmm0
movlpd qword [esp + 0x28], xmm0
movlpd qword [esp + 0x30], xmm0
movlpd qword [esp + 0x38], xmm0
movlpd qword [esp + 0x40], xmm0
movlpd qword [esp + 0x48], xmm0
movlpd qword [esp + 0x50], xmm0
movlpd qword [esp + 0x58], xmm0
movlpd qword [esp + 0x60], xmm0
movlpd qword [esp + 0x68], xmm0
movlpd qword [esp + 0x70], xmm0
movlpd qword [esp + 0x78], xmm0
movlpd qword [esp + 0x88], xmm0
movlpd qword [esp + 0x90], xmm0
movlpd qword [esp + 0x98], xmm0
movaps xmm0, xmmword [0x1004e200]
push 0x8c
push eax
mov word [esp + 0xdd], ax
mov byte [esp + 0xdf], al
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov byte [esp + 0xe8], al
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], eax
lea eax, [esp + 0x110]
movups xmmword [esp + 0xa8], xmm0
mov word [esp + 0x20], 0
xorps xmm0, xmm0
mov byte [esp + 0x22], 0
push eax
mov dword [esp + 0x8c], 0
mov word [esp + 0xbc], 0xffff
movups xmmword [esp + 0xbe], xmm0
mov word [esp + 0xde], 0
movups xmmword [esp + 0xce], xmm0
mov byte [esp + 0xe0], 0
movlpd qword [esp + 0xf4], xmm0
movlpd qword [esp + 0xfc], xmm0
call fcn.10036180
add esp, 0xc
mov dword [esp + 0x194], 1
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 1
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 1
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], 1
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 1
mov dword [esp + 0x1b8], 0
mov dword [esp + 0x1bc], 1
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x1c4], 1
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], 1
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x1d4], 1
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x1dc], 1
mov dword [esp + 0x1e0], 0
mov dword [esp + 0x1e4], 1
mov dword [esp + 0x1e8], 0
mov dword [esp + 0x1ec], 1
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x1f4], 1
mov dword [esp + 0x1f8], 0
mov dword [esp + 0x1fc], 1
mov dword [esp + 0x200], 0
mov dword [esp + 0x204], 1
mov dword [esp + 0x208], 0
mov dword [esp + 0x20c], 1
mov dword [esp + 0x210], 0
mov dword [esp + 0x214], 1
mov dword [esp + 0x218], 0
mov dword [esp + 0x21c], 1
xor eax, eax
mov dword [esp + 0x220], 0
push 0x6d8
xorps xmm0, xmm0
mov word [esp + 0x259], ax
push eax
mov byte [esp + 0x25f], al
mov dword [esp + 0x280], eax
lea eax, [esp + 0x288]
push eax
mov dword [esp + 0x230], 1
mov dword [esp + 0x234], 0
mov dword [esp + 0x238], 1
mov dword [esp + 0x23c], 0
mov dword [esp + 0x240], 1
mov dword [esp + 0x244], 0
mov dword [esp + 0x248], 1
mov dword [esp + 0x24c], 0
mov dword [esp + 0x250], 1
mov dword [esp + 0x254], 0
mov dword [esp + 0x258], 1
mov dword [esp + 0x25c], 0
mov byte [esp + 0x260], 6
movlpd qword [esp + 0x264], xmm0
movlpd qword [esp + 0x26c], xmm0
movlpd qword [esp + 0x274], xmm0
movlpd qword [esp + 0x27c], xmm0
call fcn.10036180
add esp, 0xc
mov dword [esp + 0x958], 0
lea edi, [ebx + 8]
mov byte [esp + 0x95c], 0
mov ecx, 0x252
lea esi, [esp + 0x18]
rep movsd dword es:[edi], dword [esi]
push ebx
push dword [0x10056a08]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x1001ff11
add ebx, 8
cmp byte [ebx + 0x23c], 0
je 0x1001fee6
xor dl, dl
mov ecx, ebx
call fcn.10032cd0
mov ebx, eax
mov eax, dword [esp + 0xc]
add byte [ebx + 1], 0xff
jne 0x1001fefb
mov ecx, ebx
call fcn.10032ab0
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, str._jemalloc_:_Error_allocating_TSD_n
call fcn.10027c00
call fcn.10038150
mov ecx, str._jemalloc_:_Error_setting_TSD_n
call fcn.10027c00
call fcn.10038150
int3