Function at 0x10024cf0
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, 0x68
push esi
mov esi, ecx
mov dword [ebp - 0x2c], 1
push edi
xorps xmm3, xmm3
mov dword [ebp - 8], esi
mov edi, edx
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x5c], eax
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x60], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 4], edi
movss xmm1, dword [eax]
comiss xmm1, xmm3
jbe 0x10024d86
mov eax, dword [edi + 0x1c]
mov edi, dword [edi + 4]
movzx edx, byte [eax + edi + 7]
movzx ecx, byte [eax + edi + 6]
mov eax, 0x100
cwde
movsx ecx, cx
imul ecx, eax
add dx, cx
mov ecx, dword [ebp - 4]
movsx esi, dx
mov eax, dword [ecx + 0x1c]
movzx edx, byte [eax + edi + 5]
movzx ecx, byte [eax + edi + 4]
mov eax, 0x100
cwde
movsx ecx, cx
imul ecx, eax
add dx, cx
movsx eax, dx
sub eax, esi
mov esi, dword [ebp - 8]
movd xmm0, eax
jmp 0x10024da6
mov edx, dword [edi + 0x14]
mov eax, dword [edi + 4]
xorps xmm1, xmmword [0x10046100]
movzx ecx, byte [edx + eax + 0x12]
movzx eax, byte [edx + eax + 0x13]
shl ecx, 8
add ecx, eax
movd xmm0, ecx
mov edx, dword [ebx + 8]
cvtdq2ps xmm0, xmm0
movzx edi, byte [edx + 0x14]
mov eax, edi
mov dword [esi + 0x1c], edi
movss xmm4, dword [0x10045ecc]
movzx ecx, byte [edx + 0x15]
movaps xmm2, xmm4
divss xmm1, xmm0
shr eax, 0x1f
mov dword [esi + 0x20], ecx
movd xmm0, edi
cvtdq2pd xmm0, xmm0
movss dword [ebp - 0x10], xmm1
addsd xmm0, qword [eax*8 + 0x100460e0]
mov eax, ecx
shr eax, 0x1f
cvtpd2ps xmm0, xmm0
divss xmm2, xmm0
movd xmm0, ecx
movss dword [ebp - 0x54], xmm2
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x100460e0]
mov eax, 1
cvtpd2ps xmm0, xmm0
divss xmm4, xmm0
movss dword [ebp - 0x58], xmm4
test edi, edi
jne 0x10024e22
xorps xmm2, xmm2
jmp 0x10024e3f
movd xmm0, edi
sub eax, edi
cvtdq2ps xmm0, xmm0
movd xmm2, eax
mov eax, 1
cvtdq2ps xmm2, xmm2
addss xmm0, xmm0
divss xmm2, xmm0
movss dword [ebp - 0x1c], xmm2
test ecx, ecx
jne 0x10024e4d
xorps xmm2, xmm2
jmp 0x10024e65
movd xmm0, ecx
sub eax, ecx
cvtdq2ps xmm0, xmm0
movd xmm2, eax
cvtdq2ps xmm2, xmm2
addss xmm0, xmm0
divss xmm2, xmm0
xor ecx, ecx
movss dword [ebp - 0x24], xmm2
mov dword [ebp - 0x28], ecx
cmp dword [edx + 0xc], ecx
jle 0x10025213
mov edi, dword [ebx + 0x10]
mov dword [ebp - 0x18], ecx
add edi, 8
cmp dword [edi + 4], 0
je 0x100251f8
movzx eax, word [edi - 4]
mov dword [ebp - 0x20], eax
test ax, ax
je 0x100251f8
movzx eax, word [edi - 2]
mov dword [ebp - 0x14], eax
test ax, ax
je 0x100251f8
mov eax, dword [edx + 0x10]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x4c], eax
mov eax, dword [edx + 8]
test eax, eax
jne 0x10024ec2
mov edx, dword [edx + 4]
add edx, ecx
jmp 0x10024ec5
mov edx, dword [eax + ecx*4]
mov ecx, dword [ebp - 4]
call fcn.1001f6c0
movzx ecx, word [esi + 0x14]
add word [edi], cx
add word [edi + 2], cx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x20]
sub eax, ecx
mov word [edi - 4], ax
mov eax, dword [ebp - 0x14]
sub eax, ecx
mov word [edi - 2], ax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0x1c]
movzx edx, byte [eax + ecx + 0x23]
movzx eax, byte [eax + ecx + 0x22]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
cmp dword [ebp - 0xc], edx
jge 0x10024f2d
mov edx, dword [ebp - 0xc]
lea edx, [eax + edx*4]
mov eax, 0x100
add edx, ecx
cwde
movzx ecx, byte [edx]
movsx ecx, cx
imul ecx, eax
movzx eax, byte [edx + 1]
jmp 0x10024f4f
mov esi, dword [ebp - 4]
lea edx, [eax + edx*4]
movzx ecx, byte [edx + ecx - 4]
mov eax, 0x100
cwde
movsx ecx, cx
imul ecx, eax
mov eax, dword [esi + 4]
mov esi, dword [ebp - 8]
movzx eax, byte [edx + eax - 3]
add cx, ax
mov edx, dword [ebp - 0xc]
movzx eax, cx
cwde
mov dword [ebp - 0x50], eax
mov eax, dword [esi + 0x1c]
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x20], 0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100460e0]
mov eax, dword [esi + 0x20]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x34], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100460e0]
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x64]
push eax
cvtpd2ps xmm0, xmm0
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x14]
push eax
mulss xmm0, xmm1
movss dword [ebp - 0x44], xmm0
call fcn.1001fad0
add esp, 0x10
test eax, eax
jne 0x10024fd9
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], eax
jmp 0x10025053
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtsi2ss xmm0, dword [ebp - 0x14]
sub esp, 8
mulss xmm0, dword [ebp - 0x34]
addss xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x38], xmm0
fld qword [ebp - 0x38]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp qword [ebp - 0x38]
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
cvtsi2ss xmm1, dword [ebp - 0x3c]
cvtpd2ps xmm0, xmm0
mulss xmm1, dword [ebp - 0x44]
cvttss2si eax, xmm0
xorps xmm0, xmm0
subss xmm0, xmm1
mov dword [ebp - 0x14], eax
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x48], xmm0
fld qword [ebp - 0x48]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp qword [ebp - 0x48]
movsd xmm0, qword [ebp - 0x48]
add esp, 8
cvtpd2ps xmm0, xmm0
cvttss2si eax, xmm0
mov dword [ebp - 0x20], eax
mov ecx, dword [esi + 0x20]
mov eax, ecx
push dword [ebp - 0xc]
mov edx, dword [esi + 0x1c]
shr eax, 0x1f
sub esp, 0x10
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mov esi, dword [esi + 0x10]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
addsd xmm0, qword [eax*8 + 0x100460e0]
mov eax, edx
shr eax, 0x1f
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [ebp - 0x10]
movss dword [esp + 4], xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x100460e0]
movzx eax, word [edi - 2]
sub eax, ecx
mov ecx, dword [ebp - 4]
inc eax
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [ebp - 0x10]
movss dword [esp], xmm0
push esi
push eax
movzx eax, word [edi - 4]
sub eax, edx
movzx edx, word [edi + 2]
imul edx, esi
inc eax
mov esi, dword [ebp - 8]
push eax
movzx eax, word [edi]
add edx, eax
add edx, dword [esi + 0x24]
call fcn.10024670
mov eax, dword [esi + 0x1c]
add esp, 0x20
cmp eax, 1
jbe 0x10025119
mov esi, dword [esi + 0x10]
movzx ecx, word [edi + 2]
movzx edx, word [edi - 4]
push eax
movzx eax, word [edi - 2]
imul ecx, esi
push esi
mov esi, dword [ebp - 8]
push eax
movzx eax, word [edi]
add ecx, eax
add ecx, dword [esi + 0x24]
call fcn.10024860
add esp, 0xc
mov eax, dword [esi + 0x20]
cmp eax, 1
jbe 0x10025149
mov esi, dword [esi + 0x10]
movzx ecx, word [edi + 2]
movzx edx, word [edi - 4]
push eax
movzx eax, word [edi - 2]
imul ecx, esi
push esi
mov esi, dword [ebp - 8]
push eax
movzx eax, word [edi]
add ecx, eax
add ecx, dword [esi + 0x24]
call fcn.10024ab0
add esp, 0xc
mov ecx, dword [ebp - 0x4c]
movzx eax, word [edi]
movd xmm0, dword [ebp - 0x50]
movss xmm1, dword [ebp - 0x10]
cvtdq2ps xmm0, xmm0
mov word [ecx], ax
movzx eax, word [edi + 2]
mov word [ecx + 2], ax
movzx eax, word [edi - 4]
add ax, word [edi]
mulss xmm0, xmm1
mov edx, dword [ebp - 0x20]
mov word [ecx + 4], ax
movzx eax, word [edi + 2]
add ax, word [edi - 2]
movss dword [ecx + 0x10], xmm0
movd xmm0, dword [ebp - 0x14]
cvtdq2ps xmm0, xmm0
mov word [ecx + 6], ax
mulss xmm0, dword [ebp - 0x54]
addss xmm0, dword [ebp - 0x1c]
movss dword [ecx + 8], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [ebp - 0x58]
addss xmm0, dword [ebp - 0x24]
movss dword [ecx + 0xc], xmm0
movzx eax, word [edi - 4]
add eax, dword [ebp - 0x14]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [ebp - 0x54]
addss xmm0, dword [ebp - 0x1c]
movss dword [ecx + 0x14], xmm0
movzx eax, word [edi - 2]
add eax, edx
mov edx, dword [ebx + 8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [ebp - 0x58]
addss xmm0, dword [ebp - 0x24]
movss dword [ecx + 0x18], xmm0
mov ecx, dword [ebp - 0x28]
jmp 0x100251ff
mov dword [ebp - 0x2c], 0
add dword [ebp - 0x18], 0x1c
inc ecx
add edi, 0x10
mov dword [ebp - 0x28], ecx
cmp ecx, dword [edx + 0xc]
jl 0x10024e81
mov eax, dword [ebp - 0x5c]
mov dword [esi + 0x1c], eax
mov eax, dword [ebp - 0x60]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x2c]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret