Function at 0x419720
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xd4
mov eax, dword [ebp + 0x10]
fldz
cmp dword [eax + 8], 0
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ebx
push esi
push edi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x2c], 0
jle 0x419bbd
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
movzx edi, word [eax + ecx*8 + 4]
cmp ecx, edi
mov edx, dword [eax + ecx*8]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x80], edx
movzx edx, word [eax + edi*8 + 4]
mov dword [esp + 0x20], edx
jge 0x419ba6
mov eax, edx
cmp ecx, eax
jge 0x419ba6
mov ecx, dword [ebp + 0x20]
mov esi, dword [ecx + 4]
mov eax, dword [ecx + 8]
lea ebx, [esi + 1]
and eax, 0x3fffffff
cmp eax, ebx
jge 0x4197b8
add eax, eax
fstp st(0)
cmp ebx, eax
jl 0x4197aa
mov eax, ebx
push 0x10
push eax
push ecx
call fcn.004026b0
fldz
add esp, 0xc
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x10]
mov dword [eax + 4], ebx
mov ecx, dword [ecx]
shl esi, 4
add esi, dword [eax]
movzx eax, word [esp + 0x80]
shl eax, 4
mov edx, dword [eax + ecx]
add eax, ecx
mov dword [esp + 0x60], edx
mov edx, dword [eax + 4]
fld dword [esp + 0x60]
mov dword [esp + 0x64], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x4c]
movzx eax, word [edx + edi*8]
lea ebx, [edx + edi*8]
shl eax, 4
mov edi, dword [eax + ecx]
add eax, ecx
mov dword [esp + 0x90], edi
mov edi, dword [eax + 4]
fsub dword [esp + 0x90]
mov dword [esp + 0x94], edi
mov edi, dword [eax + 8]
mov eax, dword [eax + 0xc]
fstp dword [esp + 0x30]
mov dword [esp + 0x98], edi
fld dword [esp + 0x64]
mov dword [esp + 0x9c], eax
fsub dword [esp + 0x94]
mov eax, dword [esp + 0x20]
lea eax, [edx + eax*8]
mov dword [esp + 0x18], eax
fstp dword [esp + 0x34]
movzx eax, word [eax]
fld dword [esp + 0x68]
fsub dword [esp + 0x98]
shl eax, 4
mov edx, dword [eax + ecx + 4]
fstp dword [esp + 0x38]
add eax, ecx
fld dword [esp + 0x30]
mov ecx, dword [eax]
fld dword [esp + 0x34]
mov dword [esp + 0xb0], ecx
fld dword [esp + 0x38]
mov ecx, dword [eax + 8]
fld st(1)
mov dword [esp + 0xb4], edx
fmulp st(2)
mov edx, dword [eax + 0xc]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], edx
fld st(2)
fmulp st(3)
fxch st(1)
faddp st(2)
fmul st(0), st(0)
faddp st(1)
fstp dword [esp + 0x1c]
fld st(0)
fld dword [esp + 0x1c]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x4198dd
fstp st(1)
call fcn.0042eb10
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fld1
fdivrp st(1)
fstp dword [esp + 0x20]
fldz
jmp 0x4198e3
fstp st(0)
fst dword [esp + 0x20]
fld dword [esp + 0x20]
fld st(0)
fmul dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [esp + 0x34]
fmul st(1)
fstp dword [esp + 0x34]
fmul dword [esp + 0x38]
fstp dword [esp + 0x38]
fld dword [esp + 0xb0]
fsub dword [esp + 0x90]
fstp dword [esp + 0x50]
fld dword [esp + 0xb4]
fsub dword [esp + 0x94]
fstp dword [esp + 0x54]
fld dword [esp + 0xb8]
fsub dword [esp + 0x98]
fstp dword [esp + 0x58]
fld dword [esp + 0x50]
fld dword [esp + 0x54]
fld dword [esp + 0x58]
fld st(2)
fmulp st(3)
fld st(1)
fmulp st(2)
fxch st(2)
faddp st(1)
fld st(1)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x1c]
fld st(0)
fld dword [esp + 0x1c]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x419981
fstp st(1)
call fcn.0042eb10
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fld1
fdivrp st(1)
jmp 0x419983
fstp st(0)
fstp dword [esp + 0x20]
mov eax, dword [ebp + 0xc]
fld dword [esp + 0x20]
fld st(0)
fmul dword [esp + 0x50]
fstp dword [esp + 0x50]
fld dword [esp + 0x54]
fmul st(1)
fstp dword [esp + 0x54]
fmul dword [esp + 0x58]
fstp dword [esp + 0x58]
fld dword [esp + 0x58]
fld st(0)
fld dword [esp + 0x34]
fld st(0)
fmulp st(2)
fld dword [esp + 0x54]
fld st(0)
fld dword [esp + 0x38]
fld st(0)
fmulp st(2)
fxch st(4)
fsubrp st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fst dword [esi]
fld dword [esp + 0x50]
fld st(0)
fmulp st(5)
fld dword [esp + 0x30]
fld st(0)
fmulp st(7)
fxch st(5)
fsubrp st(6)
fxch st(5)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fst dword [esi + 4]
fxch st(2)
fmulp st(4)
fxch st(2)
fmulp st(4)
fxch st(2)
fsubrp st(3)
fxch st(2)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fst dword [esi + 8]
fldz
fst dword [esi + 0xc]
fld st(2)
fld st(4)
fld st(3)
fld st(1)
fmulp st(2)
fld st(2)
fmulp st(3)
fxch st(1)
faddp st(2)
fmul st(0), st(0)
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fld dword [eax + 8]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x419a7a
mov edi, dword [ebp + 0x20]
fstp st(0)
mov esi, dword [edi + 4]
fstp st(3)
mov eax, dword [edi + 8]
fstp st(1)
sub esi, 1
fstp st(0)
and eax, 0x3fffffff
cmp eax, esi
jge 0x419a72
add eax, eax
fstp st(0)
cmp esi, eax
jl 0x419a64
mov eax, esi
push 0x10
push eax
push edi
call fcn.004026b0
fldz
add esp, 0xc
mov dword [edi + 4], esi
jmp 0x419ba6
fstp dword [esp + 0x1c]
fld st(0)
fld dword [esp + 0x1c]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x419abc
fstp st(4)
fstp st(2)
fstp st(0)
fstp st(0)
call fcn.0042eb10
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fld1
fdivrp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fld dword [esp + 0x28]
fld dword [esp + 0x24]
fldz
jmp 0x419ac8
fstp st(0)
fst dword [esp + 0x1c]
fxch st(1)
fxch st(3)
fxch st(1)
fld dword [esp + 0x1c]
mov eax, dword [ebp + 0x24]
fld st(0)
fmulp st(3)
fxch st(2)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esi]
fld st(2)
fmulp st(4)
fxch st(3)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esi + 4]
fld st(2)
fmulp st(5)
fxch st(4)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esi + 8]
fxch st(2)
fmul qword [0x4bea18]
fstp dword [esi + 0xc]
fld dword [esp + 0x64]
fmulp st(4)
fld dword [esp + 0x60]
fmulp st(3)
fxch st(3)
faddp st(2)
fmul dword [esp + 0x68]
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fchs
fstp dword [esi + 0xc]
mov edi, dword [eax + 4]
mov eax, dword [eax + 8]
lea ecx, [edi + 1]
and eax, 0x3fffffff
cmp eax, ecx
jge 0x419b5c
add eax, eax
fstp st(0)
cmp ecx, eax
jl 0x419b4b
mov eax, ecx
mov ecx, dword [ebp + 0x24]
push 0x20
push eax
push ecx
call fcn.004026b0
fldz
add esp, 0xc
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x10]
lea eax, [edi + 1]
mov dword [ecx + 4], eax
fld dword [esi]
mov eax, dword [esp + 0x2c]
shl edi, 5
add edi, dword [ecx]
add eax, eax
mov ecx, edi
fstp dword [ecx]
add eax, eax
fld dword [esi + 4]
add eax, eax
fstp dword [ecx + 4]
fld dword [esi + 8]
fstp dword [ecx + 8]
fld dword [esi + 0xc]
fstp dword [ecx + 0xc]
mov edx, dword [edx + 4]
add edx, eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x14], ebx
mov dword [ecx + 0x18], eax
call fcn.00416a80
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebp + 0x10]
add eax, 1
cmp eax, dword [ecx + 8]
mov dword [esp + 0x2c], eax
jl 0x419753
mov edx, dword [ebp + 0x1c]
fstp st(0)
mov eax, dword [ebp + 0x24]
mov byte [edx], 0
cmp dword [eax + 4], 0
jle 0x41a10e
mov eax, 1
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], eax
mov ecx, dword [ebp + 0x24]
cmp eax, dword [ecx + 4]
mov dword [esp + 0x1c], eax
jge 0x419f6c
mov edx, dword [esp + 0x2c]
add edx, 0x20
mov dword [esp + 0x20], edx
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
lea esi, [eax + ecx]
mov ecx, 8
lea edi, [esp + 0x90]
rep movsd dword es:[edi], dword [esi]
lea esi, [eax + edx]
mov ecx, 8
lea edi, [esp + 0xb0]
rep movsd dword es:[edi], dword [esi]
fld dword [esp + 0xb0]
fld st(0)
fadd dword [esp + 0x90]
fstp dword [esp + 0x60]
fld dword [esp + 0xb4]
fld st(0)
fadd dword [esp + 0x94]
fstp dword [esp + 0x64]
mov eax, dword [ebp + 0xc]
fld dword [esp + 0xb8]
fld st(0)
fadd dword [esp + 0x98]
fstp dword [esp + 0x68]
fld dword [esp + 0xbc]
fadd dword [esp + 0x9c]
fstp dword [esp + 0x6c]
fld dword [esp + 0x60]
fld dword [esp + 0x64]
fld dword [esp + 0x68]
fld dword [esp + 0x6c]
fld st(2)
fmulp st(3)
fld st(3)
fmulp st(4)
fxch st(2)
faddp st(3)
fmul st(0), st(0)
faddp st(2)
fmul st(0), st(0)
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fld dword [eax + 0x18]
fcompp
fnstsw ax
test ah, 0x41
jne 0x419f46
mov ecx, dword [ebp + 0x1c]
fxch st(2)
mov esi, dword [esp + 0xa4]
fchs
mov ebx, dword [esp + 0xa0]
fstp dword [esp + 0x90]
lea edx, [esp + 0xb0]
push edx
fchs
mov edx, dword [esp + 0xc4]
fstp dword [esp + 0x98]
mov byte [ecx], 1
mov ecx, dword [esp + 0xc8]
fchs
lea eax, [esp + 0x94]
fstp dword [esp + 0x9c]
push eax
mov eax, dword [esp + 0x54]
push ecx
push esi
push edx
push ebx
push eax
lea ecx, [esp + 0xf8]
push ecx
call fcn.00415b90
mov edi, dword [esp + 0xc8]
add esp, 0x20
cmp byte [eax], 0
jne 0x419d6a
mov ecx, dword [esp + 0xc8]
lea edx, [esp + 0xb0]
push edx
mov edx, dword [esp + 0xc4]
lea eax, [esp + 0x94]
push eax
mov eax, dword [esp + 0x54]
push ecx
push esi
push edx
push ebx
push eax
lea ecx, [esp + 0xf9]
push ecx
call fcn.00415b90
add esp, 0x20
cmp byte [eax], 0
je 0x419da6
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
mov byte [edx], 1
movzx ecx, word [edi]
movzx edx, word [esi]
push eax
mov eax, dword [esp + 0x80]
shl ecx, 4
add ecx, eax
push ecx
movzx ecx, word [ebx]
shl edx, 4
add edx, eax
push edx
shl ecx, 4
add ecx, eax
push ecx
lea edx, [esp + 0xa0]
push edx
call fcn.00416dc0
add esp, 0x14
mov edx, dword [esp + 0xc4]
lea eax, [esp + 0xb0]
push eax
mov eax, dword [esp + 0xc4]
lea ecx, [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x54]
push edx
push edi
push eax
push ebx
push ecx
lea edx, [esp + 0xfb]
push edx
call fcn.00415b90
add esp, 0x20
cmp byte [eax], 0
jne 0x419e1e
mov edx, dword [esp + 0xc8]
lea eax, [esp + 0xb0]
push eax
mov eax, dword [esp + 0xc4]
lea ecx, [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x54]
push edx
push edi
push eax
push ebx
push ecx
lea edx, [esp + 0xf6]
push edx
call fcn.00415b90
add esp, 0x20
cmp byte [eax], 0
je 0x419e57
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x20]
mov byte [eax], 1
movzx edx, word [esi]
mov eax, dword [esp + 0x7c]
push ecx
movzx ecx, word [edi]
shl edx, 4
add edx, eax
push edx
movzx edx, word [ebx]
shl ecx, 4
add ecx, eax
shl edx, 4
push ecx
add edx, eax
push edx
lea eax, [esp + 0xa0]
push eax
call fcn.00416dc0
add esp, 0x14
mov eax, dword [esp + 0xc4]
lea ecx, [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0xc4]
lea edx, [esp + 0x94]
push edx
mov edx, dword [esp + 0x54]
push eax
push edi
push ecx
push esi
push edx
lea eax, [esp + 0xf5]
push eax
call fcn.00415b90
add esp, 0x20
cmp byte [eax], 0
jne 0x419f0b
mov eax, dword [esp + 0xc8]
lea ecx, [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0xc4]
lea edx, [esp + 0x94]
push edx
mov edx, dword [esp + 0x54]
push eax
push edi
push ecx
push esi
push edx
lea eax, [esp + 0xf7]
push eax
call fcn.00415b90
add esp, 0x20
cmp byte [eax], 0
jne 0x419f0b
mov eax, dword [esp + 0xc8]
lea ecx, [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0xc8]
lea edx, [esp + 0x94]
push edx
mov edx, dword [esp + 0x54]
push eax
push edi
push ecx
push esi
push edx
lea eax, [esp + 0xfa]
push eax
call fcn.00415b90
add esp, 0x20
cmp byte [eax], 0
je 0x419f4c
mov ecx, dword [ebp + 0x1c]
mov eax, dword [esp + 0x7c]
mov edx, dword [ebp + 0x20]
mov byte [ecx], 1
movzx ecx, word [ebx]
push edx
movzx edx, word [edi]
shl ecx, 4
add ecx, eax
push ecx
movzx ecx, word [esi]
shl edx, 4
add edx, eax
push edx
shl ecx, 4
add ecx, eax
push ecx
lea edx, [esp + 0xa0]
push edx
call fcn.00416dc0
add esp, 0x14
jmp 0x419f4c
fstp st(2)
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x24]
add dword [esp + 0x20], 0x20
add eax, 1
cmp eax, dword [ecx + 4]
mov dword [esp + 0x1c], eax
jl 0x419bfe
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp + 0x24]
add dword [esp + 0x2c], 0x20
add eax, 1
lea edx, [eax - 1]
cmp edx, dword [ecx + 4]
mov dword [esp + 0x24], eax
jl 0x419be3
mov edx, dword [ebp + 0x1c]
cmp byte [edx], 0
je 0x41a10e
mov edi, dword [ebp + 0x14]
mov eax, dword [edi]
fld dword [eax]
mov esi, dword [ebp + 0x18]
fsub dword [eax + 0x10]
fstp dword [esp + 0x60]
fld dword [eax + 4]
fsub dword [eax + 0x14]
fstp dword [esp + 0x64]
fld dword [eax + 8]
fsub dword [eax + 0x18]
fstp dword [esp + 0x68]
fld dword [eax]
fsub dword [eax + 0x20]
fstp dword [esp + 0xb0]
fld dword [eax + 4]
fsub dword [eax + 0x24]
fstp dword [esp + 0xb4]
fld dword [eax + 8]
fsub dword [eax + 0x28]
fstp dword [esp + 0xb8]
fld dword [esp + 0xb8]
fld st(0)
fld dword [esp + 0x64]
fld st(0)
fmulp st(2)
fld dword [esp + 0xb4]
fld st(0)
fld dword [esp + 0x68]
fld st(0)
fmulp st(2)
fxch st(4)
fsubrp st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fst dword [esi]
fld dword [esp + 0xb0]
fld st(0)
fmulp st(5)
fld dword [esp + 0x60]
fld st(0)
fmulp st(7)
fxch st(5)
fsubrp st(6)
fxch st(5)
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fst dword [esi + 4]
fxch st(4)
fmulp st(2)
fxch st(4)
fmulp st(2)
fsubrp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esi + 8]
fldz
fst dword [esi + 0xc]
fld st(2)
fld st(4)
fld st(3)
fld st(1)
fmulp st(2)
fld st(2)
fmulp st(3)
fxch st(1)
faddp st(2)
fmul st(0), st(0)
faddp st(1)
fstp dword [esp + 0x18]
fld st(0)
fld dword [esp + 0x18]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x41a0a2
fstp st(4)
fstp st(2)
fstp st(0)
fstp st(0)
call fcn.0042eb10
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fld1
fdivrp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x1c]
fld dword [esp + 0x24]
fld dword [esp + 0x28]
jmp 0x41a0aa
fstp st(0)
fstp dword [esp + 0x20]
fxch st(2)
fld dword [esp + 0x20]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [esi]
fld st(1)
fmulp st(3)
fxch st(2)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [esi + 4]
fld st(1)
fmulp st(4)
fxch st(3)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [esi + 8]
fxch st(1)
fmul qword [0x4bea18]
fstp dword [esi + 0xc]
mov eax, dword [edi]
fld dword [eax + 4]
fmulp st(3)
fld dword [eax]
fmulp st(2)
fxch st(2)
faddp st(1)
fld dword [eax + 8]
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fchs
fstp dword [esi + 0xc]
mov esi, dword [ebp + 0x20]
mov eax, dword [esi + 4]
cmp eax, 1
jle 0x41a12f
push 0x415db0
add eax, 0xffffffff
push eax
mov eax, dword [esi]
push 0
push eax
call fcn.00414160
add esp, 0x10
mov ebx, dword [ebp + 0xc]
fld dword [ebx + 0x10]
lea ecx, [esp + 0x18]
push ecx
push esi
push ecx
fstp dword [esp]
call fcn.00416ad0
mov eax, dword [esi + 4]
add esp, 0xc
cmp eax, 2
mov dword [esp + 0x2c], eax
jge 0x41a853
mov edx, dword [ebp + 0x10]
cmp dword [edx + 8], 1
jne 0x41a1c8
mov eax, dword [edx + 4]
movzx eax, word [eax]
shl eax, 4
add eax, dword [edx]
fld dword [eax]
fstp dword [esp + 0x30]
fld dword [eax + 4]
fstp dword [esp + 0x34]
fld dword [eax + 8]
fstp dword [esp + 0x38]
fld dword [eax + 0xc]
fstp dword [esp + 0x3c]
fld dword [esp + 0x30]
fadd qword [0x4b2a40]
fstp dword [esp + 0x90]
fld dword [esp + 0x34]
fldz
fadd st(1), st(0)
fxch st(1)
fstp dword [esp + 0x94]
fld dword [esp + 0x38]
fld st(0)
fadd st(2)
fstp dword [esp + 0x98]
fld dword [esp + 0x3c]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x9c]
jmp 0x41a228
mov ecx, dword [edx + 4]
movzx eax, word [ecx]
mov edx, dword [edx]
shl eax, 4
add eax, edx
fld dword [eax]
fstp dword [esp + 0x30]
fld dword [eax + 4]
fstp dword [esp + 0x34]
fld dword [eax + 8]
fstp dword [esp + 0x38]
fld dword [eax + 0xc]
movzx eax, word [ecx + 2]
movzx eax, word [ecx + eax*8]
fstp dword [esp + 0x3c]
shl eax, 4
add eax, edx
fld dword [eax]
fstp dword [esp + 0x90]
fld dword [eax + 4]
fstp dword [esp + 0x94]
fld dword [eax + 8]
fstp dword [esp + 0x98]
fld dword [eax + 0xc]
fstp dword [esp + 0x9c]
fld dword [esp + 0x38]
fld dword [esp + 0x30]
xor ecx, ecx
fsub dword [esp + 0x90]
fstp dword [esp + 0x50]
fld dword [esp + 0x34]
fsub dword [esp + 0x94]
fstp dword [esp + 0x54]
fld st(0)
fsub dword [esp + 0x98]
fstp dword [esp + 0x58]
fld dword [esp + 0x3c]
fsub dword [esp + 0x9c]
fstp dword [esp + 0x5c]
fld dword [0x4b33d8]
fstp dword [esp + 0x1c]
fld dword [esp + 0x58]
fld dword [esp + 0x54]
fld dword [esp + 0x50]
fldz
fst dword [esp + 0x60]
fst dword [esp + 0x64]
fst dword [esp + 0x68]
fld1
fstp dword [esp + ecx*4 + 0x60]
fld dword [esp + 0x64]
fmul st(3)
fld dword [esp + 0x60]
fmul st(3)
faddp st(1)
fld dword [esp + 0x68]
fmul st(5)
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fabs
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fld dword [esp + 0x1c]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x41a2f2
fstp dword [esp + 0x1c]
fld dword [esp + 0x60]
fstp dword [esp + 0x80]
fld dword [esp + 0x64]
fstp dword [esp + 0x84]
fld dword [esp + 0x68]
fstp dword [esp + 0x88]
jmp 0x41a2f4
fstp st(0)
add ecx, 1
cmp ecx, 3
jl 0x41a27c
mov ebx, dword [ebp + 0x20]
mov edi, dword [esp + 0x2c]
mov eax, dword [ebx + 8]
lea esi, [edi + 6]
and eax, 0x3fffffff
cmp eax, esi
jge 0x41a344
fstp st(0)
add eax, eax
cmp esi, eax
fstp st(2)
fstp st(0)
fstp st(0)
fstp st(0)
jl 0x41a324
mov eax, esi
push 0x10
push eax
push ebx
call fcn.004026b0
fldz
fld dword [esp + 0x64]
add esp, 0xc
fld dword [esp + 0x54]
fld dword [esp + 0x50]
fld dword [esp + 0x38]
fxch st(4)
fld dword [esp + 0x88]
mov dword [ebx + 4], esi
fmul st(3)
mov esi, dword [ebx]
fld dword [esp + 0x84]
shl edi, 4
fmul st(5)
add esi, edi
fsubp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esi]
fld dword [esp + 0x80]
fmul st(4)
fld st(2)
fmul dword [esp + 0x88]
fsubp st(1)
fstp dword [esp + 0x7c]
fld dword [esp + 0x7c]
fstp dword [esi + 4]
fld st(1)
fmul dword [esp + 0x84]
fld dword [esp + 0x80]
fmul st(4)
fsubp st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fst dword [esi + 8]
fxch st(1)
fst dword [esi + 0xc]
fld dword [esp + 0x7c]
fld dword [esp + 0x20]
fxch st(3)
fstp qword [esp + 0x80]
fld st(2)
fmulp st(3)
fmul st(0), st(0)
faddp st(2)
fld qword [esp + 0x80]
fmul st(0), st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x18]
fld st(0)
fld dword [esp + 0x18]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x41a41d
fstp st(1)
fstp st(3)
fstp st(1)
fstp st(0)
fstp st(1)
call fcn.0042eb10
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fld1
fdivrp st(1)
fstp dword [esp + 0x1c]
fldz
fld dword [esp + 0x58]
fld dword [esp + 0x54]
fld dword [esp + 0x38]
fld dword [esp + 0x50]
jmp 0x41a427
fstp st(0)
fst dword [esp + 0x1c]
fxch st(4)
fxch st(1)
fld dword [esp + 0x1c]
fld st(0)
fmul dword [esp + 0x20]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esi]
fld st(0)
fmul dword [esp + 0x7c]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esi + 4]
fld st(0)
fmul dword [esp + 0x24]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fstp dword [esi + 8]
fmul qword [0x4bea18]
fstp dword [esi + 0xc]
fld dword [esp + 0x30]
fmul dword [esp + 0x1c]
fld dword [esp + 0x34]
fmul dword [esp + 0x28]
faddp st(1)
fld dword [esp + 0x24]
fmul st(3)
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fchs
fstp dword [esi + 0xc]
mov ecx, dword [ebx]
fld st(3)
lea edi, [ecx + edi + 0x10]
fmul dword [esi]
fld st(1)
fmul dword [esi + 8]
fsubp st(1)
fstp dword [esp + 0x24]
fld st(0)
fmul dword [esi + 4]
fld st(3)
fmul dword [esi]
fsubp st(1)
fstp dword [esp + 0x28]
fld dword [esi + 8]
fmul st(3)
fld st(4)
fmul dword [esi + 4]
fsubp st(1)
fstp dword [edi]
fld dword [esp + 0x24]
fst dword [edi + 4]
fld dword [esp + 0x28]
fst dword [edi + 8]
fxch st(6)
fst dword [edi + 0xc]
fld dword [edi]
fxch st(7)
fstp qword [esp + 0x80]
fld st(6)
fmulp st(7)
fld st(1)
fmulp st(2)
fxch st(6)
faddp st(1)
fld qword [esp + 0x80]
fmul st(0), st(0)
faddp st(1)
fstp dword [esp + 0x18]
fld st(4)
fld dword [esp + 0x18]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x41a53c
fstp st(5)
fstp st(3)
fstp st(1)
fstp st(1)
fstp st(0)
call fcn.0042eb10
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fld1
fdivrp st(1)
fstp dword [esp + 0x1c]
fldz
fld dword [esp + 0x58]
fld dword [esp + 0x54]
fld dword [esp + 0x38]
fld dword [esp + 0x50]
jmp 0x41a546
fstp st(0)
fxch st(4)
fst dword [esp + 0x1c]
fxch st(4)
fld dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
fld st(0)
lea eax, [ecx + 2]
fmul dword [edi]
shl eax, 4
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [edi]
fld st(0)
fmul dword [esp + 0x24]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fstp dword [edi + 4]
fld st(0)
fmul dword [esp + 0x28]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [edi + 8]
fmul qword [0x4bea18]
fstp dword [edi + 0xc]
fld dword [esp + 0x30]
fmul dword [esp + 0x1c]
fld dword [esp + 0x24]
fmul dword [esp + 0x34]
faddp st(1)
fld dword [esp + 0x28]
fmul st(3)
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fchs
fstp dword [edi + 0xc]
add eax, dword [ebx]
fld dword [esi]
fchs
fstp dword [eax]
fld dword [esi + 4]
fchs
fstp dword [eax + 4]
fld dword [esi + 8]
fchs
fstp dword [eax + 8]
fld dword [esi + 0xc]
fchs
fstp dword [eax + 0xc]
fld dword [eax + 4]
fmul dword [esp + 0x34]
fld dword [esp + 0x30]
fmul dword [eax]
faddp st(1)
fld dword [eax + 8]
fmul st(3)
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fchs
fstp dword [eax + 0xc]
lea eax, [ecx + 3]
fld dword [edi]
shl eax, 4
add eax, dword [ebx]
fchs
fstp dword [eax]
fld dword [edi + 4]
fchs
fstp dword [eax + 4]
fld dword [edi + 8]
fchs
fstp dword [eax + 8]
fld dword [edi + 0xc]
fchs
fstp dword [eax + 0xc]
fld dword [eax + 4]
fmul dword [esp + 0x34]
fld dword [esp + 0x30]
fmul dword [eax]
faddp st(1)
fld dword [eax + 8]
fmul st(3)
faddp st(1)
fstp dword [esp + 0x18]
lea esi, [ecx + 4]
fld dword [esp + 0x18]
shl esi, 4
fchs
fstp dword [eax + 0xc]
add esi, dword [ebx]
fst dword [esi]
fxch st(2)
fst dword [esi + 4]
fxch st(3)
fst dword [esi + 8]
fld dword [esp + 0x5c]
fstp dword [esi + 0xc]
fld st(3)
fld st(3)
fxch st(2)
fst qword [esp + 0x80]
fld st(2)
fmulp st(3)
fld st(1)
fmulp st(2)
fxch st(2)
faddp st(1)
fld qword [esp + 0x80]
fmul st(0), st(0)
faddp st(1)
fstp dword [esp + 0x18]
fld st(4)
fld dword [esp + 0x18]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x41a6cb
fstp st(5)
fstp st(0)
fstp st(2)
fstp st(0)
fstp st(0)
call fcn.0042eb10
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
fld1
fdivrp st(1)
fstp dword [esp + 0x1c]
fldz
fld dword [esp + 0x58]
fld dword [esp + 0x54]
fld dword [esp + 0x38]
fld dword [esp + 0x50]
jmp 0x41a6d9
fstp st(0)
fxch st(4)
fst dword [esp + 0x1c]
fxch st(4)
fxch st(3)
fxch st(2)
fld dword [esp + 0x1c]
lea edi, [ecx + 5]
fld st(0)
shl edi, 4
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [esi]
fld st(1)
fmulp st(4)
fxch st(3)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [esi + 4]
fld st(1)
fmulp st(5)
fxch st(4)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [esi + 8]
fld dword [esp + 0x5c]
fmulp st(2)
fxch st(1)
fstp dword [esi + 0xc]
fld dword [esp + 0x34]
fmulp st(4)
fld dword [esp + 0x30]
fmulp st(3)
fxch st(3)
faddp st(2)
fld st(0)
fmulp st(3)
fxch st(1)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fchs
fstp dword [esi + 0xc]
add edi, dword [ebx]
fld dword [esi]
fchs
fstp dword [edi]
fld dword [esi + 4]
fchs
fstp dword [edi + 4]
fld dword [esi + 8]
fchs
fstp dword [edi + 8]
fld dword [esi + 0xc]
fchs
fstp dword [edi + 0xc]
fld dword [edi + 4]
fld dword [edi]
fld dword [edi + 8]
fld st(1)
fmulp st(2)
fld st(2)
fmulp st(3)
fxch st(1)
faddp st(2)
fmul st(0), st(0)
faddp st(1)
fstp dword [esp + 0x18]
fld st(1)
fld dword [esp + 0x18]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x41a7b3
fstp st(2)
fstp st(0)
call fcn.0042eb10
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fld1
fdivrp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x38]
jmp 0x41a7bb
fstp st(0)
fxch st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
mov edx, dword [ebp + 0x10]
fld st(0)
fmul dword [edi]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [edi]
fld st(1)
fmul dword [edi + 4]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [edi + 4]
fld st(2)
fmul dword [edi + 8]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [edi + 8]
fld dword [edi + 0xc]
fmulp st(4)
fxch st(3)
fstp dword [edi + 0xc]
cmp dword [edx + 8], 1
jne 0x41a81c
fmul dword [esp + 0x34]
fld dword [esp + 0x30]
fmulp st(2)
faddp st(1)
fxch st(1)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
jmp 0x41a841
fstp st(3)
fld dword [esp + 0x94]
fmulp st(3)
fmul dword [esp + 0x90]
faddp st(2)
fmul dword [esp + 0x98]
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fchs
mov esi, ebx
mov ebx, dword [ebp + 0xc]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [edi + 0xc]
mov eax, dword [ebp + 0x1c]
cmp byte [eax], 0
je 0x41a8d2
cmp byte [ebx + 2], 0
je 0x41a8d2
xor eax, eax
mov dword [esi + 4], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 4]
mov eax, dword [eax]
push esi
lea ecx, [esp + 0x84]
push ecx
mov ecx, dword [ebp + 0x18]
push edx
push eax
push ecx
mov dword [esp + 0x9c], htons
call fcn.004177e0
mov eax, dword [esp + 0x9c]
add esp, 0x14
test eax, eax
js 0x41a8d2
mov edx, dword [0x4c6060]
and eax, 0x3fffffff
push edx
mov edi, eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [esp + 0x80]
push 0x17
shl edi, 4
push edi
push ecx
mov ecx, eax
call fcn.004023e0
mov eax, dword [esi + 4]
cmp eax, 1
jle 0x41a8f0
mov edx, dword [esi]
push 0x415db0
add eax, 0xffffffff
push eax
push 0
push edx
call fcn.00414160
add esp, 0x10
fld dword [ebx + 0x10]
lea eax, [esp + 0x18]
push eax
push esi
push ecx
fstp dword [esp]
call fcn.00416ad0
mov eax, dword [ebp + 8]
add esp, 0xc
pop edi
pop esi
mov byte [eax], 1
pop ebx
mov esp, ebp
pop ebp
ret