Function at 0x1000edf0
Capabilities:
Get thread local storage value
Resolve function by parsing pe exports
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x994
push ebx
push esi
push edi
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], ecx
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 0x1000f223
mov ecx, 0x950
call fcn.10033a20
mov ebx, eax
test ebx, ebx
je 0x1000f6ff
xorps xmm0, xmm0
mov byte [ebx], 0
xor eax, eax
movlpd qword [esp + 0x60], xmm0
movlpd qword [esp + 0x68], xmm0
movlpd qword [esp + 0x70], xmm0
movlpd qword [esp + 0x78], xmm0
movlpd qword [esp + 0x80], xmm0
movlpd qword [esp + 0x88], xmm0
movlpd qword [esp + 0x90], xmm0
movlpd qword [esp + 0x98], xmm0
movlpd qword [esp + 0xa0], xmm0
movlpd qword [esp + 0xa8], xmm0
movlpd qword [esp + 0xb0], xmm0
movlpd qword [esp + 0xb8], xmm0
movlpd qword [esp + 0xc8], xmm0
movlpd qword [esp + 0xd0], xmm0
movlpd qword [esp + 0xd8], xmm0
movaps xmm0, xmmword [0x1004e200]
push 0x8c
push eax
mov word [esp + 0x11d], ax
mov byte [esp + 0x11f], al
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], eax
mov byte [esp + 0x128], al
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x14c], eax
lea eax, [esp + 0x150]
movups xmmword [esp + 0xe8], xmm0
mov word [esp + 0x60], 0
xorps xmm0, xmm0
mov byte [esp + 0x62], 0
push eax
mov dword [esp + 0xcc], 0
mov word [esp + 0xfc], 0xffff
movups xmmword [esp + 0xfe], xmm0
mov word [esp + 0x11e], 0
movups xmmword [esp + 0x10e], xmm0
mov byte [esp + 0x120], 0
movlpd qword [esp + 0x134], xmm0
movlpd qword [esp + 0x13c], xmm0
call fcn.10036180
add esp, 0xc
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
mov dword [esp + 0x220], 0
mov dword [esp + 0x224], 1
mov dword [esp + 0x228], 0
mov dword [esp + 0x22c], 1
mov dword [esp + 0x230], 0
mov dword [esp + 0x234], 1
mov dword [esp + 0x238], 0
mov dword [esp + 0x23c], 1
mov dword [esp + 0x240], 0
mov dword [esp + 0x244], 1
mov dword [esp + 0x248], 0
mov dword [esp + 0x24c], 1
mov dword [esp + 0x250], 0
mov dword [esp + 0x254], 1
mov dword [esp + 0x258], 0
mov dword [esp + 0x25c], 1
xor eax, eax
mov dword [esp + 0x260], 0
push 0x6d8
xorps xmm0, xmm0
mov word [esp + 0x299], ax
push eax
mov byte [esp + 0x29f], al
mov dword [esp + 0x2c0], eax
lea eax, [esp + 0x2c8]
push eax
mov dword [esp + 0x270], 1
mov dword [esp + 0x274], 0
mov dword [esp + 0x278], 1
mov dword [esp + 0x27c], 0
mov dword [esp + 0x280], 1
mov dword [esp + 0x284], 0
mov dword [esp + 0x288], 1
mov dword [esp + 0x28c], 0
mov dword [esp + 0x290], 1
mov dword [esp + 0x294], 0
mov dword [esp + 0x298], 1
mov dword [esp + 0x29c], 0
mov byte [esp + 0x2a0], 6
movlpd qword [esp + 0x2a4], xmm0
movlpd qword [esp + 0x2ac], xmm0
movlpd qword [esp + 0x2b4], xmm0
movlpd qword [esp + 0x2bc], xmm0
call fcn.10036180
add esp, 0xc
mov dword [esp + 0x998], 0
lea edi, [ebx + 8]
mov byte [esp + 0x99c], 0
mov ecx, 0x252
lea esi, [esp + 0x58]
rep movsd dword es:[edi], dword [esi]
push ebx
push dword [0x10056a08]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x1000f70e
cmp byte [ebx + 0x244], 0
lea esi, [ebx + 8]
mov dword [esp + 0x14], esi
je 0x1000f242
xor dl, dl
mov ecx, esi
call fcn.10032cd0
mov esi, eax
mov dword [esp + 0x14], eax
xor edi, edi
mov dword [esp + 0x18], edi
test esi, esi
je 0x1000f4a3
cmp byte [esi + 1], 0
jg 0x1000f4a3
mov ecx, dword [ebp + 0xc]
mov edx, 1
and ecx, 0x3f
mov eax, edx
shl eax, cl
and eax, 0xfffffffe
mov dword [esp + 0x1c], eax
jne 0x1000f2c9
mov ebx, dword [ebp + 8]
cmp ebx, 0x1000
ja 0x1000f296
lea eax, [ebx + 7]
shr eax, 3
movzx eax, byte [eax + 0x10056040]
mov ebx, dword [eax*4 + 0x10055e80]
jmp 0x1000f3a8
cmp ebx, 0x70000000
ja 0x1000f3a6
lea ecx, [ebx*2 - 1]
call fcn.10001000
mov ecx, 4
cmp eax, 7
jb 0x1000f2bb
lea ecx, [eax - 3]
shl edx, cl
dec edx
add ebx, edx
not edx
and ebx, edx
jmp 0x1000f3a8
mov ecx, dword [ebp + 8]
cmp ecx, 0x3800
ja 0x1000f33a
cmp eax, 0x1000
ja 0x1000f33a
lea ebx, [ecx - 1]
add ebx, eax
neg eax
and ebx, eax
cmp ebx, 0x1000
ja 0x1000f302
lea eax, [ebx + 7]
shr eax, 3
movzx eax, byte [eax + 0x10056040]
mov ebx, dword [eax*4 + 0x10055e80]
jmp 0x1000f330
cmp ebx, 0x70000000
jbe 0x1000f30e
xor ebx, ebx
jmp 0x1000f330
lea ecx, [ebx*2 - 1]
call fcn.10001000
mov ecx, 4
cmp eax, 7
jb 0x1000f327
lea ecx, [eax - 3]
shl edx, cl
dec ebx
add ebx, edx
neg edx
and ebx, edx
cmp ebx, 0x4000
jae 0x1000f349
jmp 0x1000f3a8
cmp eax, 0x70000000
ja 0x1000f3a6
cmp ecx, 0x4000
ja 0x1000f350
mov ebx, 0x4000
jmp 0x1000f382
cmp ecx, 0x70000000
ja 0x1000f3a6
lea ecx, [ecx*2 - 1]
call fcn.10001000
mov ecx, 4
cmp eax, 7
jb 0x1000f371
lea ecx, [eax - 3]
shl edx, cl
mov ecx, dword [ebp + 8]
dec edx
lea ebx, [edx + ecx]
not edx
and ebx, edx
cmp ebx, ecx
jb 0x1000f3a6
mov eax, dword [esp + 0x1c]
xor ecx, ecx
add eax, 0xfff
and eax, 0xfffff000
add eax, 0xfffff000
add eax, dword [0x10056a18]
add eax, ebx
cmp eax, ebx
cmovb ebx, ecx
jmp 0x1000f3a8
xor ebx, ebx
test ebx, ebx
je 0x1000f4a3
cmp ebx, 0x70000000
ja 0x1000f4a3
cmp ebx, 0x1000
ja 0x1000f3d7
lea eax, [ebx + 7]
shr eax, 3
movzx edx, byte [eax + 0x10056040]
mov dword [esp + 0x2c], edx
jmp 0x1000f3e4
mov ecx, ebx
call fcn.10001010
mov edx, eax
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0xc]
shr eax, 6
and eax, 0xffffff01
mov dword [esp + 0x20], edi
mov dword [esp + 0x40], eax
mov byte [esp + 0x3c], al
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], eax
cmp edx, 0x24
jae 0x1000f41c
lea eax, [edx + edx*2]
shl eax, 4
mov eax, dword [eax + 0x10056a48]
mov dword [esp + 0x30], eax
xor eax, eax
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x1000f4a3
mov esi, dword [esp + 0x14]
nop dword [eax + eax]
sub ecx, edi
mov dword [esp + 0x10], 0
mov dword [esp + 0x24], ecx
cmp edx, 0x24
jae 0x1000f4e7
cmp ecx, dword [esp + 0x30]
jb 0x1000f4e7
test eax, eax
jne 0x1000f4b4
mov eax, dword [ebp + 0xc]
test eax, 0xfff00000
je 0x1000f492
mov esi, eax
shr esi, 0x14
dec esi
cmp esi, 0xffffffff
je 0x1000f48e
mov ecx, dword [esp + 0x14]
mov edx, esi
push 1
call fcn.100014b0
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
jne 0x1000f4ac
cmp esi, dword [0x100582b8]
jae 0x1000f4a3
test eax, eax
jne 0x1000f4ac
mov esi, dword [esp + 0x14]
xor edx, edx
mov ecx, esi
call fcn.100014e0
mov dword [esp + 0x28], eax
test eax, eax
jne 0x1000f4b0
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
mov eax, ecx
xor edx, edx
div dword [esp + 0x30]
push dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
sub ecx, edx
mov edx, dword [esp + 0x2c]
push ecx
mov ecx, esi
lea eax, [eax + edi*4]
push eax
push dword [esp + 0x38]
call fcn.10010e20
add esp, 0x10
mov dword [esp + 0x10], eax
add edi, eax
mov dword [esp + 0x18], edi
mov ecx, dword [ebp + 0xc]
mov eax, ecx
and eax, 0xfff00
je 0x1000f53d
cmp eax, 0x100
je 0x1000f62a
shr ecx, 8
and ecx, 0xfff
sub ecx, 2
cmp ecx, 0xfffffffe
je 0x1000f53d
cmp ecx, 0xffffffff
je 0x1000f62a
mov eax, dword [0x10056a14]
mov edx, dword [eax + ecx*4]
lea edi, [eax + ecx*4]
test edx, edx
je 0x1000f6ec
cmp edx, 1
jne 0x1000f54c
mov ecx, esi
call fcn.10031c90
mov edx, eax
mov dword [edi], edx
jmp 0x1000f54c
cmp byte [esi], 0
je 0x1000f54a
lea edx, [esi + 0x260]
jmp 0x1000f54c
xor edx, edx
test edx, edx
je 0x1000f62a
mov eax, dword [edx]
mov ecx, dword [esp + 0x2c]
cmp ecx, dword [eax + 0x18]
jae 0x1000f62a
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x10]
lea edx, [edx + eax*8]
add edx, 8
cmp dword [edx], str.zzzzzzz_n
je 0x1000f62e
mov eax, dword [esp + 0x24]
cmp ecx, eax
jae 0x1000f62e
cmp dword [esp + 0x20], 0
jne 0x1000f59d
mov dword [esp + 0x20], edx
test edx, edx
je 0x1000f62e
jmp 0x1000f5a1
mov edx, dword [esp + 0x20]
mov si, word [edx + 0x14]
mov edi, eax
sub si, word [edx]
sub edi, ecx
shr si, 2
movzx ecx, si
cmp ecx, edi
movzx eax, si
mov ecx, dword [esp + 0x34]
movzx edx, di
cmovbe edx, eax
movzx eax, dx
mov dword [esp + 0x1c], eax
lea esi, [eax*4]
mov eax, dword [esp + 0x18]
push esi
lea edi, [ecx + eax*4]
mov eax, dword [esp + 0x24]
push dword [eax]
push edi
call fcn.10036c90
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov ecx, eax
add dword [eax], esi
call fcn.100010d0
cmp byte [esp + 0x40], 0
mov eax, dword [esp + 0x1c]
je 0x1000f61e
test eax, eax
je 0x1000f61e
mov esi, eax
push ebx
push 0
push dword [edi]
call fcn.10036180
add esp, 0xc
lea edi, [edi + 4]
sub esi, 1
jne 0x1000f605
mov eax, dword [esp + 0x1c]
add dword [esp + 0x10], eax
add dword [esp + 0x18], eax
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
lea eax, [esi + 8]
imul ecx, ebx
mov dword [esp + 0x4c], eax
lea edi, [esi + 0x240]
lea eax, [esi + 0x10]
mov byte [esp + 0x44], 1
mov dword [esp + 0x50], eax
lea eax, [esi + 0x248]
mov dword [esp + 0x54], eax
xor eax, eax
mov dword [esp + 0x48], edi
mov edx, dword [edi]
mov esi, dword [edi + 4]
mov dword [esp + 0x1c], ecx
add ecx, edx
mov dword [edi], ecx
adc eax, esi
mov dword [edi + 4], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub ecx, edx
sbb eax, esi
xor edx, edx
cmp edx, eax
jb 0x1000f698
ja 0x1000f687
cmp dword [esp + 0x1c], ecx
jb 0x1000f698
mov esi, dword [esp + 0x14]
lea edx, [esp + 0x44]
mov ecx, esi
call fcn.10032540
jmp 0x1000f69c
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x24]
jae 0x1000f6cf
mov eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call sym.jemalloc.dll_je_mallocx
mov edi, dword [esp + 0x20]
add esp, 8
test eax, eax
je 0x1000f4a3
mov ecx, dword [esp + 0x34]
mov dword [ecx + edi*4], eax
inc edi
mov dword [esp + 0x18], edi
jmp 0x1000f6d3
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
cmp edi, ecx
jae 0x1000f4a3
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
jmp 0x1000f430
push ecx
push str._jemalloc_:_invalid_tcache_id___u_._n
call fcn.10028f60
add esp, 8
call fcn.10038150
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