Function at 0x454ea0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ecx
push ebp
xor ebp, ebp
cmp dword [esp + 0x14], ebp
jne 0x454eb0
lea eax, [ebp + 1]
pop ebp
pop ecx
ret
push ebx
push esi
mov esi, dword [esp + 0x14]
push edi
mov ebx, dword [esi + 0x14]
mov edi, dword [esi + 0x10]
lea ecx, [ecx]
cmp edi, dword [esi + 8]
jae 0x454eef
mov eax, dword [esi]
mov ecx, ebx
mov edx, dword [eax + edi*4]
mov eax, edx
shl eax, cl
test eax, eax
jne 0x454f47
mov eax, 0x20
push edx
sub eax, ebx
push esi
add ebp, eax
call fcn.00455860
inc edi
add esp, 8
xor ebx, ebx
cmp edi, dword [esi + 8]
jb 0x454ec5
mov eax, dword [esi + 0xc]
test eax, eax
je 0x454f28
shl eax, 3
mov ecx, 0x20
sub ecx, eax
or edx, 0xffffffff
mov eax, dword [esi]
shl edx, cl
mov ecx, ebx
and edx, dword [eax + edi*4]
shl edx, cl
test edx, edx
jne 0x454fad
mov eax, dword [esi + 0xc]
lea ecx, [eax*8]
mov eax, ecx
sub eax, ebx
add ebp, eax
add ebx, ecx
push esi
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], edi
call fcn.00455750
add esp, 4
test eax, eax
jne 0x454eba
pop edi
pop esi
pop ebx
xor eax, eax
pop ebp
pop ecx
ret
cmp eax, 0xffff
ja 0x454f70
cmp eax, 0xff
ja 0x454f61
movzx eax, byte [eax + 0x4e49c0]
add eax, 0x18
jmp 0x454f90
shr eax, 8
movzx eax, byte [eax + 0x4e49c0]
add eax, 0x10
jmp 0x454f90
cmp eax, 0xffffff
ja 0x454f86
shr eax, 0x10
movzx eax, byte [eax + 0x4e49c0]
add eax, 8
jmp 0x454f90
shr eax, 0x18
movzx eax, byte [eax + 0x4e49c0]
inc ebx
add ebp, eax
add ebx, eax
cmp ebx, 0x20
jne 0x454ffe
mov eax, dword [esi]
push dword [eax + edi*4]
push esi
call fcn.00455860
add esp, 8
inc edi
xor ebx, ebx
jmp 0x454ffe
cmp edx, 0xffff
ja 0x454fd8
cmp edx, 0xff
ja 0x454fc9
movzx eax, byte [edx + 0x4e49c0]
add eax, 0x18
jmp 0x454ff9
shr edx, 8
movzx eax, byte [edx + 0x4e49c0]
add eax, 0x10
jmp 0x454ff9
cmp edx, 0xffffff
ja 0x454fef
shr edx, 0x10
movzx eax, byte [edx + 0x4e49c0]
add eax, 8
jmp 0x454ff9
shr edx, 0x18
movzx eax, byte [edx + 0x4e49c0]
inc ebx
add ebp, eax
add ebx, eax
mov edx, dword [esp + 0x24]
test edx, edx
je 0x455118
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
sub ecx, edi
lea eax, [eax + ecx*4]
shl eax, 3
sub eax, ebx
cmp eax, edx
jae 0x455052
mov edi, edi
push esi
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], edi
call fcn.00455750
add esp, 4
test eax, eax
je 0x454f3f
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0x10]
sub ecx, edi
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x24]
lea eax, [eax + ecx*4]
shl eax, 3
sub eax, ebx
cmp eax, edx
jb 0x455020
mov eax, dword [esi]
mov eax, dword [eax + edi*4]
cmp edi, dword [esi + 8]
jae 0x4550e5
test ebx, ebx
je 0x4550d6
mov dword [esp + 0x10], eax
mov edx, 0x20
or eax, 0xffffffff
mov ecx, ebx
sub edx, ebx
shr eax, cl
cmp dword [esp + 0x24], edx
jae 0x455097
sub edx, dword [esp + 0x24]
and eax, dword [esp + 0x10]
mov ecx, edx
shr eax, cl
mov ecx, dword [esp + 0x24]
shl ebp, cl
or ebp, eax
add ebx, ecx
jmp 0x455118
mov ebx, dword [esp + 0x10]
mov ecx, edx
and eax, ebx
shl ebp, cl
or ebp, eax
mov eax, dword [esp + 0x24]
sub eax, edx
push ebx
push esi
mov dword [esp + 0x18], eax
call fcn.00455860
mov edx, dword [esp + 0x18]
add esp, 8
inc edi
xor ebx, ebx
test edx, edx
je 0x455118
mov eax, dword [esi]
mov ecx, 0x20
sub ecx, edx
mov eax, dword [eax + edi*4]
shr eax, cl
mov ecx, edx
shl ebp, cl
jmp 0x455114
mov ecx, 0x20
sub ecx, edx
shr eax, cl
mov ecx, edx
shl ebp, cl
jmp 0x455114
mov ecx, edx
shl ebp, cl
test ebx, ebx
je 0x45510b
mov ecx, ebx
or edx, 0xffffffff
shr edx, cl
mov ecx, 0x20
sub ecx, ebx
and eax, edx
sub ecx, dword [esp + 0x24]
shr eax, cl
or ebp, eax
add ebx, dword [esp + 0x24]
jmp 0x455118
mov ecx, 0x20
sub ecx, edx
shr eax, cl
or ebp, eax
mov ebx, edx
mov ecx, dword [esp + 0x1c]
mov eax, ebp
and ebp, 1
shr eax, 1
neg ebp
xor eax, ebp
dec dword [esp + 0x20]
mov dword [ecx], eax
je 0x45513d
xor ebp, ebp
add ecx, 4
mov dword [esp + 0x1c], ecx
jmp 0x454ec0
mov dword [esi + 0x10], edi
mov eax, 1
pop edi
mov dword [esi + 0x14], ebx
pop esi
pop ebx
pop ebp
pop ecx
ret