Function at 0x42fb50
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x28
mov ebx, ecx
mov eax, dword [0x511014]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ecx], 0x4ff02c
lea edi, [ecx + 4]
mov dword [ecx + 4], 0x4ff034
lea esi, [ebp - 0x18]
push esi
call fcn.00480c50
add esp, 4
mov esi, dword [esi]
lea ecx, [esi + 0x28c]
push ebx
call fcn.00416110
mov eax, esi
shr eax, 0xe
mov ecx, esi
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x518914]
bt ecx, eax
jb 0x42fe04
call fcn.0040f860
mov ecx, eax
push 0
push edi
call fcn.00483420
mov esi, dword [ebx + 8]
add esi, 4
push esi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x42fe1c
mov dword [ebp - 0x34], esi
mov eax, dword [ebx + 0xc]
test eax, eax
mov dword [ebp - 0x2c], ebx
jne 0x42fe28
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x28], eax
mov esi, dword [eax + 0x1b8]
test esi, esi
je 0x42fcfa
mov edx, esi
shr edx, 1
and edx, 0x55555555
mov eax, esi
sub eax, edx
mov edx, 0x33333333
mov edi, esi
mov esi, eax
and esi, edx
shr eax, 2
and eax, edx
add eax, esi
mov edx, eax
shr edx, 4
add edx, eax
and edx, 0xf0f0f0f
imul edx, edx, 0x1010101
shr edx, 0x18
cmp edx, 1
mov dword [ebp - 0x20], edx
ja 0x42fdd4
lea ebx, [edi - 1]
and ebx, ecx
mov esi, edi
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x1b4]
mov dword [ebp - 0x30], eax
mov eax, dword [eax + ebx*4]
test eax, eax
je 0x42fcfa
mov edi, dword [eax]
test edi, edi
je 0x42fcfa
lea eax, [esi - 1]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c], esi
mov eax, dword [edi + 4]
cmp eax, ecx
jne 0x42fe68
cmp dword [edi + 8], ecx
jne 0x42fe7e
cmp edx, 1
ja 0x42fdf0
and ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + ecx*4]
mov ebx, eax
mov eax, dword [eax]
cmp eax, edi
jne 0x42fc93
mov eax, dword [ebp - 0x28]
add eax, 0x1bc
cmp ebx, eax
jne 0x42feb0
mov eax, dword [edi]
test eax, eax
jne 0x42fdb5
mov eax, dword [ebp - 0x30]
mov dword [eax + ecx*4], 0
mov esi, dword [edi]
xor edx, edx
test esi, esi
jne 0x42fd7f
mov dword [ebx], edx
mov dword [edi], 0
mov eax, dword [ebp - 0x28]
dec dword [eax + 0x1c0]
test edi, edi
je 0x42fcfa
mov eax, dword [edi + 0xc]
test eax, eax
je 0x42fcf1
lock dec dword [eax + 4]
je 0x42fece
push edi
call fcn.00494aa1
add esp, 4
push dword [ebp - 0x34]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebx + 8]
push dword [0x514c54]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x42fd37
mov ecx, dword [esi + 0x19c]
mov dword [eax + ecx*8], 0
mov ecx, dword [esi + 0x19c]
mov edx, dword [esi + 0x1a0]
mov dword [eax + ecx*8 + 4], edx
mov edi, dword [ebx + 0xc]
mov dword [ebx + 0xc], 0
test edi, edi
jne 0x42fe8d
mov eax, dword [ebx + 8]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x518914]
bt edx, ecx
jb 0x42fea2
mov dword [ebx + 8], 0
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00496ce3
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 4]
cmp dword [ebp - 0x20], 1
jbe 0x42fe12
cmp eax, dword [ebp - 0x1c]
jb 0x42fd98
xor edx, edx
div dword [ebp - 0x1c]
mov eax, edx
mov edx, esi
cmp eax, ecx
je 0x42fccb
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx + 0x1b4]
mov dword [ecx + eax*4], ebx
mov edx, dword [edi]
jmp 0x42fccb
mov eax, dword [eax + 4]
cmp edx, 1
jbe 0x42fe17
cmp eax, esi
jb 0x42fdc7
xor edx, edx
div esi
mov eax, edx
cmp eax, ecx
je 0x42fcbf
jmp 0x42fcb5
mov ebx, ecx
cmp ecx, edi
mov esi, edi
jb 0x42fc43
mov eax, ecx
xor edx, edx
div esi
mov ebx, edx
mov edx, dword [ebp - 0x20]
jmp 0x42fc43
cmp ecx, esi
jb 0x42fdfc
mov eax, ecx
xor edx, edx
div esi
mov ecx, edx
mov edx, dword [ebp - 0x20]
jmp 0x42fc8d
push esi
call fcn.00454d60
add esp, 4
jmp 0x42fba9
and eax, dword [ebp - 0x24]
jmp 0x42fd98
and eax, dword [ebp - 0x24]
jmp 0x42fdc7
mov ecx, esi
call fcn.004597a0
jmp 0x42fbcd
mov ecx, dword [ebx + 8]
mov edx, dword [ecx + 0x1e4]
cmp edx, dword [ebx + 0x14]
jne 0x42fbde
mov edi, dword [ecx + 0x14]
mov dword [ebx + 0xc], 0
mov dword [ebp - 0x14], eax
mov esi, dword [ebx + 0x10]
mov eax, dword [edi]
mov ebx, dword [eax + 8]
mov ecx, ebx
call dword [section..00cfg]
mov eax, dword [ebp - 0x14]
mov ecx, edi
push eax
push esi
call ebx
mov ebx, dword [ebp - 0x2c]
jmp 0x42fbde
cmp edx, 1
ja 0x42fedc
and eax, dword [ebp - 0x24]
cmp eax, ebx
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
jne 0x42fcfa
mov edi, dword [edi]
test edi, edi
jne 0x42fc6d
jmp 0x42fcfa
mov ecx, edi
call fcn.004e1010
push edi
call fcn.00494aa1
add esp, 4
jmp 0x42fd49
push eax
call fcn.00454d60
add esp, 4
jmp 0x42fd66
mov eax, dword [ebx + 4]
cmp edx, 1
ja 0x42feea
and eax, dword [ebp - 0x24]
cmp eax, ecx
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
jne 0x42fcab
jmp 0x42fcbf
push eax
call fcn.0046f8d0
add esp, 4
jmp 0x42fcf1
cmp eax, dword [ebp - 0x1c]
jb 0x42fe70
xor edx, edx
div dword [ebp - 0x1c]
mov eax, edx
jmp 0x42fe70
cmp eax, dword [ebp - 0x1c]
jb 0x42febb
xor edx, edx
div dword [ebp - 0x1c]
mov eax, edx
jmp 0x42febb