Function at 0x414c00
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x154
push ebx
mov ebx, dword [ebp + 8]
push esi
lea eax, [esp + 0x58]
mov esi, 0x80000020
push edi
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], esi
jmp 0x414c34
mov esi, dword [esp + 0x58]
fld qword [0x4b33e0]
or eax, 0xffffffff
fld dword [0x4b33dc]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
fstp dword [esp + 0x1c]
mov eax, dword [ebx + 4]
xor edx, edx
test eax, eax
jle 0x414e74
xor edi, edi
mov dword [esp + 0x10], edi
lea ecx, [edx + 1]
cmp ecx, eax
mov dword [esp + 0xc], ecx
jge 0x414d0a
lea esi, [edi + 0x10]
mov eax, dword [ebx]
fld dword [esi + eax + 4]
fmul dword [edi + eax + 4]
fld dword [esi + eax]
fmul dword [edi + eax]
faddp st(1)
fld dword [esi + eax + 8]
fmul dword [edi + eax + 8]
faddp st(1)
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
fld dword [esp + 0x1c]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x414cf5
fcom st(1)
fnstsw ax
test ah, 5
jp 0x414cf5
xor eax, eax
cmp dword [esp + 0x54], eax
jle 0x414cd5
mov edi, dword [esp + 0x50]
cmp dword [edi + eax*8], edx
jne 0x414cc5
cmp dword [edi + eax*8 + 4], ecx
je 0x414cd0
add eax, 1
cmp eax, dword [esp + 0x54]
jge 0x414cd5
jmp 0x414cb6
cmp eax, 0xffffffff
jne 0x414cf1
mov eax, dword [ebp + 0xc]
fstp dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov dword [eax], edx
mov eax, dword [ebp + 0x10]
mov dword [eax], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
jmp 0x414cf7
mov edi, dword [esp + 0x10]
fstp st(0)
add ecx, 1
add esi, 0x10
cmp ecx, dword [ebx + 4]
jl 0x414c74
mov ecx, dword [esp + 0xc]
mov eax, dword [ebx + 4]
mov edx, ecx
add edi, 0x10
cmp edx, eax
mov dword [esp + 0x10], edi
jl 0x414c62
mov esi, dword [esp + 0x14]
fstp st(0)
cmp esi, 0xffffffff
je 0x414e6e
mov eax, dword [esp + 0x58]
and eax, 0x3fffffff
cmp dword [esp + 0x54], eax
jne 0x414d4b
lea ecx, [esp + 0x50]
push 8
push ecx
call fcn.00402730
add esp, 8
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov dword [edx + eax*8], esi
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x18]
mov dword [edx + ecx*8 + 4], eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
add dword [esp + 0x54], 1
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx]
mov esi, dword [ebx]
mov ecx, edi
shl ecx, 4
fld dword [ecx + esi + 4]
add ecx, esi
mov eax, edx
shl eax, 4
fmul dword [eax + esi + 8]
add eax, esi
fld dword [ecx + 8]
mov esi, dword [ebp + 0x18]
fmul dword [eax + 4]
fsubp st(1)
fstp dword [esp + 0x20]
fld dword [eax]
fmul dword [ecx + 8]
fld dword [ecx]
fmul dword [eax + 8]
fsubp st(1)
fstp dword [esp + 0x24]
fld dword [ecx]
fmul dword [eax + 4]
fld dword [eax]
mov eax, dword [ebp + 0x14]
fmul dword [ecx + 4]
push eax
push esi
push edx
fsubp st(1)
push edi
lea ecx, [esp + 0x30]
push ebx
fstp dword [esp + 0x3c]
push ecx
fldz
fstp dword [esp + 0x44]
call fcn.00414590
add esp, 0x18
cmp eax, 1
je 0x414eaf
mov eax, dword [ebp + 0x14]
fld dword [esi]
fsub dword [eax]
fstp dword [esp + 0x40]
fld dword [esi + 4]
fsub dword [eax + 4]
fstp dword [esp + 0x44]
fld dword [esi + 8]
fsub dword [eax + 8]
fstp dword [esp + 0x48]
fld dword [esp + 0x20]
fmul dword [esp + 0x40]
fld dword [esp + 0x44]
fmul dword [esp + 0x24]
faddp st(1)
fld dword [esp + 0x48]
fmul dword [esp + 0x28]
faddp st(1)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fcomp dword [0x4b33c4]
fnstsw ax
test ah, 0x41
jne 0x414c30
mov eax, dword [esp + 0x58]
test eax, eax
js 0x414e65
and eax, 0x3fffffff
mov esi, eax
mov eax, dword [0x4c6060]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edx, dword [esp + 0x50]
push 0x17
lea ecx, [esi*8]
push ecx
push edx
mov ecx, eax
call fcn.004023e0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x58]
jmp 0x414e76
fstp st(0)
test esi, esi
js 0x414ea3
mov edx, dword [0x4c6060]
push edx
and esi, 0x3fffffff
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edx, dword [esp + 0x50]
push 0x17
lea ecx, [esi*8]
push ecx
push edx
mov ecx, eax
call fcn.004023e0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x58]
test eax, eax
js 0x414ea3
and eax, 0x3fffffff
mov esi, eax
mov eax, dword [0x4c6060]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edx, dword [esp + 0x50]
push 0x17
lea ecx, [esi*8]
push ecx
push edx
mov ecx, eax
call fcn.004023e0
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret