Function at 0x10214ca0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
mov eax, 0x1034
call fcn.1037f1f0
mov eax, dword [0x10444724]
xor eax, esp
mov dword [esp + 0x1030], eax
mov eax, dword fs:[0x2c]
mov edx, dword [0x1044ad38]
push ebx
push esi
mov esi, ecx
mov edx, dword [eax + edx*4]
mov eax, dword [0x10449ff0]
push edi
mov dword [esp + 0x20], esi
cmp eax, dword [edx + 0xc]
jg 0x10215136
movss xmm0, dword [ebp + 8]
movss xmm2, dword [0x1038683c]
comiss xmm2, xmm0
movss xmm1, dword [0x10386844]
ja 0x10214d06
movaps xmm0, xmm2
jmp 0x10214d0e
comiss xmm0, xmm1
ja 0x10214d0e
movaps xmm0, xmm1
cvttss2si ecx, xmm0
mov dword [esi], ecx
test ecx, ecx
jg 0x10214d38
mov eax, 0x80000003
imul ecx
add edx, ecx
sar edx, 0x1e
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x7ffffffe
sub eax, ecx
lea ecx, [eax + 1]
mov dword [esi], ecx
cmp ecx, 0x7ffffffe
jle 0x10214d46
mov dword [esi], 0x7ffffffe
lea edi, [esi + 0x104]
mov dword [esp + 0x18], 4
mov dword [esp + 0x2c], edi
mov ebx, edi
nop word [eax + eax]
xor eax, eax
mov dword [esp + 0x1c], eax
nop word [eax + eax]
mov byte [esi + eax + 4], al
mov ecx, 0x1f31d
mov eax, dword [esi]
cdq
idiv ecx
imul eax, eax, 0xb14
imul ecx, edx, 0x41a7
sub ecx, eax
test ecx, ecx
lea eax, [ecx + 0x7fffffff]
cmovg eax, ecx
mov dword [esi], eax
and eax, 0x800001ff
jns 0x10214da7
dec eax
or eax, 0xfffffe00
inc eax
mov word [ebx], ax
mov ecx, 0x1f31d
mov eax, dword [esi]
cdq
idiv ecx
imul eax, eax, 0xb14
imul ecx, edx, 0x41a7
sub ecx, eax
test ecx, ecx
lea eax, [ecx + 0x7fffffff]
cmovg eax, ecx
mov dword [esi], eax
and eax, 0x800001ff
jns 0x10214ddd
dec eax
or eax, 0xfffffe00
inc eax
mov word [ebx + 2], ax
add ebx, 4
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, 0x100
jl 0x10214d70
sub dword [esp + 0x18], 1
jne 0x10214d60
lea eax, [esi + 0x103]
mov dword [esp + 0x18], 0xff
mov dword [esp + 0x1c], eax
mov bl, byte [eax]
mov ecx, 0x1f31d
mov eax, dword [esi]
cdq
idiv ecx
imul ecx, edx, 0x41a7
imul eax, eax, 0xb14
sub ecx, eax
test ecx, ecx
lea edx, [ecx + 0x7fffffff]
cmovg edx, ecx
mov dword [esi], edx
and edx, 0x800000ff
jns 0x10214e4c
dec edx
or edx, 0xffffff00
inc edx
mov edi, dword [esp + 0x1c]
mov al, byte [esi + edx + 4]
mov byte [edi], al
mov eax, edi
dec eax
mov byte [esi + edx + 4], bl
sub dword [esp + 0x18], 1
mov dword [esp + 0x1c], eax
jne 0x10214e15
lea eax, [esp + 0x334]
xor edx, edx
sub eax, esi
lea ecx, [esi + 0x504]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x336]
mov ebx, dword [esp + 0x18]
sub eax, esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x734]
sub eax, esi
mov dword [esp + 0x30], eax
lea eax, [esp + 0x736]
sub eax, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x34], eax
nop dword [eax]
movzx eax, word [ecx - 0x400]
lea ecx, [ecx + 4]
mov edi, dword [esp + 0x30]
mov word [esp + edx*4 + 0x38], ax
movzx eax, word [ecx - 0x402]
mov word [esp + edx*4 + 0x3a], ax
movzx eax, word [ecx - 4]
mov word [esp + edx*4 + 0x438], ax
movzx eax, word [ecx - 2]
mov word [esp + edx*4 + 0x43a], ax
inc edx
movzx eax, word [ecx + 0x3fc]
mov word [ebx + ecx - 4], ax
movzx eax, word [ecx + 0x3fe]
mov word [esi + ecx - 4], ax
movzx eax, word [ecx + 0x7fc]
mov word [edi + ecx - 4], ax
mov edi, dword [esp + 0x34]
movzx eax, word [ecx + 0x7fe]
mov word [edi + ecx - 4], ax
cmp edx, 0x100
jl 0x10214eb0
mov esi, dword [esp + 0x20]
xor edx, edx
mov edi, 0x100
lea ecx, [esi + 4]
movzx eax, byte [ecx]
lea ecx, [ecx + 1]
lea edx, [edx + 4]
movzx eax, word [esp + eax*4 + 0x38]
mov word [edx + esi + 0x100], ax
movzx eax, byte [ecx - 1]
movzx eax, word [esp + eax*4 + 0x3a]
mov word [edx + esi + 0x102], ax
movzx eax, byte [ecx - 1]
movzx eax, word [esp + eax*4 + 0x438]
mov word [edx + esi + 0x500], ax
movzx eax, byte [ecx - 1]
movzx eax, word [esp + eax*4 + 0x43a]
mov word [edx + esi + 0x502], ax
movzx eax, byte [ecx - 1]
movzx eax, word [esp + eax*4 + 0x838]
mov word [edx + esi + 0x900], ax
movzx eax, byte [ecx - 1]
movzx eax, word [esp + eax*4 + 0x83a]
mov word [edx + esi + 0x902], ax
movzx eax, byte [ecx - 1]
movzx eax, word [esp + eax*4 + 0xc38]
mov word [edx + esi + 0xd00], ax
movzx eax, byte [ecx - 1]
movzx eax, word [esp + eax*4 + 0xc3a]
mov word [edx + esi + 0xd02], ax
sub edi, 1
jne 0x10214f32
mov edi, dword [esp + 0x2c]
add esi, 0x1104
mov dword [esp + 0x18], 4
nop dword [eax]
mov ebx, 0x100
movzx eax, word [edi]
mov ecx, esi
sub eax, 0x100
movd xmm2, eax
movzx eax, word [edi + 2]
sub eax, 0x100
cvtdq2ps xmm2, xmm2
movd xmm1, eax
mulss xmm2, dword [0x10449fec]
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [0x10449fec]
movss dword [esi], xmm2
movss dword [esi + 4], xmm1
call fcn.1003ae60
movss xmm0, dword [esi]
sub esp, 8
addss xmm0, dword [0x10386834]
mulss xmm0, dword [0x103a7674]
addss xmm0, dword [0x10386830]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
movss xmm1, dword [0x1038683c]
add esp, 8
fstp dword [esp + 0x20]
movss xmm0, dword [esp + 0x20]
comiss xmm1, xmm0
jbe 0x1021508f
movss xmm1, dword [0x10386844]
comiss xmm0, xmm1
ja 0x10215092
movaps xmm0, xmm1
cvttss2si eax, xmm0
sub esp, 8
mov word [edi], ax
movss xmm0, dword [esi + 4]
addss xmm0, dword [0x10386834]
mulss xmm0, dword [0x103a7674]
addss xmm0, dword [0x10386830]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
movss xmm2, dword [0x1038683c]
add esp, 8
fstp dword [esp + 0x20]
movss xmm0, dword [esp + 0x20]
comiss xmm2, xmm0
ja 0x102150ed
movaps xmm0, xmm2
jmp 0x102150fd
movss xmm1, dword [0x10386844]
comiss xmm0, xmm1
ja 0x102150fd
movaps xmm0, xmm1
cvttss2si eax, xmm0
add esi, 8
mov word [edi + 2], ax
add edi, 4
sub ebx, 1
jne 0x10214ff5
sub dword [esp + 0x18], 1
jne 0x10214ff0
mov ecx, dword [esp + 0x103c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1037e005
mov esp, ebp
pop ebp
ret 4
push 0x10449ff0
call fcn.1037e834
add esp, 4
cmp dword [0x10449ff0], 0xffffffff
jne 0x10214ce7
push 0x10449ff0
mov dword [0x10449fec], 0x3b800000
call fcn.1037e7ea
add esp, 4
jmp 0x10214ce7