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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2bc
push ebx
push esi
push edi
push 0x10000
push 0x100000
lea ecx, [ebp - 0x40]
call fcn.005476a0
mov ecx, 7
lea eax, [ebp - 0xf0]
lea esi, [ecx + 0x2b]
mov edi, edi
xor edx, edx
mov dword [eax - 8], edx
mov dword [eax - 4], edx
mov dword [eax], 4
mov dword [eax + 4], esi
add eax, 0x10
sub ecx, 1
jns 0x49e630
mov ecx, dword [ebp + 0x1c]
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], eax
call fcn.004a8880
lea ebx, [ebp - 0x14]
mov dword [ebp - 0x18], eax
call fcn.00450be0
mov edi, eax
test edi, edi
jl 0x49ec8a
mov eax, dword [0x551d48]
test eax, eax
jge 0x49e689
mov dword [ebp - 0xc], 0
jmp 0x49e693
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [ebp - 0xc], eax
push 0
push 0
call sub.msvcrt.dll__controlfp
push 0x8001f
push 0xffffffffffffffff
mov dword [ebp - 0x1c], eax
call sub.msvcrt.dll__controlfp
push 0x30000
push 0
call sub.msvcrt.dll__controlfp
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [ebx], eax
mov eax, dword [ebp + 0x28]
add esp, 0x18
test eax, 0xcfff0000
je 0x49e6f1
push 0x440188
push 0x439884
mov edx, 0xc2c
push 0
mov eax, ebx
call fcn.004a49f0
add esp, 0xc
mov edi, 0x8876086c
jmp 0x49ec8d
test eax, 0x1000
je 0x49e706
test eax, 0x800
je 0x49e706
push 0x4401a8
jmp 0x49e6d1
cmp dword [ebp + 0x10], 0
je 0x49e717
test al, 0x18
je 0x49e717
push 0x440200
jmp 0x49e6d1
cmp dword [ebp + 0x2c], 0
jne 0x49e724
push 0x440244
jmp 0x49e6d1
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x24]
push ecx
push edx
push eax
mov esi, ebx
call fcn.0049e050
mov edi, eax
test edi, edi
jl 0x49ec8d
cmp dword [ebp + 0x1c], 0
mov dword [ebp + 8], 0
je 0x49e7f7
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x49e7e2
mov esi, 0x401ca8
mov ecx, eax
mov dl, byte [ecx]
cmp dl, byte [esi]
jne 0x49e781
test dl, dl
je 0x49e77d
mov dl, byte [ecx + 1]
cmp dl, byte [esi + 1]
jne 0x49e781
add ecx, 2
add esi, 2
test dl, dl
jne 0x49e761
xor ecx, ecx
jmp 0x49e786
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x49e79d
or dword [ebx + 0x14], 0x100
mov dword [ebx + 0x10], 0x46580400
jmp 0x49eae3
test eax, eax
je 0x49e7e2
mov esi, 0x401cb0
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x49e7c6
test cl, cl
je 0x49e7c2
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x49e7c6
add eax, 2
add esi, 2
test cl, cl
jne 0x49e7a6
xor eax, eax
jmp 0x49e7cb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x49e7e2
or dword [ebx + 0x14], 0x100
mov dword [ebx + 0x10], 0x46580401
jmp 0x49eae3
push ebx
mov eax, 0x440260
call fcn.004a49c0
mov edi, 0x8876086c
jmp 0x49ec8d
test byte [ebp + 0x28], 0xc0
je 0x49e88d
mov esi, dword [ebx + 0xc]
lea eax, [ebp - 0x28]
push eax
push 2
push esi
call fcn.00450ab0
test eax, eax
jge 0x49e824
push esi
push 0x440284
mov edx, 0xdb2
jmp 0x49e6db
mov eax, dword [ebp - 0x24]
mov ecx, eax
and ecx, 0xffff0000
cmp ecx, 0xfffe0000
je 0x49e867
cmp ecx, 0xffff0000
jne 0x49e88d
test byte [ebp + 0x28], 0x80
je 0x49e88d
or dword [ebp + 0x28], 5
and eax, 0xff00
cmp eax, 0x300
jae 0x49e85e
mov dword [ebx + 0xc], 0x401f00
jmp 0x49e88d
mov dword [ebx + 0xc], 0x401ee8
jmp 0x49e88d
test byte [ebp + 0x28], 0x40
je 0x49e88d
or dword [ebp + 0x28], 5
and eax, 0xff00
cmp eax, 0x300
jae 0x49e886
mov dword [ebx + 0xc], 0x401e30
jmp 0x49e88d
mov dword [ebx + 0xc], 0x401e18
mov esi, dword [ebx + 0xc]
lea ecx, [ebp - 0x28]
push ecx
push 2
push esi
call fcn.00450ab0
test eax, eax
jge 0x49e8b0
push esi
push 0x440284
mov edx, 0xdb2
jmp 0x49e6db
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp + 0x28]
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], ecx
cmp eax, 0xfffe0100
jne 0x49e8ca
mov dword [ebx + 0x10], 0xfffe0101
cmp dword [ebx + 0x10], 0xffff0100
jne 0x49e8da
mov dword [ebx + 0x10], 0xffff0101
mov eax, dword [ebx + 0x10]
mov edx, eax
and edx, 0xff00
cmp edx, 0x400
jne 0x49e915
test ecx, 0x20000000
je 0x49e93d
push 0x4402a8
push 0
mov edx, 0xdb2
mov eax, ebx
call fcn.004a49f0
add esp, 8
mov edi, 0x8876086c
jmp 0x49ec8d
test ecx, 0x10000000
je 0x49e93d
push 0x4402e8
push 0
mov edx, 0xdb1
mov eax, ebx
call fcn.004a49f0
add esp, 8
mov edi, 0x8876086c
jmp 0x49ec8d
cmp eax, 0x47530501
ja 0x49e96a
cmp eax, 0x47530500
jae 0x49ea8b
cmp eax, 0x47530400
jb 0x49ea94
cmp eax, 0x47530401
jbe 0x49ea8b
jmp 0x49ea94
cmp eax, 0xfffe0501
ja 0x49e9dc
cmp eax, 0xfffe0500
jae 0x49ea8b
cmp eax, 0xfffe0301
ja 0x49e9c1
je 0x49ea8b
cmp eax, 0xfffe0201
ja 0x49e9b1
je 0x49ea8b
cmp eax, 0x54580100
je 0x49ea8b
cmp eax, 0xfffe0102
je 0x49ea8b
jmp 0x49ea94
cmp eax, 0xfffe0203
je 0x49ea8b
jmp 0x49ea94
cmp eax, 0xfffe0400
jb 0x49ea94
cmp eax, 0xfffe0401
jbe 0x49ea8b
jmp 0x49ea94
cmp eax, 0xffff0301
ja 0x49ea73
je 0x49ea8b
cmp eax, 0xffff0201
ja 0x49ea63
je 0x49ea8b
add eax, 0xfeff
cmp eax, 3
ja 0x49ea94
test ecx, 0x1000
je 0x49ea2f
mov ecx, dword [ebp - 0x18]
push 0x440318
push ebx
mov eax, 0xde9
call fcn.004a4a20
add esp, 8
mov dword [ebx + 0x10], 0xffff0200
jmp 0x49ea94
mov esi, dword [ebp - 0x18]
push 0x440348
push esi
mov edx, 0xdd3
mov eax, ebx
call fcn.004a49f0
push 0x4403a0
push esi
mov edx, 0xdd3
mov eax, ebx
call fcn.004a49f0
add esp, 0x10
mov edi, 0x80004001
jmp 0x49ec8d
cmp eax, 0xffff0204
jb 0x49ea94
cmp eax, 0xffff0205
jbe 0x49ea8b
jmp 0x49ea94
cmp eax, 0xffff0501
ja 0x49ea94
cmp eax, 0xffff0500
jae 0x49ea8b
add eax, 0xfc00
cmp eax, 1
ja 0x49ea94
or ecx, 0x100
mov dword [ebx + 0x14], ecx
mov eax, dword [ebx + 0x10]
cmp eax, 0xfffe0301
ja 0x49eabe
je 0x49eab5
cmp eax, 0xfffe0102
je 0x49eab5
cmp eax, 0xfffe0201
je 0x49eab5
cmp eax, 0xfffe0203
jne 0x49eae3
mov dword [ebp + 8], 0xfffe0400
jmp 0x49eae3
cmp eax, 0xffff0205
ja 0x49ead5
cmp eax, 0xffff0204
jae 0x49eadc
cmp eax, 0xffff0201
je 0x49eadc
jmp 0x49eae3
cmp eax, 0xffff0301
jne 0x49eae3
mov dword [ebp + 8], 0xffff0400
lea eax, [ebx + 8]
push eax
mov eax, dword [ebx + 0x10]
call fcn.00467980
mov edi, eax
test edi, edi
jl 0x49ec8d
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x49eb3e
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx]
lea eax, [ebp - 0x40]
push eax
or ecx, 0x80000000
push ecx
push edx
lea eax, [ebp - 0x2b8]
call fcn.004a4b00
lea edi, [ebp - 0x6c]
mov esi, eax
call fcn.004a4b80
lea esi, [ebp - 0x2b8]
mov edi, eax
call fcn.004a4b40
test edi, edi
jl 0x49ec8d
lea eax, [ebp - 0x6c]
lea ecx, [ebp - 0x40]
push ecx
mov dword [ebp + 0x10], eax
call fcn.00507d80
lea edx, [ebp - 0x40]
push edx
call fcn.0050cb00
mov esi, dword [ebp - 0xc]
lea eax, [ebp - 0xf8]
mov dword [esi + 0x120], eax
mov dword [esi + 0x124], 8
xor eax, eax
mov ecx, 4
lea edx, [ebp - 0xf0]
lea esp, [esp]
mov dword [edx], ecx
inc eax
add ecx, 4
add edx, 0x10
cmp eax, dword [esi + 0x124]
jb 0x49eb80
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x18]
lea ecx, [ebp - 4]
push ecx
mov ecx, dword [ebp + 0x10]
push edx
mov edx, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x1c]
mov edi, ebx
call fcn.0049e1f0
mov edi, eax
test edi, edi
jl 0x49ec5b
cmp dword [ebp + 8], 0
je 0x49ec4c
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp + 0x28]
push ecx
push edx
push eax
mov esi, ebx
call fcn.0049e050
mov edi, eax
test edi, edi
jl 0x49ec5b
mov eax, dword [ebp + 8]
lea ecx, [ebx + 8]
push ecx
mov dword [ebx + 0x10], eax
call fcn.00467980
mov edi, eax
test edi, edi
jl 0x49ec5b
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x18]
lea ecx, [ebp - 0x10]
push ecx
mov ecx, dword [ebp + 0x10]
push edx
mov edx, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x1c]
mov edi, ebx
call fcn.0049e1f0
mov esi, dword [ebp - 4]
mov edi, eax
test edi, edi
jl 0x49ec5e
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 8]
push ecx
push ebx
mov ecx, esi
call fcn.0049e420
mov edi, eax
test edi, edi
jl 0x49ec5e
test esi, esi
je 0x49ec39
mov edx, dword [esi]
mov eax, dword [edx + 8]
push esi
call eax
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0x2c]
mov edx, ecx
xor esi, esi
mov dword [ebp - 4], ecx
mov dword [eax], edx
xor edi, edi
jmp 0x49ec6d
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0x2c]
mov esi, dword [ebp - 8]
mov dword [eax], edx
xor edi, edi
jmp 0x49ec6d
mov esi, dword [ebp - 4]
test esi, esi
je 0x49ec6a
mov ecx, dword [esi]
mov edx, dword [ecx + 8]
push esi
call edx
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x49ec7c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test esi, esi
je 0x49ec8d
mov eax, dword [esi]
mov ecx, dword [eax + 8]
push esi
call ecx
jmp 0x49ec8d
mov ebx, dword [ebp + 8]
call sub.msvcrt.dll__clearfp
mov edx, dword [ebp - 0x1c]
push 0xb001f
push edx
call sub.msvcrt.dll__controlfp
mov ecx, dword [ebx + 8]
xor esi, esi
add esp, 8
mov dword [ebx + 4], esi
cmp ecx, esi
je 0x49ecb7
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov eax, dword [ebx + 0x1c]
push eax
mov dword [ebx + 8], esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov ecx, dword [ebx + 0x20]
add esp, 4
push ecx
mov dword [ebx + 0x1c], esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov edx, dword [ebx + 0x24]
add esp, 4
push edx
mov dword [ebx + 0x20], esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebx + 0x28]
add esp, 4
push eax
mov dword [ebx + 0x24], esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov dword [ebx + 0x28], esi
mov eax, dword [0x551d48]
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
add esp, 4
cmp eax, esi
jge 0x49ed09
xor eax, eax
jmp 0x49ed0c
push eax
call ebx
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov eax, dword [0x551d48]
cmp eax, esi
jge 0x49ed22
xor eax, eax
jmp 0x49ed25
push eax
call ebx
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], esi
mov dword [eax + 0x18], esi
mov eax, dword [ebp - 0xc]
cmp eax, esi
je 0x49ed41
mov dword [eax + 0x120], esi
mov dword [eax + 0x124], esi
cmp dword [ebp - 0x14], esi
je 0x49ed7b
mov eax, dword [0x551d48]
cmp eax, esi
jge 0x49ed53
xor eax, eax
jmp 0x49ed56
push eax
call ebx
dec dword [eax + 0x128]
cmp dword [eax + 0x128], esi
jg 0x49ed7b
push eax
call sub.msvcrt.dll_free
mov ecx, dword [0x551d48]
add esp, 4
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
lea ebx, [ebp - 0x78]
mov dword [ebp + 0x28], 7
mov eax, dword [ebx - 0x10]
sub ebx, 0x10
cmp eax, esi
je 0x49eda3
nop
mov edx, dword [eax]
push eax
mov dword [ebx], edx
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebx]
add esp, 4
cmp eax, esi
jne 0x49ed90
sub dword [ebp + 0x28], 1
mov dword [ebx + 4], esi
jns 0x49ed85
lea ecx, [ebp - 0x40]
call fcn.005476fa
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x28