Function at 0x42eed0
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.004723b0
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 0x42ef2b
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 0x42ef3c
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 0x42ef7f
mov dword [esp + eax*4 + 0x842c], 0x200
dec eax
cmp eax, edx
jge 0x42ef6f
test edx, edx
jl 0x42efd1
mov eax, 0x200
fld qword [0x57ab58]
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 0x42ef8e
fstp st(0)
add esi, ecx
cmp ecx, esi
jg 0x42efe7
mov dword [esp + ecx*4 + 0x842c], 0x200
inc ecx
cmp ecx, esi
jle 0x42efd7
cmp esi, edi
jg 0x42f039
mov eax, 0x200
fld qword [0x57ab58]
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 0x42eff6
fstp st(0)
mov eax, dword [esp + 0x88a4]
imul eax, dword [esp + 0x8860]
push eax
call fcn.0046fe4c
pop ecx
mov dword [esp + 0x882c], eax
cmp dword [esp + 0x88b4], 0
jne 0x42f462
mov ecx, dword [esp + 0x8424]
sub ecx, ebx
mov eax, dword [esp + 0x8898]
lea edx, [ebx + eax + 1]
cmp ecx, edx
jg 0x42f0bc
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 0x42f0a3
mov ebp, edi
cmp ebp, eax
jl 0x42f0a9
mov ebp, esi
mov dword [esp + ecx*4 + 0x40c], ebp
inc ecx
cmp ecx, edx
jle 0x42f09b
mov ebp, dword [esp + 0x8420]
mov edx, ebp
mov eax, dword [esp + 0x889c]
lea ecx, [eax + 1]
cmp ebp, ecx
jge 0x42f28a
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 0x42f265
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 0x42f940
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 0x42f1e7
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 0x42f17c
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 0x42f122
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 0x42f2be
mov edi, dword [esp + 0x889c]
mov esi, eax
cmp eax, ebp
jge 0x42f2ac
mov esi, ebp
cmp esi, ecx
jl 0x42f2b2
mov esi, edi
mov dword [esp + eax*4 + 0x40c], esi
inc eax
cmp eax, edx
jle 0x42f2a4
cmp ebp, ecx
jge 0x42f90c
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 0x42f447
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 0x42f929
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 0x42f3ae
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 0x42f365
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 0x42f2fa
jmp 0x42f90c
mov ecx, dword [esp + 0x8424]
sub ecx, ebx
mov eax, dword [esp + 0x8898]
lea edx, [ebx + eax + 1]
cmp ecx, edx
jg 0x42f4ba
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 0x42f4a1
mov ebp, edi
cmp ebp, eax
jl 0x42f4a7
mov ebp, esi
mov dword [esp + ecx*4 + 0x40c], ebp
inc ecx
cmp ecx, edx
jle 0x42f499
mov ebp, dword [esp + 0x8420]
mov edx, ebp
mov eax, dword [esp + 0x889c]
lea ecx, [eax + 1]
cmp ebp, ecx
jge 0x42f6d6
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 0x42f6b1
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 0x42f975
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 0x42f5e2
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 0x42f581
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 0x42f520
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 0x42f70a
mov edi, dword [esp + 0x889c]
mov esi, eax
cmp eax, ebp
jge 0x42f6f8
mov esi, ebp
cmp esi, ecx
jl 0x42f6fe
mov esi, edi
mov dword [esp + eax*4 + 0x40c], esi
inc eax
cmp eax, edx
jle 0x42f6f0
cmp ebp, ecx
jge 0x42f90c
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 0x42f8f6
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 0x42f94b
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 0x42f81c
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 0x42f7b4
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 0x42f746
mov eax, dword [esp + 0x882c]
test eax, eax
je 0x42f91e
push eax
call fcn.004703de
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 0x42f3d2
xor eax, eax
xor ebp, ebp
xor esi, esi
jmp 0x42f206
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 0x42f87b
xor eax, eax
xor ecx, ecx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
jmp 0x42f636