Function at 0x53b780
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
movsd xmm6, qword [0x72e0a8]
movsd xmm7, qword [0x72e1d8]
push ebx
push esi
xor eax, eax
mov ecx, 0x7ee100
push edi
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], ecx
mov esi, 0x7b91a0
jmp 0x53b7b0
lea edx, [eax + 1]
mov dword [ebp - 0x18], edx
and edx, 0x80000001
jns 0x53b7c3
dec edx
or edx, 0xfffffffe
inc edx
shl edx, 2
lea eax, [eax*4 + 0x703f7c]
mov dword [ebp - 0x14], edx
mov ebx, 1
mov dword [ebp - 4], eax
mov edi, ecx
mov dword [ebp - 8], 4
movzx eax, byte [eax]
movd xmm3, eax
cvtdq2pd xmm3, xmm3
mov ecx, ebx
mulsd xmm3, xmm6
and ecx, 0x80000001
jns 0x53b7ff
dec ecx
or ecx, 0xfffffffe
inc ecx
movzx eax, byte [edx + ecx + 0x703f7c]
movd xmm4, eax
mov eax, dword [ebp - 0xc]
cvtdq2pd xmm4, xmm4
movzx eax, byte [ecx + eax*4 + 0x703f7c]
movd xmm5, eax
cvtdq2pd xmm5, xmm5
mulsd xmm4, xmm6
mulsd xmm5, xmm6
xor edx, edx
lea esp, [esp]
movd xmm2, edx
cvtdq2pd xmm2, xmm2
divsd xmm2, xmm7
movapd xmm1, xmm2
mulsd xmm1, qword [0x72e1b8]
cvttsd2si eax, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
movaps xmm0, xmm2
mulsd xmm0, qword [0x72e290]
comisd xmm1, xmm3
cvttsd2si eax, xmm0
seta cl
sub cl, al
movapd xmm1, xmm2
mulsd xmm1, qword [0x72e1c0]
mov byte [esi + edx - 0x100], cl
mov byte [esi + edx + 0x1f00], cl
cvttsd2si eax, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
movaps xmm0, xmm2
mulsd xmm0, qword [0x72e298]
comisd xmm1, xmm4
cvttsd2si eax, xmm0
seta cl
sub cl, al
movapd xmm1, xmm2
mulsd xmm1, qword [0x72e190]
mov byte [esi + edx], cl
mov byte [esi + edx + 0x2000], cl
mov ah, 0x2a
cvttsd2si ecx, xmm1
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
comisd xmm1, xmm3
seta al
add al, cl
imul ah
comisd xmm1, xmm4
mov byte [edi + edx + 0x1000], al
seta al
add al, cl
movapd xmm1, xmm2
mulsd xmm1, qword [0x72e198]
mulsd xmm2, qword [0x72e288]
mov byte [edi + edx - 0x1000], al
cvttsd2si eax, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
cvttsd2si eax, xmm2
subsd xmm1, xmm0
comisd xmm1, xmm5
seta cl
sub cl, al
mov al, cl
add cl, cl
add al, cl
add al, al
mov byte [edi + edx], al
inc edx
cmp edx, 0x100
jl 0x53b830
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
inc eax
add esi, 0x200
inc ebx
add edi, 0x400
dec dword [ebp - 8]
mov dword [ebp - 4], eax
jne 0x53b7e1
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
add ecx, 0x100
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], ecx
cmp esi, 0x7bb1a0
jl 0x53b7b0
xor ecx, ecx
xor edi, edi
mov eax, 0x66666667
imul edi
sar edx, 1
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
xor esi, esi
lea esp, [esp]
mov eax, 0x2aaaaaab
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 0x798b80], bl
mov byte [ecx + 0x798c80], al
mov dword [ecx + 0x798d80], 0x99663300
mov byte [ecx + 0x798b81], bl
mov byte [ecx + 0x798c81], al
mov byte [ecx + 0x798b82], bl
mov byte [ecx + 0x798c82], al
mov byte [ecx + 0x798b83], bl
mov byte [ecx + 0x798c83], al
mov byte [ecx + 0x798b84], bl
mov byte [ecx + 0x798c84], al
mov word [ecx + 0x798d84], 0xffcc
mov byte [ecx + 0x798b85], bl
mov byte [ecx + 0x798c85], al
add esi, 0xff
add ecx, 6
cmp esi, 0x6f9
jl 0x53b9a0
add edi, 0xff
cmp edi, 0x5fa
jl 0x53b987
cmp ecx, 0x100
jge 0x53ba59
lea eax, [ecx + 0x798c80]
lea ebx, [ebx]
mov byte [eax + 0x100], 0
mov byte [eax], 0
mov byte [eax - 0x100], 0
inc eax
cmp eax, 0x798d80
jl 0x53ba40
mov esi, 0x7fff
mov dword [0x805220], 0x10000
mov word [0x7a8e80], si
mov ecx, 1
xor edx, edx
mov eax, 0x10000
div ecx
cmp eax, 0x7fff
mov dword [ecx*4 + 0x805220], eax
cmova eax, esi
mov word [ecx*2 + 0x7a8e80], ax
inc ecx
cmp ecx, 0x100
jl 0x53ba74
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret