Function at 0x100b3ac0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x100cd008]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [0x100e03d0]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
push ebx
push esi
push edi
test ecx, ecx
je 0x100b3d76
cmp byte [0x100e7a50], 0
je 0x100b3d76
cmp byte [0x100e03d4], 0
jne 0x100b3b48
mov eax, dword [0x100f21dc]
cmp eax, dword [0x100f21e0]
je 0x100b3d76
mov dword [0x100f21e0], eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b58a7
mov esp, ebp
pop ebp
ret
mov esi, dword [0x100f21e0]
mov edx, esi
sub edx, dword [0x100f21dc]
sar edx, 5
mov dword [ebp - 0x2c], edx
test edx, edx
je 0x100b3d76
mov eax, dword [0x100f191c]
add eax, 0xffffffc2
xor eax, 0x5dc46c8b
movd xmm0, dword [eax + ecx]
mov ecx, edx
mov eax, dword [0x100f174c]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [eax + 0x20]
movss dword [ebp - 0x20], xmm0
test edx, edx
je 0x100b3d76
mov ebx, edx
shl ebx, 5
sub ebx, 0x20
mov dword [ebp - 0x24], ecx
dec ecx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x28], ecx
add ebx, dword [0x100f21dc]
je 0x100b3d6b
mov edi, dword [ebx + 0x18]
mov eax, dword [0x100f174c]
movd xmm1, edi
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [eax + 0x20]
subss xmm0, xmm1
call fcn.10023650
comiss xmm0, dword [0x100c26d0]
jbe 0x100b3c37
lea edx, [ebx + 0x20]
cmp edx, esi
je 0x100b3c29
lea ecx, [ebx + 0x14]
mov eax, dword [edx]
lea ecx, [ecx + 0x20]
mov dword [ecx - 0x34], eax
add edx, 0x20
mov eax, dword [ecx - 0x10]
mov dword [ecx - 0x30], eax
mov eax, dword [ecx - 0xc]
mov dword [ecx - 0x2c], eax
mov eax, dword [ecx - 8]
mov dword [ecx - 0x28], eax
mov eax, dword [ecx - 4]
mov dword [ecx - 0x24], eax
mov eax, dword [ecx]
mov dword [ecx - 0x20], eax
mov eax, dword [ecx + 4]
mov dword [ecx - 0x1c], eax
movzx eax, byte [ecx + 8]
mov byte [ecx - 0x18], al
movzx eax, byte [ecx + 9]
mov byte [ecx - 0x17], al
cmp edx, esi
jne 0x100b3be0
mov esi, dword [0x100f21e0]
mov ecx, dword [ebp - 0x28]
sub esi, 0x20
mov dword [0x100f21e0], esi
jmp 0x100b3d63
cmp byte [ebx + 0x1c], 0
jne 0x100b3d66
lea eax, [edx - 1]
cmp ecx, eax
je 0x100b3c5a
cmp dword [ebp - 0x24], edx
jae 0x100b3d66
cmp edi, dword [ebx + 0x38]
je 0x100b3d66
movss xmm4, dword [ebx + 0xc]
movss dword [ebp - 0x1c], xmm4
movss xmm6, dword [ebx + 0x10]
movss dword [ebp - 0x18], xmm6
movss xmm0, dword [ebx + 0x14]
movss dword [ebp - 0x14], xmm0
movss xmm7, dword [ebx]
movss xmm5, dword [ebx + 4]
subss xmm7, xmm4
movss xmm3, dword [ebx + 8]
subss xmm5, xmm6
subss xmm3, xmm0
movss dword [ebp - 0x24], xmm0
movaps xmm1, xmm7
movaps xmm0, xmm5
mulss xmm1, xmm7
mulss xmm0, xmm5
addss xmm0, xmm1
movaps xmm1, xmm3
mulss xmm1, xmm3
addss xmm0, xmm1
call fcn.100187f0
movaps xmm2, xmm0
movaps xmm1, xmm7
addss xmm2, dword [0x100c25c0]
movaps xmm0, xmm5
mulss xmm1, xmm7
mulss xmm0, xmm5
addss xmm0, xmm1
movaps xmm1, xmm3
mulss xmm1, xmm3
addss xmm0, xmm1
call fcn.100187f0
divss xmm7, xmm2
mov eax, dword [0x100e7af4]
mov edx, eax
mov esi, dword [0x100f172c]
push ecx
mov ecx, eax
mov dword [esp], 0x40a00000
push 1
shr ecx, 0x10
movzx ecx, cl
push ecx
shr edx, 8
mov ecx, esi
movzx eax, al
movzx edx, dl
push edx
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x1c]
push eax
divss xmm5, xmm2
divss xmm3, xmm2
mulss xmm7, xmm0
mulss xmm5, xmm0
mulss xmm3, xmm0
addss xmm7, xmm4
addss xmm5, xmm6
addss xmm3, dword [ebp - 0x24]
movss dword [ebp - 0x10], xmm7
movss dword [ebp - 0xc], xmm5
movss dword [ebp - 8], xmm3
mov edi, dword [esi]
mov eax, dword [edi + 0x14]
call eax
mov ecx, dword [ebp - 0x28]
mov byte [ebx + 0x1c], 1
mov esi, dword [0x100f21e0]
mov edx, dword [ebp - 0x2c]
movss xmm0, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x30]
test ecx, ecx
jne 0x100b3b97
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100b58a7
mov esp, ebp
pop ebp
ret