Function at 0x5ca970
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
sub esp, 0x198
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 8]
push esi
push edi
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x24]
mov esi, dword [eax + 0x70]
mov dword [esp + 0x28], esi
test esi, esi
je 0x5cb542
mov edi, dword [ebp + 0xc]
mov eax, dword [edi]
cmp dword [eax + 4], 0x11
jle 0x5cb542
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, eax
mov dword [esp + 0x10], ecx
mov eax, dword [ecx + 4]
mov dword [esp + 0x38], eax
cmp eax, dword [ecx + 0xc]
jae 0x5ca9ea
mov dword [eax], str.TtHandIkDriver
rdtsc
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], ecx
add eax, 0xc
mov ecx, dword [esp + 0x10]
mov dword [ecx + 4], eax
mov eax, dword [edi]
cmp dword [eax + 4], 2
jle 0x5ca9fc
movsx eax, word [eax + 0x32]
mov dword [esp + 0x24], eax
jmp 0x5caa04
mov dword [esp + 0x24], 0
mov eax, dword [esi + 0xc]
lea ecx, [esp + 0x44]
mov dword [esp + 0x14], eax
call fcn.0045d8c0
cmp dword [esp + 0x24], 0
je 0x5cb539
cmp dword [esp + 0x14], 0
je 0x5cb539
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x44]
push ecx
mov ecx, esi
mov eax, dword [eax]
mov eax, dword [eax + 0x2c]
push dword [eax + 0x14]
call fcn.005e2d00
test al, al
je 0x5cb539
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x14], 0
jne 0x5caa5f
mov ecx, dword [ebp + 8]
push esi
push ecx
mov ecx, eax
call fcn.005cb7c0
mov eax, dword [ebp + 8]
movaps xmm0, xmmword [0x717f30]
mov eax, dword [eax]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x14]
movups xmmword [esp + 0x4c], xmm0
mov dword [esp + 0x48], eax
movaps xmm0, xmmword [0x71ac40]
movups xmmword [esp + 0x5c], xmm0
mov dword [esp + 0x6c], connect
mov word [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], connect
mov esi, dword [eax + 0x1c]
mov dword [esp + 0x14], eax
lea ecx, [esi + 3]
and ecx, 0xfffffffc
mov dword [esp + 0x10], ecx
jle 0x5caad9
push 0x30
push ecx
lea eax, [esp + 0x60]
push eax
push 0x7d8954
call fcn.00467b80
mov ecx, dword [esp + 0x20]
add esp, 0x10
mov eax, dword [esp + 0x54]
and eax, 0x3fffffff
cmp eax, ecx
jge 0x5caaff
push 0x30
push ecx
lea eax, [esp + 0x54]
push eax
push 0x7d8954
call fcn.00467b80
mov ecx, dword [esp + 0x20]
add esp, 0x10
mov eax, dword [esp + 0x6c]
and eax, 0x3fffffff
cmp eax, ecx
jge 0x5cab21
push 4
push ecx
lea eax, [esp + 0x6c]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov ecx, dword [esp + 0x60]
and ecx, 0x3fffffff
cmp ecx, esi
jge 0x5cab4d
add ecx, ecx
mov eax, esi
cmp esi, ecx
push 0x30
cmovl eax, ecx
push eax
lea eax, [esp + 0x60]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov ecx, dword [esp + 0x54]
and ecx, 0x3fffffff
mov dword [esp + 0x5c], esi
cmp ecx, esi
jge 0x5cab7d
add ecx, ecx
mov eax, esi
cmp esi, ecx
push 0x30
cmovl eax, ecx
push eax
lea eax, [esp + 0x54]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov ecx, dword [esp + 0x6c]
and ecx, 0x3fffffff
mov dword [esp + 0x50], esi
cmp ecx, esi
jge 0x5cabad
add ecx, ecx
mov eax, esi
cmp esi, ecx
push 4
cmovl eax, ecx
push eax
lea eax, [esp + 0x6c]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov eax, dword [esp + 0x48]
mov dword [esp + 0x68], esi
mov esi, dword [eax + 0x40]
mov eax, dword [esp + 0x7c]
and eax, 0x3fffffff
lea ecx, [esi + 3]
and ecx, 0xfffffffc
cmp eax, ecx
jge 0x5cabe0
push 4
push ecx
lea eax, [esp + 0x7c]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov ecx, dword [esp + 0x7c]
and ecx, 0x3fffffff
cmp ecx, esi
jge 0x5cac0c
add ecx, ecx
mov eax, esi
cmp esi, ecx
push 4
cmovl eax, ecx
push eax
lea eax, [esp + 0x7c]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov edx, dword [esp + 0x78]
mov ecx, esi
mov eax, dword [esp + 0x74]
sub ecx, edx
lea edx, [eax + edx*4]
test ecx, ecx
jle 0x5cac28
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 0xc]
lea ecx, [esp + 0x48]
mov dword [esp + 0x78], esi
call fcn.00580a40
push dword [eax]
push dword [esp + 0x18]
push edi
call fcn.005df320
mov eax, dword [esp + 0x34]
add esp, 0xc
mov dword [esp + 0x30], 0
cmp dword [eax + 0xc], 0
jle 0x5cb501
movss xmm3, dword [0x718824]
xor ecx, ecx
mov esi, dword [esp + 0x24]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], 0x110
nop dword [eax]
mov edx, dword [eax + 8]
movsx eax, word [edx + ecx + 0x4c]
add edx, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x2c], edx
movsx eax, word [edx + 0x50]
movsx ecx, word [edx + 0x48]
mov dword [esp + 0x38], ecx
cmp eax, esi
jge 0x5cb4d3
cmp dword [esp + 0x40], esi
jge 0x5cb4d3
cmp ecx, esi
jge 0x5cb4d3
mov eax, dword [esp + 0x20]
xorps xmm2, xmm2
mov ecx, dword [edi]
movaps xmm6, xmm2
movaps xmm0, xmmword [0x7194c0]
movaps xmm7, xmm2
mov edi, dword [esp + 0x30]
mov esi, dword [eax + 8]
add edi, 0x11
movaps xmm1, xmmword [0x719320]
add esi, dword [esp + 0x10]
movaps xmmword [esp + 0x90], xmm0
mov eax, dword [ecx + 4]
movss dword [esp + 0x3c], xmm6
movss dword [esp + 0x18], xmm7
movaps xmmword [esp + 0x80], xmm1
movaps xmmword [esp + 0xa0], xmm1
mov dword [esp + 0x1c], ecx
cmp eax, edi
jle 0x5cb2f3
cmp edi, eax
jge 0x5cb2f3
mov eax, dword [esp + 0x34]
movss xmm0, dword [ecx + eax + 0x18]
comiss xmm0, xmm2
seta al
test al, al
je 0x5cb2f3
mov eax, dword [esp + 0x34]
movsx edi, word [ecx + eax + 0x14]
add edi, ecx
cmp byte [ebp + 0x14], 0
je 0x5caf28
cmp byte [edi + 0x4d], 0
je 0x5cb31d
mov eax, dword [edi + 0x30]
test eax, eax
je 0x5cae28
cmp dword [eax + 0xc], 0
jne 0x5cad70
cmp dword [eax + 0x10], 0
je 0x5cae28
movss xmm0, dword [esi + 0xa0]
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jp 0x5cae28
movss xmm0, dword [ebp + 0x10]
push ecx
mov ecx, dword [esp + 0x24]
movss dword [esp], xmm0
push esi
push edi
push dword [esp + 0x34]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.005cc350
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
movsx eax, word [ecx + 0x14]
movaps xmm0, xmmword [eax + ecx]
add ecx, 0x10
add eax, ecx
movaps xmmword [esp + 0x140], xmm0
push eax
lea ecx, [esp + 0x114]
call fcn.00473730
lea eax, [esi + 0x30]
push eax
lea eax, [esp + 0x114]
push eax
lea ecx, [esp + 0xd8]
call fcn.0046efa0
movaps xmm0, xmmword [esp + 0x100]
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x94]
movaps xmmword [esp + 0x84], xmm0
call fcn.00477710
movss xmm6, dword [esi + 0xa0]
movss xmm7, dword [esp + 0x18]
movss xmm3, dword [0x718824]
mov edx, dword [esp + 0x2c]
movss dword [esp + 0x3c], xmm6
movss xmm0, dword [esi + 0xa4]
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jp 0x5cb31d
movaps xmm7, xmmword [edi + 0x20]
movaps xmm2, xmm7
mulps xmm2, xmm7
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
addss xmm0, xmm2
shufps xmm2, xmm2, 0xaa
addss xmm2, xmm0
movaps xmm0, xmmword [0x719550]
shufps xmm2, xmm2, 0
subps xmm0, xmm2
shufps xmm0, xmm0, 0
movmskps eax, xmm0
test al, 1
je 0x5cae9a
rsqrtps xmm1, xmm2
movaps xmm0, xmm1
mulps xmm0, xmm2
movaps xmm2, xmmword [0x719710]
mulps xmm0, xmm1
mulps xmm1, xmmword [0x719700]
subps xmm2, xmm0
mulps xmm2, xmm1
shufps xmm2, xmm2, 0
mulps xmm7, xmm2
mov eax, dword [ebp + 0xc]
movaps xmm2, xmm7
shufps xmm2, xmm7, 0xc9
movaps xmm1, xmm7
shufps xmm1, xmm7, 0xd2
mov ecx, dword [eax]
movsx eax, word [ecx + 0x14]
movaps xmm4, xmmword [eax + ecx + 0x10]
movaps xmm3, xmm4
movaps xmm5, xmm4
mulps xmm3, xmm7
shufps xmm5, xmm4, 0xff
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xd2
mulps xmm2, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
mulps xmm1, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
subps xmm2, xmm1
mulps xmm2, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm7
movss xmm7, dword [esi + 0xa4]
movss dword [esp + 0x18], xmm7
addps xmm5, xmm3
addps xmm2, xmm5
addps xmm2, xmm2
movaps xmmword [esp + 0xa0], xmm2
jmp 0x5cb31d
movss xmm0, dword [ecx + eax + 0x18]
comiss xmm0, dword [esi + 0xb0]
jb 0x5cb2ba
movss xmm7, dword [edi + 0x38]
mov eax, dword [edi + 0x3c]
mov dword [esi + 0xa8], eax
mov eax, dword [edi + 0x40]
mov dword [esi + 0xac], eax
mov eax, dword [edi + 0x30]
movss dword [esp + 0x18], xmm7
test eax, eax
jne 0x5cb112
movaps xmm0, xmmword [edi]
movaps xmmword [esp + 0x170], xmm0
movaps xmm0, xmmword [edi + 0x10]
movaps xmmword [esp + 0x180], xmm0
movaps xmm0, xmmword [0x719da0]
movaps xmmword [esp + 0x190], xmm0
movss xmm0, dword [edi + 0xc]
comiss xmm0, xmm2
jbe 0x5cb1bc
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
movsx ecx, word [eax + 0x14]
add ecx, eax
movaps xmm4, xmmword [ecx + 0x10]
movaps xmm2, xmmword [ecx]
movaps xmm5, xmm4
movaps xmm3, xmm2
shufps xmm5, xmm4, 0xff
mulps xmm3, xmm4
movaps xmm7, xmm2
shufps xmm7, xmm2, 0xc9
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xd2
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xd2
mulps xmm7, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
mulps xmm1, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
subps xmm7, xmm1
movaps xmm1, xmmword [ecx + 0x20]
movaps xmm0, xmm1
unpckhps xmm0, xmmword [0x719330]
shufps xmm1, xmm0, 0xc4
mulps xmm7, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm2
rcpps xmm2, xmm1
addps xmm5, xmm3
movaps xmm0, xmm2
mulps xmm0, xmm1
movaps xmm1, xmmword [edi]
addps xmm7, xmm5
movaps xmm5, xmmword [ecx + 0x10]
xorps xmm5, xmmword [0x719d70]
mulps xmm0, xmm2
movaps xmm3, xmm5
mulps xmm3, xmm1
addps xmm2, xmm2
movaps xmm4, xmm5
movaps xmmword [esp + 0xe0], xmm5
shufps xmm4, xmm5, 0xff
addps xmm7, xmm7
subps xmm2, xmm0
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
xorps xmm7, xmmword [0x719130]
movaps xmmword [esp + 0xd0], xmm7
andps xmm2, xmmword [0x719150]
movaps xmmword [esp + 0xf0], xmm2
movaps xmm2, xmm5
addss xmm3, xmm0
shufps xmm2, xmm5, 0xc9
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xd2
movaps xmm1, xmm5
mulps xmm2, xmm0
movaps xmm0, xmmword [edi]
shufps xmm0, xmmword [edi], 0xc9
shufps xmm1, xmm5, 0xd2
mulps xmm1, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm5
subps xmm2, xmm1
mulps xmm2, xmm4
mulps xmm4, xmm4
addps xmm4, xmmword [0x7195c0]
mulps xmm4, xmmword [edi]
addps xmm4, xmm3
addps xmm2, xmm4
addps xmm2, xmm2
lea eax, [esp + 0x180]
push eax
lea eax, [esp + 0xe4]
push eax
addps xmm2, xmm7
lea ecx, [esp + 0x128]
movaps xmmword [esp + 0x118], xmm2
call fcn.004782a0
movaps xmm0, xmmword [esp + 0x110]
movaps xmmword [esi + 0x70], xmm0
movaps xmm0, xmmword [esp + 0x120]
movaps xmmword [esi + 0x80], xmm0
jmp 0x5cb1ad
cmp dword [eax + 0xc], 0
jne 0x5cb122
cmp dword [eax + 0x10], 0
jne 0x5cb122
xor eax, eax
jmp 0x5cb127
mov eax, 1
test al, al
je 0x5cb1bc
movss xmm0, dword [ebp + 0x10]
push ecx
mov ecx, dword [esp + 0x24]
movss dword [esp], xmm0
push esi
push edi
push dword [esp + 0x34]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.005cc350
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
movsx eax, word [ecx + 0x14]
movaps xmm0, xmmword [eax + ecx]
add ecx, 0x10
add eax, ecx
movaps xmmword [esp + 0x140], xmm0
push eax
lea ecx, [esp + 0x114]
call fcn.00473730
lea eax, [esi + 0x30]
push eax
lea eax, [esp + 0x114]
push eax
lea ecx, [esp + 0xd8]
call fcn.0046efa0
movaps xmm0, xmmword [esp + 0x100]
lea eax, [esp + 0xd0]
push eax
lea ecx, [esi + 0x80]
movaps xmmword [esi + 0x70], xmm0
call fcn.00477710
mov edx, dword [esp + 0x2c]
movss xmm7, dword [esp + 0x18]
movss xmm6, dword [edi + 0x34]
movaps xmm1, xmmword [edi + 0x20]
movaps xmm2, xmm1
movaps xmmword [esp + 0x80], xmm1
mulps xmm2, xmm1
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
addss xmm0, xmm2
shufps xmm2, xmm2, 0xaa
addss xmm2, xmm0
movaps xmm0, xmmword [0x719550]
shufps xmm2, xmm2, 0
subps xmm0, xmm2
shufps xmm0, xmm0, 0
movmskps eax, xmm0
test al, 1
je 0x5cb231
rsqrtps xmm1, xmm2
movaps xmm0, xmm1
mulps xmm0, xmm2
movaps xmm2, xmmword [0x719710]
mulps xmm0, xmm1
mulps xmm1, xmmword [0x719700]
subps xmm2, xmm0
mulps xmm2, xmm1
shufps xmm2, xmm2, 0
mulps xmm2, xmmword [esp + 0x80]
movaps xmm1, xmm2
movaps xmmword [esp + 0x80], xmm2
mov eax, dword [ebp + 0xc]
movaps xmm2, xmm1
shufps xmm2, xmm1, 0xc9
mov ecx, dword [eax]
movsx eax, word [ecx + 0x14]
movaps xmm4, xmmword [eax + ecx + 0x10]
movaps xmm3, xmm4
mov ecx, dword [esp + 0x1c]
mulps xmm3, xmm1
movaps xmm5, xmm4
mov eax, dword [esp + 0x34]
shufps xmm1, xmmword [esp + 0x80], 0xd2
shufps xmm5, xmm4, 0xff
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xd2
mulps xmm2, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
mulps xmm1, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
subps xmm2, xmm1
mulps xmm2, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmmword [esp + 0x80]
addps xmm5, xmm3
addps xmm2, xmm5
addps xmm2, xmm2
movaps xmmword [esi + 0x90], xmm2
movaps xmm0, xmmword [esi + 0x70]
mov eax, dword [ecx + eax + 0x18]
movaps xmmword [esp + 0x80], xmm0
movaps xmm0, xmmword [esi + 0x80]
mov dword [esi + 0xb0], eax
mov al, byte [ebp + 0x14]
movaps xmmword [esp + 0x90], xmm0
movaps xmm0, xmmword [esi + 0x90]
movaps xmmword [esp + 0xa0], xmm0
jmp 0x5cb328
movaps xmm0, xmmword [esi + 0x70]
movaps xmmword [esp + 0x80], xmm0
movaps xmm0, xmmword [esi + 0x80]
movaps xmmword [esp + 0x90], xmm0
movaps xmm0, xmmword [esi + 0x90]
movaps xmmword [esp + 0xa0], xmm0
mov al, byte [ebp + 0x14]
test al, al
jne 0x5cb414
movss xmm2, dword [esi + 0xa0]
movaps xmm0, xmm6
movss xmm3, dword [esi + 0xa8]
subss xmm0, xmm2
movss xmm4, dword [esi + 0xac]
xorps xmm1, xmm1
movss xmm5, dword [ebp + 0x10]
comiss xmm0, xmm1
jbe 0x5cb372
ucomiss xmm3, xmm1
lahf
test ah, 0x44
jnp 0x5cb393
movaps xmm0, xmm5
divss xmm0, xmm3
addss xmm0, xmm2
comiss xmm0, xmm6
ja 0x5cb393
movaps xmm6, xmm0
jmp 0x5cb393
comiss xmm1, xmm0
jbe 0x5cb39b
ucomiss xmm4, xmm1
lahf
test ah, 0x44
jnp 0x5cb393
movaps xmm0, xmm5
divss xmm0, xmm4
subss xmm2, xmm0
comiss xmm6, xmm2
ja 0x5cb393
movaps xmm6, xmm2
movss dword [esi + 0xa0], xmm6
movss xmm2, dword [esi + 0xa4]
movaps xmm0, xmm7
subss xmm0, xmm2
comiss xmm0, xmm1
jbe 0x5cb3cd
ucomiss xmm3, xmm1
lahf
test ah, 0x44
jnp 0x5cb3ee
movaps xmm0, xmm5
divss xmm0, xmm3
addss xmm0, xmm2
comiss xmm0, xmm7
ja 0x5cb3ee
movaps xmm7, xmm0
jmp 0x5cb3ee
comiss xmm1, xmm0
jbe 0x5cb3f6
ucomiss xmm4, xmm1
lahf
test ah, 0x44
jnp 0x5cb3ee
movaps xmm0, xmm5
divss xmm0, xmm4
subss xmm2, xmm0
comiss xmm7, xmm2
ja 0x5cb3ee
movaps xmm7, xmm2
movss dword [esi + 0xa4], xmm7
movss xmm6, dword [esi + 0xa0]
movss xmm7, dword [esi + 0xa4]
movss dword [esp + 0x3c], xmm6
movss dword [esp + 0x18], xmm7
jmp 0x5cb417
xorps xmm1, xmm1
comiss xmm6, xmm1
ja 0x5cb54a
comiss xmm7, xmm1
ja 0x5cb54a
movss xmm3, dword [0x718824]
mov edi, dword [ebp + 0xc]
test al, al
jne 0x5cb4cf
movaps xmmword [esi + 0x30], xmm1
or eax, 0xffffffff
movaps xmmword [esi + 0x40], xmm1
movaps xmmword [esi + 0x50], xmm1
mov dword [esi + 0x30], 0x3f800000
mov dword [esi + 0x44], 0x3f800000
mov dword [esi + 0x58], 0x3f800000
movaps xmmword [esi + 0x60], xmm1
movaps xmmword [esi + 0x70], xmm1
movaps xmm0, xmmword [0x7195b0]
movaps xmmword [esi + 0x80], xmm0
movaps xmmword [esi + 0x90], xmm1
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov word [esi + 0x2c], ax
mov dword [esi + 0xa0], 0
mov dword [esi + 0xa4], 0
mov dword [esi + 0xa8], 0
mov dword [esi + 0xac], 0
mov dword [esi + 0xb0], 0
mov byte [esi + 0xb4], 0
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
inc edx
mov ecx, dword [esp + 0x14]
add dword [esp + 0x34], 0x10
add ecx, 0x60
add dword [esp + 0x10], 0xc0
mov dword [esp + 0x30], edx
mov dword [esp + 0x14], ecx
cmp edx, dword [eax + 0xc]
jl 0x5cac80
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5cb530
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
lea ecx, [esp + 0x48]
call fcn.005ac3a0
lea ecx, [esp + 0x44]
call fcn.0045d990
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
movaps xmm0, xmmword [0x7194c0]
movzx eax, word [edx + 0x4a]
movaps xmmword [esp + 0xb0], xmm0
movaps xmmword [esp + 0xc0], xmm0
test ax, ax
js 0x5cb5ad
lea ecx, [esp + 0x48]
movsx esi, ax
call fcn.0057fe50
lea esi, [esi + esi*2]
shl esi, 4
lea ecx, [esp + 0x48]
add esi, dword [eax]
call fcn.0057fe50
mov ecx, dword [esp + 0x38]
mov eax, dword [eax]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, 0x10
add eax, ecx
lea ecx, [esp + 0xb0]
push eax
lea eax, [esi + 0x10]
push eax
call fcn.004fd6e0
mov edx, dword [esp + 0x2c]
movzx eax, word [edx + 0x4e]
test ax, ax
js 0x5cb5f5
lea ecx, [esp + 0x48]
movsx esi, ax
call fcn.0057fe50
lea esi, [esi + esi*2]
shl esi, 4
lea ecx, [esp + 0x48]
add esi, dword [eax]
call fcn.0057fe50
mov ecx, dword [esp + 0x40]
mov eax, dword [eax]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, 0x10
add eax, ecx
lea ecx, [esp + 0xc0]
push eax
lea eax, [esi + 0x10]
push eax
call fcn.004fd6e0
movss xmm0, dword [esp + 0x3c]
xorps xmm1, xmm1
comiss xmm0, xmm1
mov esi, dword [esp + 0x28]
jbe 0x5cb661
movsx eax, byte [esi + 0x14]
push ecx
movss dword [esp], xmm0
push eax
call fcn.005e0040
mov edi, dword [esp + 0x38]
lea eax, [esp + 0x50]
mov ecx, dword [esp + 0x28]
add esp, 8
fstp dword [esp + 0x1c]
movss xmm0, dword [esp + 0x1c]
push eax
push esi
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x8c]
push eax
sub esp, 0xc
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm0
movss dword [esp], xmm0
push edi
call fcn.005cb920
xorps xmm1, xmm1
jmp 0x5cb665
mov edi, dword [esp + 0x30]
movss xmm0, dword [esp + 0x18]
comiss xmm0, xmm1
jbe 0x5cb6b7
movsx eax, byte [esi + 0x14]
push ecx
movss dword [esp], xmm0
push eax
call fcn.005e0040
mov eax, dword [ebp + 0xc]
add esp, 8
fstp dword [esp + 0x1c]
movss xmm0, dword [esp + 0x1c]
mov ecx, dword [eax]
lea eax, [esp + 0x48]
push eax
push esi
movsx eax, word [ecx + 0x14]
add eax, ecx
push eax
lea eax, [esp + 0xac]
push eax
push ecx
mov ecx, dword [esp + 0x34]
movss dword [esp], xmm0
push edi
call fcn.005cc0a0
mov edi, dword [esp + 0x2c]
cmp word [edi + 0x4a], 0
jl 0x5cb712
lea ecx, [esp + 0x48]
call fcn.0057fe50
lea ecx, [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, 0x10
add eax, ecx
lea ecx, [esp + 0x154]
push eax
call fcn.00558c20
movsx esi, word [edi + 0x4a]
lea ecx, [esp + 0x48]
call fcn.00580a20
movaps xmm0, xmmword [esp + 0x150]
lea ecx, [esi + esi*2]
add ecx, ecx
mov eax, dword [eax]
movaps xmmword [eax + ecx*8 + 0x10], xmm0
cmp word [edi + 0x4e], 0
jl 0x5cb769
lea ecx, [esp + 0x48]
call fcn.0057fe50
lea ecx, [esp + 0xc0]
push ecx
mov ecx, dword [esp + 0x44]
mov eax, dword [eax]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, 0x10
add eax, ecx
lea ecx, [esp + 0x164]
push eax
call fcn.00558c20
movsx esi, word [edi + 0x4e]
lea ecx, [esp + 0x48]
call fcn.00580a20
movaps xmm0, xmmword [esp + 0x160]
lea ecx, [esi + esi*2]
add ecx, ecx
mov eax, dword [eax]
movaps xmmword [eax + ecx*8 + 0x10], xmm0
lea ecx, [esp + 0x48]
call fcn.0057fe50
mov esi, dword [esp + 0x24]
mov edi, dword [ebp + 0xc]
lea ecx, [esi + esi*2]
mov edx, dword [edi]
shl ecx, 4
push ecx
push dword [eax]
movsx eax, word [edx + 0x34]
add eax, edx
push eax
call fcn.0045d810
add esp, 0xc
mov ecx, edi
call fcn.005dd090
movss xmm3, dword [0x718824]
jmp 0x5cb4d3