Function at 0x414ef0
Capabilities:
Execute anti-debugging instructions
Get thread local storage value
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x1094
call fcn.0042ddc0
mov eax, dword [0x4c6074]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
push esi
push edi
push eax
call ebx
mov esi, eax
mov ecx, dword [esi + 4]
cmp ecx, dword [esi + 0xc]
jae 0x414f34
mov dword [ecx], 0x4b33e8
rdtsc
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0xc]
mov dword [ecx + 4], edx
add ecx, 0xc
mov dword [esi + 4], ecx
mov edi, dword [ebp + 8]
mov esi, dword [edi + 4]
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
mov eax, dword [0x4c6060]
push eax
mov dword [esp + 0x1c], bind
call ebx
mov ecx, dword [eax + 0x20]
lea edx, [esi + 1]
shl edx, 4
and edx, 0xfffffff0
lea ebx, [ecx + edx]
cmp ebx, dword [eax + 0x2c]
ja 0x414f6f
mov dword [eax + 0x20], ebx
mov eax, ecx
jmp 0x414f79
mov ebx, dword [eax]
push edx
mov edx, dword [ebx + 0x14]
mov ecx, eax
call edx
or esi, 0x80000000
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x18], esi
xor esi, esi
test eax, eax
mov dword [esp + 0x14], eax
jle 0x414fca
xor edx, edx
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
fld dword [eax + edx]
add eax, edx
fstp dword [ecx + edx]
fld dword [eax + 4]
add ecx, edx
fstp dword [ecx + 4]
add esi, 1
fld dword [eax + 8]
add edx, 0x10
fstp dword [ecx + 8]
fld dword [eax + 0xc]
fstp dword [ecx + 0xc]
mov eax, dword [esp + 0x14]
cmp esi, eax
jl 0x414f9a
cmp eax, 1
jle 0x414fe7
mov edx, dword [esp + 0x10]
push 0x415db0
add eax, 0xffffffff
push eax
push 0
push edx
call fcn.00414160
add esp, 0x10
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x94]
push edx
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.00414c00
add esp, 0x14
cmp eax, 1
jne 0x41509d
mov edx, dword [0x4c6074]
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
push edx
call edi
mov esi, eax
mov ecx, dword [esi + 4]
cmp ecx, dword [esi + 0xc]
jae 0x415049
mov dword [ecx], 0x4b2454
rdtsc
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov dword [ecx + 4], eax
add ecx, 0xc
mov dword [esi + 4], ecx
mov ecx, dword [0x4c6060]
mov esi, dword [esp + 0x1c]
push ecx
call edi
cmp esi, dword [eax + 0x28]
mov dword [eax + 0x20], esi
jne 0x415068
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x18]
push esi
call eax
mov esi, dword [esp + 0x18]
test esi, esi
js 0x415091
mov ecx, dword [0x4c6060]
push ecx
and esi, 0x3fffffff
call edi
mov edx, dword [esp + 0x10]
push 0x17
shl esi, 4
push esi
push edx
mov ecx, eax
call fcn.004023e0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + 8]
and ecx, 0x3fffffff
cmp dword [esi + 4], ecx
lea eax, [esp + 0xa0]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0x80000080
jne 0x4150dd
push 0x10
push esi
call fcn.00402730
add esp, 8
mov ecx, dword [esi + 4]
fld dword [esp + 0x40]
mov eax, ecx
shl eax, 4
add eax, dword [esi]
add ecx, 1
mov dword [esi + 4], ecx
fstp dword [eax]
fld dword [esp + 0x44]
fstp dword [eax + 4]
fld dword [esp + 0x48]
fstp dword [eax + 8]
fld dword [esp + 0x4c]
fstp dword [eax + 0xc]
mov edx, dword [esi + 8]
and edx, 0x3fffffff
cmp dword [esi + 4], edx
jne 0x415121
push 0x10
push esi
call fcn.00402730
add esp, 8
mov ecx, dword [esi + 4]
fld dword [esp + 0x20]
mov eax, ecx
shl eax, 4
add eax, dword [esi]
add ecx, 1
mov dword [esi + 4], ecx
fstp dword [eax]
fld dword [esp + 0x24]
fstp dword [eax + 4]
fld dword [esp + 0x28]
fstp dword [eax + 8]
fld dword [esp + 0x2c]
fstp dword [eax + 0xc]
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x54]
mov eax, edx
add edx, 1
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0x50]
shl eax, 5
add eax, dword [esp + 0x90]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 8], ecx
fld dword [esp + 0x30]
fstp dword [eax + 0x10]
lea edx, [esp + 0x20]
fld dword [esp + 0x34]
mov dword [esp + 0x68], edx
fstp dword [eax + 0x14]
lea edx, [esp + 0x70]
fld dword [esp + 0x38]
push edx
fstp dword [eax + 0x18]
fld dword [esp + 0x40]
fstp dword [eax + 0x1c]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
push edx
push ecx
push eax
mov dword [esp + 0x70], eax
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x78], ecx
call fcn.004142e0
push esi
lea ecx, [esp + 0xa8]
push ecx
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x80]
push eax
call fcn.004149e0
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
lea edx, [esp + 0x44]
mov dword [esp + 0x8c], edx
lea edx, [esp + 0x94]
push edx
mov edx, dword [esp + 0x58]
push edx
push ecx
push eax
mov dword [esp + 0x94], eax
lea eax, [esp + 0x44]
push eax
mov dword [esp + 0x9c], ecx
call fcn.004142e0
push esi
lea ecx, [esp + 0xcc]
push ecx
lea edx, [esp + 0x50]
push edx
lea eax, [esp + 0xa4]
push eax
call fcn.004149e0
add esp, 0x48
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x50]
lea edx, [esp + 0x40]
mov dword [esp + 0x68], edx
lea edx, [esp + 0x70]
push edx
mov edx, dword [esp + 0x58]
push edx
push ecx
push eax
mov dword [esp + 0x70], eax
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x78], ecx
call fcn.004142e0
push esi
lea ecx, [esp + 0xa8]
push ecx
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x80]
push eax
call fcn.004149e0
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
lea edx, [esp + 0x64]
mov dword [esp + 0x8c], edx
lea edx, [esp + 0x94]
push edx
mov edx, dword [esp + 0x78]
push edx
push ecx
push eax
mov dword [esp + 0x94], eax
lea eax, [esp + 0x44]
push eax
mov dword [esp + 0x9c], ecx
call fcn.004142e0
push esi
lea ecx, [esp + 0xcc]
push ecx
lea edx, [esp + 0x50]
push edx
lea eax, [esp + 0xa4]
push eax
call fcn.004149e0
mov eax, dword [esp + 0xe0]
add esp, 0x48
test eax, eax
js 0x41530f
mov ecx, dword [0x4c6060]
and eax, 0x3fffffff
push ecx
mov edi, eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edx, dword [esp + 0x90]
push 0x17
shl edi, 5
push edi
push edx
mov ecx, eax
call fcn.004023e0
mov eax, dword [esi + 4]
mov ecx, dword [esi]
sub eax, 1
mov ebx, ecx
mov dword [esp + 0xc], eax
js 0x415395
fld dword [0x4b3338]
xor edi, edi
cmp dword [esp + 0x14], edi
jle 0x41536e
mov edx, dword [esp + 0x10]
add edx, 8
fld dword [edx - 4]
fmul dword [ecx + 4]
fld dword [edx - 8]
fmul dword [ecx]
faddp st(1)
fld dword [edx]
fmul dword [ecx + 8]
faddp st(1)
fadd dword [edx + 4]
fstp dword [esp + 0x88]
fld dword [esp + 0x88]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x415389
add edi, 1
add edx, 0x10
cmp edi, dword [esp + 0x14]
jl 0x415334
fld dword [ecx]
mov eax, ebx
fstp dword [eax]
add ebx, 0x10
fld dword [ecx + 4]
fstp dword [eax + 4]
fld dword [ecx + 8]
fstp dword [eax + 8]
fld dword [ecx + 0xc]
fstp dword [eax + 0xc]
add ecx, 0x10
sub dword [esp + 0xc], 1
jns 0x415325
fstp st(0)
sub ebx, dword [esi]
mov eax, dword [esi + 8]
sar ebx, 4
and eax, 0x3fffffff
cmp eax, ebx
jge 0x4153ba
add eax, eax
cmp ebx, eax
jl 0x4153ae
mov eax, ebx
push 0x10
push eax
push esi
call fcn.004026b0
add esp, 0xc
cmp ebx, 1
mov dword [esi + 4], ebx
jle 0x4153d8
mov eax, dword [esi]
push 0x415db0
add ebx, 0xffffffff
push ebx
push 0
push eax
call fcn.00414160
add esp, 0x10
fld dword [0x4b3344]
lea ecx, [esp + 0x88]
push ecx
push esi
push ecx
fstp dword [esp]
call fcn.00416ad0
mov edx, dword [0x4c6074]
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
add esp, 0xc
push edx
call edi
mov ecx, eax
mov esi, dword [ecx + 4]
cmp esi, dword [ecx + 0xc]
jae 0x415425
mov dword [esi], 0x4b2454
rdtsc
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov dword [esi + 4], eax
add esi, 0xc
mov dword [ecx + 4], esi
mov ecx, dword [0x4c6060]
mov esi, dword [esp + 0x1c]
push ecx
call edi
cmp esi, dword [eax + 0x28]
mov dword [eax + 0x20], esi
jne 0x415444
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x18]
push esi
call eax
mov esi, dword [esp + 0x18]
test esi, esi
js 0x41546d
mov ecx, dword [0x4c6060]
push ecx
and esi, 0x3fffffff
call edi
mov edx, dword [esp + 0x10]
push 0x17
shl esi, 4
push esi
push edx
mov ecx, eax
call fcn.004023e0
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret