Function at 0x42a470
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, dword [0x4c6074]
sub esp, 0x54
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
push esi
push edi
push eax
mov edi, ecx
call ebx
mov ecx, eax
mov esi, dword [ecx + 4]
cmp esi, dword [ecx + 0xc]
jae 0x42a4af
mov dword [esi], str.TtrcTriangle
rdtsc
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x14]
mov dword [esi + 4], edx
add esi, 0xc
mov dword [ecx + 4], esi
fld dword [edi + 0x30]
mov ecx, dword [ebp + 0xc]
fsub dword [edi + 0x20]
fstp dword [esp + 0x40]
fld dword [edi + 0x34]
fsub dword [edi + 0x24]
fstp dword [esp + 0x44]
fld dword [edi + 0x38]
fsub dword [edi + 0x28]
fstp dword [esp + 0x48]
fld dword [edi + 0x40]
fsub dword [edi + 0x20]
fstp dword [esp + 0x50]
fld dword [edi + 0x44]
fsub dword [edi + 0x24]
fstp dword [esp + 0x54]
fld dword [edi + 0x48]
fsub dword [edi + 0x28]
fstp dword [esp + 0x58]
fld dword [esp + 0x58]
fld st(0)
fld dword [esp + 0x44]
fld st(0)
fmulp st(2)
fld dword [esp + 0x54]
fld st(0)
fld dword [esp + 0x48]
fld st(0)
fmulp st(2)
fxch st(4)
fsubrp st(1)
fstp dword [esp + 0x30]
fld dword [esp + 0x50]
fld st(0)
fmulp st(4)
fld dword [esp + 0x40]
fld st(0)
fmulp st(6)
fxch st(4)
fsubrp st(5)
fxch st(4)
fstp dword [esp + 0x34]
fmulp st(2)
fmulp st(2)
fsubrp st(1)
fstp dword [esp + 0x38]
fld dword [esp + 0x30]
fld st(0)
fmul dword [edi + 0x20]
fld dword [edi + 0x24]
fld dword [esp + 0x34]
fld st(0)
fmulp st(2)
fxch st(2)
faddp st(1)
fld dword [esp + 0x38]
fld st(0)
fmul dword [edi + 0x28]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x14]
fld st(1)
fmul dword [ecx + 4]
fld dword [ecx]
fmul st(4)
faddp st(1)
fld st(1)
fmul dword [ecx + 8]
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fld dword [esp + 0x14]
fld st(0)
fsubp st(2)
fxch st(1)
fstp dword [esp + 0x18]
fld dword [ecx + 0x14]
fmul st(3)
fld dword [ecx + 0x10]
fmul st(5)
faddp st(1)
fld dword [ecx + 0x18]
fmul st(3)
faddp st(1)
fstp dword [esp + 0x14]
fsubr dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld st(0)
fld dword [esp + 0x18]
fld st(0)
fmulp st(2)
fxch st(1)
fcomp qword [0x4bea18]
fnstsw ax
fldz
test ah, 1
jne 0x42a616
fld st(0)
fucomp st(2)
fnstsw ax
test ah, 0x44
jp 0x42a60e
fucomp st(2)
fnstsw ax
test ah, 0x44
jp 0x42a618
fstp st(4)
fstp st(2)
mov eax, dword [0x4c6074]
fstp st(0)
fstp st(0)
push eax
fstp st(0)
call ebx
mov esi, eax
mov ecx, dword [esi + 4]
cmp ecx, dword [esi + 0xc]
jae 0x42a985
mov dword [ecx], 0x4b2454
rdtsc
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x14]
jmp 0x42a97c
fstp st(5)
fstp st(3)
fstp st(1)
jmp 0x42a5dd
fstp st(0)
fld st(0)
mov esi, dword [ebp + 0x10]
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0x14]
fdiv dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld dword [esi + 0x10]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x42a952
fld st(3)
fld st(3)
fld st(3)
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 + 0x14]
fld dword [esp + 0x14]
fmul qword [0x4b3750]
fstp dword [esp + 0x14]
fld st(0)
fld1
fsubrp st(1)
fstp dword [esp + 0x1c]
fld dword [ecx]
fld dword [esp + 0x1c]
fld st(0)
fmulp st(2)
fld dword [ecx + 0x10]
fmul st(3)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x50]
fld dword [ecx + 0x14]
fmul st(2)
fld dword [ecx + 4]
fmul st(2)
faddp st(1)
fstp dword [esp + 0x54]
fld dword [ecx + 0x18]
fmul st(2)
fld dword [ecx + 8]
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x58]
fld dword [edi + 0x20]
fld dword [esp + 0x50]
fld st(0)
fsubp st(2)
fxch st(1)
fstp dword [esp + 0x20]
fld dword [edi + 0x24]
fld dword [esp + 0x54]
fld st(0)
fsubp st(2)
fxch st(1)
fstp dword [esp + 0x24]
fld dword [edi + 0x28]
fsub dword [esp + 0x58]
fstp dword [esp + 0x28]
fld dword [edi + 0x30]
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0x30]
fsubr dword [edi + 0x34]
fstp dword [esp + 0x34]
fld dword [edi + 0x38]
fsub dword [esp + 0x58]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fld st(0)
fmul dword [esp + 0x24]
fld dword [esp + 0x34]
fmul dword [esp + 0x28]
fsubp st(1)
fstp dword [esp + 0x40]
fld dword [esp + 0x28]
fmul dword [esp + 0x30]
fld st(1)
fmul dword [esp + 0x20]
fsubp st(1)
fstp dword [esp + 0x44]
fld dword [esp + 0x34]
fmul dword [esp + 0x20]
fld dword [esp + 0x24]
fmul dword [esp + 0x30]
fsubp st(1)
fstp dword [esp + 0x48]
fld dword [esp + 0x40]
fmul st(5)
fld dword [esp + 0x44]
fmul st(5)
faddp st(1)
fld dword [esp + 0x48]
fmul st(4)
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fld dword [esp + 0x14]
fcompp
fnstsw ax
test ah, 0x41
jp 0x42a94a
fld dword [edi + 0x40]
fsub dword [esp + 0x50]
fstp dword [esp + 0x40]
fld dword [edi + 0x44]
fsub dword [esp + 0x54]
fstp dword [esp + 0x44]
fld dword [edi + 0x48]
fsub dword [esp + 0x58]
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fmul dword [esp + 0x34]
fld dword [esp + 0x44]
fmul st(2)
fsubp st(1)
fstp dword [esp + 0x50]
fld dword [esp + 0x40]
fld st(0)
fmulp st(2)
fld dword [esp + 0x48]
fmul dword [esp + 0x30]
fsubp st(2)
fxch st(1)
fstp dword [esp + 0x54]
fld dword [esp + 0x44]
fmul dword [esp + 0x30]
fld dword [esp + 0x34]
fmul st(2)
fsubp st(1)
fstp dword [esp + 0x58]
fld dword [esp + 0x50]
fmul st(5)
fld dword [esp + 0x54]
fmul st(5)
faddp st(1)
fld dword [esp + 0x58]
fmul st(4)
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fld dword [esp + 0x14]
fcompp
fnstsw ax
test ah, 0x41
jp 0x42a94a
fld dword [esp + 0x44]
fmul dword [esp + 0x28]
fld dword [esp + 0x48]
fmul dword [esp + 0x24]
fsubp st(1)
fstp dword [esp + 0x50]
fld dword [esp + 0x48]
fmul dword [esp + 0x20]
fld dword [esp + 0x28]
fmul st(2)
fsubp st(1)
fstp dword [esp + 0x54]
fmul dword [esp + 0x24]
fld dword [esp + 0x44]
fmul dword [esp + 0x20]
fsubp st(1)
fstp dword [esp + 0x58]
fld dword [esp + 0x50]
fmul st(4)
fld dword [esp + 0x54]
fmul st(4)
faddp st(1)
fld dword [esp + 0x58]
fmul st(3)
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fld dword [esp + 0x14]
fcompp
fnstsw ax
test ah, 0x41
jp 0x42a952
fstp dword [esi + 0x10]
fldz
fcom dword [esp + 0x18]
fnstsw ax
fxch st(3)
test ah, 5
jp 0x42a883
fstp dword [esi]
fxch st(1)
fstp dword [esi + 4]
fstp dword [esi + 8]
fst dword [esi + 0xc]
jmp 0x42a89c
fchs
fstp dword [esi]
fxch st(1)
fchs
fstp dword [esi + 4]
fchs
fstp dword [esi + 8]
fld dword [0x4b33c0]
fstp dword [esi + 0xc]
fld dword [esi + 4]
fld dword [esi]
fld dword [esi + 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 + 0x1c]
fld st(0)
fld dword [esp + 0x1c]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x42a8de
fstp st(1)
call fcn.0042eb10
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fld1
fdivrp st(1)
jmp 0x42a8e0
fstp st(0)
fstp dword [esp + 0x18]
mov eax, dword [esi + 0x40]
fld dword [esp + 0x18]
fld st(0)
fmul dword [esi]
fstp dword [esi]
fld st(0)
fmul dword [esi + 4]
fstp dword [esi + 4]
fld dword [esi + 8]
fmul st(1)
fstp dword [esi + 8]
fmul dword [esi + 0xc]
fstp dword [esi + 0xc]
mov dword [esi + eax*4 + 0x20], 0xffffffff
mov ecx, dword [0x4c6074]
push ecx
call ebx
mov ecx, eax
mov esi, dword [ecx + 4]
cmp esi, dword [ecx + 0xc]
jae 0x42a93b
mov dword [esi], 0x4b2454
rdtsc
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
mov dword [esi + 4], edx
add esi, 0xc
mov dword [ecx + 4], esi
mov eax, dword [ebp + 8]
mov byte [eax], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
fstp st(4)
fstp st(2)
fstp st(0)
jmp 0x42a956
fstp st(3)
fstp st(1)
mov eax, dword [0x4c6074]
fstp st(0)
push eax
fstp st(0)
call ebx
mov esi, eax
mov ecx, dword [esi + 4]
cmp ecx, dword [esi + 0xc]
jae 0x42a985
mov dword [ecx], 0x4b2454
rdtsc
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
mov dword [ecx + 4], edx
add ecx, 0xc
mov dword [esi + 4], ecx
mov eax, dword [ebp + 8]
pop edi
pop esi
mov byte [eax], 0
pop ebx
mov esp, ebp
pop ebp
ret 0xc