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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x94
mov eax, dword [0x4c6074]
push ebx
push esi
push edi
mov edi, ecx
push eax
mov dword [esp + 0x5c], edi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, eax
mov esi, dword [ecx + 4]
cmp esi, dword [ecx + 0xc]
jae 0x42c394
mov dword [esi], str.TtrcCapsule
rdtsc
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x50]
mov dword [esi + 4], edx
add esi, 0xc
mov dword [ecx + 4], esi
mov esi, dword [ebp + 0xc]
lea eax, [esp + 0x20]
push eax
lea ebx, [edi + 0x30]
push ebx
add edi, 0x20
push edi
push esi
mov dword [esp + 0x24], ebx
call fcn.0042bf30
fld dword [esi]
fsub dword [esp + 0x30]
mov ecx, dword [esp + 0x68]
add esp, 0x10
fstp dword [esp + 0x40]
fld dword [esi + 4]
fsub dword [esp + 0x24]
fstp dword [esp + 0x44]
fld dword [esi + 8]
fsub dword [esp + 0x28]
fstp dword [esp + 0x48]
fld dword [esp + 0x44]
fld dword [esp + 0x40]
fld dword [esp + 0x48]
fld dword [ecx + 0x10]
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)
fxch st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld st(1)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fcompp
fnstsw ax
test ah, 0x41
je 0x42ca6e
fld dword [0x4b33d8]
lea edx, [esp + 0x30]
fstp dword [esp + 0x18]
push edx
fld dword [esi + 0x10]
lea eax, [esp + 0x94]
fsub dword [esi]
push eax
lea ecx, [esp + 0x18]
push ecx
fstp dword [esp + 0x4c]
lea edx, [esp + 0x5c]
fld dword [esi + 0x14]
push edx
fsub dword [esi + 4]
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x34]
fstp dword [esp + 0x58]
push ecx
fld dword [esi + 0x18]
push edi
fsub dword [esi + 8]
lea edx, [esp + 0x5c]
push edx
push esi
fstp dword [esp + 0x6c]
fld dword [esi + 0x1c]
fsub dword [esi + 0xc]
fstp dword [esp + 0x70]
fld dword [ebx]
fsub dword [edi]
fstp dword [esp + 0x44]
fld dword [ebx + 4]
fsub dword [edi + 4]
fstp dword [esp + 0x48]
fld dword [ebx + 8]
fsub dword [edi + 8]
fstp dword [esp + 0x4c]
fld dword [ebx + 0xc]
fsub dword [edi + 0xc]
fstp dword [esp + 0x50]
call fcn.0042bc90
mov ebx, dword [esp + 0x7c]
fld dword [ebx + 0x10]
add esp, 0x24
fld dword [esp + 0x18]
fld st(1)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fcompp
fnstsw ax
test ah, 5
jnp 0x42ca6e
fld dword [esp + 0x24]
fld dword [esp + 0x20]
fld dword [esp + 0x28]
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 + 0x10]
fld dword [0x4bea14]
fld dword [esp + 0x10]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
fldz
jne 0x42c546
fstp st(0)
call fcn.0042eb10
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld st(0)
fld1
fdivrp st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld st(0)
fmul dword [esp + 0x20]
fstp dword [esp + 0x30]
fld dword [esp + 0x24]
fmul st(1)
fstp dword [esp + 0x34]
fmul dword [esp + 0x28]
fstp dword [esp + 0x38]
fstp dword [esp + 0x1c]
fldz
jmp 0x42c558
fstp st(1)
fst dword [esp + 0x1c]
fst dword [esp + 0x38]
fst dword [esp + 0x34]
fst dword [esp + 0x30]
fld dword [esp + 0x34]
fld st(0)
fld dword [esp + 0x44]
fld st(0)
fmulp st(2)
fld dword [esp + 0x30]
fld st(0)
fmul dword [esp + 0x40]
faddp st(3)
fld dword [esp + 0x38]
fld st(0)
fmul dword [esp + 0x48]
faddp st(4)
fxch st(3)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fchs
fstp dword [esp + 0x10]
fld st(0)
fld dword [esp + 0x10]
fld st(0)
fmulp st(2)
fld dword [esp + 0x40]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x20]
fld st(4)
fmul st(1)
faddp st(3)
fxch st(2)
fstp dword [esp + 0x24]
fld st(2)
fmulp st(2)
fld dword [esp + 0x48]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x24]
fld dword [esp + 0x20]
fld dword [esp + 0x28]
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 + 0x10]
fld st(3)
fld dword [esp + 0x10]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x42c639
fstp st(3)
fstp st(0)
fstp st(0)
fstp st(1)
fld dword [ebx + 0x10]
fld dword [esp + 0x50]
fstp qword [esp + 0x50]
fmul st(0), st(0)
fsub dword [esp + 0x18]
fdivrp st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
call fcn.0042eb10
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fsubr qword [esp + 0x50]
fstp dword [esp + 0x50]
fld dword [esp + 0x38]
fld dword [esp + 0x34]
fld dword [esp + 0x30]
fldz
jmp 0x42c649
fstp st(0)
fld dword [0x4b2f80]
fstp dword [esp + 0x50]
fxch st(1)
fxch st(3)
mov ebx, dword [ebp + 0x10]
fld dword [esp + 0x50]
fld dword [ebx + 0x10]
fcomp st(1)
fnstsw ax
test ah, 0x41
jnp 0x42ca64
fld dword [edi + 4]
fmul st(4)
fld dword [edi]
fmul st(4)
faddp st(1)
fld dword [edi + 8]
fmul st(6)
faddp st(1)
fstp dword [esp + 0x10]
fld st(0)
fld1
fsubrp st(1)
fstp dword [esp + 0x18]
fld dword [esi + 0x10]
fmul st(1)
fld dword [esi]
fmul dword [esp + 0x18]
faddp st(1)
fstp dword [esp + 0x20]
fld dword [esi + 0x14]
fmul st(1)
fld dword [esi + 4]
fmul dword [esp + 0x18]
faddp st(1)
fstp dword [esp + 0x24]
fld dword [esi + 0x18]
fmul st(1)
fld dword [esi + 8]
fmul dword [esp + 0x18]
faddp st(1)
fstp dword [esp + 0x28]
fld dword [esi + 0x1c]
fmul st(1)
fld dword [esp + 0x18]
fmul dword [esi + 0xc]
faddp st(1)
fstp dword [esp + 0x2c]
fld dword [esp + 0x24]
fmul st(4)
fld dword [esp + 0x20]
fmul st(4)
faddp st(1)
fld dword [esp + 0x28]
fmul st(6)
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fsub dword [esp + 0x10]
fstp dword [esp + 0x18]
fcom st(1)
fnstsw ax
fld dword [esp + 0x1c]
test ah, 1
fld dword [esp + 0x18]
jne 0x42c8af
fcom st(3)
fnstsw ax
test ah, 0x41
jne 0x42c8af
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x42c8ab
fstp st(4)
mov eax, dword [esp + 0x14]
fstp st(2)
fstp st(3)
fld dword [esp + 0x18]
fdivrp st(2)
fxch st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld st(0)
fld1
fsubrp st(1)
fstp dword [esp + 0x10]
fld dword [edi]
fld dword [esp + 0x10]
fld st(0)
fmulp st(2)
fld dword [eax]
fmul st(3)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x40]
fld dword [edi + 4]
fmul st(1)
fld dword [eax + 4]
fmul st(3)
faddp st(1)
fstp dword [esp + 0x44]
fld dword [edi + 8]
fmul st(1)
fld dword [eax + 8]
fmul st(3)
faddp st(1)
fstp dword [esp + 0x48]
fmul dword [edi + 0xc]
fld dword [eax + 0xc]
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x4c]
fld dword [esp + 0x20]
fsub dword [esp + 0x40]
fstp dword [esp + 0x30]
fld dword [esp + 0x24]
fsub dword [esp + 0x44]
fstp dword [esp + 0x34]
fld dword [esp + 0x28]
fsub dword [esp + 0x48]
fstp dword [esp + 0x38]
fld dword [esp + 0x2c]
fsub dword [esp + 0x4c]
fstp dword [esp + 0x3c]
fld dword [esp + 0x30]
fld dword [esp + 0x34]
fld dword [esp + 0x38]
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 + 0x14]
fld st(1)
fld dword [esp + 0x14]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x42c804
fstp st(1)
fstp st(1)
call fcn.0042eb10
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld1
fdivrp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x50]
jmp 0x42c80c
fstp st(0)
fxch st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
mov eax, dword [ebx + 0x40]
fld st(0)
mov edi, dword [ebp + 8]
fmul dword [esp + 0x30]
mov dword [ebx + 0x14], 2
mov byte [edi], 1
fstp dword [esp + 0x30]
fld dword [esp + 0x34]
fmul st(1)
fstp dword [esp + 0x34]
fld dword [esp + 0x38]
fmul st(1)
fstp dword [esp + 0x38]
fmul dword [esp + 0x3c]
fstp dword [esp + 0x3c]
fld dword [esp + 0x30]
fstp dword [ebx]
fld dword [esp + 0x34]
fstp dword [ebx + 4]
fld dword [esp + 0x38]
fstp dword [ebx + 8]
fld dword [esp + 0x3c]
fstp dword [ebx + 0xc]
fstp dword [ebx + 0x10]
mov dword [ebx + eax*4 + 0x20], 0xffffffff
mov ecx, dword [0x4c6074]
push ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, eax
mov esi, dword [ecx + 4]
cmp esi, dword [ecx + 0xc]
jae 0x42cacd
mov dword [esi], 0x4b2454
rdtsc
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x1c]
mov dword [esi + 4], edx
add esi, 0xc
mov dword [ecx + 4], esi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
fld dword [esp + 0x18]
fld dword [esi + 4]
mov eax, dword [esp + 0x14]
fmulp st(6)
mov ecx, dword [esp + 0x58]
fld dword [esi]
fmulp st(5)
fxch st(5)
faddp st(4)
fld dword [esi + 8]
fmulp st(6)
fxch st(3)
faddp st(5)
fxch st(4)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fsub dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fdivrp st(2)
fxch st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld st(0)
fld1
fsubrp st(1)
fstp dword [esp + 0x10]
fld st(0)
fmul dword [eax]
fld dword [esp + 0x10]
fld st(0)
fmul dword [edi]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x40]
fld dword [edi + 4]
fmul st(1)
fld dword [eax + 4]
fmul st(3)
faddp st(1)
fstp dword [esp + 0x44]
fmul dword [edi + 8]
fld dword [eax + 8]
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x48]
fld dword [esi]
fsub dword [esp + 0x40]
fstp dword [esp + 0x20]
fld dword [esi + 4]
fsub dword [esp + 0x44]
fstp dword [esp + 0x24]
fld dword [esi + 8]
fsub dword [esp + 0x48]
fstp dword [esp + 0x28]
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 0x41
jne 0x42c99a
fld dword [esp + 0x20]
fld dword [esp + 0x24]
fld dword [esp + 0x28]
fld dword [ecx + 0x10]
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)
fxch st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld st(1)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fcompp
fnstsw ax
test ah, 5
jnp 0x42ca6a
fcompp
xor edi, edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
fnstsw ax
test ah, 0x41
jnp 0x42c9b8
mov edi, 1
fld dword [esi]
lea eax, [edi + 2]
shl eax, 4
fsub dword [eax + ecx]
add eax, ecx
push ebx
lea edx, [esp + 0x64]
fstp dword [esp + 0x64]
push edx
fld dword [esi + 4]
push ecx
fsub dword [eax + 4]
fstp dword [esp + 0x70]
fld dword [esi + 8]
fsub dword [eax + 8]
fstp dword [esp + 0x74]
fld dword [esi + 0xc]
fsub dword [eax + 0xc]
fstp dword [esp + 0x78]
fld dword [esi + 0x10]
fsub dword [eax]
fstp dword [esp + 0x7c]
fld dword [esi + 0x14]
fsub dword [eax + 4]
fstp dword [esp + 0x80]
fld dword [esi + 0x18]
fsub dword [eax + 8]
fstp dword [esp + 0x84]
fld dword [esi + 0x1c]
fsub dword [eax + 0xc]
lea eax, [esp + 0x6b]
fstp dword [esp + 0x88]
fld dword [ecx + 0x10]
fstp dword [esp]
push eax
call fcn.00427ea0
add esp, 0x10
cmp byte [eax], 0
je 0x42ca98
mov dword [ebx + 0x14], edi
mov ecx, dword [0x4c6074]
mov edi, dword [ebp + 8]
push ecx
mov byte [edi], 1
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, eax
mov esi, dword [ecx + 4]
cmp esi, dword [ecx + 0xc]
jae 0x42cacd
mov dword [esi], 0x4b2454
rdtsc
mov dword [esp + 0x14], eax
jmp 0x42cac0
fstp st(0)
fstp st(2)
fstp st(0)
fstp st(1)
fstp st(0)
mov eax, dword [0x4c6074]
mov edi, dword [ebp + 8]
push eax
mov byte [edi], 0
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, eax
mov esi, dword [ecx + 4]
cmp esi, dword [ecx + 0xc]
jae 0x42cacd
mov dword [esi], 0x4b2454
rdtsc
mov dword [esp + 0x14], eax
jmp 0x42cac0
mov eax, dword [0x4c6074]
mov edi, dword [ebp + 8]
push eax
mov byte [edi], 0
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, eax
mov esi, dword [ecx + 4]
cmp esi, dword [ecx + 0xc]
jae 0x42cacd
mov dword [esi], 0x4b2454
rdtsc
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x14]
mov dword [esi + 4], edx
add esi, 0xc
mov dword [ecx + 4], esi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc