Function at 0x10023410
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x1015a380]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x50], esi
push edi
mov edi, dword [ebx + 8]
cmp ecx, 3
jl 0x10023bad
test byte [esi + 0x24], 2
mov eax, dword [esi + 0x28]
movss xmm0, dword [eax]
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [eax + 4]
movss dword [ebp - 0x44], xmm0
je 0x10023981
lea eax, [ecx + ecx]
push eax
mov dword [ebp - 0x60], eax
lea eax, [ecx*8 - 6]
add eax, ecx
mov ecx, esi
push eax
call fcn.10022380
mov eax, dword [esi + 0x34]
mov edi, 2
mov dword [ebp - 0x10], eax
lea ecx, [eax + 1]
mov dword [ebp - 0xc], ecx
movzx ecx, ax
mov dword [ebp - 0x20], ecx
mov eax, dword [esi + 0x3c]
lea edx, [ecx + edi*2]
inc edi
mov word [eax], cx
lea ecx, [edx - 2]
mov eax, dword [esi + 0x3c]
mov word [eax + 2], cx
mov eax, dword [esi + 0x3c]
mov ecx, dword [ebp - 0x20]
mov word [eax + 4], dx
add dword [esi + 0x3c], 6
cmp edi, dword [ebx + 0xc]
jl 0x10023498
mov edi, dword [ebx + 0xc]
lea eax, [edi*8]
call fcn.10130140
movss xmm5, dword [0x10156240]
lea eax, [edi - 1]
movss xmm6, dword [0x10155bc0]
mov edx, edi
mov edi, dword [ebx + 8]
xorps xmm4, xmm4
mov dword [ebp - 0x18], eax
mov esi, esp
shl eax, 3
xor ecx, ecx
nop dword [eax]
nop word [eax + eax]
movss xmm2, dword [ecx + edi]
movss xmm3, dword [edi + ecx + 4]
subss xmm2, dword [eax + edi]
subss xmm3, dword [eax + edi + 4]
movaps xmm1, xmm2
movaps xmm0, xmm3
mulss xmm1, xmm2
mulss xmm0, xmm3
addss xmm0, xmm1
comiss xmm0, xmm4
jbe 0x10023544
call fcn.1001a030
movaps xmm1, xmm6
divss xmm1, xmm0
movaps xmm0, xmm1
mulss xmm3, xmm1
mulss xmm2, xmm0
xorps xmm2, xmm5
movss dword [eax + esi], xmm3
movss dword [eax + esi + 4], xmm2
mov eax, ecx
add ecx, 8
sub edx, 1
jne 0x10023500
mov eax, dword [ebp - 0x10]
lea ecx, [edi + 4]
movss xmm7, dword [0x10155b64]
movss xmm5, dword [0x10155e08]
movzx eax, ax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0xc]
movzx eax, ax
mov dword [ebp - 0x20], eax
mov eax, esi
mov edx, eax
mov dword [ebp - 0x2c], ecx
sub edx, edi
xor edi, edi
mov dword [ebp - 0x4c], edx
mov edx, dword [ebp - 0x18]
movss xmm2, dword [eax + edi*8]
addss xmm2, dword [eax + edx*8]
mov esi, dword [ebp - 0x4c]
movss xmm3, dword [esi + ecx]
movaps xmm0, xmm2
addss xmm3, dword [eax + edx*8 + 4]
mulss xmm0, xmm2
mov esi, dword [ebp - 0x50]
mov edx, dword [ebx + 0x10]
movaps xmm1, xmm3
mulss xmm1, xmm3
mov eax, dword [esi + 0x38]
addss xmm1, xmm0
movss xmm0, dword [0x10155b24]
mulss xmm1, xmm0
maxss xmm1, xmm7
movaps xmm7, xmm6
divss xmm7, xmm1
movaps xmm1, xmm7
mulss xmm7, xmm3
mulss xmm1, xmm2
mulss xmm7, xmm0
mulss xmm1, xmm0
movss xmm0, dword [ecx - 4]
movss dword [ebp - 0x48], xmm7
subss xmm0, xmm1
movss dword [ebp - 0x58], xmm1
movss dword [eax], xmm0
movss xmm0, dword [ecx]
mov eax, dword [esi + 0x38]
subss xmm0, xmm7
movss dword [eax + 4], xmm0
mov eax, dword [esi + 0x38]
movss xmm0, dword [ebp - 0x40]
movss dword [eax + 8], xmm0
movss xmm0, dword [ebp - 0x44]
movss dword [eax + 0xc], xmm0
mov eax, dword [esi + 0x38]
movss xmm3, dword [edx + 4]
movss xmm2, dword [edx + 0x14]
movss xmm7, dword [edx + 8]
subss xmm2, xmm3
movss xmm1, dword [eax]
subss xmm1, dword [edx + 0x20]
movss dword [ebp - 0x3c], xmm3
movss xmm3, dword [edx + 0x18]
subss xmm3, xmm7
movss dword [ebp - 0x34], xmm7
movss xmm7, dword [edx + 0xc]
divss xmm1, dword [edx + 0x28]
movss dword [ebp - 0x24], xmm7
minss xmm1, xmm6
mulss xmm3, xmm1
mulss xmm2, xmm1
movss dword [ebp - 8], xmm3
movss xmm3, dword [edx + 0x1c]
subss xmm3, xmm7
movss xmm7, dword [edx + 0x10]
subss xmm7, dword [edx]
mulss xmm3, xmm1
mulss xmm7, xmm1
movss dword [ebp - 0xc], xmm3
movss dword [ebp - 0x14], xmm3
movaps xmm1, xmm7
movss dword [ebp - 0x28], xmm7
addss xmm1, dword [edx]
movss xmm7, dword [ebp - 8]
movss dword [ebp - 8], xmm3
comiss xmm4, xmm1
jbe 0x100236d7
movss xmm1, dword [ebp - 0x34]
movss dword [ebp - 0x10], xmm1
movss xmm1, dword [ebp - 0x24]
movss dword [ebp - 0x28], xmm4
movaps xmm6, xmm1
jmp 0x10023706
movss xmm0, dword [ebp - 0x3c]
minss xmm1, xmm6
movss dword [ebp - 0x3c], xmm0
movss dword [ebp - 0x28], xmm1
movss xmm1, dword [ebp - 0x34]
movss dword [ebp - 0x10], xmm1
movss dword [ebp - 0x34], xmm1
movss xmm1, dword [ebp - 0x24]
movaps xmm6, xmm1
movss dword [ebp - 0x24], xmm6
movss dword [ebp - 0x38], xmm6
movaps xmm0, xmm7
movss xmm4, dword [ebp - 0x38]
addss xmm4, dword [ebp - 8]
addss xmm7, dword [ebp - 0x34]
addss xmm2, dword [ebp - 0x3c]
addss xmm3, dword [ebp - 0x24]
addss xmm1, dword [ebp - 0xc]
movss dword [ebp - 0x38], xmm4
movss xmm4, dword [ebp - 0x14]
addss xmm0, dword [ebp - 0x10]
movss dword [ebp - 8], xmm7
movss xmm7, dword [ebp - 0x28]
movss dword [ebp - 0x30], xmm6
addss xmm4, dword [ebp - 0x30]
movss xmm6, dword [0x10155bc0]
mulss xmm7, xmm5
movss dword [ebp - 0x14], xmm4
movss dword [ebp - 0x28], xmm7
movss xmm4, dword [ebp - 0x28]
movss xmm7, dword [0x10155b64]
addss xmm4, xmm7
cvttss2si ecx, xmm4
xorps xmm4, xmm4
shl ecx, 0x10
comiss xmm4, xmm2
jbe 0x1002378f
movss xmm3, dword [ebp - 0x38]
xorps xmm2, xmm2
jmp 0x1002379d
movss xmm0, dword [ebp - 8]
minss xmm2, xmm6
movss xmm1, dword [ebp - 0x14]
mulss xmm2, xmm5
addss xmm2, xmm7
cvttss2si eax, xmm2
shl eax, 8
or ecx, eax
comiss xmm4, xmm0
jbe 0x100237b8
xorps xmm0, xmm0
jmp 0x100237bf
minss xmm0, xmm6
movaps xmm1, xmm3
mulss xmm0, xmm5
addss xmm0, xmm7
cvttss2si eax, xmm0
or ecx, eax
comiss xmm4, xmm1
jbe 0x100237d7
xorps xmm1, xmm1
jmp 0x100237db
minss xmm1, xmm6
mulss xmm1, xmm5
movss xmm0, dword [ebp - 0x58]
addss xmm1, xmm7
cvttss2si eax, xmm1
shl eax, 0x18
or eax, ecx
mov ecx, dword [esi + 0x38]
mov dword [ecx + 0x10], eax
mov ecx, dword [ebp - 0x2c]
mov eax, dword [esi + 0x38]
addss xmm0, dword [ecx - 4]
movss dword [eax + 0x14], xmm0
movss xmm0, dword [ebp - 0x48]
addss xmm0, dword [ecx]
mov eax, dword [esi + 0x38]
movss dword [eax + 0x18], xmm0
mov eax, dword [esi + 0x38]
movss xmm0, dword [ebp - 0x40]
movss dword [eax + 0x1c], xmm0
movss xmm0, dword [ebp - 0x44]
movss dword [eax + 0x20], xmm0
mov eax, dword [esi + 0x38]
movss xmm3, dword [edx + 0x14]
movss xmm2, dword [edx + 4]
movss xmm5, dword [edx + 8]
subss xmm3, xmm2
movss xmm1, dword [eax + 0x14]
subss xmm1, dword [edx + 0x20]
movss xmm7, dword [edx + 0x18]
subss xmm7, xmm5
movss dword [ebp - 0xc], xmm5
divss xmm1, dword [edx + 0x28]
minss xmm1, xmm6
mulss xmm3, xmm1
mulss xmm7, xmm1
movss dword [ebp - 0x10], xmm3
movss xmm3, dword [edx + 0x10]
subss xmm3, dword [edx]
movaps xmm0, xmm7
mulss xmm3, xmm1
movss xmm1, dword [ebp - 0x10]
addss xmm3, dword [edx]
comiss xmm4, xmm3
jbe 0x10023896
xorps xmm3, xmm3
jmp 0x1002389a
minss xmm3, xmm6
mulss xmm3, dword [0x10155e08]
addss xmm5, xmm7
movss xmm7, dword [0x10155b64]
addss xmm2, xmm1
addss xmm0, dword [ebp - 0xc]
addss xmm3, xmm7
cvttss2si ecx, xmm3
shl ecx, 0x10
comiss xmm4, xmm2
jbe 0x100238cc
xorps xmm2, xmm2
jmp 0x100238d3
minss xmm2, xmm6
movaps xmm0, xmm5
movss xmm5, dword [0x10155e08]
mulss xmm2, xmm5
addss xmm2, xmm7
cvttss2si eax, xmm2
shl eax, 8
or ecx, eax
comiss xmm4, xmm0
jbe 0x100238f6
xorps xmm0, xmm0
jmp 0x100238fa
minss xmm0, xmm6
mulss xmm0, xmm5
addss xmm0, xmm7
cvttss2si eax, xmm0
or eax, ecx
mov ecx, dword [esi + 0x38]
and eax, 0xffffff
mov dword [ecx + 0x24], eax
mov eax, dword [esi + 0x3c]
mov ecx, dword [ebp - 0x5c]
add dword [esi + 0x38], 0x28
lea edx, [ecx + edi*2]
mov word [eax], dx
mov eax, dword [ebp - 0x18]
lea ecx, [ecx + eax*2]
mov eax, dword [esi + 0x3c]
mov word [eax + 2], cx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
lea ecx, [ecx + eax*2]
mov eax, dword [esi + 0x3c]
mov word [eax + 4], cx
mov eax, dword [esi + 0x3c]
mov word [eax + 6], cx
mov eax, dword [ebp - 0x20]
lea ecx, [eax + edi*2]
mov eax, dword [esi + 0x3c]
mov word [eax + 8], cx
mov eax, dword [esi + 0x3c]
mov ecx, dword [ebp - 0x2c]
add ecx, 8
mov dword [ebp - 0x2c], ecx
mov word [eax + 0xa], dx
mov edx, edi
add dword [esi + 0x3c], 0xc
inc edi
mov eax, esp
mov dword [ebp - 0x18], edx
cmp edi, dword [ebx + 0xc]
jl 0x10023592
mov eax, dword [ebp - 0x60]
jmp 0x10023ba7
push ecx
add ecx, 0xfffffffe
lea eax, [ecx + ecx*2]
mov ecx, esi
push eax
call fcn.10022380
mov eax, dword [ebx + 0xc]
xorps xmm6, xmm6
movss xmm7, dword [0x10155bc0]
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 0x38]
mov ecx, dword [edi]
mov edx, dword [edi + 4]
movss xmm0, dword [ebp - 0x40]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov eax, dword [esi + 0x38]
movss dword [eax + 8], xmm0
movss xmm0, dword [ebp - 0x44]
movss dword [eax + 0xc], xmm0
mov eax, dword [ebx + 0x10]
movss xmm1, dword [edi]
subss xmm1, dword [eax + 0x20]
movss xmm3, dword [eax + 0x14]
movss xmm2, dword [eax + 4]
movss xmm5, dword [eax + 0xc]
subss xmm3, xmm2
movss xmm4, dword [eax + 0x1c]
divss xmm1, dword [eax + 0x28]
subss xmm4, xmm5
movss dword [ebp - 8], xmm5
minss xmm1, xmm7
movss dword [ebp - 0x14], xmm5
movss xmm7, dword [eax + 0x18]
mulss xmm3, xmm1
mulss xmm4, xmm1
movss dword [ebp - 0x1c], xmm3
movss xmm3, dword [eax + 8]
subss xmm7, xmm3
movss dword [ebp - 0x18], xmm3
movss xmm3, dword [eax + 0x10]
subss xmm3, dword [eax]
movss dword [ebp - 0xc], xmm4
movss dword [ebp - 0x10], xmm4
mulss xmm7, xmm1
mulss xmm3, xmm1
movss dword [ebp - 0x30], xmm7
movss dword [ebp - 0x20], xmm4
addss xmm3, dword [eax]
comiss xmm6, xmm3
jbe 0x10023a58
movss xmm1, dword [ebp - 0x18]
movaps xmm3, xmm6
jmp 0x10023a77
movss xmm0, dword [ebp - 0x1c]
minss xmm3, dword [0x10155bc0]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x18]
movaps xmm1, xmm0
movss dword [ebp - 0x18], xmm0
mulss xmm3, dword [0x10155e08]
movaps xmm0, xmm5
addss xmm2, dword [ebp - 0x1c]
addss xmm0, dword [ebp - 0xc]
addss xmm3, dword [0x10155b64]
addss xmm1, dword [ebp - 0x30]
addss xmm5, xmm4
movss xmm4, dword [ebp - 0x14]
addss xmm4, dword [ebp - 0x20]
cvttss2si edx, xmm3
movss dword [ebp - 0x14], xmm4
movss xmm4, dword [ebp - 8]
addss xmm4, dword [ebp - 0x10]
shl edx, 0x10
comiss xmm6, xmm2
movss dword [ebp - 8], xmm4
movss xmm4, dword [ebp - 0x18]
addss xmm4, xmm7
movss xmm7, dword [0x10155bc0]
jbe 0x10023ae2
movss xmm3, dword [ebp - 0x14]
movaps xmm2, xmm6
jmp 0x10023af1
movss xmm0, dword [ebp - 8]
minss xmm2, xmm7
movaps xmm1, xmm4
movaps xmm3, xmm5
movss xmm5, dword [0x10155e08]
movss xmm4, dword [0x10155b64]
mulss xmm2, xmm5
addss xmm2, xmm4
cvttss2si eax, xmm2
shl eax, 8
or edx, eax
comiss xmm6, xmm1
jbe 0x10023b1c
movaps xmm1, xmm6
jmp 0x10023b23
minss xmm1, xmm7
movaps xmm0, xmm3
mulss xmm1, xmm5
addss xmm1, xmm4
cvttss2si eax, xmm1
or edx, eax
comiss xmm6, xmm0
jbe 0x10023b3b
movaps xmm0, xmm6
jmp 0x10023b3f
minss xmm0, xmm7
mov eax, dword [esi + 0x38]
add edi, 8
mulss xmm0, xmm5
addss xmm0, xmm4
cvttss2si ecx, xmm0
shl ecx, 0x18
or ecx, edx
mov dword [eax + 0x10], ecx
add dword [esi + 0x38], 0x14
sub dword [ebp - 0x2c], 1
jne 0x100239a1
mov edi, 2
nop dword [eax]
mov ecx, dword [esi + 0x3c]
mov ax, word [esi + 0x34]
movzx edx, di
inc edi
mov word [ecx], ax
movzx ecx, word [esi + 0x34]
mov eax, dword [esi + 0x3c]
dec cx
add cx, dx
mov word [eax + 2], cx
mov eax, dword [esi + 0x3c]
movzx ecx, word [esi + 0x34]
add cx, dx
mov word [eax + 4], cx
add dword [esi + 0x3c], 6
mov eax, dword [ebx + 0xc]
cmp edi, eax
jl 0x10023b70
movzx eax, ax
add dword [esi + 0x34], eax
lea esp, [ebp - 0x68]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100d7b08
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc