Function at 0x471b10
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x148
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xb828]
push ebx
push esi
push edi
mov edi, dword [eax + 0x3c]
push 1
and edi, 0xfffff
push edi
lea edx, [ebp - 0x20]
push edx
lea edx, [ebp - 0xc4]
push edx
lea edx, [ebp - 0xc]
push edx
lea edx, [ebp - 0x144]
push edx
push 0x431a48
xor ebx, ebx
push eax
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x18], 2
mov dword [ebp - 0x14], 3
call fcn.004f3a10
cmp eax, ebx
jne 0x471ddf
fldz
mov byte [ebp - 6], bl
mov byte [ebp - 5], bl
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ebx
cmp edi, ebx
jbe 0x471c7b
mov eax, dword [ebp - 0xb4]
fld1
mov eax, dword [eax + 0x10]
mov esi, dword [eax + 8]
mov edx, dword [ebp - 0xa4]
and esi, 0x100
mov ecx, esi
xor eax, eax
or ecx, eax
je 0x471c53
mov eax, dword [edx + 0x10]
mov eax, dword [eax + 8]
and eax, 0x100
xor ecx, ecx
or eax, ecx
je 0x471c53
mov eax, dword [ebp - 0xb4]
or ecx, 0xffffffff
cmp dword [eax + 0x24], ecx
jne 0x471c53
cmp dword [edx + 0x24], ecx
jne 0x471c53
fld qword [eax + 0xa8]
fld qword [edx + 0xa8]
fld st(2)
fucomp st(2)
fnstsw ax
test ah, 0x44
jp 0x471c09
fld st(3)
fucomp st(1)
fnstsw ax
test ah, 0x44
jp 0x471c09
fstp st(0)
mov byte [ebp - 6], 1
fstp st(0)
jmp 0x471c23
fld st(2)
fucompp
fnstsw ax
test ah, 0x44
jp 0x471c51
fld st(2)
fucompp
fnstsw ax
test ah, 0x44
jp 0x471c53
mov byte [ebp - 5], 1
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, edi
jb 0x471ba9
fstp st(0)
fstp st(0)
cmp byte [ebp - 6], bl
je 0x471c65
cmp byte [ebp - 5], bl
jne 0x471c57
mov eax, edi
and eax, 0xfffff
or eax, 0x73500000
mov dword [ebp - 0x10], eax
jmp 0x471c7d
fstp st(0)
fstp st(0)
fstp st(0)
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp byte [ebp - 5], bl
je 0x471c7d
mov eax, edi
and eax, 0xfffff
or eax, 0x73600000
mov dword [ebp - 0x10], eax
jmp 0x471c7d
fstp st(0)
mov eax, dword [0x551d48]
cmp eax, ebx
jge 0x471c8a
xor eax, eax
jmp 0x471c91
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0x14], ebx
je 0x471cb9
mov ecx, dword [eax + 0x14]
cmp ecx, ebx
jne 0x471ca3
xor ecx, ecx
mov esi, ecx
jmp 0x471cc7
mov edx, dword [ecx]
mov dword [eax + 0x14], edx
cmp edx, ebx
jne 0x471caf
mov dword [eax + 0x18], ebx
mov dword [ecx], 0xfefefefe
mov esi, ecx
jmp 0x471cc7
mov ecx, dword [eax + 0x10]
push 0x10
push 0x44
call fcn.00547721
mov esi, eax
cmp esi, ebx
je 0x471d2a
or eax, 0xffffffff
xor edx, edx
xor ecx, ecx
push ebx
mov dword [esi + 0x10], eax
mov word [esi + 0x40], dx
mov word [esi + 0x42], cx
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x10]
lea ecx, [edi + edi]
push esi
mov edx, edi
mov dword [esi], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0x3c], ebx
mov dword [esi + 4], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], ebx
call fcn.0050a980
mov ebx, eax
test ebx, ebx
jge 0x471d38
call fcn.0050a890
call fcn.0050cb90
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, 0x8007000e
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xb828]
mov ecx, dword [eax + 0x34]
mov dword [esi + 0x34], ecx
mov edx, dword [eax + 0x38]
mov eax, dword [ebp + 8]
mov dword [esi + 0x38], edx
mov ecx, dword [eax + 0xb828]
mov edx, dword [ecx + 0xc]
mov eax, dword [esi + 0xc]
lea ebx, [edi*4]
push ebx
push edx
push eax
call sub.msvcrt.dll_memcpy
mov edx, dword [esi + 4]
add esp, 0xc
push ebx
lea ecx, [ebp - 0xc4]
push ecx
push edx
call sub.msvcrt.dll_memcpy
fldz
mov eax, dword [ebp + 8]
fstp qword [esp + 4]
mov ecx, dword [eax + 0x366c]
add esp, 4
push 0x20
push 0
push 0
push 0
push ecx
lea edx, [ebp - 0xc]
push edx
push eax
call fcn.00508980
test eax, eax
jl 0x471ddf
test edi, edi
jbe 0x471dbf
mov ecx, dword [ebp - 0xc]
mov eax, ebx
mov edx, dword [esi + 4]
mov dword [eax + edx], ecx
add eax, 4
sub edi, 1
jne 0x471db1
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xb828]
push esi
push ecx
call fcn.0050b3a0
mov dword [ebp + 8], eax
call fcn.0050a890
call fcn.0050cb90
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4