Function at 0x42e5b0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push edi
push esi
push ebp
push ebx
push ecx
push edx
push eax
mov eax, 0x8868
call fcn.00471bc0
mov ecx, dword [esp + 0x8870]
mov edx, dword [esp + 0x886c]
mov eax, dword [esp + 0x8868]
mov dword [esp + 0x8424], ecx
mov dword [esp + 0x8864], edx
mov dword [esp + 0x8834], eax
mov ebp, dword [esp + 0x8894]
mov edx, dword [esp + 0x88a0]
mov eax, dword [esp + 0x88b0]
test eax, eax
mov ebx, 1
jle 0x42e60b
mov ebx, eax
lea eax, [edx + edx]
add eax, eax
mov dword [esp + 0x8860], eax
lea edi, [ebx + ebx]
xor eax, eax
mov dword [esp + eax*4 + 0x842c], 1
inc eax
cmp eax, 0x100
jl 0x42e61c
mov ecx, edi
shr ecx, 0x1f
add ecx, edi
sar ecx, 1
mov eax, ecx
mov esi, edi
sar esi, 2
shr esi, 0x1d
add esi, edi
sar esi, 3
mov edx, ecx
sub edx, esi
cmp ecx, edx
jl 0x42e65f
mov dword [esp + eax*4 + 0x842c], 0x200
dec eax
cmp eax, edx
jge 0x42e64f
test edx, edx
jl 0x42e6b1
mov eax, 0x200
fld qword [0x579b38]
mov dword [esp + edx*4 + 0x842c], eax
mov dword [esp + 0x8418], eax
fild dword [esp + 0x8418]
fmul st(1)
fnstcw word [esp]
movzx eax, word [esp]
or eax, 0xc00
mov dword [esp + 8], eax
fldcw word [esp + 8]
fistp dword [esp + 0x8410]
fldcw word [esp]
mov eax, dword [esp + 0x8410]
dec edx
test edx, edx
jge 0x42e66e
fstp st(0)
add esi, ecx
cmp ecx, esi
jg 0x42e6c7
mov dword [esp + ecx*4 + 0x842c], 0x200
inc ecx
cmp ecx, esi
jle 0x42e6b7
cmp esi, edi
jg 0x42e719
mov eax, 0x200
fld qword [0x579b38]
mov dword [esp + esi*4 + 0x842c], eax
mov dword [esp + 0x8418], eax
fild dword [esp + 0x8418]
fmul st(1)
fnstcw word [esp]
movzx eax, word [esp]
or eax, 0xc00
mov dword [esp + 8], eax
fldcw word [esp + 8]
fistp dword [esp + 0x8410]
fldcw word [esp]
mov eax, dword [esp + 0x8410]
inc esi
cmp esi, edi
jle 0x42e6d6
fstp st(0)
mov eax, dword [esp + 0x88a4]
imul eax, dword [esp + 0x8860]
push eax
call fcn.0046f50c
pop ecx
mov dword [esp + 0x882c], eax
cmp dword [esp + 0x88b4], 0
jne 0x42eb42
mov ecx, dword [esp + 0x8424]
sub ecx, ebx
mov eax, dword [esp + 0x8898]
lea edx, [ebx + eax + 1]
cmp ecx, edx
jg 0x42e79c
mov eax, dword [esp + 0x8898]
lea eax, [eax + 1]
mov dword [esp + 0x8420], ebp
mov esi, dword [esp + 0x8898]
mov edi, dword [esp + 0x8424]
mov ebp, ecx
cmp ecx, edi
jge 0x42e783
mov ebp, edi
cmp ebp, eax
jl 0x42e789
mov ebp, esi
mov dword [esp + ecx*4 + 0x40c], ebp
inc ecx
cmp ecx, edx
jle 0x42e77b
mov ebp, dword [esp + 0x8420]
mov edx, ebp
mov eax, dword [esp + 0x889c]
lea ecx, [eax + 1]
cmp ebp, ecx
jge 0x42e96a
mov edi, ebx
neg edi
add edi, edi
add edi, edi
lea esi, [ebx + ebx]
add esi, esi
mov eax, dword [esp + 0x8898]
lea eax, [eax + 1]
mov dword [esp + 0x8870], eax
mov eax, edx
imul eax, dword [esp + 0x8860]
mov dword [esp + 0x8858], esi
mov dword [esp + 0x8428], edi
mov dword [esp + 0x8830], ecx
mov dword [esp + 0x886c], ebx
mov dword [esp + 0x8420], ebp
mov ebp, dword [esp + 0x8424]
mov ebx, ebp
mov ecx, dword [esp + 0x8870]
cmp ebp, ecx
jge 0x42e945
lea edi, [ebx + ebx]
add edi, edi
add edi, dword [esp + 0x8858]
lea esi, [ebx + ebx]
add esi, esi
add esi, dword [esp + 0x8428]
lea ecx, [ebx + ebx]
add ecx, ecx
add ecx, eax
add ecx, dword [esp + 0x882c]
mov dword [esp + 0x8840], esi
mov dword [esp + 0x8854], edi
mov dword [esp + 0x8844], eax
mov dword [esp + 0x8848], ebx
mov dword [esp + 0x885c], edx
mov ebx, dword [esp + 0x8840]
mov eax, dword [esp + ebx + 0x40c]
mov esi, dword [esp + 0x8854]
mov ebx, dword [esp + esi + 0x40c]
lea esi, [eax + eax]
add esi, esi
add esi, dword [esp + 0x8844]
sub ebx, eax
test ebx, ebx
jl 0x42f020
xor eax, eax
xor ebp, ebp
xor edi, edi
mov dword [esp + 0x883c], edi
mov edi, dword [esp + 0x8864]
lea edx, [esi + edi]
lea esi, [esi + edi]
mov dword [esp + 0x884c], esi
lea edi, [edx + ebx*4]
mov esi, dword [esp + 0x883c]
mov dword [esp + 0x8850], ecx
mov edx, dword [esp + 0x884c]
movzx ecx, byte [edx]
add eax, ecx
movzx ecx, byte [edx + 1]
add ebp, ecx
movzx ecx, byte [edx + 2]
add esi, ecx
add edx, 4
cmp edx, edi
jbe 0x42e8c7
mov ecx, dword [esp + 0x8850]
inc ebx
xor edx, edx
div ebx
mov byte [ecx], al
mov eax, ebp
xor edx, edx
div ebx
mov byte [ecx + 1], al
mov eax, esi
xor edx, edx
div ebx
mov byte [ecx + 2], al
add dword [esp + 0x8854], 4
add dword [esp + 0x8840], 4
add ecx, 4
mov ebx, dword [esp + 0x8848]
inc ebx
mov dword [esp + 0x8848], ebx
mov ebp, dword [esp + 0x8870]
cmp ebx, ebp
jl 0x42e85c
mov eax, dword [esp + 0x8844]
mov edx, dword [esp + 0x885c]
mov ebp, dword [esp + 0x8424]
add eax, dword [esp + 0x8860]
inc edx
mov ecx, dword [esp + 0x8830]
cmp edx, ecx
jl 0x42e802
mov ebx, dword [esp + 0x886c]
mov ebp, dword [esp + 0x8420]
mov eax, ebp
sub eax, ebx
mov edx, dword [esp + 0x889c]
lea edx, [ebx + edx + 1]
cmp eax, edx
jg 0x42e99e
mov edi, dword [esp + 0x889c]
mov esi, eax
cmp eax, ebp
jge 0x42e98c
mov esi, ebp
cmp esi, ecx
jl 0x42e992
mov esi, edi
mov dword [esp + eax*4 + 0x40c], esi
inc eax
cmp eax, edx
jle 0x42e984
cmp ebp, ecx
jge 0x42efec
mov esi, ebx
neg esi
add esi, esi
add esi, esi
add ebx, ebx
add ebx, ebx
mov eax, dword [esp + 0x8898]
lea edi, [eax + 1]
lea edx, [ebp + ebp]
add edx, edx
add edx, ebx
lea eax, [ebp + ebp]
add eax, eax
add eax, esi
mov dword [esp + 0x8868], edi
mov dword [esp + 0x8830], ecx
mov esi, dword [esp + eax + 0x40c]
mov ebx, dword [esp + edx + 0x40c]
mov ecx, dword [esp + 0x8424]
mov edi, dword [esp + 0x8868]
cmp ecx, edi
jge 0x42eb27
mov edi, dword [esp + 0x8860]
imul edi, ebp
mov dword [esp + 0x8838], edi
mov edi, ebx
sub edi, esi
inc edi
mov dword [esp + 0x8840], edi
mov dword [esp + 0x8844], ecx
mov dword [esp + 0x8854], ebx
mov dword [esp + 0x8850], esi
mov dword [esp + 0x884c], eax
mov dword [esp + 0x883c], edx
mov dword [esp + 0x8420], ebp
mov edi, dword [esp + 0x8850]
mov eax, dword [esp + 0x8854]
cmp edi, eax
jg 0x42f009
xor eax, eax
xor ebx, ebx
xor ebp, ebp
mov edx, dword [esp + 0x8844]
lea ecx, [edx + edx]
add ecx, ecx
mov esi, edi
imul esi, dword [esp + 0x8860]
add esi, ecx
add esi, dword [esp + 0x882c]
mov dword [esp + 0x8848], ecx
mov edx, dword [esp + 0x8854]
movzx ecx, byte [esi]
add eax, ecx
movzx ecx, byte [esi + 1]
add ebx, ecx
movzx ecx, byte [esi + 2]
add ebp, ecx
add esi, dword [esp + 0x8860]
inc edi
cmp edi, edx
jle 0x42ea8e
mov ecx, dword [esp + 0x8848]
add ecx, dword [esp + 0x8838]
xor edx, edx
mov edi, dword [esp + 0x8840]
div edi
mov esi, dword [esp + 0x8834]
mov byte [ecx + esi], al
mov eax, ebx
xor edx, edx
div edi
mov byte [ecx + esi + 1], al
mov eax, ebp
xor edx, edx
mov ebx, edi
div ebx
mov byte [ecx + esi + 2], al
mov ebp, dword [esp + 0x8864]
movzx eax, byte [ebp + ecx + 3]
mov byte [ecx + esi + 3], al
mov ecx, dword [esp + 0x8844]
inc ecx
mov dword [esp + 0x8844], ecx
mov eax, dword [esp + 0x8868]
cmp ecx, eax
jl 0x42ea45
mov eax, dword [esp + 0x884c]
mov edx, dword [esp + 0x883c]
mov ebp, dword [esp + 0x8420]
add edx, 4
add eax, 4
inc ebp
mov ecx, dword [esp + 0x8830]
cmp ebp, ecx
jl 0x42e9da
jmp 0x42efec
mov ecx, dword [esp + 0x8424]
sub ecx, ebx
mov eax, dword [esp + 0x8898]
lea edx, [ebx + eax + 1]
cmp ecx, edx
jg 0x42eb9a
mov eax, dword [esp + 0x8898]
lea eax, [eax + 1]
mov dword [esp + 0x8420], ebp
mov esi, dword [esp + 0x8898]
mov edi, dword [esp + 0x8424]
mov ebp, ecx
cmp ecx, edi
jge 0x42eb81
mov ebp, edi
cmp ebp, eax
jl 0x42eb87
mov ebp, esi
mov dword [esp + ecx*4 + 0x40c], ebp
inc ecx
cmp ecx, edx
jle 0x42eb79
mov ebp, dword [esp + 0x8420]
mov edx, ebp
mov eax, dword [esp + 0x889c]
lea ecx, [eax + 1]
cmp ebp, ecx
jge 0x42edb6
mov edi, ebx
neg edi
add edi, edi
add edi, edi
lea esi, [ebx + ebx]
add esi, esi
mov eax, dword [esp + 0x8898]
lea eax, [eax + 1]
mov dword [esp + 0x8870], eax
mov eax, edx
imul eax, dword [esp + 0x8860]
mov dword [esp + 0x8840], esi
mov dword [esp + 0x8854], edi
mov dword [esp + 0x8844], ecx
mov dword [esp + 0x886c], ebx
mov dword [esp + 0x8420], ebp
mov ebx, dword [esp + 0x8424]
mov ecx, ebx
mov ebp, dword [esp + 0x8870]
cmp ebx, ebp
jge 0x42ed91
lea esi, [ecx + ecx]
add esi, esi
add esi, dword [esp + 0x8840]
lea ebp, [ecx + ecx]
add ebp, ebp
add ebp, dword [esp + 0x8854]
lea edi, [ecx + ecx]
add edi, edi
add edi, eax
add edi, dword [esp + 0x882c]
mov dword [esp + 0x8830], edi
mov dword [esp + 0x8838], ebp
mov dword [esp + 0x883c], esi
mov dword [esp + 0x884c], eax
mov dword [esp + 0x8850], ecx
mov dword [esp + 0x8848], edx
mov edi, dword [esp + 0x8838]
mov edx, dword [esp + edi + 0x40c]
mov eax, dword [esp + 0x883c]
mov ecx, dword [esp + eax + 0x40c]
lea edi, [edx + edx]
add edi, edi
add edi, dword [esp + 0x884c]
sub ecx, edx
mov dword [esp + 0x885c], ecx
test ecx, ecx
jl 0x42f055
xor eax, eax
xor ecx, ecx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edx, edx
mov dword [esp + 0x8428], edx
add edi, dword [esp + 0x8864]
mov dword [esp + 0x8868], eax
mov dword [esp + 0x8858], esi
mov esi, dword [esp + edx*4 + 0x842c]
movzx eax, byte [edi + edx*4]
imul eax, esi
add dword [esp + 0x8868], eax
movzx eax, byte [edi + edx*4 + 1]
imul eax, esi
add ecx, eax
movzx eax, byte [edi + edx*4 + 2]
imul eax, esi
add ebx, eax
movzx eax, byte [edi + edx*4 + 3]
imul eax, esi
add ebp, eax
add dword [esp + 0x8858], esi
inc edx
mov esi, dword [esp + 0x885c]
cmp edx, esi
jle 0x42ecc2
mov eax, dword [esp + 0x8868]
mov esi, dword [esp + 0x8858]
xor edx, edx
div esi
mov edi, dword [esp + 0x8830]
mov byte [edi], al
mov eax, ecx
xor edx, edx
div esi
mov edx, edi
mov byte [edx + 1], al
mov eax, ebx
xor edx, edx
div esi
mov ecx, edi
mov byte [ecx + 2], al
mov eax, ebp
xor edx, edx
div esi
mov ebx, ecx
mov byte [ebx + 3], al
add dword [esp + 0x883c], 4
add dword [esp + 0x8838], 4
add ebx, 4
mov dword [esp + 0x8830], ebx
mov ebp, dword [esp + 0x8850]
inc ebp
mov dword [esp + 0x8850], ebp
mov esi, dword [esp + 0x8870]
cmp ebp, esi
jl 0x42ec61
mov eax, dword [esp + 0x884c]
mov edx, dword [esp + 0x8848]
mov ebx, dword [esp + 0x8424]
add eax, dword [esp + 0x8860]
inc edx
mov ecx, dword [esp + 0x8844]
cmp edx, ecx
jl 0x42ec00
mov ebx, dword [esp + 0x886c]
mov ebp, dword [esp + 0x8420]
mov eax, ebp
sub eax, ebx
mov edx, dword [esp + 0x889c]
lea edx, [ebx + edx + 1]
cmp eax, edx
jg 0x42edea
mov edi, dword [esp + 0x889c]
mov esi, eax
cmp eax, ebp
jge 0x42edd8
mov esi, ebp
cmp esi, ecx
jl 0x42edde
mov esi, edi
mov dword [esp + eax*4 + 0x40c], esi
inc eax
cmp eax, edx
jle 0x42edd0
cmp ebp, ecx
jge 0x42efec
mov esi, ebx
neg esi
add esi, esi
add esi, esi
add ebx, ebx
add ebx, ebx
mov eax, dword [esp + 0x8898]
lea edi, [eax + 1]
lea edx, [ebp + ebp]
add edx, edx
add edx, ebx
lea eax, [ebp + ebp]
add eax, eax
add eax, esi
mov dword [esp + 0x8848], edi
mov dword [esp + 0x8844], ecx
mov esi, dword [esp + eax + 0x40c]
mov ebx, dword [esp + edx + 0x40c]
mov ecx, dword [esp + 0x8424]
mov edi, dword [esp + 0x8848]
cmp ecx, edi
jge 0x42efd6
mov edi, dword [esp + 0x8860]
imul edi, ebp
mov dword [esp + 0x8854], edi
mov edi, esi
neg edi
add edi, edi
add edi, edi
mov dword [esp + 0x8838], edi
mov dword [esp + 0x883c], ecx
mov dword [esp + 0x8868], ebx
mov dword [esp + 0x884c], esi
mov dword [esp + 0x8850], eax
mov dword [esp + 0x8840], edx
mov dword [esp + 0x8420], ebp
mov edi, dword [esp + 0x884c]
mov eax, dword [esp + 0x8868]
cmp edi, eax
jg 0x42f02b
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x8870], ecx
xor ecx, ecx
xor ebx, ebx
xor edx, edx
mov dword [esp + 0x886c], edx
mov ebp, dword [esp + 0x883c]
lea ebp, [ebp + ebp]
add ebp, ebp
mov esi, edi
imul esi, dword [esp + 0x8860]
add esi, ebp
add esi, dword [esp + 0x882c]
lea edx, [edi + edi]
add edx, edx
add edx, dword [esp + 0x8838]
mov dword [esp + 0x8830], ebp
mov dword [esp + 0x8864], eax
mov ebp, dword [esp + edx + 0x842c]
movzx eax, byte [esi]
imul eax, ebp
add dword [esp + 0x8864], eax
movzx eax, byte [esi + 1]
imul eax, ebp
add dword [esp + 0x8870], eax
movzx eax, byte [esi + 2]
imul eax, ebp
add ecx, eax
movzx eax, byte [esi + 3]
imul eax, ebp
add ebx, eax
add dword [esp + 0x886c], ebp
add esi, dword [esp + 0x8860]
add edx, 4
inc edi
mov ebp, dword [esp + 0x8868]
cmp edi, ebp
jle 0x42eefc
mov ebp, dword [esp + 0x8830]
mov eax, dword [esp + 0x8864]
add ebp, dword [esp + 0x8854]
xor edx, edx
mov esi, dword [esp + 0x886c]
div esi
mov edi, dword [esp + 0x8834]
mov byte [ebp + edi], al
mov eax, dword [esp + 0x8870]
xor edx, edx
div esi
mov edx, edi
mov byte [ebp + edx + 1], al
mov eax, ecx
xor edx, edx
div esi
mov edx, edi
mov byte [ebp + edx + 2], al
mov eax, ebx
xor edx, edx
mov ecx, esi
div ecx
mov edx, edi
mov byte [ebp + edx + 3], al
mov ebx, dword [esp + 0x883c]
inc ebx
mov dword [esp + 0x883c], ebx
mov ebp, dword [esp + 0x8848]
cmp ebx, ebp
jl 0x42ee94
mov eax, dword [esp + 0x8850]
mov edx, dword [esp + 0x8840]
mov ebp, dword [esp + 0x8420]
add edx, 4
add eax, 4
inc ebp
mov ecx, dword [esp + 0x8844]
cmp ebp, ecx
jl 0x42ee26
mov eax, dword [esp + 0x882c]
test eax, eax
je 0x42effe
push eax
call fcn.0046fa9e
pop ecx
add esp, 0x8874
pop ebx
pop ebp
pop esi
pop edi
ret
xor eax, eax
xor ebx, ebx
xor ebp, ebp
mov edx, dword [esp + 0x8844]
lea ecx, [edx + edx]
add ecx, ecx
jmp 0x42eab2
xor eax, eax
xor ebp, ebp
xor esi, esi
jmp 0x42e8e6
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x8870], ecx
xor ecx, ecx
xor ebx, ebx
xor edx, edx
mov dword [esp + 0x886c], edx
mov ebp, dword [esp + 0x883c]
lea ebp, [ebp + ebp]
add ebp, ebp
jmp 0x42ef5b
xor eax, eax
xor ecx, ecx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
jmp 0x42ed16