Function at 0x4e0ee0
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x38
push ebx
push esi
mov ebx, eax
mov eax, dword [0x776138]
xor esi, esi
cmp eax, esi
push edi
mov edi, ecx
jge 0x4e0efe
xor eax, eax
jmp 0x4e0f05
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0x10], esi
je 0x4e0f2b
mov ecx, dword [eax + 0x10]
cmp ecx, esi
jne 0x4e0f15
xor eax, eax
jmp 0x4e0f37
mov edx, dword [ecx]
cmp edx, esi
mov dword [eax + 0x10], edx
jne 0x4e0f21
mov dword [eax + 0x14], esi
mov dword [ecx], 0xfefefefe
mov eax, ecx
jmp 0x4e0f37
mov ecx, dword [eax + 0xc]
push 0x10
push 0x40
call fcn.007515ae
cmp eax, esi
mov dword [ebp - 8], eax
je 0x4e100b
or ecx, 0xffffffff
mov dword [eax + 0x10], ecx
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp + 0xc]
mov dword [eax], esi
mov dword [eax + 8], esi
mov dword [eax + 0x38], esi
mov dword [eax + 4], esi
mov word [eax + 0x3c], si
mov dword [eax + 0xc], esi
mov word [eax + 0x3e], si
mov dword [eax + 0x14], esi
mov dword [eax + 0x18], esi
mov dword [eax + 0x1c], esi
mov dword [eax + 0x24], esi
mov dword [eax + 0x30], esi
mov dword [eax + 0x34], esi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
and eax, 0xfffff
shl ebx, 6
add ebx, dword [ecx + 8]
mov dword [ebp - 0x1c], eax
mov dword [ebp + 0xc], eax
mov dword [ebp - 0xc], eax
mov eax, dword [ecx + 0xc]
cmp eax, esi
mov dword [ebp - 0x2c], ebx
je 0x4e0f9d
mov dword [ebp + 0xc], eax
mov ecx, dword [ecx + 0x10]
cmp ecx, esi
je 0x4e0fa7
mov dword [ebp - 0xc], ecx
mov edx, dword [ebx + 4]
cmp edx, 0xf0000000
jb 0x4e0fbf
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx + edx*4 + 0x40000000]
mov edx, dword [edx + 0x38]
mov esi, dword [ebp - 0xc]
mov eax, edx
mov ecx, esi
imul ecx, dword [ebx + 8]
xor eax, esi
and eax, 0xfffff
xor eax, edx
mov edx, dword [ebp - 8]
push 0
push edx
mov edx, dword [ebp + 0xc]
call fcn.004cc5e0
mov esi, eax
test esi, esi
jl 0x4e13a2
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x30]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x30], edx
mov eax, dword [eax + 0x34]
mov dword [ecx + 0x34], eax
xor eax, eax
xor esi, esi
cmp dword [ebp + 0xc], eax
mov dword [ebp + 8], eax
jbe 0x4e1047
jmp 0x4e1023
mov eax, 0x8007000e
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [ebp - 8]
mov edx, dword [ebx + 0x18]
mov ecx, dword [ecx + 0xc]
lea eax, [eax + edx*4 - 0x100]
mov edx, dword [ebp + 0x10]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp + 8]
mov dword [ecx + eax*4], edx
add eax, 1
cmp eax, dword [ebp + 0xc]
mov dword [ebp + 8], eax
jb 0x4e1020
xor ecx, ecx
cmp dword [ebp - 0xc], ecx
mov dword [ebp - 0x18], ecx
jbe 0x4e138a
cmp dword [ebx + 8], 0
mov dword [ebp - 0x20], 0
jbe 0x4e137b
lea eax, [ecx*4]
mov dword [ebp + 0xc], eax
lea eax, [ebx + 0x20]
add ebx, 0xc
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], ebx
lea esp, [esp]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
cmp eax, 0x10
mov edx, dword [ebp - 0x1c]
mov ebx, dword [ebp + 0x14]
mov dword [ebp + 8], 0xffffffff
jae 0x4e10c8
mov ebx, dword [ebp + 0x18]
add ecx, ecx
add ecx, ecx
mov ecx, dword [ecx + ebx]
cmp ecx, edx
jae 0x4e10b6
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx + eax*4]
mov edx, dword [eax + 0xc]
mov eax, dword [edx + ecx*4]
jmp 0x4e1257
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + edx*4 - 4]
jmp 0x4e1257
cmp eax, 0x20
jae 0x4e10ec
cmp ecx, edx
jae 0x4e10dd
lea edx, [ecx + eax*4 - 0x40]
mov eax, dword [ebx + edx*4]
jmp 0x4e1257
lea eax, [edx + eax*4]
mov eax, dword [ebx + eax*4 - 0x104]
jmp 0x4e1257
cmp eax, 0x30
jae 0x4e1241
add eax, 0xffffffe0
cmp eax, 0xa
ja case.default.0x4e1101
jmp dword [eax*4 + 0x4e1494]
fld1
mov ecx, dword [edi + 0x28e0]
sub esp, 8
fstp qword [esp]
push 0x20
push 0x800
push 0
push 0
push ecx
lea edx, [ebp + 8]
push edx
push edi
call fcn.004ca3c0
mov esi, eax
test esi, esi
jl 0x4e13a2
mov eax, dword [ebp + 8]
jmp 0x4e1257
fldz
mov eax, dword [edi + 0x28e0]
sub esp, 8
fstp qword [esp]
push 0x20
push 0x800
push 0
push 0
push eax
lea ecx, [ebp + 8]
push ecx
jmp 0x4e1126
fld qword [0x468928]
mov edx, dword [edi + 0x28e0]
sub esp, 8
fstp qword [esp]
push 0x20
push 0x800
push 0
push 0
push edx
lea eax, [ebp + 8]
push eax
jmp 0x4e1126
fld qword [0x468918]
jmp 0x4e110a
fld qword [0x468900]
mov eax, dword [edi + 0x28e0]
sub esp, 8
fstp qword [esp]
push 0x20
push 0x800
push 0
push 0
push eax
lea ecx, [ebp + 8]
push ecx
jmp 0x4e1126
mov edx, dword [edi + 0x28e0]
push 0
push 0x80000800
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
push 0
push edx
lea eax, [ebp + 8]
push eax
jmp 0x4e122c
push 0x10
push 0x800
push 0
push 0
jmp 0x4e121d
mov eax, dword [edi + 0x28e0]
push 0x10
push 0x800
push 0
push 2
push 0
push 0
push eax
lea ecx, [ebp + 8]
push ecx
jmp 0x4e122c
mov edx, dword [edi + 0x28e0]
push 0x10
push 0x800
push 0
push 1
push 0
push 0
push edx
lea eax, [ebp + 8]
push eax
jmp 0x4e122c
push 0x10
push 0x800
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, dword [edi + 0x28e0]
push 0
push 0
push ecx
lea edx, [ebp + 8]
push edx
push edi
call fcn.004ca470
mov esi, eax
test esi, esi
jl 0x4e13a2
mov eax, dword [ebp + 8]
jmp 0x4e1257
cmp eax, 0x40
jb case.default.0x4e1101
lea eax, [ecx + eax*4 - 0x100]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + eax*4]
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
mov edx, dword [ebp + 0xc]
mov dword [edx + ecx], eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x30], ecx
mov ecx, edx
and ecx, 0x400
xor ebx, ebx
or ecx, ebx
je 0x4e12da
mov ebx, dword [eax + 8]
mov esi, dword [eax + 0xc]
mov ecx, ebx
and ecx, 0x800
xor edx, edx
or ecx, edx
je 0x4e13ba
mov edx, esi
and edx, 0x124
xor ecx, ecx
or ecx, edx
je 0x4e13ba
fld qword [eax + 0xa8]
mov edx, dword [edi + 0x28e0]
sub esp, 8
fchs
fstp qword [esp]
push esi
push ebx
push 0
push 0
push edx
lea eax, [ebp - 0x24]
push eax
push edi
call fcn.004ca3c0
mov esi, eax
test esi, esi
jl 0x4e13a2
mov eax, dword [ebp - 0x24]
jmp 0x4e1345
and edx, 0x800
xor ecx, ecx
or edx, ecx
je 0x4e1351
mov ebx, dword [eax + 8]
mov esi, dword [eax + 0xc]
mov ecx, ebx
and ecx, 0x800
xor edx, edx
or ecx, edx
je 0x4e13ba
mov edx, esi
and edx, 0x92
xor ecx, ecx
or ecx, edx
je 0x4e13ba
mov ecx, dword [eax + 0xb0]
mov eax, dword [eax + 0xb4]
mov edx, dword [edi + 0x28e0]
push esi
push ebx
neg ecx
adc eax, 0
neg eax
push eax
push ecx
push 0
push 0
push edx
lea eax, [ebp - 0x28]
push eax
push edi
call fcn.004ca470
mov esi, eax
test esi, esi
jl 0x4e13a2
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + edx], eax
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x2c]
add dword [ebp - 0x10], 4
add dword [ebp - 0x14], 8
add ecx, ecx
add ecx, ecx
add dword [ebp + 0xc], ecx
mov ecx, dword [ebp - 0x18]
add eax, 1
cmp eax, dword [ebx + 8]
mov dword [ebp - 0x20], eax
jb 0x4e1080
add ecx, 1
cmp ecx, dword [ebp - 0xc]
mov dword [ebp - 0x18], ecx
jb 0x4e1055
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x20]
mov dword [edx], eax
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov esi, 0x8007003f
mov edi, dword [ebp - 8]
xor ebx, ebx
cmp word [edi + 0x3c], bx
je 0x4e13f7
mov eax, dword [0x776138]
cmp eax, ebx
jge 0x4e13c1
xor eax, eax
jmp 0x4e13c8
mov esi, 0x8007054f
jmp 0x4e13a2
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [edi + 0x3c]
cmp ecx, dword [eax + 0x120]
ja 0x4e13f0
mov edx, dword [edi + 4]
mov eax, dword [eax + 0x11c]
shl ecx, 4
cmp edx, ebx
lea ecx, [eax + ecx - 0x10]
je 0x4e13f0
mov eax, dword [ecx + 4]
mov dword [edx], eax
mov dword [ecx + 4], edx
mov word [edi + 0x3c], bx
mov dword [edi + 4], ebx
cmp word [edi + 0x3e], bx
je 0x4e1440
mov eax, dword [0x776138]
cmp eax, ebx
jge 0x4e140a
xor eax, eax
jmp 0x4e1411
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [edi + 0x3e]
cmp ecx, dword [eax + 0x120]
ja 0x4e1439
mov edx, dword [edi + 0xc]
mov eax, dword [eax + 0x11c]
shl ecx, 4
cmp edx, ebx
lea ecx, [eax + ecx - 0x10]
je 0x4e1439
mov eax, dword [ecx + 4]
mov dword [edx], eax
mov dword [ecx + 4], edx
mov word [edi + 0x3e], bx
mov dword [edi + 0xc], ebx
mov eax, dword [0x776138]
cmp eax, ebx
jl 0x4e1489
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
test ebx, ebx
je 0x4e1489
push 0x40
push 0xfe
push edi
call sub.msvcrt.dll_memset
mov dword [edi], 0
mov eax, dword [ebx + 0x14]
add esp, 0xc
test eax, eax
je 0x4e1483
mov dword [eax], edi
mov dword [ebx + 0x14], edi
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov dword [ebx + 0x10], edi
mov dword [ebx + 0x14], edi
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c