Function at 0x103c33a0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [0x11ad127c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
push 0x60
push 0
mov dword [ebp - 0x24], edi
lea eax, [edi + 0x240c]
push eax
call fcn.10425c00
mov ecx, dword [edi + 0xf08]
add esp, 0xc
mov esi, dword [edi + 0xf18]
add ecx, 0xfffffffc
mov edx, dword [edi + 0xf1c]
mov al, byte [edi + 0x161c]
shl esi, cl
shl edx, cl
mov ecx, dword [edi + 0x150c]
mov byte [edi + 0x245b], al
mov dword [ebp - 0x2c], ecx
test ecx, ecx
je 0x103c3912
cmp ecx, 4
je 0x103c3912
mov eax, dword [edi + 0x154c]
mov ebx, 0xff
cmp eax, ebx
movsd xmm2, qword [0x10b338a8]
movsd qword [ebp - 0x48], xmm2
cmova eax, ebx
mov byte [edi + 0x240d], al
mov dword [ebp - 0x34], eax
mov eax, dword [edi + 0x1550]
cmp eax, ebx
cmova eax, ebx
mov byte [edi + 0x240e], al
mov dword [ebp - 0x38], eax
mov eax, dword [edi + 0x1554]
cmp eax, ebx
cmova eax, ebx
mov byte [edi + 0x240f], al
mov dword [ebp - 0x30], eax
mov eax, dword [edi + 0x1524]
movd xmm5, eax
shr eax, 0x1f
cvtdq2pd xmm5, xmm5
addsd xmm5, qword [eax*8 + 0x1122e340]
mov eax, dword [edi + 0x1528]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1122e340]
mov eax, dword [edi + 0x1518]
divsd xmm5, xmm0
movd xmm4, eax
cvtdq2pd xmm4, xmm4
shr eax, 0x1f
movsd qword [ebp - 0x40], xmm5
addsd xmm4, qword [eax*8 + 0x1122e340]
mov eax, dword [edi + 0x151c]
divsd xmm4, xmm5
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
movaps xmm0, xmm4
addsd xmm1, qword [eax*8 + 0x1122e340]
mulsd xmm0, xmm2
comisd xmm0, xmm1
movsd xmm1, qword [0x1122d2d8]
setae al
imul edx, esi
mov byte [edi + 0x2455], al
shl edx, 8
movd xmm0, edx
mov edx, dword [edi + 0x152c]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cmp edx, 0xffffffff
jne 0x103c350f
mov dword [ebp - 0x28], 0
jmp 0x103c3528
mov eax, dword [edi + 0x1530]
lea ecx, [eax + edx]
xor edx, edx
lea esi, [eax + 1]
mov eax, ecx
div esi
mov ecx, dword [ebp - 0x2c]
dec eax
mov dword [ebp - 0x28], eax
mov eax, dword [edi + 0x151c]
and cl, 0xf
sub eax, dword [edi + 0x1520]
xorps xmm2, xmm2
mulsd xmm4, xmm1
movd xmm3, eax
cvtdq2pd xmm3, xmm3
mulsd xmm3, xmm1
cmp cl, 2
je 0x103c3571
mov eax, dword [edi + 0x1514]
movd xmm2, eax
cvtdq2pd xmm2, xmm2
shr eax, 0x1f
addsd xmm2, qword [eax*8 + 0x1122e340]
divsd xmm2, xmm5
mulsd xmm2, xmm1
mov eax, dword [ebp - 0x30]
lea edx, [edi + 0x2413]
movzx eax, al
lea ecx, [edi + 0x1540]
lea esi, [ebp - 0x1c]
mov edi, 3
movd xmm1, eax
mov eax, dword [ebp - 0x34]
movzx eax, al
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov eax, dword [ebp - 0x38]
movzx eax, al
divsd xmm0, xmm1
movsd qword [ebp - 0x1c], xmm0
movaps xmm0, xmm1
divsd xmm0, xmm1
movsd qword [ebp - 0xc], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm1
movsd xmm1, qword [0x10b338b0]
movsd qword [ebp - 0x14], xmm0
mov eax, dword [ecx - 0xc]
lea ecx, [ecx + 4]
movsd xmm0, qword [esi]
lea edx, [edx + 1]
cmp eax, 0xff
mulsd xmm0, xmm1
lea esi, [esi + 8]
cmova eax, ebx
mov byte [edx - 4], al
mov eax, dword [ecx - 4]
cmp eax, 0xff
cmova eax, ebx
mov byte [edx - 1], al
cvttsd2si eax, xmm0
mov dword [ecx + 0xed4], eax
sub edi, 1
jne 0x103c35d5
mov edi, dword [ebp - 0x24]
movaps xmm0, xmm5
minsd xmm2, qword [0x10b340e0]
mulsd xmm0, xmm1
mov al, byte [edi + 0x1574]
mov byte [edi + 0x2416], al
mov al, byte [edi + 0x1578]
mov byte [edi + 0x2417], al
mulsd xmm2, qword [0x10b340e8]
mov ecx, dword [edi + 0x151c]
cvttsd2si eax, xmm0
mov dword [edi + 0x2428], ecx
mov dword [edi + 0x242c], ecx
mov dword [edi + 0x2434], ecx
mov byte [edi + 0x245d], 0
mov dword [edi + 0x2460], 0
mulsd xmm3, xmm1
mov dword [edi + 0x2424], eax
mov al, byte [edi + 0x1570]
neg al
mulsd xmm4, xmm1
sbb al, al
and al, 4
or al, byte [edi + 0x1508]
mov byte [edi + 0x240c], al
mov eax, dword [edi + 0x1518]
mov dword [edi + 0x2430], eax
mov dword [edi + 0x2438], eax
mov eax, dword [edi + 0x152c]
mov dword [edi + 0x243c], eax
mov eax, dword [ebp - 0x28]
mov dword [edi + 0x2440], eax
cvttsd2si eax, xmm2
mov ecx, eax
mov byte [edi + 0x2454], al
cvttsd2si eax, xmm3
sar ecx, 8
test byte [edi + 0x150c], 1
mov dword [edi + 0x2448], ecx
mov dword [edi + 0x2444], eax
cvttsd2si eax, xmm4
mov dword [edi + 0x244c], eax
je 0x103c3778
cmp dword [edi + 0x1584], 0
jne 0x103c3778
mov eax, 0xaaaaaaab
mul ecx
mov eax, dword [edi + 0xe58]
mov ecx, 0x28
mov esi, edx
shr esi, 4
cmp esi, ecx
cmovl ecx, esi
sub eax, 8
lea edx, [eax + eax*4]
add edx, edx
cmp edx, ecx
jg 0x103c372e
mov edx, 0x28
cmp esi, edx
cmovl edx, esi
mov cl, byte [edi + 0x2412]
mov eax, 0x3c
sub eax, edx
mov dl, byte [edi + 0x2410]
cmp dl, cl
mov dword [ebp - 0x24], eax
movzx eax, cl
movzx ebx, dl
cmovae ebx, eax
mov eax, dword [ebp - 0x24]
movzx ecx, bl
add ecx, 0xb
cmp ecx, eax
jl 0x103c376c
mov eax, ecx
cmp ecx, 0x83
mov ecx, 0x83
cmova eax, ecx
mov ecx, eax
shl al, 6
sar ecx, 2
or cl, al
jmp 0x103c377e
mov cl, byte [edi + 0x1584]
xor eax, eax
mov byte [edi + 0x2450], cl
mov byte [edi + 0x2451], 0
mov word [edi + 0x2452], ax
lea esi, [eax + 1]
cmp dword [edi + 0x224], eax
je 0x103c3834
mov ebx, dword [edi + 0x30]
test ebx, ebx
je 0x103c3834
mov ecx, dword [ebp + 0xc]
cmp ecx, 2
je 0x103c37bf
cmp ecx, 3
je 0x103c37bf
xor edx, edx
jmp 0x103c37c1
mov edx, esi
lea eax, [ebp - 0x24]
push eax
xor eax, eax
cmp ecx, 1
mov ecx, dword [edi + 0x224]
sete al
push eax
push edx
push dword [ebx + 0x18]
call fcn.103f19b0
movsd xmm5, qword [ebp - 0x40]
test al, al
je 0x103c3834
mov edx, dword [edi + 0x244c]
movzx ecx, byte [ebp - 0x24]
lea eax, [edx + 1]
imul eax, ecx
lea ecx, [edx + 6]
xor edx, edx
div ecx
mov ecx, esi
cmp eax, 1
cmova ecx, eax
movzx eax, byte [ebp - 0x23]
mov byte [edi + 0x2451], cl
movzx ecx, byte [ebp - 0x22]
shl cx, 8
or cx, ax
mov al, byte [ebp - 0x21]
mov byte [edi + 0x245d], al
movzx eax, word [ebp - 0x20]
mov word [edi + 0x2452], cx
mov dword [edi + 0x2460], eax
mov eax, dword [edi + 0x151c]
mov byte [edi + 0x2457], 0
movd xmm1, eax
shr eax, 0x1f
cvtdq2pd xmm1, xmm1
addsd xmm1, qword [eax*8 + 0x1122e340]
mov eax, dword [edi + 0x1518]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1122e340]
divsd xmm0, xmm5
mulsd xmm0, qword [ebp - 0x48]
comisd xmm0, xmm1
setae al
mov byte [edi + 0x2455], al
test al, al
lea eax, [edi + 0x6814]
je 0x103c389c
cmp byte [eax], 0
jne 0x103c389c
mov cl, byte [edi + 0x1588]
jmp 0x103c389e
mov cl, 1
mov byte [edi + 0x2459], cl
mov byte [edi + 0x245a], 1
cmp byte [eax], 0
je 0x103c38d1
cmp dword [ebp + 0x10], 0
je 0x103c38d1
mov al, byte [edi + 0x6815]
mov ecx, dword [edi + 0x1510]
neg al
sbb al, al
and al, 0x21
neg ecx
sbb cl, cl
and cl, 2
jmp 0x103c38d5
xor al, al
xor cl, cl
mov byte [edi + 0x2456], cl
mov byte [edi + 0x2458], al
mov ecx, dword [edi + 0x1590]
mov eax, dword [edi + 0x49bc]
cmp ecx, eax
jae 0x103c38fb
xor al, al
mov byte [edi + 0x2464], al
jmp 0x103c3971
cmp eax, 1
cmovg esi, eax
xor edx, edx
lea eax, [ecx + 1]
div esi
dec al
mov byte [edi + 0x2464], al
jmp 0x103c3971
lea ecx, [edi + 0x2410]
mov esi, 3
lea edx, [edi + 0x1534]
mov ebx, 0xff
nop dword [eax + eax]
mov eax, dword [edx + 0x24]
lea edx, [edx + 4]
cmp eax, 0xff
lea ecx, [ecx + 1]
cmova eax, ebx
mov byte [ecx - 4], al
mov eax, dword [edx - 4]
cmp eax, 0xff
cmova eax, ebx
mov byte [ecx - 1], al
mov eax, dword [edx + 8]
cmp eax, 0xff
cmova eax, ebx
mov byte [ecx + 2], al
sub esi, 1
jne 0x103c3930
mov eax, dword [edi + 0x152c]
mov dword [edi + 0x243c], eax
cmp byte [ebp + 8], 0
je 0x103c3a17
cmp byte [edi + 0x35e], 0
jne 0x103c398d
cmp dword [edi + 0x358], 0
je 0x103c399d
mov eax, dword [edi + 0x250]
dec eax
and eax, 1
mov dword [edi + 0x250], eax
mov eax, dword [edi + 0x250]
mov ecx, dword [edi + 4]
push 0
push 0
push 0
push 0
push 0
push dword [edi + eax*4 + 0xe0]
call fcn.1033bbe0
mov esi, eax
mov ecx, edi
test esi, esi
jne 0x103c39e4
push 0x104636e0
call fcn.103e8250
pop edi
lea eax, [esi + 0xa]
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0xc
push dword [edi + 0x2448]
push dword [edi + 0x1530]
push dword [edi + 0x243c]
push esi
call fcn.103e7bf0
mov eax, 0x83
mov word [esi + 0x54], ax
mov ecx, dword [edi + 0x250]
mov ecx, dword [edi + ecx*4 + 0xe0]
call fcn.102ac650
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0xc