Function at 0x4e8900
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 0x54
fild dword [esp + 0x5c]
push ebx
mov ebx, dword [esp + 0x5c]
mov ecx, dword [ebx + 0x58]
fdiv dword [ebx + 0x30]
push ebp
push esi
push edi
xor edi, edi
xor al, al
cmp ecx, edi
mov byte [esp + 0x17], al
mov dword [esp + 0x48], edi
fstp dword [esp + 0x20]
fild dword [esp + 0x70]
fdiv dword [ebx + 0x34]
fstp dword [esp + 0x24]
jle 0x4e8d97
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], edi
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov eax, dword [ebx + 8]
mov ebp, dword [ebx + 4]
fild dword [ebp + edx + 0x6c]
add eax, ecx
mov ecx, dword [eax + 0x2a8]
add ebp, edx
mov edx, dword [eax + 0x2a4]
mov eax, dword [ebp + 0x6c]
test eax, eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
jge 0x4e8977
fadd dword [0x715568]
fsub dword [0x70deb0]
mov ecx, dword [ebp + 0x70]
test ecx, ecx
fmul dword [ebp + 0x84]
fadd dword [esp + 0x30]
fstp dword [esp + 0x44]
fild dword [ebp + 0x70]
jge 0x4e899b
fadd dword [0x715568]
fsub dword [0x70deb0]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], edx
fmul dword [ebp + 0x88]
fsubr dword [esp + 0x2c]
fstp dword [esp + 0x40]
fld dword [0x70deb0]
fdiv dword [ebx + 0x2c]
fld st(0)
fmul dword [ebx + 0x20]
fadd dword [esp + 0x20]
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 1
jne 0x4e8c18
fild dword [esp + 0x74]
fstp dword [esp + 0x34]
fmul dword [ebx + 0x24]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], eax
fadd dword [esp + 0x24]
fcomp dword [esp + 0x24]
fnstsw ax
test ah, 1
jne 0x4e8be1
fld dword [esp + 0x18]
fcomp dword [esp + 0x40]
fnstsw ax
test ah, 1
jne 0x4e8bab
fld dword [esp + 0x18]
fcomp dword [esp + 0x2c]
fnstsw ax
test ah, 0x41
jp 0x4e8bab
fld dword [esp + 0x1c]
fcomp dword [esp + 0x30]
fnstsw ax
test ah, 1
jne 0x4e8bab
fld dword [esp + 0x1c]
fcomp dword [esp + 0x44]
fnstsw ax
test ah, 0x41
jp 0x4e8bab
mov al, byte [ebp + 0xa0]
test al, al
jne 0x4e8b50
mov esi, dword [0x8ccd2c]
mov edx, dword [esi + 0x50]
add esi, 0x50
push ebp
mov ecx, esi
call dword [edx + 4]
mov ecx, dword [esi + 8]
mov edi, dword [ecx + eax*4]
test edi, edi
je 0x4e8a8e
mov eax, dword [edi + 4]
mov edx, dword [esi]
push eax
push ebp
mov ecx, esi
call dword [edx + 8]
test al, al
jne 0x4e8ac4
mov edi, dword [edi]
test edi, edi
jne 0x4e8a78
push ebp
push str.Context_expected__but_not_found_for_0x_x
mov eax, 2
call fcn.0051a740
push ebp
push str.Querying_non_existant_context__context0x_x_.
mov eax, 2
call fcn.0051a740
mov edx, dword [0x8ccd2c]
add esp, 0x10
push edx
mov eax, ebp
call fcn.0051aff0
jmp 0x4e8b3a
mov edi, dword [edi + 8]
test edi, edi
je 0x4e8a8e
mov eax, dword [0x728c28]
cmp eax, 0xffffffff
mov esi, dword [edi + 0x38]
je 0x4e8b12
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x4e8b12
or edx, 0xffffffff
mov ecx, esi
call fcn.004fc390
mov ecx, dword [edi + 0x38]
mov bl, byte [edi + 1]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
test bl, bl
jne 0x4e8b1d
mov edx, dword [0x8ccd2c]
mov ebx, dword [esp + 0x68]
push edx
mov eax, ebp
call fcn.0051aff0
jmp 0x4e8b3a
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x4e8aed
mov ecx, dword [0x8ccd2c]
mov eax, ebp
call fcn.0051af30
test al, al
je 0x4e8b36
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x28]
mov ebx, dword [esp + 0x68]
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
mov al, byte [ebp + 0xa0]
test al, al
je 0x4e8a5c
mov al, byte [ebp + 0xa0]
test al, al
je 0x4e8bab
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
push ecx
push edx
lea esi, [esp + 0x54]
lea edi, [esp + 0x58]
mov eax, ebp
call fcn.00514660
test al, al
je 0x4e8bab
mov eax, dword [ebp + 0x6c]
imul eax, dword [esp + 0x4c]
add eax, dword [ebp + 0x54]
mov ecx, dword [esp + 0x50]
movzx edx, byte [eax + ecx]
mov dword [esp + 0x54], edx
fild dword [esp + 0x54]
fcomp dword [0x7156e4]
fnstsw ax
test ah, 1
jne 0x4e8bab
mov ecx, dword [esp + 0x28]
mov al, 1
shl al, cl
or byte [esp + 0x17], al
fld dword [ebx + 0x24]
mov eax, dword [esp + 0x28]
fdiv dword [ebx + 0x2c]
inc eax
mov dword [esp + 0x28], eax
fld dword [esp + 0x34]
fdivr st(1)
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x24]
fadd st(1)
fld dword [esp + 0x18]
fcompp
fnstsw ax
fstp st(0)
test ah, 0x41
jnp 0x4e8a02
fld dword [0x70deb0]
fdiv dword [ebx + 0x2c]
fld st(0)
fmul dword [ebx + 0x20]
fld dword [esp + 0x34]
fdivr st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fadd st(1)
fld dword [esp + 0x1c]
fcompp
fnstsw ax
fstp st(0)
test ah, 0x41
jnp 0x4e89e4
xor edi, edi
fstp st(0)
fld dword [ebx + 0x20]
fmul dword [0x70de8c]
fadd dword [esp + 0x20]
fstp dword [esp + 0x28]
fld dword [ebx + 0x24]
fmul dword [0x70de8c]
fadd dword [esp + 0x24]
fst dword [esp + 0x34]
fcomp dword [esp + 0x40]
fnstsw ax
test ah, 1
jne 0x4e8d63
fld dword [esp + 0x34]
fcomp dword [esp + 0x2c]
fnstsw ax
test ah, 0x41
jp 0x4e8d63
fld dword [esp + 0x28]
fcomp dword [esp + 0x30]
fnstsw ax
test ah, 1
jne 0x4e8d63
fld dword [esp + 0x28]
fcomp dword [esp + 0x44]
fnstsw ax
test ah, 0x41
jp 0x4e8d63
mov al, byte [ebp + 0xa0]
test al, al
jne 0x4e8cd2
mov ecx, dword [0x8ccd2c]
mov eax, ebp
call fcn.0051b0f0
mov ecx, dword [0x8ccd2c]
test al, al
mov eax, ebp
jne 0x4e8caf
push ecx
call fcn.0051aff0
jmp 0x4e8cc0
call fcn.0051af30
test al, al
je 0x4e8cc0
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x28]
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
mov al, byte [ebp + 0xa0]
test al, al
je 0x4e8c8e
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
push edi
lea ecx, [esp + 0x5c]
mov eax, ebp
mov dword [esp + 0x64], 0
call fcn.00514750
fld dword [ebx + 0x44]
fmul dword [ebx + 0x28]
fsubp st(1)
fld dword [0x70deb0]
fdiv dword [ebx + 0x2c]
fld st(0)
fmul dword [ebx + 0x20]
call fcn.005f275c
fmul dword [ebx + 0x24]
mov ecx, eax
mov eax, dword [esp + 0x6c]
cdq
idiv ecx
mov esi, eax
call fcn.005f275c
imul esi, esi, 0x125
mov ecx, eax
mov eax, dword [esp + 0x70]
cdq
idiv ecx
add esi, eax
movsx edx, word [esi*2 + 0x7d4168]
lea esi, [esi*2 + 0x7d4168]
mov dword [esp + 0x54], edx
fild dword [esp + 0x54]
fld st(1)
fcompp
fnstsw ax
test ah, 0x41
jne 0x4e8d61
call fcn.005f275c
mov word [esi], ax
jmp 0x4e8d63
fstp st(0)
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov ecx, dword [ebx + 0x58]
inc eax
add esi, 0x124
add edx, 0x2cc
cmp eax, ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edx
jl 0x4e8940
mov al, byte [esp + 0x17]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 0x10