Function at 0x674f60
Capabilities:
Encrypt data using rc4 prga
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x58
push esi
push edi
mov edi, dword [ebp + 8]
push dword [0x884adc]
mov eax, dword [edi + 4]
mov esi, dword [edi]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [eax + 0xc]
lea ecx, [ecx*4 + 0x7f]
mov dword [esp + 0x20], edx
and ecx, 0xffffff80
mov dword [esp + 0x28], ecx
add ecx, edx
mov edi, dword [esp + 0x28]
cmp edi, dword [eax + 8]
mov edi, dword [ebp + 8]
jg 0x674fb7
cmp ecx, dword [eax + 0x10]
ja 0x674fb7
mov dword [eax + 0xc], ecx
jmp 0x674fc8
push dword [esp + 0x28]
mov ecx, eax
call fcn.0046a3c0
mov edx, eax
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x18]
movss xmm4, dword [0x7c1718]
mov dword [esp + 0x1c], 0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x40], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0x50], xmm0
mov dword [esp + 0x24], edx
test esi, esi
jns 0x675083
nop dword [eax + eax]
mov eax, dword [edi]
and esi, 3
and eax, 0x7ffffffc
add eax, edi
mov edi, eax
lea ecx, [eax + 8]
mov eax, dword [ebp + 0x10]
movss xmm2, dword [eax + esi*4]
mov eax, dword [ebp + 0x14]
movss xmm3, dword [eax + esi*4]
mov eax, dword [esp + 0x18]
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm4
mulss xmm0, xmm2
addss xmm0, xmm3
comiss xmm0, dword [esp + esi*4 + 0x50]
ja 0x67506e
movzx eax, word [esp + 0x36]
movss xmm0, dword [esp + esi*4 + 0x40]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm4
mulss xmm1, xmm2
addss xmm1, xmm3
comiss xmm0, xmm1
jbe 0x675069
mov edi, ecx
jmp 0x67506e
mov dword [edx], ecx
add edx, 4
mov esi, dword [edi]
mov eax, dword [edi + 4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], eax
test esi, esi
js 0x675000
mov dword [esp + 0x24], edx
mov eax, esi
xor eax, 0x7fffffff
je 0x67524d
mov edi, dword [esp + 0x18]
mov dword [esp + 0x2c], 0
test edi, edi
jle 0x67524d
mov ecx, dword [ebp + 0xc]
and esi, 0x7fffffff
shl esi, 4
add ecx, 0xe
add ecx, esi
xorps xmm0, xmm0
mov dword [esp + 0x18], ecx
nop dword [eax]
movups xmm4, xmmword [ecx - 0xe]
movzx eax, word [ecx - 8]
movaps xmm5, xmmword [0x7c1720]
movaps xmm1, xmm4
mov word [esp + 0x14], ax
punpcklwd xmm1, xmm0
punpckhwd xmm4, xmm0
movaps xmm0, xmm1
movzx eax, word [ecx]
psrld xmm0, 0x10
pslld xmm1, 0x10
cvtdq2ps xmm3, xmm0
mov word [esp + 0x16], ax
mov eax, dword [ebp + 0x10]
psrld xmm1, 0x10
mulps xmm3, xmmword [0x78d130]
mulps xmm5, xmmword [eax]
mov eax, dword [ebp + 0x14]
cvtdq2ps xmm0, xmm1
addps xmm3, xmm0
movaps xmm0, xmm4
psrld xmm0, 0x10
pslld xmm4, 0x10
cvtdq2ps xmm1, xmm0
psrld xmm4, 0x10
mulps xmm1, xmmword [0x78d130]
cvtdq2ps xmm0, xmm4
mulps xmm3, xmm5
addps xmm1, xmm0
addps xmm3, xmmword [eax]
mulps xmm1, xmm5
addps xmm1, xmmword [eax]
mov eax, dword [ebp + 0x18]
movaps xmm0, xmmword [eax]
cmpleps xmm3, xmmword [eax + 0x10]
cmpleps xmm0, xmm1
andps xmm3, xmm0
movmskps eax, xmm3
and eax, 7
cmp al, 7
jne 0x675226
mov edx, dword [ebp + 0x24]
test edx, edx
je 0x6751c9
mov eax, dword [edx]
lea ecx, [esp + 0x13]
push dword [esp + 0x14]
push ecx
mov eax, dword [eax + 4]
mov ecx, edx
call eax
cmp byte [eax], 0
je 0x675222
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [esp + 0x28]
lea edx, [ecx + 0xf]
and edx, 0xfffffff0
cmp ecx, dword [eax + 8]
jg 0x675276
lea ecx, [edx + edi]
cmp ecx, dword [eax + 0xc]
jne 0x675276
cmp dword [eax + 0x14], edi
je 0x675276
mov dword [eax + 0xc], edi
mov eax, esi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 0x20]
test esi, esi
je 0x6751fe
mov eax, dword [esi + 8]
and eax, 0x3fffffff
cmp dword [esi + 4], eax
jne 0x6751ed
push 4
push esi
push 0x7d8950
call fcn.00467c00
add esp, 0xc
mov edx, dword [esi + 4]
mov ecx, dword [esi]
mov eax, dword [esp + 0x14]
mov dword [ecx + edx*4], eax
inc dword [esi + 4]
jmp 0x675222
mov edx, dword [ebp + 0x28]
test edx, edx
je 0x675226
mov ecx, dword [edx]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
inc esi
mov dword [esp + 0x1c], esi
mov dword [ecx], eax
add dword [edx], 4
cmp esi, dword [ebp + 0x2c]
jge 0x675186
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
add ecx, 0x10
inc eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], eax
xorps xmm0, xmm0
cmp eax, edi
jl 0x6750c0
movss xmm4, dword [0x7c1718]
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
cmp edx, edi
je 0x67526d
mov edi, dword [edx - 4]
sub edx, 4
mov eax, dword [edi + 4]
mov esi, dword [edi]
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], eax
jmp 0x674fec
mov esi, dword [esp + 0x1c]
jmp 0x67518a
push edx
push edi
mov ecx, eax
call fcn.0046a590
pop edi
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret