Function at 0x10012aa0
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 0x10012b0b
nop
nop
mov esi, dword [ebp + 0x18]
xor ecx, ecx
mov edx, dword [ebp + 0xc]
push esi
push 0x200000
call fcn.1002a670
add esp, 8
mov dword [esp + 0xc], eax
test eax, eax
je 0x10012b02
cmp byte [esi], 0
je 0x1001333d
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 0x10012ed3
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 0x10012eb6
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 0x10013344
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 0x10013353
cmp byte [edi + 0x244], 0
lea ecx, [edi + 8]
je 0x10012ecb
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 0x10012ee4
call fcn.10032ab0
push dword [edi]
mov eax, dword [esi]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 0x200000
push dword [ebp + 0xc]
push 0
push esi
call eax
add esp, 0x1c
mov dword [esp + 0xc], eax
test ebx, ebx
jne 0x1001332c
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 0x10013311
push 1
xor dl, dl
mov ecx, 0x980
call fcn.100017a0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x10013344
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 0x10013353
add ebx, 8
cmp byte [ebx + 0x23c], 0
je 0x10013328
xor dl, dl
mov ecx, ebx
call fcn.10032cd0
mov ebx, eax
mov eax, dword [esp + 0xc]
add byte [ebx + 1], 0xff
jne 0x1001333d
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